diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java index 0dce18b58..7c975017f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysRoleController.java @@ -13,9 +13,10 @@ import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.SysDept; -import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.bo.SysRoleBo; +import com.ruoyi.system.domain.vo.SysRoleVo; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysUserService; @@ -49,8 +50,8 @@ public class SysRoleController extends BaseController { */ @SaCheckPermission("system:role:list") @GetMapping("/list") - public TableDataInfo list(SysRole role, PageQuery pageQuery) { - return roleService.selectPageRoleList(role, pageQuery); + public TableDataInfo list(SysRoleBo bo, PageQuery pageQuery) { + return roleService.selectPageRoleList(bo, pageQuery); } /** @@ -59,9 +60,9 @@ public class SysRoleController extends BaseController { @Log(title = "角色管理", businessType = BusinessType.EXPORT) @SaCheckPermission("system:role:export") @PostMapping("/export") - public void export(SysRole role, HttpServletResponse response) { - List list = roleService.selectRoleList(role); - ExcelUtil.exportExcel(list, "角色数据", SysRole.class, response); + public void export(SysRoleBo bo, HttpServletResponse response) { + List list = roleService.selectRoleList(bo); + ExcelUtil.exportExcel(list, "角色数据", SysRoleVo.class, response); } /** @@ -71,7 +72,7 @@ public class SysRoleController extends BaseController { */ @SaCheckPermission("system:role:query") @GetMapping(value = "/{roleId}") - public R getInfo(@PathVariable Long roleId) { + public R getInfo(@PathVariable Long roleId) { roleService.checkRoleDataScope(roleId); return R.ok(roleService.selectRoleById(roleId)); } @@ -82,13 +83,13 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:add") @Log(title = "角色管理", businessType = BusinessType.INSERT) @PostMapping - public R add(@Validated @RequestBody SysRole role) { - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + public R add(@Validated @RequestBody SysRoleBo bo) { + if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(bo))) { + return R.fail("新增角色'" + bo.getRoleName() + "'失败,角色名称已存在"); + } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(bo))) { + return R.fail("新增角色'" + bo.getRoleName() + "'失败,角色权限已存在"); } - return toAjax(roleService.insertRole(role)); + return toAjax(roleService.insertRole(bo)); } @@ -98,16 +99,16 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping - public R edit(@Validated @RequestBody SysRole role) { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { - return R.fail("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); - } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { - return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + public R edit(@Validated @RequestBody SysRoleBo bo) { + roleService.checkRoleAllowed(bo); + roleService.checkRoleDataScope(bo.getRoleId()); + if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(bo))) { + return R.fail("修改角色'" + bo.getRoleName() + "'失败,角色名称已存在"); + } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(bo))) { + return R.fail("修改角色'" + bo.getRoleName() + "'失败,角色权限已存在"); } - if (roleService.updateRole(role) > 0) { + if (roleService.updateRole(bo) > 0) { // 更新缓存用户权限 LoginUser loginUser = LoginHelper.getLoginUser(); SysUser sysUser = userService.selectUserById(loginUser.getUserId()); @@ -117,7 +118,7 @@ public class SysRoleController extends BaseController { } return R.ok(); } - return R.fail("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + return R.fail("修改角色'" + bo.getRoleName() + "'失败,请联系管理员"); } /** @@ -126,10 +127,10 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/dataScope") - public R dataScope(@RequestBody SysRole role) { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.authDataScope(role)); + public R dataScope(@RequestBody SysRoleBo bo) { + roleService.checkRoleAllowed(bo); + roleService.checkRoleDataScope(bo.getRoleId()); + return toAjax(roleService.authDataScope(bo)); } /** @@ -138,10 +139,10 @@ public class SysRoleController extends BaseController { @SaCheckPermission("system:role:edit") @Log(title = "角色管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public R changeStatus(@RequestBody SysRole role) { - roleService.checkRoleAllowed(role); - roleService.checkRoleDataScope(role.getRoleId()); - return toAjax(roleService.updateRoleStatus(role)); + public R changeStatus(@RequestBody SysRoleBo bo) { + roleService.checkRoleAllowed(bo); + roleService.checkRoleDataScope(bo.getRoleId()); + return toAjax(roleService.updateRoleStatus(bo)); } /** @@ -161,7 +162,7 @@ public class SysRoleController extends BaseController { */ @SaCheckPermission("system:role:query") @GetMapping("/optionselect") - public R> optionselect() { + public R> optionselect() { return R.ok(roleService.selectRoleAll()); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java index 62687d5aa..55350db9e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysUserController.java @@ -21,6 +21,7 @@ import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.SysDept; import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysUser; +import com.ruoyi.system.domain.vo.SysRoleVo; import com.ruoyi.system.domain.vo.SysUserExportVo; import com.ruoyi.system.domain.vo.SysUserImportVo; import com.ruoyi.system.listener.SysUserImportListener; @@ -111,7 +112,7 @@ public class SysUserController extends BaseController { public R> getInfo(@PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); Map ajax = new HashMap<>(); - List roles = roleService.selectRoleAll(); + List roles = roleService.selectRoleAll(); ajax.put("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())); ajax.put("posts", postService.selectPostAll()); if (ObjectUtil.isNotNull(userId)) { @@ -213,7 +214,7 @@ public class SysUserController extends BaseController { @GetMapping("/authRole/{userId}") public R> authRole(@PathVariable Long userId) { SysUser user = userService.selectUserById(userId); - List roles = roleService.selectRolesByUserId(userId); + List roles = roleService.selectRolesByUserId(userId); return R.ok(Map.of( "user", user, "roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java index 3f85873d3..5c557cc22 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysRole.java @@ -1,18 +1,10 @@ package com.ruoyi.system.domain; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.mybatis.core.domain.BaseEntity; -import com.ruoyi.common.excel.annotation.ExcelDictFormat; -import com.ruoyi.common.excel.convert.ExcelDictConvert; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -29,44 +21,32 @@ import java.util.Set; @NoArgsConstructor @EqualsAndHashCode(callSuper = true) @TableName("sys_role") -@ExcelIgnoreUnannotated public class SysRole extends BaseEntity { /** * 角色ID */ - @ExcelProperty(value = "角色序号") @TableId(value = "role_id") private Long roleId; /** * 角色名称 */ - @ExcelProperty(value = "角色名称") - @NotBlank(message = "角色名称不能为空") - @Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符") private String roleName; /** * 角色权限 */ - @ExcelProperty(value = "角色权限") - @NotBlank(message = "权限字符不能为空") - @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符") private String roleKey; /** * 角色排序 */ - @ExcelProperty(value = "角色排序") - @NotNull(message = "显示顺序不能为空") private Integer roleSort; /** * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限) */ - @ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class) - @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") private String dataScope; /** @@ -82,8 +62,6 @@ public class SysRole extends BaseEntity { /** * 角色状态(0正常 1停用) */ - @ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class) - @ExcelDictFormat(dictType = "sys_normal_disable") private String status; /** @@ -125,7 +103,4 @@ public class SysRole extends BaseEntity { this.roleId = roleId; } - public boolean isAdmin() { - return UserConstants.SUPER_ADMIN_ID.equals(this.roleId); - } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java new file mode 100644 index 000000000..b3d01edb1 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysRoleBo.java @@ -0,0 +1,84 @@ +package com.ruoyi.system.domain.bo; + +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import com.ruoyi.common.mybatis.core.domain.BaseEntity; +import lombok.NoArgsConstructor; + +/** + * 角色信息业务对象 sys_role + * + * @author ruoyi + * @date 2023-02-01 + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysRoleBo extends BaseEntity { + + /** + * 角色ID + */ + @NotNull(message = "角色ID不能为空", groups = { EditGroup.class }) + private Long roleId; + + /** + * 角色名称 + */ + @NotBlank(message = "角色名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符") + private String roleName; + + /** + * 角色权限字符串 + */ + @NotBlank(message = "角色权限字符串不能为空", groups = { AddGroup.class, EditGroup.class }) + @Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符") + private String roleKey; + + /** + * 显示顺序 + */ + @NotNull(message = "显示顺序不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer roleSort; + + /** + * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) + */ + private String dataScope; + + /** + * 菜单树选择项是否关联显示 + */ + private Boolean menuCheckStrictly; + + /** + * 部门树选择项是否关联显示 + */ + private Boolean deptCheckStrictly; + + /** + * 角色状态(0正常 1停用) + */ + private String status; + + /** + * 备注 + */ + private String remark; + + public SysRoleBo(Long roleId) { + this.roleId = roleId; + } + + public boolean isAdmin() { + return UserConstants.SUPER_ADMIN_ID.equals(this.roleId); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java new file mode 100644 index 000000000..c4f8504fc --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/SysUserBo.java @@ -0,0 +1,127 @@ +package com.ruoyi.system.domain.bo; + +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.validate.AddGroup; +import com.ruoyi.common.core.validate.EditGroup; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +import java.util.Date; + +import com.ruoyi.common.mybatis.core.domain.BaseEntity; +import lombok.NoArgsConstructor; + +/** + * 用户信息业务对象 sys_user + * + * @author ruoyi + * @date 2023-02-01 + */ + +@Data +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class SysUserBo extends BaseEntity { + + /** + * 用户ID + */ + @NotNull(message = "用户ID不能为空", groups = { EditGroup.class }) + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + @NotBlank(message = "用户账号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(sys_user系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 密码 + */ + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private String status; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + private Date loginDate; + + /** + * 创建部门 + */ + private Long createDept; + + /** + * 备注 + */ + private String remark; + + /** + * 角色组 + */ + private Long[] roleIds; + + /** + * 岗位组 + */ + private Long[] postIds; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + + public SysUserBo(Long userId) { + this.userId = userId; + } + + public boolean isAdmin() { + return UserConstants.SUPER_ADMIN_ID.equals(this.userId); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java new file mode 100644 index 000000000..e6aff1112 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysRoleVo.java @@ -0,0 +1,104 @@ +package com.ruoyi.system.domain.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.excel.annotation.ExcelDictFormat; +import com.ruoyi.common.excel.convert.ExcelDictConvert; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.Set; + +/** + * 角色信息视图对象 sys_role + * + * @author ruoyi + * @date 2023-02-01 + */ +@Data +@ExcelIgnoreUnannotated +public class SysRoleVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 角色ID + */ + @ExcelProperty(value = "角色序号") + private Long roleId; + + /** + * 角色名称 + */ + @ExcelProperty(value = "角色名称") + private String roleName; + + /** + * 角色权限字符串 + */ + @ExcelProperty(value = "角色权限") + private String roleKey; + + /** + * 显示顺序 + */ + @ExcelProperty(value = "角色排序") + private Integer roleSort; + + /** + * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) + */ + @ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限") + private String dataScope; + + /** + * 菜单树选择项是否关联显示 + */ + @ExcelProperty(value = "菜单树选择项是否关联显示") + private Boolean menuCheckStrictly; + + /** + * 部门树选择项是否关联显示 + */ + @ExcelProperty(value = "部门树选择项是否关联显示") + private Boolean deptCheckStrictly; + + /** + * 角色状态(0正常 1停用) + */ + @ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "sys_normal_disable") + private String status; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 用户是否存在此角色标识 默认不存在 + */ + private boolean flag = false; + + /** + * 角色菜单权限 + */ + private Set permissions; + + public boolean isAdmin() { + return UserConstants.SUPER_ADMIN_ID.equals(this.roleId); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java new file mode 100644 index 000000000..fb7fc0ebe --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysUserVo.java @@ -0,0 +1,128 @@ +package com.ruoyi.system.domain.vo; + +import com.ruoyi.common.core.constant.UserConstants; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * 用户信息视图对象 sys_user + * + * @author ruoyi + * @date 2023-02-01 + */ +@Data +public class SysUserVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private Long userId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 用户账号 + */ + private String userName; + + /** + * 用户昵称 + */ + private String nickName; + + /** + * 用户类型(sys_user系统用户) + */ + private String userType; + + /** + * 用户邮箱 + */ + private String email; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 密码 + */ + private String password; + + /** + * 帐号状态(0正常 1停用) + */ + private String status; + + /** + * 最后登录IP + */ + private String loginIp; + + /** + * 最后登录时间 + */ + private Date loginDate; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 部门对象 + */ + private SysDeptVo dept; + + /** + * 角色对象 + */ + private List roles; + + /** + * 角色组 + */ + private Long[] roleIds; + + /** + * 岗位组 + */ + private Long[] postIds; + + /** + * 数据权限 当前角色ID + */ + private Long roleId; + + public boolean isAdmin() { + return UserConstants.SUPER_ADMIN_ID.equals(this.userId); + } + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index 84e38f09d..c6d0ad4aa 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -7,6 +7,7 @@ import com.ruoyi.common.mybatis.annotation.DataColumn; import com.ruoyi.common.mybatis.annotation.DataPermission; import com.ruoyi.system.domain.SysRole; import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; +import com.ruoyi.system.domain.vo.SysRoleVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,12 +17,12 @@ import java.util.List; * * @author Lion Li */ -public interface SysRoleMapper extends BaseMapperPlus { +public interface SysRoleMapper extends BaseMapperPlus { @DataPermission({ @DataColumn(key = "deptName", value = "d.dept_id") }) - Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 根据条件分页查询角色数据 @@ -32,7 +33,7 @@ public interface SysRoleMapper extends BaseMapperPlus selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + List selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper); /** * 根据用户ID查询角色 @@ -40,7 +41,7 @@ public interface SysRoleMapper extends BaseMapperPlus selectRolePermissionByUserId(Long userId); + List selectRolePermissionByUserId(Long userId); /** @@ -57,6 +58,6 @@ public interface SysRoleMapper extends BaseMapperPlus selectRolesByUserName(String userName); + List selectRolesByUserName(String userName); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index c03be2c0d..eb277edc6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -1,9 +1,10 @@ package com.ruoyi.system.service; import com.ruoyi.common.mybatis.core.page.PageQuery; -import com.ruoyi.system.domain.SysRole; import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.bo.SysRoleBo; +import com.ruoyi.system.domain.vo.SysRoleVo; import java.util.List; import java.util.Set; @@ -16,15 +17,15 @@ import java.util.Set; public interface ISysRoleService { - TableDataInfo selectPageRoleList(SysRole role, PageQuery pageQuery); + TableDataInfo selectPageRoleList(SysRoleBo bo, PageQuery pageQuery); /** * 根据条件分页查询角色数据 * - * @param role 角色信息 + * @param bo 角色信息 * @return 角色数据集合信息 */ - List selectRoleList(SysRole role); + List selectRoleList(SysRoleBo bo); /** * 根据用户ID查询角色列表 @@ -32,7 +33,7 @@ public interface ISysRoleService { * @param userId 用户ID * @return 角色列表 */ - List selectRolesByUserId(Long userId); + List selectRolesByUserId(Long userId); /** * 根据用户ID查询角色权限 @@ -47,7 +48,7 @@ public interface ISysRoleService { * * @return 角色列表 */ - List selectRoleAll(); + List selectRoleAll(); /** * 根据用户ID获取角色选择框列表 @@ -63,30 +64,30 @@ public interface ISysRoleService { * @param roleId 角色ID * @return 角色对象信息 */ - SysRole selectRoleById(Long roleId); + SysRoleVo selectRoleById(Long roleId); /** * 校验角色名称是否唯一 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - String checkRoleNameUnique(SysRole role); + String checkRoleNameUnique(SysRoleBo bo); /** * 校验角色权限是否唯一 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - String checkRoleKeyUnique(SysRole role); + String checkRoleKeyUnique(SysRoleBo bo); /** * 校验角色是否允许操作 * - * @param role 角色信息 + * @param bo 角色信息 */ - void checkRoleAllowed(SysRole role); + void checkRoleAllowed(SysRoleBo bo); /** * 校验角色是否有数据权限 @@ -106,34 +107,34 @@ public interface ISysRoleService { /** * 新增保存角色信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - int insertRole(SysRole role); + int insertRole(SysRoleBo bo); /** * 修改保存角色信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - int updateRole(SysRole role); + int updateRole(SysRoleBo bo); /** * 修改角色状态 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - int updateRoleStatus(SysRole role); + int updateRoleStatus(SysRoleBo bo); /** * 修改数据权限信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ - int authDataScope(SysRole role); + int authDataScope(SysRoleBo bo); /** * 通过角色ID删除角色 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index a8dcdb4c6..264662091 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; @@ -18,6 +19,8 @@ import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.domain.bo.SysRoleBo; +import com.ruoyi.system.domain.vo.SysRoleVo; import com.ruoyi.system.mapper.SysRoleDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; @@ -44,30 +47,30 @@ public class SysRoleServiceImpl implements ISysRoleService { private final SysRoleDeptMapper roleDeptMapper; @Override - public TableDataInfo selectPageRoleList(SysRole role, PageQuery pageQuery) { - Page page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role)); + public TableDataInfo selectPageRoleList(SysRoleBo bo, PageQuery pageQuery) { + Page page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(bo)); return TableDataInfo.build(page); } /** * 根据条件分页查询角色数据 * - * @param role 角色信息 + * @param bo 角色信息 * @return 角色数据集合信息 */ @Override - public List selectRoleList(SysRole role) { - return baseMapper.selectRoleList(this.buildQueryWrapper(role)); + public List selectRoleList(SysRoleBo bo) { + return baseMapper.selectRoleList(this.buildQueryWrapper(bo)); } - private Wrapper buildQueryWrapper(SysRole role) { - Map params = role.getParams(); + private Wrapper buildQueryWrapper(SysRoleBo bo) { + Map params = bo.getParams(); QueryWrapper wrapper = Wrappers.query(); wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL) - .eq(ObjectUtil.isNotNull(role.getRoleId()), "r.role_id", role.getRoleId()) - .like(StringUtils.isNotBlank(role.getRoleName()), "r.role_name", role.getRoleName()) - .eq(StringUtils.isNotBlank(role.getStatus()), "r.status", role.getStatus()) - .like(StringUtils.isNotBlank(role.getRoleKey()), "r.role_key", role.getRoleKey()) + .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId()) + .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName()) + .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus()) + .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey()) .between(params.get("beginTime") != null && params.get("endTime") != null, "r.create_time", params.get("beginTime"), params.get("endTime")) .orderByAsc("r.role_sort"); @@ -81,11 +84,11 @@ public class SysRoleServiceImpl implements ISysRoleService { * @return 角色列表 */ @Override - public List selectRolesByUserId(Long userId) { - List userRoles = baseMapper.selectRolePermissionByUserId(userId); - List roles = selectRoleAll(); - for (SysRole role : roles) { - for (SysRole userRole : userRoles) { + public List selectRolesByUserId(Long userId) { + List userRoles = baseMapper.selectRolePermissionByUserId(userId); + List roles = selectRoleAll(); + for (SysRoleVo role : roles) { + for (SysRoleVo userRole : userRoles) { if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) { role.setFlag(true); break; @@ -103,9 +106,9 @@ public class SysRoleServiceImpl implements ISysRoleService { */ @Override public Set selectRolePermissionByUserId(Long userId) { - List perms = baseMapper.selectRolePermissionByUserId(userId); + List perms = baseMapper.selectRolePermissionByUserId(userId); Set permsSet = new HashSet<>(); - for (SysRole perm : perms) { + for (SysRoleVo perm : perms) { if (ObjectUtil.isNotNull(perm)) { permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); } @@ -119,8 +122,8 @@ public class SysRoleServiceImpl implements ISysRoleService { * @return 角色列表 */ @Override - public List selectRoleAll() { - return this.selectRoleList(new SysRole()); + public List selectRoleAll() { + return this.selectRoleList(new SysRoleBo()); } /** @@ -141,21 +144,21 @@ public class SysRoleServiceImpl implements ISysRoleService { * @return 角色对象信息 */ @Override - public SysRole selectRoleById(Long roleId) { - return baseMapper.selectById(roleId); + public SysRoleVo selectRoleById(Long roleId) { + return baseMapper.selectVoById(roleId); } /** * 校验角色名称是否唯一 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override - public String checkRoleNameUnique(SysRole role) { + public String checkRoleNameUnique(SysRoleBo bo) { boolean exist = baseMapper.exists(new LambdaQueryWrapper() - .eq(SysRole::getRoleName, role.getRoleName()) - .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); + .eq(SysRole::getRoleName, bo.getRoleName()) + .ne(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId())); if (exist) { return UserConstants.NOT_UNIQUE; } @@ -165,14 +168,14 @@ public class SysRoleServiceImpl implements ISysRoleService { /** * 校验角色权限是否唯一 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override - public String checkRoleKeyUnique(SysRole role) { + public String checkRoleKeyUnique(SysRoleBo bo) { boolean exist = baseMapper.exists(new LambdaQueryWrapper() - .eq(SysRole::getRoleKey, role.getRoleKey()) - .ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); + .eq(SysRole::getRoleKey, bo.getRoleKey()) + .ne(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId())); if (exist) { return UserConstants.NOT_UNIQUE; } @@ -182,11 +185,11 @@ public class SysRoleServiceImpl implements ISysRoleService { /** * 校验角色是否允许操作 * - * @param role 角色信息 + * @param bo 角色信息 */ @Override - public void checkRoleAllowed(SysRole role) { - if (ObjectUtil.isNotNull(role.getRoleId()) && role.isAdmin()) { + public void checkRoleAllowed(SysRoleBo bo) { + if (ObjectUtil.isNotNull(bo.getRoleId()) && bo.isAdmin()) { throw new ServiceException("不允许操作超级管理员角色"); } } @@ -199,9 +202,9 @@ public class SysRoleServiceImpl implements ISysRoleService { @Override public void checkRoleDataScope(Long roleId) { if (!LoginHelper.isAdmin()) { - SysRole role = new SysRole(); + SysRoleBo role = new SysRoleBo(); role.setRoleId(roleId); - List roles = this.selectRoleList(role); + List roles = this.selectRoleList(role); if (CollUtil.isEmpty(roles)) { throw new ServiceException("没有权限访问角色数据!"); } @@ -222,12 +225,13 @@ public class SysRoleServiceImpl implements ISysRoleService { /** * 新增保存角色信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int insertRole(SysRole role) { + public int insertRole(SysRoleBo bo) { + SysRole role = BeanUtil.toBean(bo, SysRole.class); // 新增角色信息 baseMapper.insert(role); return insertRoleMenu(role); @@ -236,12 +240,13 @@ public class SysRoleServiceImpl implements ISysRoleService { /** * 修改保存角色信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int updateRole(SysRole role) { + public int updateRole(SysRoleBo bo) { + SysRole role = BeanUtil.toBean(bo, SysRole.class); // 修改角色信息 baseMapper.updateById(role); // 删除角色与菜单关联 @@ -252,23 +257,25 @@ public class SysRoleServiceImpl implements ISysRoleService { /** * 修改角色状态 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override - public int updateRoleStatus(SysRole role) { + public int updateRoleStatus(SysRoleBo bo) { + SysRole role = BeanUtil.toBean(bo, SysRole.class); return baseMapper.updateById(role); } /** * 修改数据权限信息 * - * @param role 角色信息 + * @param bo 角色信息 * @return 结果 */ @Override @Transactional(rollbackFor = Exception.class) - public int authDataScope(SysRole role) { + public int authDataScope(SysRoleBo bo) { + SysRole role = BeanUtil.toBean(bo, SysRole.class); // 修改角色信息 baseMapper.updateById(role); // 删除角色与部门关联 @@ -345,9 +352,9 @@ public class SysRoleServiceImpl implements ISysRoleService { @Transactional(rollbackFor = Exception.class) public int deleteRoleByIds(Long[] roleIds) { for (Long roleId : roleIds) { - checkRoleAllowed(new SysRole(roleId)); + checkRoleAllowed(new SysRoleBo(roleId)); checkRoleDataScope(roleId); - SysRole role = selectRoleById(roleId); + SysRole role = baseMapper.selectById(roleId); if (countUserRoleByRoleId(roleId) > 0) { throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName())); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 8f7295d88..94ddc4a56 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -21,6 +21,7 @@ import com.ruoyi.common.mybatis.helper.DataBaseHelper; import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.vo.SysPostVo; +import com.ruoyi.system.domain.vo.SysRoleVo; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysUserService; import lombok.RequiredArgsConstructor; @@ -165,11 +166,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService { */ @Override public String selectUserRoleGroup(String userName) { - List list = roleMapper.selectRolesByUserName(userName); + List list = roleMapper.selectRolesByUserName(userName); if (CollUtil.isEmpty(list)) { return StringUtils.EMPTY; } - return StreamUtils.join(list, SysRole::getRoleName); + return StreamUtils.join(list, SysRoleVo::getRoleName); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 875352b68..ba2eca96f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - +