cp榜边界值修复
This commit is contained in:
parent
79e476dfd1
commit
afe830f313
@ -46,11 +46,10 @@ public class CpRankingBadgeTask {
|
||||
@TaskCacheLock(key = "CP_RANKING_BADGE_TASK", expireSecond = 20)
|
||||
public void sendWeekRankingReward() {
|
||||
try {
|
||||
// 1. 获取本周前三名CP对
|
||||
// 1. 获取本周前三名CP对(为空时不return,继续执行收回逻辑)
|
||||
List<WeekCpValueCount> thisWeekTop3 = weekCpValueCountService.listThisWeekTop(SysOriginPlatformEnum.ATYOU.name(), 3);
|
||||
if (CollectionUtils.isEmpty(thisWeekTop3)) {
|
||||
log.warn("CP排名徽章任务:本周前三名数据为空");
|
||||
return;
|
||||
log.warn("CP排名徽章任务:本周前三名数据为空,将收回所有旧徽章");
|
||||
}
|
||||
|
||||
// 2. 查询所有持有CP排名徽章的用户
|
||||
@ -63,9 +62,10 @@ public class CpRankingBadgeTask {
|
||||
|
||||
// 3. 构建"用户应得徽章集合":Map<userId, Set<badgeId>>
|
||||
// 一个用户可能在多对CP中,所以可以有多个徽章
|
||||
// 本周无数据时为空Map,后续收回逻辑会清空所有旧徽章
|
||||
Map<Long, Set<Long>> userShouldHaveBadgesMap = new HashMap<>();
|
||||
|
||||
for (int rank = 0; rank < thisWeekTop3.size() && rank < 3; rank++) {
|
||||
for (int rank = 0; !CollectionUtils.isEmpty(thisWeekTop3) && rank < thisWeekTop3.size() && rank < 3; rank++) {
|
||||
WeekCpValueCount rankingData = thisWeekTop3.get(rank);
|
||||
Long badgeId = CP_BADGE_IDS[rank];
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user