独联体公会列表
This commit is contained in:
@@ -10,6 +10,7 @@ public class SimpleGuildVo {
|
|||||||
|
|
||||||
private Integer guildId;
|
private Integer guildId;
|
||||||
private String guildName;
|
private String guildName;
|
||||||
|
private Long ownerUid;
|
||||||
private SimpleUserVo owner;
|
private SimpleUserVo owner;
|
||||||
private Double weekIncome;
|
private Double weekIncome;
|
||||||
private String markScore;
|
private String markScore;
|
||||||
|
@@ -4,6 +4,7 @@ import com.accompany.business.model.guild.GuildDiamondStatisticsDay;
|
|||||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||||
import com.accompany.business.vo.guild.GuildInfoVo;
|
import com.accompany.business.vo.guild.GuildInfoVo;
|
||||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||||
|
import com.accompany.business.vo.guild.SimpleGuildVo;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -49,4 +50,6 @@ public interface GuildDiamondStatisticsDayMapper extends BaseMapper<GuildDiamond
|
|||||||
|
|
||||||
List<GuildDiamondStatisticsDayVo> listByStatDateGuildIds(@Param("startDate")String startDate, @Param("endDate")String endDate,
|
List<GuildDiamondStatisticsDayVo> listByStatDateGuildIds(@Param("startDate")String startDate, @Param("endDate")String endDate,
|
||||||
@Param("guildIds") List<Integer> guildIds, @Param("partitionId") Integer partitionId);
|
@Param("guildIds") List<Integer> guildIds, @Param("partitionId") Integer partitionId);
|
||||||
|
|
||||||
|
List<SimpleGuildVo> listRank(@Param("ipage") IPage<SimpleGuildVo> ipage, @Param("partitionId") Integer partitionId, @Param("startDate")String startDate);
|
||||||
}
|
}
|
||||||
|
@@ -5,6 +5,7 @@ import com.accompany.business.model.guild.GuildMember;
|
|||||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||||
import com.accompany.business.vo.guild.GuildInfoVo;
|
import com.accompany.business.vo.guild.GuildInfoVo;
|
||||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||||
|
import com.accompany.business.vo.guild.SimpleGuildVo;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
@@ -40,4 +41,6 @@ public interface GuildDiamondStatisticsDayService extends IService<GuildDiamondS
|
|||||||
Map<Integer, Double> mapByStatDate(String statDate, String endDate, int partitionId, List<Integer> guildIds);
|
Map<Integer, Double> mapByStatDate(String statDate, String endDate, int partitionId, List<Integer> guildIds);
|
||||||
|
|
||||||
RMap<Integer, BigDecimal> guildStatDateDiamondMap(Integer partitionId, String statDate);
|
RMap<Integer, BigDecimal> guildStatDateDiamondMap(Integer partitionId, String statDate);
|
||||||
|
|
||||||
|
List<SimpleGuildVo> listRank(Integer partitionId, String startDate, Integer pageNo, Integer pageSize);
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@ import com.accompany.business.mybatismapper.guild.GuildDiamondStatisticsDayMappe
|
|||||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||||
import com.accompany.business.vo.guild.GuildInfoVo;
|
import com.accompany.business.vo.guild.GuildInfoVo;
|
||||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||||
|
import com.accompany.business.vo.guild.SimpleGuildVo;
|
||||||
import com.accompany.core.enumeration.PartitionEnum;
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@@ -100,4 +101,10 @@ public class GuildDiamondStatisticsDayServiceImpl extends ServiceImpl<GuildDiamo
|
|||||||
new TypedJsonJacksonCodec(Integer.class, BigDecimal.class));
|
new TypedJsonJacksonCodec(Integer.class, BigDecimal.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SimpleGuildVo> listRank(Integer partitionId, String startDate, Integer pageNo, Integer pageSize) {
|
||||||
|
IPage<SimpleGuildVo> page = new Page<>(pageNo, pageSize, false);
|
||||||
|
return baseMapper.listRank(page, partitionId, startDate);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.accompany.business.service.guild;
|
package com.accompany.business.service.guild;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.accompany.business.constant.guild.GuildConstant;
|
import com.accompany.business.constant.guild.GuildConstant;
|
||||||
import com.accompany.business.event.GuildMemberStatusChangeEvent;
|
import com.accompany.business.event.GuildMemberStatusChangeEvent;
|
||||||
import com.accompany.business.model.UserPurse;
|
import com.accompany.business.model.UserPurse;
|
||||||
@@ -93,6 +94,8 @@ public class GuildManagerService {
|
|||||||
private UserPurseService userPurseService;
|
private UserPurseService userPurseService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UploadAvatarService uploadAvatarService;
|
private UploadAvatarService uploadAvatarService;
|
||||||
|
@Autowired
|
||||||
|
private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService;
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public GuildVo getGuildVo(Long uid) {
|
public GuildVo getGuildVo(Long uid) {
|
||||||
@@ -484,7 +487,7 @@ public class GuildManagerService {
|
|||||||
return listGuildMember(guildMember.getGuildId(), GuildConstant.RoleType.MANAGER);
|
return listGuildMember(guildMember.getGuildId(), GuildConstant.RoleType.MANAGER);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SimpleGuildVo> listRank(Long uid) {
|
public List<SimpleGuildVo> listRank(Long uid, Integer pageNo, Integer pageSize) {
|
||||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||||
if (null != guildMember){
|
if (null != guildMember){
|
||||||
throw new ServiceException(BusiStatus.HAS_ONE_HALL);
|
throw new ServiceException(BusiStatus.HAS_ONE_HALL);
|
||||||
@@ -495,12 +498,48 @@ public class GuildManagerService {
|
|||||||
throw new ServiceException(BusiStatus.USERNOTEXISTS);
|
throw new ServiceException(BusiStatus.USERNOTEXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Guild> guildList = guildService.listVaildGuildByPartitionId(u.getPartitionId());
|
Integer partitionId = u.getPartitionId();
|
||||||
|
List<SimpleGuildVo> simpleGuildVos;
|
||||||
|
if (PartitionEnum.SOVIET.getId() == partitionId) {
|
||||||
|
Date offsetDay = DateUtil.offsetDay(new Date(), -60);
|
||||||
|
simpleGuildVos = guildDiamondStatisticsDayService.listRank(partitionId, DateUtil.formatDate(offsetDay), pageNo, pageSize);
|
||||||
|
} else {
|
||||||
|
simpleGuildVos = this.listRank(partitionId);
|
||||||
|
}
|
||||||
|
if (CollectionUtils.isEmpty(simpleGuildVos)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Integer> guildIds = simpleGuildVos.stream().map(SimpleGuildVo::getGuildId).collect(Collectors.toList());
|
||||||
|
Map<Integer, GuildSSRankDetailVo> ssMarkMap = ssGuildService.getSSMarkByGuildId(partitionId, guildIds);
|
||||||
|
Map<Integer, Integer> memberNumMap = guildService.getGuildMemberNumMapByGuildIds(guildIds);
|
||||||
|
List<Long> ownerUids = simpleGuildVos.stream().map(SimpleGuildVo::getOwnerUid).collect(Collectors.toList());
|
||||||
|
Map<Long, SimpleUserVo> ownerErbanNoMap = usersService.getSimpleUsersByUid(ownerUids);
|
||||||
|
for (SimpleGuildVo simpleGuildVo : simpleGuildVos) {
|
||||||
|
Integer guildId = simpleGuildVo.getGuildId();
|
||||||
|
simpleGuildVo.setOwner(ownerErbanNoMap.get(simpleGuildVo.getOwnerUid()));
|
||||||
|
|
||||||
|
GuildSSRankDetailVo guildSSRankDetailVo = ssMarkMap.get(guildId);
|
||||||
|
if (guildSSRankDetailVo != null) {
|
||||||
|
simpleGuildVo.setMarkScore(guildSSRankDetailVo.getMarkScore());
|
||||||
|
simpleGuildVo.setSsLevel(guildSSRankDetailVo.getSsLevel());
|
||||||
|
}
|
||||||
|
Integer memberNum = memberNumMap.get(guildId);
|
||||||
|
memberNum = memberNum == null ? 0 : memberNum;
|
||||||
|
simpleGuildVo.setMemberNum(memberNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
return simpleGuildVos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SimpleGuildVo> listRank(Integer partitionId) {
|
||||||
|
|
||||||
|
List<Guild> guildList = guildService.listVaildGuildByPartitionId(partitionId);
|
||||||
if (CollectionUtils.isEmpty(guildList)){
|
if (CollectionUtils.isEmpty(guildList)){
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
PartitionInfo partitionInfo = partitionInfoService.getById(u.getPartitionId());
|
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
|
||||||
Map<Integer, Double> weekIncomeMap = guildRankService.getWeekRankScoreMap(u.getPartitionId(),
|
Map<Integer, Double> weekIncomeMap = guildRankService.getWeekRankScoreMap(partitionId,
|
||||||
null != partitionInfo? partitionInfo.getZoneId(): ZoneId.systemDefault().getId());
|
null != partitionInfo? partitionInfo.getZoneId(): ZoneId.systemDefault().getId());
|
||||||
|
|
||||||
List<SimpleGuildVo> voList = new ArrayList<>();
|
List<SimpleGuildVo> voList = new ArrayList<>();
|
||||||
@@ -516,18 +555,8 @@ public class GuildManagerService {
|
|||||||
vo.setGuildId(guild.getId());
|
vo.setGuildId(guild.getId());
|
||||||
vo.setGuildName(guild.getName());
|
vo.setGuildName(guild.getName());
|
||||||
vo.setMemberNumLimit(guild.getMemberNumLimit());
|
vo.setMemberNumLimit(guild.getMemberNumLimit());
|
||||||
SimpleUserVo ownerVo = usersService.getSimpleUserByUid(guild.getOwnerUid());
|
|
||||||
vo.setOwner(ownerVo);
|
|
||||||
|
|
||||||
vo.setWeekIncome(weekIncomeMap.getOrDefault(guild.getId(), 0D));
|
vo.setWeekIncome(weekIncomeMap.getOrDefault(guild.getId(), 0D));
|
||||||
GuildSSRankDetailVo guildSSRankDetailVo = ssMarkMap.get(guild.getId());
|
|
||||||
if (guildSSRankDetailVo != null) {
|
|
||||||
vo.setMarkScore(guildSSRankDetailVo.getMarkScore());
|
|
||||||
vo.setSsLevel(guildSSRankDetailVo.getSsLevel());
|
|
||||||
}
|
|
||||||
Integer memberNum = memberNumMap.get(guild.getId());
|
|
||||||
memberNum = memberNum == null ? 0 : memberNum;
|
|
||||||
vo.setMemberNum(memberNum);
|
|
||||||
voList.add(vo);
|
voList.add(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -26,7 +26,6 @@ import com.accompany.business.service.headwear.HeadwearService;
|
|||||||
import com.accompany.business.service.level.LevelService;
|
import com.accompany.business.service.level.LevelService;
|
||||||
import com.accompany.business.service.live.LiveAttestationService;
|
import com.accompany.business.service.live.LiveAttestationService;
|
||||||
import com.accompany.business.service.nameplate.UserNameplateService;
|
import com.accompany.business.service.nameplate.UserNameplateService;
|
||||||
import com.accompany.business.service.netease.YidunCheckUtil;
|
|
||||||
import com.accompany.business.service.purse.UserPurseService;
|
import com.accompany.business.service.purse.UserPurseService;
|
||||||
import com.accompany.business.service.room.QueryRoomService;
|
import com.accompany.business.service.room.QueryRoomService;
|
||||||
import com.accompany.business.service.room.RoomService;
|
import com.accompany.business.service.room.RoomService;
|
||||||
@@ -77,7 +76,6 @@ import com.accompany.email.service.EmailService;
|
|||||||
import com.accompany.payment.service.RechargeUserService;
|
import com.accompany.payment.service.RechargeUserService;
|
||||||
import com.accompany.sms.service.SmsService;
|
import com.accompany.sms.service.SmsService;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -845,6 +843,24 @@ public class UsersService extends BaseService {
|
|||||||
return simpleUserVo;
|
return simpleUserVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Long, SimpleUserVo> getSimpleUsersByUid(List<Long> uids) {
|
||||||
|
Map<Long, SimpleUserVo> resultMap = new HashMap<>();
|
||||||
|
Map<Long, Users> usersMap = getUsersMapByUids(uids);
|
||||||
|
if (usersMap == null || usersMap.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
usersMap.forEach((uid, user) -> {
|
||||||
|
SimpleUserVo simpleUserVo = new SimpleUserVo();
|
||||||
|
simpleUserVo.setAvatar(user.getAvatar());
|
||||||
|
simpleUserVo.setErbanNo(user.getErbanNo());
|
||||||
|
simpleUserVo.setGender(user.getGender());
|
||||||
|
simpleUserVo.setNick(user.getNick());
|
||||||
|
simpleUserVo.setUid(user.getUid());
|
||||||
|
resultMap.put(uid, simpleUserVo);
|
||||||
|
});
|
||||||
|
return resultMap;
|
||||||
|
}
|
||||||
|
|
||||||
public BusiResult isBindPhone(Long uid) {
|
public BusiResult isBindPhone(Long uid) {
|
||||||
BusiResult busiResult = new BusiResult(BusiStatus.SUCCESS);
|
BusiResult busiResult = new BusiResult(BusiStatus.SUCCESS);
|
||||||
Users users = getUsersByUid(uid);
|
Users users = getUsersByUid(uid);
|
||||||
|
@@ -160,4 +160,24 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
group by gd.guild_id
|
group by gd.guild_id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="listRank" resultType="com.accompany.business.vo.guild.SimpleGuildVo">
|
||||||
|
SELECT
|
||||||
|
g.id guildId,
|
||||||
|
g.`name` guildName,
|
||||||
|
g.owner_uid ownerUid,
|
||||||
|
g.member_num_limit memberNumLimit,
|
||||||
|
a.diamond_num weekIncome
|
||||||
|
FROM
|
||||||
|
guild g
|
||||||
|
LEFT JOIN (select guild_id, sum(diamond_num+lucky_diamond_num) diamond_num
|
||||||
|
from guild_extra_diamond_day
|
||||||
|
where partition_id = #{partitionId}
|
||||||
|
and stat_date >= #{startDate}
|
||||||
|
group by guild_id) a on a.guild_id = g.id
|
||||||
|
where g.partition_id = #{partitionId}
|
||||||
|
and g.`enable` = 1
|
||||||
|
ORDER BY weekIncome desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@@ -14,10 +14,7 @@ import io.swagger.annotations.ApiImplicitParams;
|
|||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -111,9 +108,9 @@ public class GuildController {
|
|||||||
@ApiOperation("公会排行列表")
|
@ApiOperation("公会排行列表")
|
||||||
@Authorization
|
@Authorization
|
||||||
@GetMapping("/listRank")
|
@GetMapping("/listRank")
|
||||||
public BusiResult<List<SimpleGuildVo>> listGuild(){
|
public BusiResult<List<SimpleGuildVo>> listGuild(@RequestParam(defaultValue = "1") Integer pageNo, @RequestParam(defaultValue = "20") Integer pageSize){
|
||||||
Long uid = UidContextHolder.get();
|
Long uid = UidContextHolder.get();
|
||||||
List<SimpleGuildVo> guildList = guildManagerService.listRank(uid);
|
List<SimpleGuildVo> guildList = guildManagerService.listRank(uid, pageNo, pageSize);
|
||||||
return BusiResult.success(guildList);
|
return BusiResult.success(guildList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user