任务中心 处理一次性任务
大转盘抽奖 第三次需要实名后使用
This commit is contained in:
@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
@Mapper
|
||||
public interface TaskCenterRecordDao extends BaseMapper<TaskCenterRecord> {
|
||||
Integer countTaskNum(Long userId, Long taskId, String time);
|
||||
|
||||
TaskCenterRecord countTaskNumByUserIds(Set<Long> userId, Long taskId, String time);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.sqx.modules.taskCenter.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public interface TaskCenterRecordService extends IService<TaskCenterRecord> {
|
||||
|
||||
@@ -15,5 +15,6 @@ public interface TaskCenterRecordService extends IService<TaskCenterRecord> {
|
||||
* @return
|
||||
*/
|
||||
Integer countTaskNum(Long userId,Long taskId,String time);
|
||||
Integer countTaskNum(Set<Long> userId, Long taskId, String time);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,11 +5,8 @@ import com.sqx.modules.taskCenter.dao.TaskCenterRecordDao;
|
||||
import com.sqx.modules.taskCenter.entity.TaskCenterRecord;
|
||||
import com.sqx.modules.taskCenter.service.TaskCenterRecordService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
@Service
|
||||
public class TaskCenterRecordServiceImpl extends ServiceImpl<TaskCenterRecordDao, TaskCenterRecord> implements TaskCenterRecordService {
|
||||
@@ -19,5 +16,11 @@ public class TaskCenterRecordServiceImpl extends ServiceImpl<TaskCenterRecordDao
|
||||
public Integer countTaskNum(Long userId, Long taskId, String time) {
|
||||
return baseMapper.countTaskNum(userId, taskId, time);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countTaskNum(Set<Long> userId, Long taskId, String time) {
|
||||
TaskCenterRecord record = baseMapper.countTaskNumByUserIds(userId, taskId, time);
|
||||
return record == null ? 0 : 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,9 @@ import com.sqx.common.utils.RedisKeys;
|
||||
import com.sqx.common.utils.RedisUtils;
|
||||
import com.sqx.common.utils.Result;
|
||||
import com.sqx.modules.app.entity.InviteAchievement;
|
||||
import com.sqx.modules.app.entity.UserEntity;
|
||||
import com.sqx.modules.app.entity.UserInfo;
|
||||
import com.sqx.modules.app.entity.UserMoneyDetails;
|
||||
import com.sqx.modules.app.service.InviteAchievementService;
|
||||
import com.sqx.modules.app.service.UserMoneyDetailsService;
|
||||
import com.sqx.modules.app.service.UserMoneyService;
|
||||
import com.sqx.modules.app.service.UserService;
|
||||
import com.sqx.modules.app.service.*;
|
||||
import com.sqx.modules.discSpinning.service.DiscSpinningRecordService;
|
||||
import com.sqx.modules.orders.service.OrdersService;
|
||||
import com.sqx.modules.taskCenter.dao.TaskCenterDao;
|
||||
@@ -33,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter> implements TaskCenterService {
|
||||
@@ -52,6 +50,8 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
@Autowired
|
||||
private DiscSpinningRecordService discSpinningRecordService;
|
||||
@Autowired
|
||||
private UserInfoService userInfoService;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
@@ -167,26 +167,28 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
//一次性任务
|
||||
case 3:
|
||||
if (s.getId().equals(1L)) {
|
||||
// Integer sumOrderNum = ordersService.countOrderNum(userId, null);
|
||||
InviteAchievement inviteAchievement = inviteAchievementService.getByUserId(userId);
|
||||
Integer sumOrderNum = 0;
|
||||
if (inviteAchievement != null) {
|
||||
sumOrderNum = inviteAchievement.getCount();
|
||||
}
|
||||
|
||||
if (sumOrderNum != null && sumOrderNum < s.getNumber()) {
|
||||
s.setDiscNumber(sumOrderNum);
|
||||
s.setNumber(s.getNumber());
|
||||
} else if (recordService.countTaskNum(userId, s.getId(), null) > 0) {
|
||||
continue;
|
||||
} else {
|
||||
s.setDiscNumber(0);
|
||||
s.setNumber(null);
|
||||
s.setJumpType(0);
|
||||
}
|
||||
} else if (s.getDetail().contains("绑定支付宝")) {
|
||||
UserEntity userInfo = userService.queryByUserId(userId);
|
||||
if (StringUtils.isNotBlank(userInfo.getZhiFuBao()) && StringUtils.isNotBlank(userInfo.getZhiFuBaoName())) {
|
||||
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){
|
||||
continue;
|
||||
}
|
||||
}else if (recordService.countTaskNum(userId, s.getId(), null) > 0){
|
||||
s.setDiscNumber(0);
|
||||
s.setNumber(null);
|
||||
s.setJumpType(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -234,8 +236,14 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
// Integer sumOrderNum = ordersService.countOrderNum(userId, null);
|
||||
if (sumOrderNum != null && sumOrderNum < taskCenter.getNumber()) {
|
||||
return Result.error("领取失败,未达成领取条件");
|
||||
} else if (recordService.countTaskNum(userId, taskCenter.getId(), null) > 0) {
|
||||
return Result.error("不可重复领取");
|
||||
} else {
|
||||
UserInfo userInfo = userInfoService.getByUserId(userId);
|
||||
if (userInfo == null || StringUtils.isBlank(userInfo.getCertNo()) || StringUtils.isBlank(userInfo.getCertName())) {
|
||||
return Result.error("请实名后领取");
|
||||
}
|
||||
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("同一实名算一个新用户,不可重复领取");
|
||||
}
|
||||
}
|
||||
List<TaskCenterRecord> records = new ArrayList<>();
|
||||
@@ -271,7 +279,7 @@ public class TaskCenterServiceImpl extends ServiceImpl<TaskCenterDao, TaskCenter
|
||||
record.setTaskId(id);
|
||||
record.setType(reward.getType());
|
||||
record.setNumber(reward.getNumber());
|
||||
record.setName(taskCenter.getTitle() + ":" + record.getName());
|
||||
record.setName(taskCenter.getTitle());
|
||||
record.setTargetId(targetId);
|
||||
record.setCreateTime(DateUtil.now());
|
||||
record.setUpdateTime(DateUtil.now());
|
||||
|
||||
Reference in New Issue
Block a user