抽奖接口新增锁
This commit is contained in:
parent
713a877df5
commit
1a52d8b482
@ -18,6 +18,8 @@ import com.red.circle.other.app.dto.clientobject.activity.*;
|
|||||||
import com.red.circle.other.app.dto.cmd.activity.*;
|
import com.red.circle.other.app.dto.cmd.activity.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.red.circle.other.app.util.DistributedLockUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -43,6 +45,8 @@ public class LotteryActivityRestServiceImpl implements LotteryActivityRestServic
|
|||||||
private final LotteryWithdrawApplyExe lotteryWithdrawApplyExe;
|
private final LotteryWithdrawApplyExe lotteryWithdrawApplyExe;
|
||||||
private final LotteryWithdrawQryExe lotteryWithdrawQryExe;
|
private final LotteryWithdrawQryExe lotteryWithdrawQryExe;
|
||||||
private final LotteryWithdrawAmountQryExe lotteryWithdrawAmountQryExe;
|
private final LotteryWithdrawAmountQryExe lotteryWithdrawAmountQryExe;
|
||||||
|
private final DistributedLockUtil distributedLockUtil;
|
||||||
|
private static final String LOCK_KEY_PREFIX = "activity:lottery:draw:lock";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<LotteryActivityCO> listValidActivities(AppExtCommand cmd) {
|
public List<LotteryActivityCO> listValidActivities(AppExtCommand cmd) {
|
||||||
@ -56,12 +60,16 @@ public class LotteryActivityRestServiceImpl implements LotteryActivityRestServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LotteryDrawResultCO draw(LotteryDrawCmd cmd) {
|
public LotteryDrawResultCO draw(LotteryDrawCmd cmd) {
|
||||||
return lotteryDrawExe.execute(cmd);
|
return distributedLockUtil.executeWithLock(
|
||||||
|
DistributedLockUtil.buildLockKey(LOCK_KEY_PREFIX, cmd.requiredReqUserId()),
|
||||||
|
() -> lotteryDrawExe.execute(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LotteryMultiDrawResultCO multiDraw(LotteryMultiDrawCmd cmd) {
|
public LotteryMultiDrawResultCO multiDraw(LotteryMultiDrawCmd cmd) {
|
||||||
return lotteryMultiDrawExe.execute(cmd);
|
return distributedLockUtil.executeWithLock(
|
||||||
|
DistributedLockUtil.buildLockKey(LOCK_KEY_PREFIX, cmd.requiredReqUserId()),
|
||||||
|
() -> lotteryMultiDrawExe.execute(cmd));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user