新增 每周游戏排行榜定时任务处理
This commit is contained in:
parent
9ef94ed5fe
commit
654f297684
@ -0,0 +1,68 @@
|
|||||||
|
package com.red.circle.other.app.scheduler;
|
||||||
|
|
||||||
|
import com.red.circle.component.redis.annotation.TaskCacheLock;
|
||||||
|
import com.red.circle.other.domain.game.GameRankingIncrementCmd;
|
||||||
|
import com.red.circle.other.domain.game.GameRankingPeriodType;
|
||||||
|
import com.red.circle.other.domain.gateway.game.GameRankingGateway;
|
||||||
|
import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;
|
||||||
|
import com.red.circle.other.infra.database.rds.service.sys.GameListConfigService;
|
||||||
|
import com.red.circle.tool.core.date.ZonedDateTimeAsiaRiyadhUtils;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每周初始化游戏排行榜记录
|
||||||
|
*
|
||||||
|
* @author tf
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class GameRankingInitTask {
|
||||||
|
|
||||||
|
private final GameListConfigService gameListConfigService;
|
||||||
|
private final GameRankingGateway gameRankingGateway;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每周一 0点00分02秒执行.
|
||||||
|
*/
|
||||||
|
@Scheduled(cron = "2 0 0 ? * MON", zone = "Asia/Riyadh")
|
||||||
|
@TaskCacheLock(key = "GAME_RANKING_INIT_TASK", expireSecond = 86400)
|
||||||
|
public void initGameRanking() {
|
||||||
|
log.warn("========== 游戏排行榜初始化任务开始 ==========");
|
||||||
|
try {
|
||||||
|
List<GameListConfig> configs = gameListConfigService.query()
|
||||||
|
.eq(GameListConfig::getShowcase, Boolean.TRUE)
|
||||||
|
.list();
|
||||||
|
if (configs.isEmpty()) {
|
||||||
|
log.warn("无上架游戏,跳过初始化");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String weekKey = ZonedDateTimeAsiaRiyadhUtils.nowWeekMondayToInt().toString();
|
||||||
|
for (GameListConfig config : configs) {
|
||||||
|
gameRankingGateway.incrementPrizeAmount(
|
||||||
|
GameRankingIncrementCmd.builder()
|
||||||
|
.sysOrigin(config.getSysOrigin())
|
||||||
|
.gameOrigin(config.getGameOrigin())
|
||||||
|
.gameId(config.getId().toString())
|
||||||
|
.gameName(config.getName())
|
||||||
|
.gameCover(config.getCover())
|
||||||
|
.gameUrl(config.getGameCode())
|
||||||
|
.gameCreateTime(config.getCreateTime())
|
||||||
|
.showcase(config.getShowcase())
|
||||||
|
.periodType(GameRankingPeriodType.WEEK.getCode())
|
||||||
|
.periodKey(weekKey)
|
||||||
|
.amount(0L)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
log.warn("========== 游戏排行榜初始化任务完成,共初始化 {} 个游戏 ==========", configs.size());
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("========== 游戏排行榜初始化任务异常 ==========", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user