spins 修复

1. 列表修复
2. 送礼物数量修复
3. 上麦时长修复
This commit is contained in:
tianfeng 2025-10-24 18:02:38 +08:00
parent 1cb37230ea
commit f1b5d72257
3 changed files with 64 additions and 79 deletions

View File

@ -98,7 +98,7 @@ public class SpinsTaskQueryExe {
taskCO.setRewardValue(config.getRewardValue()); taskCO.setRewardValue(config.getRewardValue());
if (progress != null) { if (progress != null) {
taskCO.setCurrentValue(progress.getCurrentValue()); taskCO.setCurrentValue(Math.min(progress.getCurrentValue(), config.getTargetValue()));
taskCO.setTaskStatus(progress.getTaskStatus()); taskCO.setTaskStatus(progress.getTaskStatus());
taskCO.setProgressRate(progress.getProgressRate()); taskCO.setProgressRate(progress.getProgressRate());
taskCO.setCompleteTime(progress.getCompleteTime()); taskCO.setCompleteTime(progress.getCompleteTime());

View File

@ -743,51 +743,44 @@ public class GiftCountStrategy implements GiftStrategy {
private void handleSpinsGiftTask(GiftGiveRunningWater runningWater) { private void handleSpinsGiftTask(GiftGiveRunningWater runningWater) {
try { try {
Long userId = runningWater.getUserId(); 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); log.info("Spins送礼物任务, userId={}, giftCount={}", userId, giftCount);
// 处理送礁1个礼物任务 // 处理送礁1个礼物任务
if (giftCount >= 1) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_SEND_GIFT_1")
.setTaskCode("SPINS_SEND_GIFT_1") .setProgressValue(giftCount)
.setProgressValue(giftCount) );
);
}
// 处理送出3个礼物任务 // 处理送出3个礼物任务
if (giftCount >= 3) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_SEND_GIFT_3")
.setTaskCode("SPINS_SEND_GIFT_3") .setProgressValue(giftCount)
.setProgressValue(giftCount) );
);
}
// 处理送出10个礼物任务 // 处理送出10个礼物任务
if (giftCount >= 10) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_SEND_GIFT_10")
.setTaskCode("SPINS_SEND_GIFT_10") .setProgressValue(giftCount)
.setProgressValue(giftCount) );
);
}
// 处理送出15个礼物任务 // 处理送出15个礼物任务
if (giftCount >= 15) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_SEND_GIFT_15")
.setTaskCode("SPINS_SEND_GIFT_15") .setProgressValue(giftCount)
.setProgressValue(giftCount) );
);
}
log.info("Spins送礼物任务处理成功, userId={}, giftCount={}", userId, giftCount); log.info("Spins送礼物任务处理成功, userId={}, giftCount={}", userId, giftCount);
} catch (Exception e) { } catch (Exception e) {
@ -800,17 +793,17 @@ public class GiftCountStrategy implements GiftStrategy {
* @param userId 用户ID * @param userId 用户ID
* @return 当前送礼物数量 * @return 当前送礼物数量
*/ */
private int incrementDailyGiftCount(Long userId) { private int incrementDailyGiftCount(Long userId, Integer quantity) {
String redisKey = "spins:daily:gift:count:" + userId; String redisKey = "spins:daily:gift:count:" + userId;
String countStr = redisService.getString(redisKey); String countStr = redisService.getString(redisKey);
if (StringUtils.isBlank(countStr)) { if (StringUtils.isBlank(countStr)) {
// 计算到凌晨的过期时间 // 计算到凌晨的过期时间
long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight(); long expireSeconds = DateTimeAsiaRiyadhUtils.getSecondsUntilMidnight();
redisService.setString(redisKey, "1", expireSeconds, TimeUnit.SECONDS); redisService.setString(redisKey, quantity, expireSeconds, TimeUnit.SECONDS);
return 1; return quantity;
} else { } else {
Long newCount = redisService.increment(redisKey, 1); Long newCount = redisService.increment(redisKey, quantity);
return newCount.intValue(); return newCount.intValue();
} }
} }

View File

@ -163,44 +163,36 @@ public class TaskListener implements MessageListener {
int micTime = Integer.parseInt(micTimeStr); int micTime = Integer.parseInt(micTimeStr);
// 处理上麦15分钟任务 // 处理上麦15分钟任务
if (micTime >= 15) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_MIC_15_MIN")
.setTaskCode("SPINS_MIC_15_MIN") .setProgressValue(micTime)
.setProgressValue(micTime) );
);
}
// 处理上麦30分钟任务 // 处理上麦30分钟任务
if (micTime >= 30) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_MIC_30_MIN")
.setTaskCode("SPINS_MIC_30_MIN") .setProgressValue(micTime)
.setProgressValue(micTime) );
);
}
// 处理上麦1小时任务 // 处理上麦1小时任务
if (micTime >= 60) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_MIC_1_HOUR")
.setTaskCode("SPINS_MIC_1_HOUR") .setProgressValue(micTime)
.setProgressValue(micTime) );
);
}
// 处理上麦2小时任务 // 处理上麦2小时任务
if (micTime >= 120) { spinsUserTaskProgressService.updateTaskProgress(
spinsUserTaskProgressService.updateTaskProgress( new SpinsTaskProgressUpdateCmd()
new SpinsTaskProgressUpdateCmd() .setUserId(userId)
.setUserId(userId) .setTaskCode("SPINS_MIC_2_HOUR")
.setTaskCode("SPINS_MIC_2_HOUR") .setProgressValue(micTime)
.setProgressValue(micTime) );
);
}
log.info("Spins上麦任务进度更新成功, userId={}, micTime={}", userId, micTime); log.info("Spins上麦任务进度更新成功, userId={}, micTime={}", userId, micTime);
} catch (Exception e) { } catch (Exception e) {