跨年烟花活动-榜单结算

This commit is contained in:
2022-12-24 14:34:58 +08:00
parent 870b1914a1
commit e3fd255e5e
4 changed files with 45 additions and 10 deletions

View File

@@ -5808,11 +5808,11 @@ public class Constant {
public static final byte SEND_DAY_RANK = 1; public static final byte SEND_DAY_RANK = 1;
public static final byte SEND_WEEK_RANK = 2; public static final byte SEND_RANK = 2;
public static final byte RECV_DAY_RANK = 3; public static final byte RECV_DAY_RANK = 3;
public static final byte RECV_WEEK_RANK = 4; public static final byte RECV_RANK = 4;
} }

View File

@@ -1800,9 +1800,9 @@ public enum RedisKey {
room_free_gift_user_uid_gift, //房间免费礼物倒计时 room_free_gift_user_uid_gift, //房间免费礼物倒计时
new_year_firework_send_day_rank, new_year_firework_send_day_rank,
new_year_firework_send_week_rank, new_year_firework_send_rank,
new_year_firework_recv_day_rank, new_year_firework_recv_day_rank,
new_year_firework_recv_week_rank, new_year_firework_recv_rank,
new_year_firework_day_output_record; new_year_firework_day_output_record;

View File

@@ -39,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.time.Duration;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
@@ -328,12 +329,12 @@ public class ActNewYearFireworkService implements InitializingBean, ApplicationL
switch (type){ switch (type){
case Constant.NewYearFireworkRankType.SEND_DAY_RANK: case Constant.NewYearFireworkRankType.SEND_DAY_RANK:
return RedisKey.new_year_firework_send_day_rank.getKey(DateTimeUtil.getTodayStr()); return RedisKey.new_year_firework_send_day_rank.getKey(DateTimeUtil.getTodayStr());
case Constant.NewYearFireworkRankType.SEND_WEEK_RANK: case Constant.NewYearFireworkRankType.SEND_RANK:
return RedisKey.new_year_firework_send_week_rank.getKey(DateTimeUtil.getMondayStr()); return RedisKey.new_year_firework_send_rank.getKey(DateTimeUtil.getMondayStr());
case Constant.NewYearFireworkRankType.RECV_DAY_RANK: case Constant.NewYearFireworkRankType.RECV_DAY_RANK:
return RedisKey.new_year_firework_recv_day_rank.getKey(DateTimeUtil.getTodayStr()); return RedisKey.new_year_firework_recv_day_rank.getKey(DateTimeUtil.getTodayStr());
case Constant.NewYearFireworkRankType.RECV_WEEK_RANK: case Constant.NewYearFireworkRankType.RECV_RANK:
return RedisKey.new_year_firework_recv_week_rank.getKey(DateTimeUtil.getMondayStr()); return RedisKey.new_year_firework_recv_rank.getKey(DateTimeUtil.getMondayStr());
default: default:
return null; return null;
} }
@@ -346,7 +347,7 @@ public class ActNewYearFireworkService implements InitializingBean, ApplicationL
dayRank.addScore(sendUid, goldNumD); dayRank.addScore(sendUid, goldNumD);
String week = DateTimeUtil.getMondayDateStr(sendGiftTime, DateTimeUtil.DEFAULT_DATE_PATTERN); String week = DateTimeUtil.getMondayDateStr(sendGiftTime, DateTimeUtil.DEFAULT_DATE_PATTERN);
String weekRankKey = RedisKey.new_year_firework_send_week_rank.getKey(week); String weekRankKey = RedisKey.new_year_firework_send_rank.getKey(week);
RScoredSortedSet<Long> weekRank = redissonClient.getScoredSortedSet(weekRankKey); RScoredSortedSet<Long> weekRank = redissonClient.getScoredSortedSet(weekRankKey);
weekRank.addScore(sendUid, goldNumD); weekRank.addScore(sendUid, goldNumD);
} }
@@ -358,11 +359,22 @@ public class ActNewYearFireworkService implements InitializingBean, ApplicationL
dayRank.addScore(recvUid, goldNumD); dayRank.addScore(recvUid, goldNumD);
String week = DateTimeUtil.getMondayDateStr(sendGiftTime, DateTimeUtil.DEFAULT_DATE_PATTERN); String week = DateTimeUtil.getMondayDateStr(sendGiftTime, DateTimeUtil.DEFAULT_DATE_PATTERN);
String weekRankKey = RedisKey.new_year_firework_recv_week_rank.getKey(week); String weekRankKey = RedisKey.new_year_firework_recv_rank.getKey(week);
RScoredSortedSet<Long> weekRank = redissonClient.getScoredSortedSet(weekRankKey); RScoredSortedSet<Long> weekRank = redissonClient.getScoredSortedSet(weekRankKey);
weekRank.addScore(recvUid, goldNumD); weekRank.addScore(recvUid, goldNumD);
} }
public void settlement(LocalDateTime now) {
NewYearFireworkActConfigDTO config = getConfig();
if (config.inActTimeRange(now)){
//todo 每日榜
dayOutputRecord.clear();
} else if (null != config.getEndTime() && Duration.between(now, config.getEndTime()).toDays() <= 1L){
//todo 总榜
dayOutputRecord.clear();
}
}
public void log(Long uid, String event) { public void log(Long uid, String event) {
Date now = new Date(); Date now = new Date();
NewYearFireworkEventLog log = new NewYearFireworkEventLog(); NewYearFireworkEventLog log = new NewYearFireworkEventLog();

View File

@@ -0,0 +1,23 @@
package com.accompany.scheduler.task.activity;
import com.accompany.business.service.activities.ActNewYearFireworkService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Date;
@Component
public class ActNewYearFireworkTask {
@Autowired
private ActNewYearFireworkService service;
@Scheduled(cron = "0 0 0 * * ?")
public void settlement(){
LocalDateTime now = LocalDateTime.now();
service.settlement(now);
}
}