|
@ -10,6 +10,7 @@ import com.lottery.admin.service.AdminPrizeService; |
|
|
import com.lottery.dto.PrizeDto; |
|
|
import com.lottery.dto.PrizeDto; |
|
|
import com.lottery.dto.FixUserDto; |
|
|
import com.lottery.dto.FixUserDto; |
|
|
import com.lottery.entity.*; |
|
|
import com.lottery.entity.*; |
|
|
|
|
|
import com.lottery.result.Result; |
|
|
import com.lottery.utils.ConvertBeanUtil; |
|
|
import com.lottery.utils.ConvertBeanUtil; |
|
|
import com.lottery.vo.PageInfo; |
|
|
import com.lottery.vo.PageInfo; |
|
|
import com.lottery.vo.PrizeVo; |
|
|
import com.lottery.vo.PrizeVo; |
|
@ -78,14 +79,15 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize> |
|
|
|
|
|
|
|
|
// 1. 查询关联的等级(grade)状态 |
|
|
// 1. 查询关联的等级(grade)状态 |
|
|
Grade grade = adminGradeMapper.selectById(prizeDto.getGradeId()); // 假设 gradeId 是传入的等级ID |
|
|
Grade grade = adminGradeMapper.selectById(prizeDto.getGradeId()); // 假设 gradeId 是传入的等级ID |
|
|
if (grade == null) { |
|
|
|
|
|
|
|
|
if (grade.getIsDel() == 1) { |
|
|
return false; // 等级不存在,直接返回失败 |
|
|
return false; // 等级不存在,直接返回失败 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 2. 检查逻辑:仅当等级未删除(is_del=0)且已存在奖品时,才拒绝添加 |
|
|
// 2. 检查逻辑:仅当等级未删除(is_del=0)且已存在奖品时,才拒绝添加 |
|
|
if (grade.getIsDel() == 0) { // 等级未删除 |
|
|
if (grade.getIsDel() == 0) { // 等级未删除 |
|
|
LambdaQueryWrapper<Prize> wrapper = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<Prize> wrapper = new LambdaQueryWrapper<>(); |
|
|
wrapper.eq(Prize::getGradeId, prizeDto.getGradeId()); |
|
|
|
|
|
|
|
|
wrapper.eq(Prize::getGradeId, prizeDto.getGradeId()) |
|
|
|
|
|
.eq(Prize::getIs_del, 0); // 只统计未删除的奖品; |
|
|
if (this.count(wrapper) > 0) { |
|
|
if (this.count(wrapper) > 0) { |
|
|
return false; // 等级未删除且已有奖品,拒绝添加 |
|
|
return false; // 等级未删除且已有奖品,拒绝添加 |
|
|
} |
|
|
} |
|
@ -123,8 +125,6 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize> |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. 查询目标等级信息 |
|
|
// 2. 查询目标等级信息 |
|
|
Grade targetGrade = adminGradeMapper.selectById(gradeId); |
|
|
Grade targetGrade = adminGradeMapper.selectById(gradeId); |
|
|
if (targetGrade == null) { |
|
|
if (targetGrade == null) { |
|
@ -144,14 +144,14 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize> |
|
|
return false; // 目标等级已有奖品,不能修改 |
|
|
return false; // 目标等级已有奖品,不能修改 |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 4. 检查奖品名称是否重复(排除自己) |
|
|
|
|
|
LambdaQueryWrapper<Prize> nameCheckWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()) |
|
|
|
|
|
.ne(Prize::getId, prizeDto.getId()); |
|
|
|
|
|
if (this.count(nameCheckWrapper) > 0) { |
|
|
|
|
|
return false; // 奖品名称已存在 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// |
|
|
|
|
|
// // 4. 检查奖品名称是否重复(排除自己) |
|
|
|
|
|
// LambdaQueryWrapper<Prize> nameCheckWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
// nameCheckWrapper.eq(Prize::getPrizeName, prizeDto.getPrizeName()) |
|
|
|
|
|
// .ne(Prize::getId, prizeDto.getId()); |
|
|
|
|
|
// if (this.count(nameCheckWrapper) > 0) { |
|
|
|
|
|
// return false; // 奖品名称已存在 |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
// LambdaQueryWrapper<Prize> wrapper = new LambdaQueryWrapper<>(); |
|
|
// LambdaQueryWrapper<Prize> wrapper = new LambdaQueryWrapper<>(); |
|
|
// wrapper.eq(Prize::getGradeId, grade.getId()); |
|
|
// wrapper.eq(Prize::getGradeId, grade.getId()); |
|
@ -181,30 +181,88 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize> |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void addWinUser(FixUserDto fixUserDto) { |
|
|
|
|
|
//先判断新增的内定用户是否在总的抽奖用户中 |
|
|
|
|
|
Long userId = adminUserMapper.selectByJwcode(fixUserDto.getJwcode()); |
|
|
|
|
|
if (userId == null) { |
|
|
|
|
|
User user = User.builder() |
|
|
|
|
|
.username(fixUserDto.getUsername()) |
|
|
|
|
|
.jwcode(fixUserDto.getJwcode()) |
|
|
|
|
|
.password("123456") |
|
|
|
|
|
.isWin(0) |
|
|
|
|
|
.createTime(new Date()) |
|
|
|
|
|
.updateTime(new Date()).build(); |
|
|
|
|
|
adminUserMapper.insert(user); //不存在,插入总表 |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public Result addWinUser(FixUserDto fixUserDto) { |
|
|
|
|
|
|
|
|
|
|
|
// //先判断新增的内定用户是否在总的抽奖用户中 |
|
|
|
|
|
// Long userId = adminUserMapper.selectByJwcode(fixUserDto.getJwcode()); |
|
|
|
|
|
// if (userId == null) { |
|
|
|
|
|
// User user = User.builder() |
|
|
|
|
|
// .username(fixUserDto.getUsername()) |
|
|
|
|
|
// .jwcode(fixUserDto.getJwcode()) |
|
|
|
|
|
// .password("123456") |
|
|
|
|
|
// .isWin(0) |
|
|
|
|
|
// .isDel(0) |
|
|
|
|
|
// .createTime(new Date()) |
|
|
|
|
|
// .updateTime(new Date()).build(); |
|
|
|
|
|
// adminUserMapper.insert(user); //不存在,插入总表 |
|
|
|
|
|
// } |
|
|
|
|
|
// |
|
|
|
|
|
//// Grade grade = adminGradeMapper.selectByName(fixUserDto.getGradeName()); |
|
|
|
|
|
// Long gradeId = fixUserDto.getGradeId(); |
|
|
|
|
|
// |
|
|
|
|
|
// Long userIdd = adminUserMapper.selectByJwcode(fixUserDto.getJwcode()); |
|
|
|
|
|
// |
|
|
|
|
|
// UserDetail userDetail = new UserDetail(); |
|
|
|
|
|
// userDetail.setUserId(userIdd); |
|
|
|
|
|
// userDetail.setGradeId(gradeId); |
|
|
|
|
|
// userDetail.setIsFixed(1); |
|
|
|
|
|
// userDetail.setIsDel(0); |
|
|
|
|
|
// adminUserDetailMapper.insert(userDetail); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
// 1. 检查用户是否存在,不存在则创建 |
|
|
|
|
|
Long userId = adminUserMapper.selectByJwcode(fixUserDto.getJwcode()); |
|
|
|
|
|
if (userId == null) { |
|
|
|
|
|
User user = User.builder() |
|
|
|
|
|
.username(fixUserDto.getUsername()) |
|
|
|
|
|
.jwcode(fixUserDto.getJwcode()) |
|
|
|
|
|
.password("123456") |
|
|
|
|
|
.isWin(0) |
|
|
|
|
|
.isDel(0) |
|
|
|
|
|
.createTime(new Date()) |
|
|
|
|
|
.updateTime(new Date()) |
|
|
|
|
|
.build(); |
|
|
|
|
|
adminUserMapper.insert(user); |
|
|
|
|
|
userId = user.getId(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Long gradeId = fixUserDto.getGradeId(); |
|
|
|
|
|
|
|
|
// Grade grade = adminGradeMapper.selectByName(fixUserDto.getGradeName()); |
|
|
|
|
|
Long gradeId = fixUserDto.getGradeId(); |
|
|
|
|
|
|
|
|
// 2. 检查该等级下是否已存在未删除的内定用户 |
|
|
|
|
|
LambdaQueryWrapper<UserDetail> wrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
wrapper.eq(UserDetail::getGradeId, gradeId) |
|
|
|
|
|
// .eq(UserDetail::getIsFixed, 1) |
|
|
|
|
|
.eq(UserDetail::getIsDel, 0); // 只检查未删除的记录 |
|
|
|
|
|
|
|
|
|
|
|
if (adminUserDetailMapper.selectCount(wrapper) > 0) { |
|
|
|
|
|
return Result.failure("该等级下已存在内定用户,不可重复添加"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
Long userIdd = adminUserMapper.selectByJwcode(fixUserDto.getJwcode()); |
|
|
|
|
|
|
|
|
// 3. 检查是否存在已删除的内定用户(is_del=1) |
|
|
|
|
|
LambdaQueryWrapper<UserDetail> deletedWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
deletedWrapper.eq(UserDetail::getGradeId, gradeId) |
|
|
|
|
|
.eq(UserDetail::getIsFixed, 1) |
|
|
|
|
|
.eq(UserDetail::getIsDel, 1); |
|
|
|
|
|
|
|
|
UserDetail userDetail = new UserDetail(); |
|
|
|
|
|
userDetail.setUserId(userIdd); |
|
|
|
|
|
userDetail.setGradeId(gradeId); |
|
|
|
|
|
userDetail.setIsFixed(1); |
|
|
|
|
|
adminUserDetailMapper.insert(userDetail); |
|
|
|
|
|
|
|
|
UserDetail deletedUserDetail = adminUserDetailMapper.selectOne(deletedWrapper); |
|
|
|
|
|
if (deletedUserDetail != null) { |
|
|
|
|
|
// 如果存在已删除的记录,先物理删除 |
|
|
|
|
|
adminUserDetailMapper.deleteById(deletedUserDetail.getId()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 4. 添加新内定用户 |
|
|
|
|
|
UserDetail userDetail = new UserDetail(); |
|
|
|
|
|
userDetail.setUserId(userId); |
|
|
|
|
|
userDetail.setGradeId(gradeId); |
|
|
|
|
|
userDetail.setIsFixed(1); |
|
|
|
|
|
userDetail.setIsDel(0); |
|
|
|
|
|
adminUserDetailMapper.insert(userDetail); |
|
|
|
|
|
|
|
|
|
|
|
return Result.success("内定用户添加成功"); |
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
// LOGGER.error("添加内定用户失败", e); |
|
|
|
|
|
return Result.failure("添加失败: " + e.getMessage()); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
@ -215,10 +273,10 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize> |
|
|
updateWrapper.eq(WinnerRecord::getPrizeId, id).set(WinnerRecord::getIsDel, 1); |
|
|
updateWrapper.eq(WinnerRecord::getPrizeId, id).set(WinnerRecord::getIsDel, 1); |
|
|
adminWinMapper.update(null, updateWrapper); |
|
|
adminWinMapper.update(null, updateWrapper); |
|
|
|
|
|
|
|
|
// //把关联的user_detail表删了 |
|
|
|
|
|
// LambdaUpdateWrapper<UserDetail> wrapper = new LambdaUpdateWrapper<>(); |
|
|
|
|
|
// wrapper.eq(UserDetail::getUserId, id); |
|
|
|
|
|
// adminUserDetailMapper.update(null, wrapper); |
|
|
|
|
|
|
|
|
//把关联的user_detail表删了 |
|
|
|
|
|
LambdaUpdateWrapper<UserDetail> wrapper = new LambdaUpdateWrapper<>(); |
|
|
|
|
|
wrapper.eq(UserDetail::getUserId, id).set(UserDetail::getIsDel, 1); |
|
|
|
|
|
adminUserDetailMapper.update(null, wrapper); |
|
|
|
|
|
|
|
|
//最后逻辑删除奖品 |
|
|
//最后逻辑删除奖品 |
|
|
return adminPrizeMapper.deletePrizeById(id); |
|
|
return adminPrizeMapper.deletePrizeById(id); |
|
|