From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java | 53 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 37 insertions(+), 16 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java index fdefe42..e1e868a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysUserController.java @@ -8,12 +8,12 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.constant.UserConstants; +import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.model.LoginUser; -import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.encrypt.annotation.ApiEncrypt; import org.dromara.common.excel.core.ExcelResult; import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.log.annotation.Log; @@ -71,9 +71,8 @@ @SaCheckPermission("system:user:export") @PostMapping("/export") public void export(SysUserBo user, HttpServletResponse response) { - List<SysUserVo> list = userService.selectUserList(user); - List<SysUserExportVo> listVo = MapstructUtils.convert(list, SysUserExportVo.class); - ExcelUtil.exportExcel(listVo, "鐢ㄦ埛鏁版嵁", SysUserExportVo.class, response); + List<SysUserExportVo> list = userService.selectUserExportList(user); + ExcelUtil.exportExcel(list, "鐢ㄦ埛鏁版嵁", SysUserExportVo.class, response); } /** @@ -112,6 +111,9 @@ TenantHelper.clearDynamic(); } SysUserVo user = userService.selectUserById(loginUser.getUserId()); + if (ObjectUtil.isNull(user)) { + return R.fail("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁!"); + } userInfoVo.setUser(user); userInfoVo.setPermissions(loginUser.getMenuPermission()); userInfoVo.setRoles(loginUser.getRolePermission()); @@ -126,21 +128,24 @@ @SaCheckPermission("system:user:query") @GetMapping(value = {"/", "/{userId}"}) public R<SysUserInfoVo> getInfo(@PathVariable(value = "userId", required = false) Long userId) { - userService.checkUserDataScope(userId); SysUserInfoVo userInfoVo = new SysUserInfoVo(); - SysRoleBo roleBo = new SysRoleBo(); - roleBo.setStatus(UserConstants.ROLE_NORMAL); - SysPostBo postBo = new SysPostBo(); - postBo.setStatus(UserConstants.POST_NORMAL); - List<SysRoleVo> roles = roleService.selectRoleList(roleBo); - userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); - userInfoVo.setPosts(postService.selectPostList(postBo)); if (ObjectUtil.isNotNull(userId)) { + userService.checkUserDataScope(userId); SysUserVo sysUser = userService.selectUserById(userId); userInfoVo.setUser(sysUser); - userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId)); - userInfoVo.setPostIds(postService.selectPostListByUserId(userId)); + userInfoVo.setRoleIds(roleService.selectRoleListByUserId(userId)); + Long deptId = sysUser.getDeptId(); + if (ObjectUtil.isNotNull(deptId)) { + SysPostBo postBo = new SysPostBo(); + postBo.setDeptId(deptId); + userInfoVo.setPosts(postService.selectPostList(postBo)); + userInfoVo.setPostIds(postService.selectPostListByUserId(userId)); + } } + SysRoleBo roleBo = new SysRoleBo(); + roleBo.setStatus(SystemConstants.NORMAL); + List<SysRoleVo> roles = roleService.selectRoleList(roleBo); + userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); return R.ok(userInfoVo); } @@ -204,8 +209,22 @@ } /** + * 鏍规嵁鐢ㄦ埛ID涓叉壒閲忚幏鍙栫敤鎴峰熀纭�淇℃伅 + * + * @param userIds 鐢ㄦ埛ID涓� + * @param deptId 閮ㄩ棬ID + */ + @SaCheckPermission("system:user:query") + @GetMapping("/optionselect") + public R<List<SysUserVo>> optionselect(@RequestParam(required = false) Long[] userIds, + @RequestParam(required = false) Long deptId) { + return R.ok(userService.selectUserByIds(ArrayUtil.isEmpty(userIds) ? null : List.of(userIds), deptId)); + } + + /** * 閲嶇疆瀵嗙爜 */ + @ApiEncrypt @SaCheckPermission("system:user:resetPwd") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") @@ -236,8 +255,9 @@ @SaCheckPermission("system:user:query") @GetMapping("/authRole/{userId}") public R<SysUserInfoVo> authRole(@PathVariable Long userId) { + userService.checkUserDataScope(userId); SysUserVo user = userService.selectUserById(userId); - List<SysRoleVo> roles = roleService.selectRolesByUserId(userId); + List<SysRoleVo> roles = roleService.selectRolesAuthByUserId(userId); SysUserInfoVo userInfoVo = new SysUserInfoVo(); userInfoVo.setUser(user); userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin())); @@ -276,4 +296,5 @@ public R<List<SysUserVo>> listByDept(@PathVariable @NotNull Long deptId) { return R.ok(userService.selectUserListByDept(deptId)); } + } -- Gitblit v1.9.3