diff --git a/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java b/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java index 672f3d5f..59f0ee6c 100644 --- a/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java +++ b/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java @@ -50,6 +50,10 @@ public class InviteAchievement implements Serializable { * 是否首次达标 */ private Integer state; + /** + * 一次性任务领取记录 默认为空 存储为 taskId,taskId + */ + private String tasks; /** * 创建时间 diff --git a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java index cc64b472..6b655897 100644 --- a/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java +++ b/src/main/java/com/sqx/modules/job/task/TempOrdersTask.java @@ -263,6 +263,8 @@ public class TempOrdersTask { if (!byUserIdList.isEmpty()) { count = userInfoService.list(new LambdaQueryWrapper().in(UserInfo::getUserId, byUserIdList).isNotNull(UserInfo::getAccountNo).select(UserInfo::getCertNo)) .stream().map(UserInfo::getCertNo).collect(Collectors.toSet()).size(); + }else { + return; } logger.info("邀请达标人员: {}", count); //count 邀请的已达标人数 diff --git a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java index 72417894..db8fe1e5 100644 --- a/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java +++ b/src/main/java/com/sqx/modules/taskCenter/service/impl/TaskCenterServiceImpl.java @@ -2,7 +2,9 @@ package com.sqx.modules.taskCenter.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.sqx.common.utils.DateUtils; import com.sqx.common.utils.RedisKeys; @@ -168,27 +170,45 @@ public class TaskCenterServiceImpl extends ServiceImpl users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo()); + Set courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); + if (recordService.countTaskNum(courseIds, s.getId(), null) > 0) { + if (inviteAchievement != null) { + inviteAchievementService.update(new LambdaUpdateWrapper() + .eq(InviteAchievement::getUserId, inviteAchievement.getUserId()) + .eq(InviteAchievement::getId, inviteAchievement.getId()) + .set(InviteAchievement::getTasks, StringUtils.isBlank(inviteAchievement.getTasks()) ? "1" : inviteAchievement.getTasks() + ",1")); + } + continue; + } + } Integer sumOrderNum = 0; if (inviteAchievement != null) { sumOrderNum = inviteAchievement.getCount(); } - if (sumOrderNum != null && sumOrderNum < s.getNumber()) { s.setDiscNumber(sumOrderNum); s.setNumber(s.getNumber()); - } else { - UserInfo userInfo = userInfoService.getByUserId(userId); - if (userInfo != null || StringUtils.isNotBlank(userInfo.getCertNo()) || StringUtils.isNotBlank(userInfo.getCertName())) { - List users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo()); - Set courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); - if (recordService.countTaskNum(courseIds, s.getId(), null) > 0){ - continue; - } - }else if (recordService.countTaskNum(userId, s.getId(), null) > 0){ - s.setDiscNumber(0); - s.setNumber(null); - s.setJumpType(0); - } + } + if (recordService.countTaskNum(userId, s.getId(), null) > 0) { + s.setDiscNumber(0); + s.setNumber(null); + s.setJumpType(0); } } break; @@ -205,6 +225,7 @@ public class TaskCenterServiceImpl extends ServiceImpl users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo()); Set courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet()); - if (recordService.countTaskNum(courseIds, taskCenter.getId(), null) > 0) return Result.error("同一实名算一个新用户,不可重复领取"); + if (recordService.countTaskNum(courseIds, taskCenter.getId(), null) > 0) + return Result.error("同一实名算一个新用户,不可重复领取"); } } List records = new ArrayList<>(); @@ -286,6 +315,12 @@ public class TaskCenterServiceImpl extends ServiceImpl() + .eq(InviteAchievement::getUserId, inviteAchievement.getUserId()) + .eq(InviteAchievement::getId, inviteAchievement.getId()) + .set(InviteAchievement::getTasks, StringUtils.isBlank(inviteAchievement.getTasks()) ? "1" : inviteAchievement.getTasks() + ",1")); + } return Result.success(); }