Merge remote-tracking branch 'origin/test' into test

This commit is contained in:
Tankaikai
2025-01-10 16:08:13 +08:00
3 changed files with 57 additions and 16 deletions

View File

@@ -50,6 +50,10 @@ public class InviteAchievement implements Serializable {
* 是否首次达标
*/
private Integer state;
/**
* 一次性任务领取记录 默认为空 存储为 taskId,taskId
*/
private String tasks;
/**
* 创建时间

View File

@@ -263,6 +263,8 @@ public class TempOrdersTask {
if (!byUserIdList.isEmpty()) {
count = userInfoService.list(new LambdaQueryWrapper<UserInfo>().in(UserInfo::getUserId, byUserIdList).isNotNull(UserInfo::getAccountNo).select(UserInfo::getCertNo))
.stream().map(UserInfo::getCertNo).collect(Collectors.toSet()).size();
}else {
return;
}
logger.info("邀请达标人员: {}", count);
//count 邀请的已达标人数

View File

@@ -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<TaskCenterDao, TaskCenter
case 3:
if (s.getId().equals(1L)) {
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(userId);
if (inviteAchievement != null && StringUtils.isNotBlank(inviteAchievement.getTasks())) {
String[] split = inviteAchievement.getTasks().split(",");
boolean isOver = false;
for (String element : split) {
if ("1".equals(element.trim())) {
isOver = true;
break;
}
}
if (isOver) {
continue;
}
}
UserInfo userInfo = userInfoService.getByUserId(userId);
if (userInfo != null && StringUtils.isNotBlank(userInfo.getCertNo()) && StringUtils.isNotBlank(userInfo.getCertName())) {
List<UserInfo> users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo());
Set<Long> courseIds = users.stream().map(UserInfo::getUserId).collect(Collectors.toSet());
if (recordService.countTaskNum(courseIds, s.getId(), null) > 0) {
if (inviteAchievement != null) {
inviteAchievementService.update(new LambdaUpdateWrapper<InviteAchievement>()
.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<UserInfo> users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo());
Set<Long> 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<TaskCenterDao, TaskCenter
if (!taskCenter.getShows().equals(1)) {
return Result.error("领取失败");
}
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(userId);
if (taskCenter.getType().equals(2)) {
Integer dayOrderNum = ordersService.countOrderNum(userId, DateUtil.today() + " 00:00:00");
if (taskCenter.getNumber().equals(1)) {
@@ -228,8 +249,15 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
signRecordService.save(signRecord);
}
} else if (taskCenter.getType().equals(3) && taskCenter.getId().equals(1L)) {
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(userId);
Integer sumOrderNum = 0;
if (inviteAchievement != null && StringUtils.isNotBlank(inviteAchievement.getTasks())) {
String[] split = inviteAchievement.getTasks().split(",");
for (String element : split) {
if ("1".equals(element.trim())) {
return Result.error("不可重复领取");
}
}
}
if (inviteAchievement != null) {
sumOrderNum = inviteAchievement.getCount();
}
@@ -243,7 +271,8 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
}
List<UserInfo> users = userInfoService.getUsersByNameAndCertNo(userInfo.getCertName(), userInfo.getCertNo());
Set<Long> 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<TaskCenterRecord> records = new ArrayList<>();
@@ -286,6 +315,12 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
records.add(record);
}
recordService.saveBatch(records);
if (inviteAchievement != null && id.equals(1L)) {
inviteAchievementService.update(new LambdaUpdateWrapper<InviteAchievement>()
.eq(InviteAchievement::getUserId, inviteAchievement.getUserId())
.eq(InviteAchievement::getId, inviteAchievement.getId())
.set(InviteAchievement::getTasks, StringUtils.isBlank(inviteAchievement.getTasks()) ? "1" : inviteAchievement.getTasks() + ",1"));
}
return Result.success();
}