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());
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());

View File

@ -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();
}
}

View File

@ -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);