Commit fd1d97cb8b99c9b3bc98fd8ff06230bd1a4fc5de
1 parent
383d45f1
fix(system): 修复按部门查询用户精简列表返回禁用用户
Showing
5 changed files
with
36 additions
and
15 deletions
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
| @@ -134,13 +134,8 @@ public class UserController { | @@ -134,13 +134,8 @@ public class UserController { | ||
| 134 | @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") | 134 | @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") |
| 135 | public CommonResult<List<UserSimpleRespVO>> getSimpleUserList( | 135 | public CommonResult<List<UserSimpleRespVO>> getSimpleUserList( |
| 136 | @RequestParam(value = "deptId", required = false) Long deptId) { | 136 | @RequestParam(value = "deptId", required = false) Long deptId) { |
| 137 | - List<AdminUserDO> list; | ||
| 138 | - if (deptId != null) { | ||
| 139 | - List<Long> deptIds = Collections.singletonList(deptId); | ||
| 140 | - list = userService.getDeptUsers(deptIds); | ||
| 141 | - } else { | ||
| 142 | - list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus()); | ||
| 143 | - } | 137 | + List<AdminUserDO> list = userService.getUserListByStatus( |
| 138 | + CommonStatusEnum.ENABLE.getStatus(), deptId); | ||
| 144 | 139 | ||
| 145 | // 拼接数据 | 140 | // 拼接数据 |
| 146 | Map<Long, DeptDO> deptMap = deptService.getDeptMap( | 141 | Map<Long, DeptDO> deptMap = deptService.getDeptMap( |
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
| @@ -41,7 +41,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | @@ -41,7 +41,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | ||
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | default List<AdminUserDO> selectListByStatus(Integer status) { | 43 | default List<AdminUserDO> selectListByStatus(Integer status) { |
| 44 | - return selectList(AdminUserDO::getStatus, status); | 44 | + return selectListByStatusAndDeptId(status, null); |
| 45 | + } | ||
| 46 | + | ||
| 47 | + default List<AdminUserDO> selectListByStatusAndDeptId(Integer status, Long deptId) { | ||
| 48 | + return selectList(new LambdaQueryWrapperX<AdminUserDO>() | ||
| 49 | + .eq(AdminUserDO::getStatus, status) | ||
| 50 | + .eqIfPresent(AdminUserDO::getDeptId, deptId)); | ||
| 45 | } | 51 | } |
| 46 | 52 | ||
| 47 | default List<AdminUserDO> selectListByDeptIds(Collection<Long> deptIds) { | 53 | default List<AdminUserDO> selectListByDeptIds(Collection<Long> deptIds) { |
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java
| @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV | @@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV | ||
| 12 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; | 12 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; |
| 13 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | 13 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 14 | import jakarta.validation.Valid; | 14 | import jakarta.validation.Valid; |
| 15 | +import org.springframework.lang.Nullable; | ||
| 15 | 16 | ||
| 16 | import java.util.Collection; | 17 | import java.util.Collection; |
| 17 | import java.util.HashMap; | 18 | import java.util.HashMap; |
| @@ -214,11 +215,13 @@ public interface AdminUserService { | @@ -214,11 +215,13 @@ public interface AdminUserService { | ||
| 214 | List<AdminUserDO> getUserListByStatus(Integer status); | 215 | List<AdminUserDO> getUserListByStatus(Integer status); |
| 215 | 216 | ||
| 216 | /** | 217 | /** |
| 217 | - * 获得指定部门的用户 | ||
| 218 | - * @param deptIds | ||
| 219 | - * @return | 218 | + * 获得指定状态和部门的用户们 |
| 219 | + * | ||
| 220 | + * @param status 状态 | ||
| 221 | + * @param deptId 部门编号,{@code null} 表示不筛选部门 | ||
| 222 | + * @return 用户们 | ||
| 220 | */ | 223 | */ |
| 221 | - List<AdminUserDO> getDeptUsers(Collection<Long> deptIds); | 224 | + List<AdminUserDO> getUserListByStatus(Integer status, @Nullable Long deptId); |
| 222 | 225 | ||
| 223 | /** | 226 | /** |
| 224 | * 判断密码是否匹配 | 227 | * 判断密码是否匹配 |
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
| @@ -560,12 +560,12 @@ public class AdminUserServiceImpl implements AdminUserService { | @@ -560,12 +560,12 @@ public class AdminUserServiceImpl implements AdminUserService { | ||
| 560 | 560 | ||
| 561 | @Override | 561 | @Override |
| 562 | public List<AdminUserDO> getUserListByStatus(Integer status) { | 562 | public List<AdminUserDO> getUserListByStatus(Integer status) { |
| 563 | - return userMapper.selectListByStatus(status); | 563 | + return getUserListByStatus(status, null); |
| 564 | } | 564 | } |
| 565 | 565 | ||
| 566 | @Override | 566 | @Override |
| 567 | - public List<AdminUserDO> getDeptUsers(Collection<Long> deptIds) { | ||
| 568 | - return userMapper.selectListByDeptIds(deptIds); | 567 | + public List<AdminUserDO> getUserListByStatus(Integer status, Long deptId) { |
| 568 | + return userMapper.selectListByStatusAndDeptId(status, deptId); | ||
| 569 | } | 569 | } |
| 570 | 570 | ||
| 571 | @Override | 571 | @Override |
yudao-module-system/src/test/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImplTest.java
| @@ -722,6 +722,23 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | @@ -722,6 +722,23 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest { | ||
| 722 | } | 722 | } |
| 723 | 723 | ||
| 724 | @Test | 724 | @Test |
| 725 | + public void testGetUserListByStatusAndDeptId() { | ||
| 726 | + // mock 数据 | ||
| 727 | + AdminUserDO user = randomAdminUserDO(o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()).setDeptId(1L)); | ||
| 728 | + userMapper.insert(user); | ||
| 729 | + // 测试 status 不匹配 | ||
| 730 | + userMapper.insert(cloneIgnoreId(user, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus()))); | ||
| 731 | + // 测试 deptId 不匹配 | ||
| 732 | + userMapper.insert(cloneIgnoreId(user, o -> o.setDeptId(2L))); | ||
| 733 | + | ||
| 734 | + // 调用 | ||
| 735 | + List<AdminUserDO> result = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus(), 1L); | ||
| 736 | + // 断言 | ||
| 737 | + assertEquals(1, result.size()); | ||
| 738 | + assertEquals(user, result.get(0)); | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + @Test | ||
| 725 | public void testValidateUserList_success() { | 742 | public void testValidateUserList_success() { |
| 726 | // mock 数据 | 743 | // mock 数据 |
| 727 | AdminUserDO userDO = randomAdminUserDO().setStatus(CommonStatusEnum.ENABLE.getStatus()); | 744 | AdminUserDO userDO = randomAdminUserDO().setStatus(CommonStatusEnum.ENABLE.getStatus()); |