抽奖接口新增锁

This commit is contained in:
tianfeng 2025-10-23 14:59:47 +08:00
parent 713a877df5
commit 1a52d8b482

View File

@ -18,6 +18,8 @@ import com.red.circle.other.app.dto.clientobject.activity.*;
import com.red.circle.other.app.dto.cmd.activity.*;
import java.util.List;
import com.red.circle.other.app.util.DistributedLockUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -43,6 +45,8 @@ public class LotteryActivityRestServiceImpl implements LotteryActivityRestServic
private final LotteryWithdrawApplyExe lotteryWithdrawApplyExe;
private final LotteryWithdrawQryExe lotteryWithdrawQryExe;
private final LotteryWithdrawAmountQryExe lotteryWithdrawAmountQryExe;
private final DistributedLockUtil distributedLockUtil;
private static final String LOCK_KEY_PREFIX = "activity:lottery:draw:lock";
@Override
public List<LotteryActivityCO> listValidActivities(AppExtCommand cmd) {
@ -56,12 +60,16 @@ public class LotteryActivityRestServiceImpl implements LotteryActivityRestServic
@Override
public LotteryDrawResultCO draw(LotteryDrawCmd cmd) {
return lotteryDrawExe.execute(cmd);
return distributedLockUtil.executeWithLock(
DistributedLockUtil.buildLockKey(LOCK_KEY_PREFIX, cmd.requiredReqUserId()),
() -> lotteryDrawExe.execute(cmd));
}
@Override
public LotteryMultiDrawResultCO multiDraw(LotteryMultiDrawCmd cmd) {
return lotteryMultiDrawExe.execute(cmd);
return distributedLockUtil.executeWithLock(
DistributedLockUtil.buildLockKey(LOCK_KEY_PREFIX, cmd.requiredReqUserId()),
() -> lotteryMultiDrawExe.execute(cmd));
}
@Override