本文最后更新于 2026年5月22日 晚上
获取用户下拉选项接口的实现
获取用户下拉选项接口的需求
按排序字段降序排列
查询状态正常的用户
超级管理员可以看到全部 普通用户按数据权限限制
要根据不同角色的用户来调整他们能看到的信息
代码实现
在 AdminUserController 中添加接口
1 2 3 4 5 6 7
| @GetMapping("/options") @SystemLog(businessName = "用户下拉选项") @ApiOperation(value = "用户下拉选项", notes = "获取用户下拉数据", response = UserOptionVo.class, responseContainer = "List") public ResponseResult getUserOptions() { return adminUserService.getUserOptions(); }
|
创建 UserOptionVo
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Data @AllArgsConstructor @NoArgsConstructor @ApiModel(description = "用户下拉选项") public class UserOptionVo { @ApiModelProperty(value = "用户ID", example = "1") @JSONField(name = "value") private Long id;
@ApiModelProperty(value = "用户名称", example = "云梦泽") @JSONField(name = "label") private String username; }
|
在 AdminUserServiceImpl 中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| @Override public ResponseResult getUserOptions() { LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
LoginUser loginUser = SecurityUtils.getLoginUser(); Long currentUserId = null; if (loginUser != null) { currentUserId = loginUser.getSysUser().getId(); }
if (!Objects.equals(currentUserId, 1L)) { List<SysRole> roles = sysRoleService.selectRolesByUserId(currentUserId); Integer maxDataScope = roles.stream() .map(SysRole::getDataScope) .filter(Objects::nonNull) .min(Integer::compareTo) .orElse(4);
if (!Objects.equals(maxDataScope, 1)) { if (Objects.equals(maxDataScope, 2)) { List<Long> deptIds = sysDeptService.selectDeptAndChildrenIds(Long.valueOf(loginUser.getSysUser().getDeptId())); queryWrapper.in(SysUser::getDeptId, deptIds.stream().map(String::valueOf).toList()); } else if (Objects.equals(maxDataScope, 3)) { queryWrapper.eq(SysUser::getDeptId, loginUser.getSysUser().getDeptId()); } else if (Objects.equals(maxDataScope, 4)) { queryWrapper.eq(SysUser::getId, currentUserId); } else if (Objects.equals(maxDataScope, 5)) { List<Long> deptIds = new ArrayList<>(); for (SysRole role : roles) { if (Objects.equals(role.getDataScope(), 5)) { LambdaQueryWrapper<com.mengze.domain.entity.SysRoleDept> deptWrapper = new LambdaQueryWrapper<>(); deptWrapper.eq(com.mengze.domain.entity.SysRoleDept::getRoleId, role.getId()) .select(com.mengze.domain.entity.SysRoleDept::getDeptId); List<com.mengze.domain.entity.SysRoleDept> roleDeptList = sysRoleDeptService.list(deptWrapper); deptIds.addAll(roleDeptList.stream().map(com.mengze.domain.entity.SysRoleDept::getDeptId).toList()); } } if (!deptIds.isEmpty()) { queryWrapper.in(SysUser::getDeptId, deptIds.stream().map(String::valueOf).toList()); } } } }
queryWrapper.eq(SysUser::getStatus, SystemConstants.STATUS_NORMAL) .orderByDesc(SysUser::getId);
List<SysUser> users = adminUserService.list(queryWrapper);
List<UserOptionVo> userOptionVos = BeanCopyUtils.copyBeanList(users, UserOptionVo.class);
return ResponseResult.okResult(userOptionVos); }
|
PS:该系列只做为作者学习开发项目做的笔记用
不一定符合读者来学习,仅供参考
预告
后续会记录博客的开发过程
每次学习会做一份笔记来进行发表
“一花一世界,一叶一菩提”
版权所有 © 2026 云梦泽
欢迎访问我的个人网站:https://hgt12.github.io/