|
@ -6,6 +6,7 @@ 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.LotteryApplication; |
|
|
import com.lottery.admin.controller.AdminUserController; |
|
|
import com.lottery.admin.controller.AdminUserController; |
|
|
import com.lottery.admin.mapper.AdminIsLoginMapper; |
|
|
import com.lottery.admin.mapper.AdminIsLoginMapper; |
|
|
import com.lottery.admin.mapper.AdminUserDetailMapper; |
|
|
import com.lottery.admin.mapper.AdminUserDetailMapper; |
|
@ -36,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile; |
|
|
import org.json.JSONObject; |
|
|
import org.json.JSONObject; |
|
|
|
|
|
|
|
|
import javax.persistence.criteria.CriteriaBuilder; |
|
|
import javax.persistence.criteria.CriteriaBuilder; |
|
|
|
|
|
import javax.transaction.Transactional; |
|
|
import javax.validation.Valid; |
|
|
import javax.validation.Valid; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.concurrent.TimeUnit; |
|
|
import java.util.concurrent.TimeUnit; |
|
@ -259,11 +261,19 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void removeUserById(Long id) { |
|
|
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 |
|
|
//关联删除winrecord |
|
|
LambdaUpdateWrapper<WinnerRecord> updateWrapper1 = new LambdaUpdateWrapper<>(); |
|
|
LambdaUpdateWrapper<WinnerRecord> updateWrapper1 = new LambdaUpdateWrapper<>(); |
|
@ -273,19 +283,29 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, User> imp |
|
|
adminUserMapper.deleteUserById(id); |
|
|
adminUserMapper.deleteUserById(id); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
@Override |
|
|
@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; |
|
|
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 |
|
|
@Override |
|
|