cp榜单我的排名处理
This commit is contained in:
parent
1e84507252
commit
44d7941e50
@ -50,7 +50,7 @@ public class WeekCpUserGiftQueryExe {
|
||||
|
||||
private ActivityWeekCpGiftCO getWeekRanking(CpRankingQueryCmd cmd) {
|
||||
List<ActivityCpUserRankingCO> topList = getThisWeekUser(cmd);
|
||||
ActivityCpUserRankingCO currentUser = getThisWeekCurrentUser(cmd, topList);
|
||||
ActivityCpUserRankingCO currentUser = getCurrentUserRankingCO(cmd, topList);
|
||||
|
||||
return new ActivityWeekCpGiftCO()
|
||||
.setThisWeekUserTop(topList)
|
||||
@ -59,71 +59,50 @@ public class WeekCpUserGiftQueryExe {
|
||||
|
||||
private ActivityWeekCpGiftCO getSeasonRanking(CpRankingQueryCmd cmd) {
|
||||
List<ActivityCpUserRankingCO> topList = getThisSeasonUser(cmd);
|
||||
ActivityCpUserRankingCO currentUser = getThisSeasonCurrentUser(cmd, topList);
|
||||
ActivityCpUserRankingCO currentUser = getCurrentUserRankingCO(cmd, topList);
|
||||
|
||||
return new ActivityWeekCpGiftCO()
|
||||
.setThisWeekUserTop(topList)
|
||||
.setThisUser(currentUser);
|
||||
}
|
||||
|
||||
private ActivityCpUserRankingCO getThisWeekCurrentUser(CpRankingQueryCmd cmd,
|
||||
List<ActivityCpUserRankingCO> topList) {
|
||||
List<Long> cpUserIdList = cpRelationshipService.getCpUserId(cmd.getReqUserId());
|
||||
if (cpUserIdList.isEmpty()) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
private ActivityCpUserRankingCO queryCurrentUserCO(Long reqUserId) {
|
||||
Map<Long, UserProfileDTO> userProfileMap = userProfileAppConvertor.toMapUserProfileDTO(
|
||||
userProfileGateway.mapByUserIds(Set.of(reqUserId)));
|
||||
ActivityCpUserRankingCO rankingCO = new ActivityCpUserRankingCO();
|
||||
UserProfileDTO userProfileDTO = userProfileMap.get(reqUserId);
|
||||
if (userProfileDTO != null) {
|
||||
rankingCO.setUserAvatar(userProfileDTO.getUserAvatar());
|
||||
rankingCO.setUserNickname(userProfileDTO.getUserNickname());
|
||||
rankingCO.setUserSex(userProfileDTO.getUserSex());
|
||||
}
|
||||
|
||||
Long cpUserId = cpUserIdList.get(0);
|
||||
|
||||
// 先在Top榜单中查找
|
||||
ActivityCpUserRankingCO userInTop = findUserInTopList(cmd.getReqUserId(), cpUserId, topList);
|
||||
if (Objects.nonNull(userInTop)) {
|
||||
return userInTop;
|
||||
}
|
||||
|
||||
// 不在Top榜单,单独查询并设置排名为99
|
||||
WeekCpValueCount thisUser = weekCpValueCountService.getUserThisWeekCount(
|
||||
cmd.getReqSysOrigin().getOrigin(),
|
||||
cmd.getReqUserId(), cpUserId);
|
||||
if (Objects.isNull(thisUser)) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
}
|
||||
|
||||
List<ActivityCpUserRankingCO> users = assemble(Lists.newArrayList(thisUser), OUT_OF_RANK);
|
||||
if (CollectionUtils.isEmpty(users)) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
}
|
||||
return users.get(0);
|
||||
rankingCO.setRank(999);
|
||||
rankingCO.setTotalNumber(0L);
|
||||
rankingCO.setTotal("0");
|
||||
return rankingCO;
|
||||
}
|
||||
|
||||
private ActivityCpUserRankingCO getThisSeasonCurrentUser(CpRankingQueryCmd cmd,
|
||||
List<ActivityCpUserRankingCO> topList) {
|
||||
private ActivityCpUserRankingCO getCurrentUserRankingCO(CpRankingQueryCmd cmd,
|
||||
List<ActivityCpUserRankingCO> topList) {
|
||||
List<Long> cpUserIdList = cpRelationshipService.getCpUserId(cmd.getReqUserId());
|
||||
if (cpUserIdList.isEmpty()) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
return queryCurrentUserCO(cmd.getReqUserId());
|
||||
}
|
||||
|
||||
Long cpUserId = cpUserIdList.get(0);
|
||||
|
||||
// 先在Top榜单中查找
|
||||
ActivityCpUserRankingCO userInTop = findUserInTopList(cmd.getReqUserId(), cpUserId, topList);
|
||||
if (Objects.nonNull(userInTop)) {
|
||||
return userInTop;
|
||||
ActivityCpUserRankingCO userInTop = new ActivityCpUserRankingCO();
|
||||
userInTop.setTotalNumber(0L);
|
||||
for (Long cpUserId : cpUserIdList) {
|
||||
ActivityCpUserRankingCO rankingCO = findUserInTopList(cmd.getReqUserId(), cpUserId, topList);
|
||||
if (rankingCO != null && rankingCO.getTotalNumber() > userInTop.getTotalNumber()) {
|
||||
userInTop = rankingCO;
|
||||
}
|
||||
}
|
||||
|
||||
// 不在Top榜单,单独查询并设置排名为99
|
||||
WeekCpValueCount thisSeason = weekCpValueCountService.getUserThisSeasonCount(
|
||||
cmd.getReqSysOrigin().getOrigin(),
|
||||
cmd.getReqUserId(), cpUserId);
|
||||
if (Objects.isNull(thisSeason)) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
|
||||
if (Objects.isNull(userInTop.getUserId())) {
|
||||
return queryCurrentUserCO(cmd.getReqUserId());
|
||||
}
|
||||
|
||||
List<ActivityCpUserRankingCO> users = assemble(Lists.newArrayList(thisSeason), OUT_OF_RANK);
|
||||
if (CollectionUtils.isEmpty(users)) {
|
||||
return new ActivityCpUserRankingCO();
|
||||
}
|
||||
return users.get(0);
|
||||
|
||||
return userInTop;
|
||||
}
|
||||
|
||||
private ActivityCpUserRankingCO findUserInTopList(Long userId, Long cpUserId,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user