独联体公会列表
This commit is contained in:
@@ -10,6 +10,7 @@ public class SimpleGuildVo {
|
||||
|
||||
private Integer guildId;
|
||||
private String guildName;
|
||||
private Long ownerUid;
|
||||
private SimpleUserVo owner;
|
||||
private Double weekIncome;
|
||||
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.GuildInfoVo;
|
||||
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.metadata.IPage;
|
||||
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,
|
||||
@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.GuildInfoVo;
|
||||
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.extension.plugins.pagination.Page;
|
||||
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);
|
||||
|
||||
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.GuildInfoVo;
|
||||
import com.accompany.business.vo.guild.GuildMemberDiamondStatisticsDayVo;
|
||||
import com.accompany.business.vo.guild.SimpleGuildVo;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -100,4 +101,10 @@ public class GuildDiamondStatisticsDayServiceImpl extends ServiceImpl<GuildDiamo
|
||||
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;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.constant.guild.GuildConstant;
|
||||
import com.accompany.business.event.GuildMemberStatusChangeEvent;
|
||||
import com.accompany.business.model.UserPurse;
|
||||
@@ -93,6 +94,8 @@ public class GuildManagerService {
|
||||
private UserPurseService userPurseService;
|
||||
@Autowired
|
||||
private UploadAvatarService uploadAvatarService;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService;
|
||||
|
||||
@SneakyThrows
|
||||
public GuildVo getGuildVo(Long uid) {
|
||||
@@ -484,7 +487,7 @@ public class GuildManagerService {
|
||||
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);
|
||||
if (null != guildMember){
|
||||
throw new ServiceException(BusiStatus.HAS_ONE_HALL);
|
||||
@@ -495,12 +498,48 @@ public class GuildManagerService {
|
||||
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)){
|
||||
return Collections.emptyList();
|
||||
}
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(u.getPartitionId());
|
||||
Map<Integer, Double> weekIncomeMap = guildRankService.getWeekRankScoreMap(u.getPartitionId(),
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
|
||||
Map<Integer, Double> weekIncomeMap = guildRankService.getWeekRankScoreMap(partitionId,
|
||||
null != partitionInfo? partitionInfo.getZoneId(): ZoneId.systemDefault().getId());
|
||||
|
||||
List<SimpleGuildVo> voList = new ArrayList<>();
|
||||
@@ -516,18 +555,8 @@ public class GuildManagerService {
|
||||
vo.setGuildId(guild.getId());
|
||||
vo.setGuildName(guild.getName());
|
||||
vo.setMemberNumLimit(guild.getMemberNumLimit());
|
||||
SimpleUserVo ownerVo = usersService.getSimpleUserByUid(guild.getOwnerUid());
|
||||
vo.setOwner(ownerVo);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
@@ -26,7 +26,6 @@ import com.accompany.business.service.headwear.HeadwearService;
|
||||
import com.accompany.business.service.level.LevelService;
|
||||
import com.accompany.business.service.live.LiveAttestationService;
|
||||
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.room.QueryRoomService;
|
||||
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.sms.service.SmsService;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -845,6 +843,24 @@ public class UsersService extends BaseService {
|
||||
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) {
|
||||
BusiResult busiResult = new BusiResult(BusiStatus.SUCCESS);
|
||||
Users users = getUsersByUid(uid);
|
||||
|
@@ -160,4 +160,24 @@
|
||||
</foreach>
|
||||
group by gd.guild_id
|
||||
</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>
|
||||
|
@@ -14,10 +14,7 @@ import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -111,9 +108,9 @@ public class GuildController {
|
||||
@ApiOperation("公会排行列表")
|
||||
@Authorization
|
||||
@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();
|
||||
List<SimpleGuildVo> guildList = guildManagerService.listRank(uid);
|
||||
List<SimpleGuildVo> guildList = guildManagerService.listRank(uid, pageNo, pageSize);
|
||||
return BusiResult.success(guildList);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user