diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java index cb2b55e4..0f6f36d8 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/listener/task/TaskListener.java @@ -1,5 +1,6 @@ package com.red.circle.other.app.listener.task; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.google.common.base.Throwables; import com.red.circle.component.mq.MessageEventProcess; import com.red.circle.component.mq.MessageEventProcessDescribe; @@ -18,7 +19,10 @@ import com.red.circle.other.app.service.task.TaskService; import com.red.circle.other.app.util.DateTimeAsiaRiyadhUtils; import com.red.circle.other.domain.admintask.AdminTaskType; import com.red.circle.other.domain.gateway.user.ability.InviteUserGateway; +import com.red.circle.other.infra.database.rds.dao.task.UserTaskProgressDAO; +import com.red.circle.other.infra.database.rds.entity.task.UserTaskProgress; import com.red.circle.other.infra.database.rds.service.user.user.RelationshipFriendService; +import com.red.circle.tool.core.date.TimestampUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -27,6 +31,7 @@ import java.math.BigDecimal; import java.time.Duration; import java.time.ZoneId; import java.time.ZonedDateTime; +import java.util.List; import java.util.concurrent.TimeUnit; @Slf4j @@ -40,6 +45,7 @@ public class TaskListener implements MessageListener { private final InviteUserGateway inviteUserGateway; private final SpinsUserTaskProgressService spinsUserTaskProgressService; private final AdminTaskService adminTaskService; + private final UserTaskProgressDAO userTaskProgressDAO; @Override public Action consume(ConsumerMessage message) { @@ -331,6 +337,21 @@ public class TaskListener implements MessageListener { eventBody.setTargetValue(1); eventBody.setCompleteValue(1); updateTaskStatus(eventBody); + + // 处理成已领取 + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .eq(UserTaskProgress::getUserId, eventBody.getUserId()) + .eq(UserTaskProgress::getTaskStatus, 1) + .eq(UserTaskProgress::getTaskId, eventBody.getTaskId()) + .eq(UserTaskProgress::getIsRewardCollected, 0); + List userTaskProgresses = userTaskProgressDAO.selectList(eq); + if (userTaskProgresses == null || userTaskProgresses.isEmpty()) { + return; + } + UserTaskProgress userTaskProgress = userTaskProgresses.get(0); + userTaskProgress.setIsRewardCollected(1); + userTaskProgress.setCompletedTime(TimestampUtils.now()); + userTaskProgressDAO.updateById(userTaskProgress); } private void dealRechargeCommission(TaskApprovalEvent eventBody) {