Browse Source

批量删除

dev
lihuilin 3 weeks ago
parent
commit
1a95fb8e4e
  1. 23
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserDetailServiceImpl.java
  2. 44
      lottery-system/lottery-service/src/main/java/com/lottery/admin/service/Impl/AdminUserServiceImpl.java
  3. 2
      lottery-system/lottery-service/src/main/java/com/lottery/api/service/Impl/UserDetailServiceImpl.java

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

@ -514,8 +514,7 @@ public class AdminUserDetailServiceImpl extends ServiceImpl<IUserDetailMapper, U
@Override
public boolean removeFixUserById(Long id) {
return adminUserDetailMapper.removeFixUserById(id) > 0;
return this.removeById(id);
// return this.update(
// new LambdaUpdateWrapper<UserDetail>()
// .eq(UserDetail::getId, id)
@ -525,17 +524,15 @@ public class AdminUserDetailServiceImpl extends ServiceImpl<IUserDetailMapper, U
@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);
return this.removeByIds(ids);
//
//// 使用 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) {

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

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lottery.LotteryApplication;
import com.lottery.admin.controller.AdminUserController;
import com.lottery.admin.mapper.AdminIsLoginMapper;
import com.lottery.admin.mapper.AdminUserDetailMapper;
@ -36,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile;
import org.json.JSONObject;
import javax.persistence.criteria.CriteriaBuilder;
import javax.transaction.Transactional;
import javax.validation.Valid;
import java.util.*;
import java.util.concurrent.TimeUnit;
@ -259,11 +261,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
@Override
public void removeUserById(Long id) {
//关联删除user_detail
LambdaUpdateWrapper<UserDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(UserDetail::getUserId, id).set(UserDetail::getIsDel, 1);
adminUserDetailMapper.update(null, updateWrapper);
//关联硬删删除user_detail
//LambdaUpdateWrapper<UserDetail> updateWrapper = new LambdaUpdateWrapper<>();
//updateWrapper.eq(UserDetail::getUserId, id).set(UserDetail::getIsDel, 1);
LambdaQueryWrapper<User> userLambdaQueryWrapper = new LambdaQueryWrapper<>();
userLambdaQueryWrapper.eq(User::getId, id);
User one = this.getOne(userLambdaQueryWrapper);
LambdaQueryWrapper<UserDetail> userDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
userDetailLambdaQueryWrapper.eq(UserDetail::getUserId, one.getId());
adminUserDetailMapper.delete(userDetailLambdaQueryWrapper);
//关联删除winrecord
LambdaUpdateWrapper<WinnerRecord> updateWrapper1 = new LambdaUpdateWrapper<>();
@ -273,19 +283,29 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp
adminUserMapper.deleteUserById(id);
}
@Transactional
@Override
public boolean removeUserBatchByIds(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
public boolean removeUserBatchByIds(List<Long> userIds) {
if (userIds == null || userIds.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
try {
// 1. 硬删除 user_detail 表的关联数据
LambdaQueryWrapper<UserDetail> detailWrapper = new LambdaQueryWrapper<>();
detailWrapper.in(UserDetail::getUserId, userIds);
adminUserDetailMapper.delete(detailWrapper); // 物理删除
// 执行更新不更新其他字段
return this.update(updateWrapper);
// 2. 软删除 user 表数据
LambdaUpdateWrapper<User> userWrapper = new LambdaUpdateWrapper<>();
userWrapper.in(User::getId, userIds)
.set(User::getIsDel, 1); // 逻辑删除
return this.update(userWrapper);
} catch (Exception e) {
// 事务会自动回滚
throw new RuntimeException("批量删除用户失败", e);
}
}
@Override

2
lottery-system/lottery-service/src/main/java/com/lottery/api/service/Impl/UserDetailServiceImpl.java

@ -294,7 +294,7 @@ public class UserDetailServiceImpl extends ServiceImpl<IUserDetailMapper, UserDe
// 1. 获取所有内定用户(所有等级)
LambdaQueryWrapper<UserDetail> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserDetail::getIsFixed, 1).eq(UserDetail::getIsDel, 0);
wrapper.eq(UserDetail::getIsFixed, 1);
List<UserDetail> allFixedUsers = userDetailMapper.selectList(wrapper);
// 2. 获取所有内定用户的ID

Loading…
Cancel
Save