diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java index 1015bc0736..a562ab4387 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java @@ -71,6 +71,15 @@ public class UserController { return success(true); } + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号列表", required = true) + @Operation(summary = "批量删除用户") + @PreAuthorize("@ss.hasPermission('system:user:delete')") + public CommonResult deleteUserList(@RequestParam("ids") List ids) { + userService.deleteUserList(ids); + return success(true); + } + @PutMapping("/update-password") @Operation(summary = "重置用户密码") @PreAuthorize("@ss.hasPermission('system:user:update-password')") diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index d5c83bc44a..947c72376c 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -95,6 +95,13 @@ public interface AdminUserService { */ void deleteUser(Long id); + /** + * 批量删除用户 + * + * @param ids 用户编号数组 + */ + void deleteUserList(List ids); + /** * 通过用户名查询用户 * diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index a2bf89a770..40664ecafd 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -248,6 +248,28 @@ public class AdminUserServiceImpl implements AdminUserService { LogRecordContext.putVariable("user", user); } + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteUserList(List ids) { + if (CollUtil.isEmpty(ids)) { + return; + } + // 1. 校验用户存在 + List users = userMapper.selectByIds(ids); + if (CollUtil.isEmpty(users)) { + return; + } + + // 2. 批量删除用户 + userMapper.deleteByIds(ids); + + // 3. 批量删除用户关联数据 + ids.forEach(id -> { + permissionService.processUserDeleted(id); + userPostMapper.deleteByUserId(id); + }); + } + @Override public AdminUserDO getUserByUsername(String username) { return userMapper.selectByUsername(username);