diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/task/RoomDailyTaskServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/task/RoomDailyTaskServiceImpl.java index b211eb95..9be099ce 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/task/RoomDailyTaskServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/task/RoomDailyTaskServiceImpl.java @@ -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