From 91b876367e8dd16073f945c09c259db6d4cdf739 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 13 Nov 2025 21:52:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=86=E5=8F=96=E4=B8=8A=E7=BA=BF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rocket/RocketRewardClaimCmdExe.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/rocket/RocketRewardClaimCmdExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/rocket/RocketRewardClaimCmdExe.java index c687c1bd..679e0abd 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/rocket/RocketRewardClaimCmdExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/rocket/RocketRewardClaimCmdExe.java @@ -154,21 +154,24 @@ public class RocketRewardClaimCmdExe { // 6. 随机选择一个奖励 PropsActivityRewardConfigInfoDTO selectedReward = rewardList.get(random.nextInt(rewardList.size())); - - // 7. 发放奖励(先发放) - String walletBizNo = RocketRewardLog.buildBizNo(roomId.toString(), userId); - grantReward(userId, selectedReward, walletBizNo); - // 8. 保存领取记录 - saveRewardLog(roomId, userId, latestHistory, selectedReward, walletBizNo); - - // 9. 递增领取人数(发放成功后再递增) + // 7. 递增领取人数(发放成功后再递增) try { - rocketHistoryGateway.incrementClaimCount(historyId); + boolean success = rocketHistoryGateway.tryIncrementClaimCount(historyId, rewardQuantity); + if (!success) { + return null; + } } catch (Exception e) { log.error("递增领取人数失败: historyId={}", historyId, e); } + // 8. 发放奖励(先发放) + String walletBizNo = RocketRewardLog.buildBizNo(roomId.toString(), userId); + grantReward(userId, selectedReward, walletBizNo); + + // 9. 保存领取记录 + saveRewardLog(roomId, userId, latestHistory, selectedReward, walletBizNo); + // 10. 构建返回结果 RocketRewardCO rewardCO = new RocketRewardCO(); rewardCO.setRewardType(selectedReward.getType());