领取房间每日任务加锁

This commit is contained in:
tianfeng 2026-03-05 15:35:09 +08:00
parent 880061a6e6
commit 0958146a18

View File

@ -7,6 +7,7 @@ import com.red.circle.other.app.dto.clientobject.task.RoomDailyTaskClaimCO;
import com.red.circle.other.app.dto.clientobject.task.RoomDailyTaskClaimableCountCO;
import com.red.circle.other.app.dto.clientobject.task.RoomDailyTaskListCO;
import com.red.circle.other.app.dto.cmd.task.RoomDailyTaskClaimCmd;
import com.red.circle.other.app.util.DistributedLockUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -17,6 +18,7 @@ public class RoomDailyTaskServiceImpl implements RoomDailyTaskService {
private final RoomDailyTaskQueryExe queryExe;
private final RoomDailyTaskClaimExe claimExe;
private final RoomDailyTaskClaimableCountQryExe claimableCountQryExe;
private final DistributedLockUtil distributedLockUtil;
@Override
public RoomDailyTaskListCO getTaskList(Long userId, Integer taskCategory) {
@ -25,7 +27,9 @@ public class RoomDailyTaskServiceImpl implements RoomDailyTaskService {
@Override
public RoomDailyTaskClaimCO claimReward(RoomDailyTaskClaimCmd cmd) {
return claimExe.execute(cmd);
String key = "roomDailyTaskClaim:" + cmd.getTaskCode() + ":" + cmd.getReqUserId();
distributedLockUtil.executeWithLock(key, () -> claimExe.execute(cmd));
return new RoomDailyTaskClaimCO();
}
@Override