From f1b5d72257240fc7445bd873a5010d9774c15aa2 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Fri, 24 Oct 2025 18:02:38 +0800 Subject: [PATCH] =?UTF-8?q?spins=20=20=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 列表修复 2. 送礼物数量修复 3. 上麦时长修复 --- .../other/app/command/SpinsTaskQueryExe.java | 2 +- .../gift/strategy/GiftCountStrategy.java | 77 +++++++++---------- .../other/app/listener/task/TaskListener.java | 64 +++++++-------- 3 files changed, 64 insertions(+), 79 deletions(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/SpinsTaskQueryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/SpinsTaskQueryExe.java index 28cdb8c0..825c9486 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/SpinsTaskQueryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/SpinsTaskQueryExe.java @@ -98,7 +98,7 @@ public class SpinsTaskQueryExe { taskCO.setRewardValue(config.getRewardValue()); if (progress != null) { - taskCO.setCurrentValue(progress.getCurrentValue()); + taskCO.setCurrentValue(Math.min(progress.getCurrentValue(), config.getTargetValue())); taskCO.setTaskStatus(progress.getTaskStatus()); taskCO.setProgressRate(progress.getProgressRate()); taskCO.setCompleteTime(progress.getCompleteTime()); diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java index 12d3c025..55cf0b72 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/gift/strategy/GiftCountStrategy.java @@ -743,52 +743,45 @@ public class GiftCountStrategy implements GiftStrategy { private void handleSpinsGiftTask(GiftGiveRunningWater runningWater) { try { Long userId = runningWater.getUserId(); - + Integer quantity = runningWater.getGiftValue().getQuantity(); + // 增加用户每日送礼物数量 - int giftCount = incrementDailyGiftCount(userId); + int giftCount = incrementDailyGiftCount(userId, quantity); log.info("Spins送礼物任务, userId={}, giftCount={}", userId, giftCount); // 处理送礁1个礼物任务 - if (giftCount >= 1) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_SEND_GIFT_1") - .setProgressValue(giftCount) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_SEND_GIFT_1") + .setProgressValue(giftCount) + ); + // 处理送出3个礼物任务 - if (giftCount >= 3) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_SEND_GIFT_3") - .setProgressValue(giftCount) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_SEND_GIFT_3") + .setProgressValue(giftCount) + ); + // 处理送出10个礼物任务 - if (giftCount >= 10) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_SEND_GIFT_10") - .setProgressValue(giftCount) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_SEND_GIFT_10") + .setProgressValue(giftCount) + ); + // 处理送出15个礼物任务 - if (giftCount >= 15) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_SEND_GIFT_15") - .setProgressValue(giftCount) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_SEND_GIFT_15") + .setProgressValue(giftCount) + ); + log.info("Spins送礼物任务处理成功, userId={}, giftCount={}", userId, giftCount); } catch (Exception e) { log.error("处理Spins送礼物任务失败", e); @@ -800,17 +793,17 @@ public class GiftCountStrategy implements GiftStrategy { * @param userId 用户ID * @return 当前送礼物数量 */ - private int incrementDailyGiftCount(Long userId) { + private int incrementDailyGiftCount(Long userId, Integer quantity) { String redisKey = "spins:daily:gift:count:" + userId; String countStr = redisService.getString(redisKey); if (StringUtils.isBlank(countStr)) { // 计算到凌晨的过期时间(秒) long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight(); - redisService.setString(redisKey, "1", expireSeconds, TimeUnit.SECONDS); - return 1; + redisService.setString(redisKey, quantity, expireSeconds, TimeUnit.SECONDS); + return quantity; } else { - Long newCount = redisService.increment(redisKey, 1); + Long newCount = redisService.increment(redisKey, quantity); return newCount.intValue(); } } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java index d9a6bd31..65bf4949 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java @@ -163,45 +163,37 @@ public class TaskListener implements MessageListener { int micTime = Integer.parseInt(micTimeStr); // 处理上麦15分钟任务 - if (micTime >= 15) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_MIC_15_MIN") - .setProgressValue(micTime) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_MIC_15_MIN") + .setProgressValue(micTime) + ); + // 处理上麦30分钟任务 - if (micTime >= 30) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_MIC_30_MIN") - .setProgressValue(micTime) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_MIC_30_MIN") + .setProgressValue(micTime) + ); + // 处理上麦1小时任务 - if (micTime >= 60) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_MIC_1_HOUR") - .setProgressValue(micTime) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_MIC_1_HOUR") + .setProgressValue(micTime) + ); + // 处理上麦2小时任务 - if (micTime >= 120) { - spinsUserTaskProgressService.updateTaskProgress( - new SpinsTaskProgressUpdateCmd() - .setUserId(userId) - .setTaskCode("SPINS_MIC_2_HOUR") - .setProgressValue(micTime) - ); - } - + spinsUserTaskProgressService.updateTaskProgress( + new SpinsTaskProgressUpdateCmd() + .setUserId(userId) + .setTaskCode("SPINS_MIC_2_HOUR") + .setProgressValue(micTime) + ); + log.info("Spins上麦任务进度更新成功, userId={}, micTime={}", userId, micTime); } catch (Exception e) { log.error("处理Spins上麦任务进度失败, userId={}, micTimeStr={}", userId, micTimeStr, e);