mirror of
https://gitee.com/yudaocode/yudao-boot-mini.git
synced 2026-10-06 14:13:14 +08:00
fix(system): 修复按部门查询用户精简列表返回禁用用户
This commit is contained in:
+2
-7
@@ -134,13 +134,8 @@ public class UserController {
|
||||
@Operation(summary = "获取用户精简信息列表", description = "只包含被开启的用户,主要用于前端的下拉选项")
|
||||
public CommonResult<List<UserSimpleRespVO>> getSimpleUserList(
|
||||
@RequestParam(value = "deptId", required = false) Long deptId) {
|
||||
List<AdminUserDO> list;
|
||||
if (deptId != null) {
|
||||
List<Long> deptIds = Collections.singletonList(deptId);
|
||||
list = userService.getDeptUsers(deptIds);
|
||||
} else {
|
||||
list = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||
}
|
||||
List<AdminUserDO> list = userService.getUserListByStatus(
|
||||
CommonStatusEnum.ENABLE.getStatus(), deptId);
|
||||
|
||||
// 拼接数据
|
||||
Map<Long, DeptDO> deptMap = deptService.getDeptMap(
|
||||
|
||||
+7
-1
@@ -41,7 +41,13 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
|
||||
}
|
||||
|
||||
default List<AdminUserDO> selectListByStatus(Integer status) {
|
||||
return selectList(AdminUserDO::getStatus, status);
|
||||
return selectListByStatusAndDeptId(status, null);
|
||||
}
|
||||
|
||||
default List<AdminUserDO> selectListByStatusAndDeptId(Integer status, Long deptId) {
|
||||
return selectList(new LambdaQueryWrapperX<AdminUserDO>()
|
||||
.eq(AdminUserDO::getStatus, status)
|
||||
.eqIfPresent(AdminUserDO::getDeptId, deptId));
|
||||
}
|
||||
|
||||
default List<AdminUserDO> selectListByDeptIds(Collection<Long> deptIds) {
|
||||
|
||||
+7
-4
@@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
|
||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springframework.lang.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
@@ -214,11 +215,13 @@ public interface AdminUserService {
|
||||
List<AdminUserDO> getUserListByStatus(Integer status);
|
||||
|
||||
/**
|
||||
* 获得指定部门的用户
|
||||
* @param deptIds
|
||||
* @return
|
||||
* 获得指定状态和部门的用户们
|
||||
*
|
||||
* @param status 状态
|
||||
* @param deptId 部门编号,{@code null} 表示不筛选部门
|
||||
* @return 用户们
|
||||
*/
|
||||
List<AdminUserDO> getDeptUsers(Collection<Long> deptIds);
|
||||
List<AdminUserDO> getUserListByStatus(Integer status, @Nullable Long deptId);
|
||||
|
||||
/**
|
||||
* 判断密码是否匹配
|
||||
|
||||
+3
-3
@@ -560,12 +560,12 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
|
||||
@Override
|
||||
public List<AdminUserDO> getUserListByStatus(Integer status) {
|
||||
return userMapper.selectListByStatus(status);
|
||||
return getUserListByStatus(status, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdminUserDO> getDeptUsers(Collection<Long> deptIds) {
|
||||
return userMapper.selectListByDeptIds(deptIds);
|
||||
public List<AdminUserDO> getUserListByStatus(Integer status, Long deptId) {
|
||||
return userMapper.selectListByStatusAndDeptId(status, deptId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+17
@@ -721,6 +721,23 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
||||
assertEquals(user, result.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetUserListByStatusAndDeptId() {
|
||||
// mock 数据
|
||||
AdminUserDO user = randomAdminUserDO(o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus()).setDeptId(1L));
|
||||
userMapper.insert(user);
|
||||
// 测试 status 不匹配
|
||||
userMapper.insert(cloneIgnoreId(user, o -> o.setStatus(CommonStatusEnum.DISABLE.getStatus())));
|
||||
// 测试 deptId 不匹配
|
||||
userMapper.insert(cloneIgnoreId(user, o -> o.setDeptId(2L)));
|
||||
|
||||
// 调用
|
||||
List<AdminUserDO> result = userService.getUserListByStatus(CommonStatusEnum.ENABLE.getStatus(), 1L);
|
||||
// 断言
|
||||
assertEquals(1, result.size());
|
||||
assertEquals(user, result.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testValidateUserList_success() {
|
||||
// mock 数据
|
||||
|
||||
Reference in New Issue
Block a user