From 530cd0567ebc49c2037131def4d532c3c752b34f Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Fri, 26 Dec 2025 10:31:33 +0800 Subject: [PATCH] =?UTF-8?q?NOBLE=5FVIP=E5=86=97=E4=BD=99=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../circle/other/app/scheduler/DailyTask.java | 208 +----------------- 1 file changed, 2 insertions(+), 206 deletions(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/scheduler/DailyTask.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/scheduler/DailyTask.java index c9d4949c..a5690d02 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/scheduler/DailyTask.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/scheduler/DailyTask.java @@ -42,6 +42,7 @@ import com.red.circle.wallet.inner.model.cmd.GoldReceiptCmd; import com.red.circle.wallet.inner.model.dto.WalletReceiptResDTO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -55,19 +56,14 @@ import static com.red.circle.common.business.core.enums.SysOriginPlatformEnum.LI @Slf4j @Component @AllArgsConstructor +@ConditionalOnProperty(name = "scheduler.noble-daily-reward", havingValue = "true", matchIfMissing = true) public class DailyTask { - private final PropsActivitySendCommon sendPropsManager; - private final RedisService redisService; - private final PropsActivityRuleConfigService propsActivityRuleConfigService; - private final RoomFanVotesActivityCountService roomFanVotesActivityCountService; private final FamilyDailyTaskTriggerRecordService familyDailyTaskTriggerRecordService; private final PropsStoreGateway propsStoreGateway; private final RunningWaterUserPropsService runningWaterUserPropsService; - private final RunningWaterUserPropsDAO runningWaterUserPropsDAO; private final PropsBackpackService propsBackpackService; private final WalletGoldClient walletGoldClient; - private final PropsPurchasingCmdExe propsPurchasingCmdExe; /** * 每日处理数据. @@ -82,139 +78,6 @@ public class DailyTask { log.info("exec daily_process_task end with {}",System.currentTimeMillis()-startTime); } - /** - * 每日19:31处理 [印度,孟加拉,巴基斯坦] 区域粉丝人气票活动发奖. - */ - @Scheduled(cron = "0 31 19 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_IN_TASK", expireSecond = 10000) - public void roomFanVotesActivityInTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_in_task start"); - log.warn("Start - 每日19:31处理 [印度,孟加拉,巴基斯坦] 区域粉丝人气票活动发奖"); - // 重置倒计时 - cacheCountDown(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_IN_COUNT_DOWN); - - SysOriginPlatformEnum.getVoiceSystems().forEach(sysOrigin -> { - sendFanVotesReward(sysOrigin.name(), "IN"); - sendFanVotesReward(sysOrigin.name(), "PK"); - sendFanVotesReward(sysOrigin.name(), "BD"); - }); - - log.warn("End - 每日19:31处理 [印度,孟加拉,巴基斯坦] 区域粉丝人气票活动发奖"); - log.info("exec room_fan_votes_activity_in_task end with {}",System.currentTimeMillis()-startTime); - } - - /** - * 每日18:30[印度,孟加拉,巴基斯坦] 重置倒计时,重置榜单. - */ - @Scheduled(cron = "0 30 18 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_IN_START_TASK", expireSecond = 10000) - public void roomFanVotesActivityInStartTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_in_start_task start"); - // 重置倒计时 60分钟 - long countDown = Duration.between(ZonedDateTimeUtils.nowAsiaRiyadh(), - ZonedDateTimeUtils.nowAsiaRiyadh().plusHours(1)).toMillis() - 1000; - redisService.setString(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_IN_COUNT_DOWN.name(), - countDown, countDown, TimeUnit.MILLISECONDS); - - List codes = List.of("IN", "PK", "BD"); - - // 将昨天数据修改历史 - roomFanVotesActivityCountService.upHistory(codes); - - // 删除昨天之前的数据 - roomFanVotesActivityCountService.del(codes); - log.info("exec room_fan_votes_activity_in_start_task end with {}",System.currentTimeMillis()-startTime); - } - - /** - * 每日16:31处理 [印尼] 区域粉丝人气票活动发奖. - */ - @Scheduled(cron = "0 31 16 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_ID_TASK", expireSecond = 10000) - public void roomFanVotesActivityIdTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_id_task start"); - log.warn("Start - 每日16:31处理 [印尼] 区域粉丝人气票活动发奖"); - - // 重置倒计时 - cacheCountDown(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_ID_COUNT_DOWN); - SysOriginPlatformEnum.getVoiceSystems() - .forEach(sysOrigin -> sendFanVotesReward(sysOrigin.name(), "ID")); - - log.warn("End - 每日16:31处理 [印尼] 区域粉丝人气票活动发奖"); - log.info("exec room_fan_votes_activity_id_task end with {}",System.currentTimeMillis()-startTime); - } - - /** - * 每日15:30[印尼] 重置倒计时,重置榜单. - */ - @Scheduled(cron = "0 30 15 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_ID_START_TASK", expireSecond = 10000) - public void roomFanVotesActivityIdStartTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_id_start_task start"); - // 重置倒计时 60分钟 - long countDown = Duration.between(ZonedDateTimeUtils.nowAsiaRiyadh(), - ZonedDateTimeUtils.nowAsiaRiyadh().plusHours(1)).toMillis() - 1000; - redisService.setString(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_ID_COUNT_DOWN.name(), - countDown, countDown, TimeUnit.MILLISECONDS); - - List codes = List.of("ID"); - - // 将昨天数据修改历史 - roomFanVotesActivityCountService.upHistory(codes); - - // 删除昨天之前的数据 - roomFanVotesActivityCountService.del(codes); - log.info("exec room_fan_votes_activity_id_start_task end with {}",System.currentTimeMillis()-startTime); - } - - /** - * 每日22:31处理 [阿拉伯] 区域粉丝人气票活动发奖. - */ - @Scheduled(cron = "0 31 22 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_AR_TASK", expireSecond = 10000) - public void roomFanVotesActivityArTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_ar_task start"); - log.warn("Start - 每日22:31处理 [阿拉伯] 区域粉丝人气票活动发奖"); - - // 重置倒计时 - cacheCountDown(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_AR_COUNT_DOWN); - - SysOriginPlatformEnum.getVoiceSystems() - .forEach(sysOrigin -> sendFanVotesReward(sysOrigin.name(), "AR")); - - log.warn("End - 每日22:31处理 [阿拉伯] 区域粉丝人气票活动发奖"); - log.info("exec room_fan_votes_activity_ar_task end with {}",System.currentTimeMillis()-startTime); - } - - /** - * 每日21:30[阿拉伯] 重置倒计时,重置榜单. - */ - @Scheduled(cron = "0 30 21 1/1 * ?", zone = "Asia/Riyadh") - @TaskCacheLock(key = "ROOM_FAN_VOTES_ACTIVITY_AR_START_TASK", expireSecond = 10000) - public void roomFanVotesActivityArStartTask() { - long startTime = System.currentTimeMillis(); - log.info("exec room_fan_votes_activity_ar_start_task start"); - // 重置倒计时 60分钟 - long countDown = Duration.between(ZonedDateTimeUtils.nowAsiaRiyadh(), - ZonedDateTimeUtils.nowAsiaRiyadh().plusHours(1)).toMillis() - 1000; - redisService.setString(CacheKeysEnum.ROOM_FAN_VOTES_ACTIVITY_AR_COUNT_DOWN.name(), - countDown, countDown, TimeUnit.MILLISECONDS); - - List codes = List.of("AR"); - - // 将昨天数据修改历史 - roomFanVotesActivityCountService.upHistory(codes); - - // 删除昨天之前的数据 - roomFanVotesActivityCountService.del(codes); - log.info("exec room_fan_votes_activity_ar_start_task end with {}",System.currentTimeMillis()-startTime); - } - /** * 贵族每日金币奖励发放 - 沙特时间每日0点执行. */ @@ -446,71 +309,4 @@ public class DailyTask { return hasValidRecord ? currentValidEndTime : null; } - private void sendFanVotesReward(String code, String sysOrigin) { - - List votesCounts = roomFanVotesActivityCountService - .listCurrent(code, sysOrigin, 10); - if (CollectionUtils.isEmpty(votesCounts)) { - log.warn("[execute] {} 区域粉丝人气票活动发奖,没有房间获奖", code); - return; - } - - List resources = listRuleConfigs(sysOrigin); - if (CollectionUtils.isEmpty(resources) || resources.size() < 3) { - log.warn("[execute] {} 区域粉丝人气票活动发奖,资源数据不对", code); - return; - } - - log.warn("[execute] {} 区域粉丝人气票活动发奖,获奖数据:{}", code, votesCounts); - - try { - for (int index = 0; index < votesCounts.size(); index++) { - - if (index > 2) { - break; - } - - RoomFanVotesActivityCount count = votesCounts.get(index); - - if (Objects.equals(count.getAlreadySent(), Boolean.TRUE)) { - log.warn("[execute] {} 区域粉丝人气票活动发奖,已发过奖,无需重复再发:{}", code, count); - continue; - } - - PropsActivityRuleConfig resource = resources.get(index); - // 发送奖励 - sendPropsManager.sendActivityGroup(SendRewardGroup.builder() - .trackId(resource.getId()) - .sysOrigin(SysOriginPlatformEnum.valueOf(sysOrigin)) - .acceptUserId(count.getUserId()) - .resourceGroupId(resource.getResourceGroupId()) - .origin(SendPropsOrigin.ROOM_FAN_VOTES_ACTIVITY) - .build()); - } - } catch (Exception ex) { - log.warn("[execute] {} 区域粉丝人气票活动发奖: {}", code, ex.getMessage()); - } - - // 修改区域为已经领取 - roomFanVotesActivityCountService.upAlreadySent(code); - - } - - private List listRuleConfigs(String sysOrigin) { - - return propsActivityRuleConfigService.listPlatformByActivityType( - sysOrigin, - PropsActivityTypeEnum.ROOM_FAN_VOTES_ACTIVITY); - } - - /** - * 缓存区域粉丝人气票活动倒计时. - */ - private void cacheCountDown(CacheKeysEnum keysEnum) { - - long countDown = Duration.between(ZonedDateTimeUtils.nowAsiaRiyadh(), - ZonedDateTimeUtils.nowAsiaRiyadh().plusDays(1)).toMillis() - 3660000; - redisService.setString(keysEnum.name(), countDown, countDown, TimeUnit.MILLISECONDS); - - } }