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 | 134 | @Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项") |
| 135 | 135 | public CommonResult<List<UserSimpleRespVO>> getSimpleUserList( |
| 136 | 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 | 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 | 41 | } |
| 42 | 42 | |
| 43 | 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 | 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 | 12 | import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO; |
| 13 | 13 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 14 | 14 | import jakarta.validation.Valid; |
| 15 | +import org.springframework.lang.Nullable; | |
| 15 | 16 | |
| 16 | 17 | import java.util.Collection; |
| 17 | 18 | import java.util.HashMap; |
| ... | ... | @@ -214,11 +215,13 @@ public interface AdminUserService { |
| 214 | 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 | 560 | |
| 561 | 561 | @Override |
| 562 | 562 | public List<AdminUserDO> getUserListByStatus(Integer status) { |
| 563 | - return userMapper.selectListByStatus(status); | |
| 563 | + return getUserListByStatus(status, null); | |
| 564 | 564 | } |
| 565 | 565 | |
| 566 | 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 | 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 | 722 | } |
| 723 | 723 | |
| 724 | 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 | 742 | public void testValidateUserList_success() { |
| 726 | 743 | // mock 数据 |
| 727 | 744 | AdminUserDO userDO = randomAdminUserDO().setStatus(CommonStatusEnum.ENABLE.getStatus()); | ... | ... |