src/main/java/com/ruoyi/project/system/controller/SysUserController.java
@@ -202,4 +202,31 @@ user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.updateUserStatus(user)); } /** * 根据用户编号获取授权角色 */ @PreAuthorize("@ss.hasPermi('system:user:query')") @GetMapping("/authRole/{userId}") public AjaxResult authRole(@PathVariable("userId") Long userId) { AjaxResult ajax = AjaxResult.success(); SysUser user = userService.selectUserById(userId); List<SysRole> roles = roleService.selectRolesByUserId(userId); ajax.put("user", user); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); return ajax; } /** * 用户授权角色 */ @PreAuthorize("@ss.hasPermi('system:user:edit')") @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { userService.insertUserAuth(userId, roleIds); return success(); } } src/main/java/com/ruoyi/project/system/service/ISysRoleService.java
@@ -20,7 +20,15 @@ public List<SysRole> selectRoleList(SysRole role); /** * 根据用户ID查询角色 * 根据用户ID查询角色列表 * * @param userId 用户ID * @return 角色列表 */ public List<SysRole> selectRolesByUserId(Long userId); /** * 根据用户ID查询角色权限 * * @param userId 用户ID * @return 权限列表 src/main/java/com/ruoyi/project/system/service/ISysUserService.java
@@ -96,6 +96,14 @@ * @return 结果 */ public int updateUser(SysUser user); /** * 用户授权角色 * * @param userId 用户ID * @param roleIds 角色组 */ public void insertUserAuth(Long userId, Long[] roleIds); /** * 修改用户状态 src/main/java/com/ruoyi/project/system/service/impl/SysRoleServiceImpl.java
@@ -56,6 +56,31 @@ } /** * 根据用户ID查询角色 * * @param userId 用户ID * @return 角色列表 */ @Override public List<SysRole> selectRolesByUserId(Long userId) { List<SysRole> userRoles = roleMapper.selectRolePermissionByUserId(userId); List<SysRole> roles = selectRoleAll(); for (SysRole role : roles) { for (SysRole userRole : userRoles) { if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) { role.setFlag(true); break; } } } return roles; } /** * 根据用户ID查询权限 * * @param userId 用户ID src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java
@@ -243,6 +243,18 @@ } /** * 用户授权角色 * * @param userId 用户ID * @param roleIds 角色组 */ public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 修改用户状态 * * @param user 用户信息 @@ -357,6 +369,32 @@ } /** * 新增用户角色信息 * * @param userId 用户ID * @param roleIds 角色组 */ public void insertUserRole(Long userId, Long[] roleIds) { if (StringUtils.isNotNull(roleIds)) { // 新增用户与角色管理 List<SysUserRole> list = new ArrayList<SysUserRole>(); for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); list.add(ur); } if (list.size() > 0) { userRoleMapper.batchUserRole(list); } } } /** * 通过用户ID删除用户 * * @param userId 用户ID