绑定邀请码任务 自动变成已领取状态

This commit is contained in:
tianfeng 2025-12-05 11:12:44 +08:00
parent 84e90d400c
commit 2068eb2e0c

View File

@ -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<UserTaskProgress> eq = new LambdaQueryWrapper<UserTaskProgress>()
.eq(UserTaskProgress::getUserId, eventBody.getUserId())
.eq(UserTaskProgress::getTaskStatus, 1)
.eq(UserTaskProgress::getTaskId, eventBody.getTaskId())
.eq(UserTaskProgress::getIsRewardCollected, 0);
List<UserTaskProgress> 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) {