From 67a9010adf000fd6ba9d387c62a5c6a6e8ac24a6 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Fri, 19 Dec 2025 18:29:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=B8=E6=88=8F=E5=A2=9E=E5=8A=A0endTime=20?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/service/game/HotGameServiceImpl.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/HotGameServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/HotGameServiceImpl.java index eeb6a9cf..959c0079 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/HotGameServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/game/HotGameServiceImpl.java @@ -38,6 +38,7 @@ import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheSe import com.red.circle.other.infra.database.cache.service.other.GameListCacheService; 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.other.infra.utils.ZonedDateTimeUtils; import com.red.circle.other.inner.enums.config.EnumConfigKey; import com.red.circle.other.inner.model.dto.user.UserProfileDTO; import com.red.circle.tool.core.date.LocalDateTimeUtils; @@ -55,6 +56,11 @@ import com.red.circle.wallet.inner.model.dto.WalletReceiptResDTO; import com.red.circle.wallet.inner.model.enums.GoldOrigin; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.chrono.ChronoZonedDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; import java.util.Objects; @@ -89,6 +95,8 @@ public class HotGameServiceImpl implements HotGameService { private final RankingActivityService rankingActivityService; @Value("${red-circle.game-rank.gameid}") private String gameId; + @Value("${red-circle.game-rank.endTime}") + private String endTime; @Override public HotGameResponse getUserProfile(HotGameUserProfileQuery query) { @@ -249,12 +257,16 @@ public class HotGameServiceImpl implements HotGameService { private void incGameRankingTmpActivity(HotGameUserCoinUpdate request) { if (gameId != null && gameId.equals(request.getGameId()) && request.getType() == 2 && request.getCoin() > 0) { + ZonedDateTime gameEndTime = getGameEndTime(endTime); + if (gameEndTime == null || ZonedDateTimeAsiaRiyadhUtils.now().isAfter(gameEndTime)) { + return; + } RankingDataUpdateCmd receiverCmd = new RankingDataUpdateCmd(); receiverCmd.setUserId(DataTypeUtils.toLong(request.getUid())); receiverCmd.setUserSex(1); receiverCmd.setActivityType(RankingActivityType.FRUIT_PARTY.getCode()); - receiverCmd.setCycleType(RankingCycleType.WEEKLY.getCode()); - receiverCmd.setCycleKey(ZonedDateTimeAsiaRiyadhUtils.nowWeekMondayToInt().toString()); + receiverCmd.setCycleType(RankingCycleType.MONTHLY.getCode()); + receiverCmd.setCycleKey("202512"); receiverCmd.setDimension(RankingDimension.GAME_WIN.getCode()); receiverCmd.setIncrementQuantity(request.getCoin()); receiverCmd.setBizNo(request.getGameId()); @@ -263,6 +275,18 @@ public class HotGameServiceImpl implements HotGameService { } } + private ZonedDateTime getGameEndTime(String endTime) { + if (StringUtils.isBlank(endTime)) { + return null; + } + try { + LocalDateTime localDateTime = LocalDateTime.parse(endTime,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + return localDateTime.atZone(ZoneId.of("Asia/Riyadh")); + } catch (Exception e) { + } + return null; + } + private void incGameRankingRecord(HotGameUserCoinUpdate request, GameListConfig gameListConfig) { if (request.getType() != 2 || gameListConfig == null || request.getCoin() <= 0) { return;