Browse Source

tijiao

feature/0725lihuilin
willy 4 weeks ago
parent
commit
3817111ac9
  1. 2
      lottery-system/lottery-pojo/src/main/java/com/lottery/entity/User.java
  2. 15
      lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminUserController.java
  3. 4
      lottery-system/lottery-service/src/main/java/com/lottery/admin/mapper/AdminUserDetailMapper.java
  4. 4
      lottery-system/lottery-service/src/main/java/com/lottery/admin/mapper/AdminUserMapper.java
  5. 6
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminUserDetailService.java
  6. 2
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminUserService.java
  7. 13
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java
  8. 25
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserDetailServiceImpl.java
  9. 74
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserServiceImpl.java

2
lottery-system/lottery-pojo/src/main/java/com/lottery/entity/User.java

@ -38,6 +38,8 @@ public class User {
private int isWin; //是否中奖 private int isWin; //是否中奖
private int isDel;
private Date createTime; // 创建时间 private Date createTime; // 创建时间
private Date updateTime; // 更新时间 private Date updateTime; // 更新时间

15
lottery-system/lottery-service/src/main/java/com/lottery/admin/controller/AdminUserController.java

@ -84,8 +84,10 @@ public class AdminUserController {
if (ids == null || ids.size() == 0) { if (ids == null || ids.size() == 0) {
return Result.failure("ids is null"); return Result.failure("ids is null");
} }
adminUserService.removeBatchByIds(ids);
return Result.success();
if (adminUserService.removeUserBatchByIds(ids)){
return Result.success();
};
return Result.failure("删除失败");
} }
@PostMapping("/import") @PostMapping("/import")
@ -128,7 +130,7 @@ public class AdminUserController {
@PostMapping("/delete/fix") @PostMapping("/delete/fix")
public Result deleteFix(@RequestParam Long id) { public Result deleteFix(@RequestParam Long id) {
LOGGER.info("根据id删除内定用户:{}",id); LOGGER.info("根据id删除内定用户:{}",id);
adminUserDetailService.removeById(id);
adminUserDetailService.removeFixUserById(id);
return Result.success(); return Result.success();
} }
@ -138,11 +140,12 @@ public class AdminUserController {
if (ids == null || ids.size() == 0) { if (ids == null || ids.size() == 0) {
return Result.failure("ids is null"); return Result.failure("ids is null");
} }
adminUserDetailService.removeBatchByIds(ids);
return Result.success();
if (adminUserDetailService.removeFixUserBatchByIds(ids)){
return Result.success();
};
return Result.failure("删除失败");
} }
//TODO 导入有点问题
@PostMapping("/import/fix") @PostMapping("/import/fix")
public Result importFixUsers(@RequestParam("file") MultipartFile file, @RequestParam Long gradeId) { public Result importFixUsers(@RequestParam("file") MultipartFile file, @RequestParam Long gradeId) {
LOGGER.info("开始导入内定用户Excel文件: {}", file.getOriginalFilename()); LOGGER.info("开始导入内定用户Excel文件: {}", file.getOriginalFilename());

4
lottery-system/lottery-service/src/main/java/com/lottery/admin/mapper/AdminUserDetailMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lottery.entity.UserDetail; import com.lottery.entity.UserDetail;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.Set; import java.util.Set;
@ -20,4 +21,7 @@ import java.util.Set;
public interface AdminUserDetailMapper extends BaseMapper<UserDetail> { public interface AdminUserDetailMapper extends BaseMapper<UserDetail> {
@Select("select jwcode from user_detail") @Select("select jwcode from user_detail")
Set<String> selectAllUserCodes(); Set<String> selectAllUserCodes();
@Update("update user_detail set is_del = 0 where id = #{id}")
void removeFixUserById(Long id);
} }

4
lottery-system/lottery-service/src/main/java/com/lottery/admin/mapper/AdminUserMapper.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lottery.entity.User; import com.lottery.entity.User;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.Set; import java.util.Set;
@ -22,4 +23,7 @@ public interface AdminUserMapper extends BaseMapper<User> {
Set<String> selectAllUserCodes(); Set<String> selectAllUserCodes();
Long selectByJwcode(String jwcode); Long selectByJwcode(String jwcode);
@Update("update user set is_del = 1 where id = #{id}")
void deleteUserById(Long id);
} }

6
lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminUserDetailService.java

@ -9,6 +9,8 @@ import com.lottery.vo.UserVo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/** /**
* @program: lottery * @program: lottery
* @ClassName IUserDetail * @ClassName IUserDetail
@ -22,4 +24,8 @@ public interface AdminUserDetailService extends IService<UserDetail> {
PageInfo<UserVo> listFixUser(int pageNum, int pageSize, UserQueryDto userQueryDto); PageInfo<UserVo> listFixUser(int pageNum, int pageSize, UserQueryDto userQueryDto);
Result importFixUsers(MultipartFile file, Long gradeId); Result importFixUsers(MultipartFile file, Long gradeId);
void removeFixUserById(Long id);
boolean removeFixUserBatchByIds(List<Long> ids);
} }

2
lottery-system/lottery-service/src/main/java/com/lottery/admin/service/AdminUserService.java

@ -41,5 +41,7 @@ public interface AdminUserService extends IService<User> {
Result importUsers(MultipartFile file); Result importUsers(MultipartFile file);
void removeUserById(Long id); void removeUserById(Long id);
boolean removeUserBatchByIds(List<Long> ids);
} }

13
lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminPrizeServiceImpl.java

@ -85,7 +85,8 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize>
// 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; // 等级未删除且已有奖品拒绝添加
} }
@ -190,6 +191,7 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize>
.jwcode(fixUserDto.getJwcode()) .jwcode(fixUserDto.getJwcode())
.password("123456") .password("123456")
.isWin(0) .isWin(0)
.isDel(0)
.createTime(new Date()) .createTime(new Date())
.updateTime(new Date()).build(); .updateTime(new Date()).build();
adminUserMapper.insert(user); //不存在插入总表 adminUserMapper.insert(user); //不存在插入总表
@ -204,6 +206,7 @@ public class AdminPrizeServiceImpl extends ServiceImpl<AdminPrizeMapper, Prize>
userDetail.setUserId(userIdd); userDetail.setUserId(userIdd);
userDetail.setGradeId(gradeId); userDetail.setGradeId(gradeId);
userDetail.setIsFixed(1); userDetail.setIsFixed(1);
userDetail.setIsDel(0);
adminUserDetailMapper.insert(userDetail); adminUserDetailMapper.insert(userDetail);
} }
@ -215,10 +218,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);

25
lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserDetailServiceImpl.java

@ -2,6 +2,7 @@ package com.lottery.admin.service.Impl;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -11,11 +12,8 @@ import com.lottery.admin.mapper.AdminUserMapper;
import com.lottery.admin.service.AdminUserDetailService; import com.lottery.admin.service.AdminUserDetailService;
import com.lottery.admin.service.AdminUserService; import com.lottery.admin.service.AdminUserService;
import com.lottery.api.mapper.IUserDetailMapper; import com.lottery.api.mapper.IUserDetailMapper;
import com.lottery.api.service.IUserDetailService;
import com.lottery.api.service.IUserService;
import com.lottery.dto.UserImportDto; import com.lottery.dto.UserImportDto;
import com.lottery.dto.UserQueryDto; import com.lottery.dto.UserQueryDto;
import com.lottery.entity.Grade;
import com.lottery.entity.User; import com.lottery.entity.User;
import com.lottery.entity.UserDetail; import com.lottery.entity.UserDetail;
import com.lottery.result.Result; import com.lottery.result.Result;
@ -67,6 +65,7 @@ public class AdminUserDetailServiceImpl extends ServiceImpl<IUserDetailMapper, U
//user表根据id批量查询 //user表根据id批量查询
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getIsDel, 0);
queryWrapper.in(User::getId, UserIds); queryWrapper.in(User::getId, UserIds);
@ -159,6 +158,26 @@ public class AdminUserDetailServiceImpl extends ServiceImpl<IUserDetailMapper, U
} }
} }
@Override
public void removeFixUserById(Long id) {
adminUserDetailMapper.removeFixUserById(id);
}
@Override
public boolean removeFixUserBatchByIds(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return false;
}
// 使用 UpdateWrapper 批量更新 is_del 字段
LambdaUpdateWrapper<UserDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(UserDetail::getId, ids) // WHERE id IN (ids)
.set(UserDetail::getIsDel, 1); // SET is_del = 1
// 执行更新不更新其他字段
return this.update(updateWrapper);
}
private void validateUser(UserImportDto dto, int rowNum, Set<String> processedCodes) { private void validateUser(UserImportDto dto, int rowNum, Set<String> processedCodes) {
if (StringUtils.isBlank(dto.getJwcode())) { if (StringUtils.isBlank(dto.getJwcode())) {
throw new IllegalArgumentException("第" + rowNum + "行: 精网号不能为空"); throw new IllegalArgumentException("第" + rowNum + "行: 精网号不能为空");

74
lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserServiceImpl.java

@ -2,36 +2,36 @@ package com.lottery.admin.service.Impl;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lottery.admin.controller.AdminUserController; import com.lottery.admin.controller.AdminUserController;
import com.lottery.admin.mapper.AdminUserDetailMapper;
import com.lottery.admin.mapper.AdminUserMapper; import com.lottery.admin.mapper.AdminUserMapper;
import com.lottery.admin.mapper.AdminWinMapper;
import com.lottery.admin.service.AdminUserService; import com.lottery.admin.service.AdminUserService;
import com.lottery.api.service.Impl.UserServiceImpl;
import com.lottery.dto.AdminLogin; import com.lottery.dto.AdminLogin;
import com.lottery.dto.UserDto; import com.lottery.dto.UserDto;
import com.lottery.dto.UserImportDto; import com.lottery.dto.UserImportDto;
import com.lottery.dto.UserQueryDto; import com.lottery.dto.UserQueryDto;
import com.lottery.entity.Grade;
import com.lottery.entity.User; import com.lottery.entity.User;
import com.lottery.entity.UserDetail;
import com.lottery.entity.WinnerRecord;
import com.lottery.result.Result; import com.lottery.result.Result;
import com.lottery.utils.ConvertBeanUtil; import com.lottery.utils.ConvertBeanUtil;
import com.lottery.utils.ExcelUtil;
import com.lottery.vo.PageInfo; import com.lottery.vo.PageInfo;
import com.lottery.vo.UserLoginVo; import com.lottery.vo.UserLoginVo;
import com.lottery.vo.UserVo; import com.lottery.vo.UserVo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static com.lottery.utils.HttpUtils.postUrlencoded; import static com.lottery.utils.HttpUtils.postUrlencoded;
@ -50,6 +50,12 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
private AdminUserMapper adminUserMapper; private AdminUserMapper adminUserMapper;
private final static Logger LOGGER = LoggerFactory.getLogger(AdminUserController.class); private final static Logger LOGGER = LoggerFactory.getLogger(AdminUserController.class);
@Autowired
private AdminUserDetailMapper adminUserDetailMapper;
@Autowired
private AdminWinMapper adminWinMapper;
@Override @Override
public Result<UserLoginVo> AdminUserlogin(AdminLogin adminLogin) { public Result<UserLoginVo> AdminUserlogin(AdminLogin adminLogin) {
String token = ""; String token = "";
@ -95,18 +101,32 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
@Override @Override
public boolean addUser(UserDto userDto) { public boolean addUser(UserDto userDto) {
String jwcode = userDto.getJwcode(); String jwcode = userDto.getJwcode();
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(User::getJwcode, jwcode);
if(this.count(lambdaQueryWrapper) > 0) {
return false;
// 1. 查询是否已存在相同精网号的用户
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getJwcode, jwcode);
User existingUser = this.getOne(queryWrapper);
// 2. 判断逻辑
if (existingUser != null) {
if (existingUser.getIsDel() == 0) {
// 存在未删除的同精网号用户不允许新增
return false;
}
// 如果是已删除的用户(is_del=1)先物理删除旧记录
this.removeById(existingUser.getId());
} }
User user = new User(); // 改用构造函数或直接赋值避免 Builder 潜在问题
// 3. 创建新用户
User user = new User();
user.setUsername(userDto.getUsername()); user.setUsername(userDto.getUsername());
user.setJwcode(jwcode); user.setJwcode(jwcode);
user.setIsWin(0); user.setIsWin(0);
user.setIsDel(0);
user.setCreateTime(new Date()); user.setCreateTime(new Date());
user.setUpdateTime(new Date()); user.setUpdateTime(new Date());
user.setPassword("123456"); // 显式设置避免被覆盖
user.setPassword("123456"); // 默认密码
return this.save(user); return this.save(user);
} }
@ -115,6 +135,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
Page<User> page = new Page<>(pageNum, pageSize); Page<User> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getIsDel, 0);
if (StringUtils.isNotBlank(userQueryDto.getUsername())) { if (StringUtils.isNotBlank(userQueryDto.getUsername())) {
queryWrapper.like(User::getUsername, userQueryDto.getUsername()); queryWrapper.like(User::getUsername, userQueryDto.getUsername());
@ -171,7 +192,33 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
@Override @Override
public void removeUserById(Long id) { public void removeUserById(Long id) {
this.removeById(id);
//关联删除user_detail
LambdaUpdateWrapper<UserDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(UserDetail::getUserId, id).set(UserDetail::getIsDel, 1);
adminUserDetailMapper.update(null, updateWrapper);
//关联删除winrecord
LambdaUpdateWrapper<WinnerRecord> updateWrapper1 = new LambdaUpdateWrapper<>();
updateWrapper1.eq(WinnerRecord::getUserId, id).set(WinnerRecord::getIsDel, 1);
adminWinMapper.update(null, updateWrapper1);
adminUserMapper.deleteUserById(id);
}
@Override
public boolean removeUserBatchByIds(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return false;
}
// 使用 UpdateWrapper 批量更新 is_del 字段
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(User::getId, ids) // WHERE id IN (ids)
.set(User::getIsDel, 1); // SET is_del = 1
// 执行更新不更新其他字段
return this.update(updateWrapper);
} }
private User convertToEntity(UserImportDto dto) { private User convertToEntity(UserImportDto dto) {
@ -181,6 +228,7 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
user.setIsWin(0); user.setIsWin(0);
user.setCreateTime(new Date()); user.setCreateTime(new Date());
user.setUpdateTime(new Date()); user.setUpdateTime(new Date());
user.setIsDel(0);
// 设置默认密码 // 设置默认密码
user.setPassword("123456"); user.setPassword("123456");
return user; return user;

Loading…
Cancel
Save