update 更新 system 相关表接口 (sys_role) 新增 Bo | Vo 类, 更改请求以及响应参数 ;

This commit is contained in:
zlyx 2023-02-01 20:35:21 +08:00
parent cf42c0253f
commit 7a2075d8f3
12 changed files with 562 additions and 132 deletions

View File

@ -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<SysRole> list(SysRole role, PageQuery pageQuery) {
return roleService.selectPageRoleList(role, pageQuery);
public TableDataInfo<SysRoleVo> 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<SysRole> list = roleService.selectRoleList(role);
ExcelUtil.exportExcel(list, "角色数据", SysRole.class, response);
public void export(SysRoleBo bo, HttpServletResponse response) {
List<SysRoleVo> 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<SysRole> getInfo(@PathVariable Long roleId) {
public R<SysRoleVo> 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<Void> 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<Void> 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<Void> 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<Void> 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<Void> dataScope(@RequestBody SysRole role) {
roleService.checkRoleAllowed(role);
roleService.checkRoleDataScope(role.getRoleId());
return toAjax(roleService.authDataScope(role));
public R<Void> 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<Void> changeStatus(@RequestBody SysRole role) {
roleService.checkRoleAllowed(role);
roleService.checkRoleDataScope(role.getRoleId());
return toAjax(roleService.updateRoleStatus(role));
public R<Void> 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<List<SysRole>> optionselect() {
public R<List<SysRoleVo>> optionselect() {
return R.ok(roleService.selectRoleAll());
}

View File

@ -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<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
userService.checkUserDataScope(userId);
Map<String, Object> ajax = new HashMap<>();
List<SysRole> roles = roleService.selectRoleAll();
List<SysRoleVo> 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<Map<String, Object>> authRole(@PathVariable Long userId) {
SysUser user = userService.selectUserById(userId);
List<SysRole> roles = roleService.selectRolesByUserId(userId);
List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
return R.ok(Map.of(
"user", user,
"roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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<String> permissions;
public boolean isAdmin() {
return UserConstants.SUPER_ADMIN_ID.equals(this.roleId);
}
}

View File

@ -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<SysRoleVo> roles;
/**
* 角色组
*/
private Long[] roleIds;
/**
* 岗位组
*/
private Long[] postIds;
/**
* 数据权限 当前角色ID
*/
private Long roleId;
public boolean isAdmin() {
return UserConstants.SUPER_ADMIN_ID.equals(this.userId);
}
}

View File

@ -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<SysRoleMapper, SysRole, SysRole> {
public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, SysRoleVo> {
@DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id")
})
Page<SysRole> selectPageRoleList(@Param("page") Page<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
Page<SysRoleVo> selectPageRoleList(@Param("page") Page<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
/**
* 根据条件分页查询角色数据
@ -32,7 +33,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, Sy
@DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id")
})
List<SysRole> selectRoleList(@Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
List<SysRoleVo> selectRoleList(@Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
/**
* 根据用户ID查询角色
@ -40,7 +41,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, Sy
* @param userId 用户ID
* @return 角色列表
*/
List<SysRole> selectRolePermissionByUserId(Long userId);
List<SysRoleVo> selectRolePermissionByUserId(Long userId);
/**
@ -57,6 +58,6 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, Sy
* @param userName 用户名
* @return 角色列表
*/
List<SysRole> selectRolesByUserName(String userName);
List<SysRoleVo> selectRolesByUserName(String userName);
}

View File

@ -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<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery);
TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo bo, PageQuery pageQuery);
/**
* 根据条件分页查询角色数据
*
* @param role 角色信息
* @param bo 角色信息
* @return 角色数据集合信息
*/
List<SysRole> selectRoleList(SysRole role);
List<SysRoleVo> selectRoleList(SysRoleBo bo);
/**
* 根据用户ID查询角色列表
@ -32,7 +33,7 @@ public interface ISysRoleService {
* @param userId 用户ID
* @return 角色列表
*/
List<SysRole> selectRolesByUserId(Long userId);
List<SysRoleVo> selectRolesByUserId(Long userId);
/**
* 根据用户ID查询角色权限
@ -47,7 +48,7 @@ public interface ISysRoleService {
*
* @return 角色列表
*/
List<SysRole> selectRoleAll();
List<SysRoleVo> 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删除角色

View File

@ -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<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery) {
Page<SysRole> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
public TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo bo, PageQuery pageQuery) {
Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(bo));
return TableDataInfo.build(page);
}
/**
* 根据条件分页查询角色数据
*
* @param role 角色信息
* @param bo 角色信息
* @return 角色数据集合信息
*/
@Override
public List<SysRole> selectRoleList(SysRole role) {
return baseMapper.selectRoleList(this.buildQueryWrapper(role));
public List<SysRoleVo> selectRoleList(SysRoleBo bo) {
return baseMapper.selectRoleList(this.buildQueryWrapper(bo));
}
private Wrapper<SysRole> buildQueryWrapper(SysRole role) {
Map<String, Object> params = role.getParams();
private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<SysRole> 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<SysRole> selectRolesByUserId(Long userId) {
List<SysRole> userRoles = baseMapper.selectRolePermissionByUserId(userId);
List<SysRole> roles = selectRoleAll();
for (SysRole role : roles) {
for (SysRole userRole : userRoles) {
public List<SysRoleVo> selectRolesByUserId(Long userId) {
List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId);
List<SysRoleVo> 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<String> selectRolePermissionByUserId(Long userId) {
List<SysRole> perms = baseMapper.selectRolePermissionByUserId(userId);
List<SysRoleVo> perms = baseMapper.selectRolePermissionByUserId(userId);
Set<String> 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<SysRole> selectRoleAll() {
return this.selectRoleList(new SysRole());
public List<SysRoleVo> 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<SysRole>()
.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<SysRole>()
.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<SysRole> roles = this.selectRoleList(role);
List<SysRoleVo> 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()));
}

View File

@ -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<SysRole> list = roleMapper.selectRolesByUserName(userName);
List<SysRoleVo> list = roleMapper.selectRolesByUserName(userName);
if (CollUtil.isEmpty(list)) {
return StringUtils.EMPTY;
}
return StreamUtils.join(list, SysRole::getRoleName);
return StreamUtils.join(list, SysRoleVo::getRoleName);
}
/**

View File

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysRoleMapper">
<resultMap type="com.ruoyi.system.domain.SysRole" id="SysRoleResult">
<resultMap type="com.ruoyi.system.domain.vo.SysRoleVo" id="SysRoleResult">
</resultMap>
<sql id="selectRoleVo">