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.mybatis.core.page.TableDataInfo;
import com.ruoyi.common.satoken.utils.LoginHelper; import com.ruoyi.common.satoken.utils.LoginHelper;
import com.ruoyi.system.domain.SysDept; import com.ruoyi.system.domain.SysDept;
import com.ruoyi.system.domain.SysRole;
import com.ruoyi.system.domain.SysUser; import com.ruoyi.system.domain.SysUser;
import com.ruoyi.system.domain.SysUserRole; 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.ISysDeptService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
@ -49,8 +50,8 @@ public class SysRoleController extends BaseController {
*/ */
@SaCheckPermission("system:role:list") @SaCheckPermission("system:role:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<SysRole> list(SysRole role, PageQuery pageQuery) { public TableDataInfo<SysRoleVo> list(SysRoleBo bo, PageQuery pageQuery) {
return roleService.selectPageRoleList(role, pageQuery); return roleService.selectPageRoleList(bo, pageQuery);
} }
/** /**
@ -59,9 +60,9 @@ public class SysRoleController extends BaseController {
@Log(title = "角色管理", businessType = BusinessType.EXPORT) @Log(title = "角色管理", businessType = BusinessType.EXPORT)
@SaCheckPermission("system:role:export") @SaCheckPermission("system:role:export")
@PostMapping("/export") @PostMapping("/export")
public void export(SysRole role, HttpServletResponse response) { public void export(SysRoleBo bo, HttpServletResponse response) {
List<SysRole> list = roleService.selectRoleList(role); List<SysRoleVo> list = roleService.selectRoleList(bo);
ExcelUtil.exportExcel(list, "角色数据", SysRole.class, response); ExcelUtil.exportExcel(list, "角色数据", SysRoleVo.class, response);
} }
/** /**
@ -71,7 +72,7 @@ public class SysRoleController extends BaseController {
*/ */
@SaCheckPermission("system:role:query") @SaCheckPermission("system:role:query")
@GetMapping(value = "/{roleId}") @GetMapping(value = "/{roleId}")
public R<SysRole> getInfo(@PathVariable Long roleId) { public R<SysRoleVo> getInfo(@PathVariable Long roleId) {
roleService.checkRoleDataScope(roleId); roleService.checkRoleDataScope(roleId);
return R.ok(roleService.selectRoleById(roleId)); return R.ok(roleService.selectRoleById(roleId));
} }
@ -82,13 +83,13 @@ public class SysRoleController extends BaseController {
@SaCheckPermission("system:role:add") @SaCheckPermission("system:role:add")
@Log(title = "角色管理", businessType = BusinessType.INSERT) @Log(title = "角色管理", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public R<Void> add(@Validated @RequestBody SysRole role) { public R<Void> add(@Validated @RequestBody SysRoleBo bo) {
if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(bo))) {
return R.fail("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); return R.fail("新增角色'" + bo.getRoleName() + "'失败,角色名称已存在");
} else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(bo))) {
return R.fail("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); 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") @SaCheckPermission("system:role:edit")
@Log(title = "角色管理", businessType = BusinessType.UPDATE) @Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public R<Void> edit(@Validated @RequestBody SysRole role) { public R<Void> edit(@Validated @RequestBody SysRoleBo bo) {
roleService.checkRoleAllowed(role); roleService.checkRoleAllowed(bo);
roleService.checkRoleDataScope(role.getRoleId()); roleService.checkRoleDataScope(bo.getRoleId());
if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role))) { if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(bo))) {
return R.fail("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); return R.fail("修改角色'" + bo.getRoleName() + "'失败,角色名称已存在");
} else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role))) { } else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(bo))) {
return R.fail("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); return R.fail("修改角色'" + bo.getRoleName() + "'失败,角色权限已存在");
} }
if (roleService.updateRole(role) > 0) { if (roleService.updateRole(bo) > 0) {
// 更新缓存用户权限 // 更新缓存用户权限
LoginUser loginUser = LoginHelper.getLoginUser(); LoginUser loginUser = LoginHelper.getLoginUser();
SysUser sysUser = userService.selectUserById(loginUser.getUserId()); SysUser sysUser = userService.selectUserById(loginUser.getUserId());
@ -117,7 +118,7 @@ public class SysRoleController extends BaseController {
} }
return R.ok(); 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") @SaCheckPermission("system:role:edit")
@Log(title = "角色管理", businessType = BusinessType.UPDATE) @Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping("/dataScope") @PutMapping("/dataScope")
public R<Void> dataScope(@RequestBody SysRole role) { public R<Void> dataScope(@RequestBody SysRoleBo bo) {
roleService.checkRoleAllowed(role); roleService.checkRoleAllowed(bo);
roleService.checkRoleDataScope(role.getRoleId()); roleService.checkRoleDataScope(bo.getRoleId());
return toAjax(roleService.authDataScope(role)); return toAjax(roleService.authDataScope(bo));
} }
/** /**
@ -138,10 +139,10 @@ public class SysRoleController extends BaseController {
@SaCheckPermission("system:role:edit") @SaCheckPermission("system:role:edit")
@Log(title = "角色管理", businessType = BusinessType.UPDATE) @Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus") @PutMapping("/changeStatus")
public R<Void> changeStatus(@RequestBody SysRole role) { public R<Void> changeStatus(@RequestBody SysRoleBo bo) {
roleService.checkRoleAllowed(role); roleService.checkRoleAllowed(bo);
roleService.checkRoleDataScope(role.getRoleId()); roleService.checkRoleDataScope(bo.getRoleId());
return toAjax(roleService.updateRoleStatus(role)); return toAjax(roleService.updateRoleStatus(bo));
} }
/** /**
@ -161,7 +162,7 @@ public class SysRoleController extends BaseController {
*/ */
@SaCheckPermission("system:role:query") @SaCheckPermission("system:role:query")
@GetMapping("/optionselect") @GetMapping("/optionselect")
public R<List<SysRole>> optionselect() { public R<List<SysRoleVo>> optionselect() {
return R.ok(roleService.selectRoleAll()); 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.SysDept;
import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRole;
import com.ruoyi.system.domain.SysUser; 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.SysUserExportVo;
import com.ruoyi.system.domain.vo.SysUserImportVo; import com.ruoyi.system.domain.vo.SysUserImportVo;
import com.ruoyi.system.listener.SysUserImportListener; 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) { public R<Map<String, Object>> getInfo(@PathVariable(value = "userId", required = false) Long userId) {
userService.checkUserDataScope(userId); userService.checkUserDataScope(userId);
Map<String, Object> ajax = new HashMap<>(); 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("roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()));
ajax.put("posts", postService.selectPostAll()); ajax.put("posts", postService.selectPostAll());
if (ObjectUtil.isNotNull(userId)) { if (ObjectUtil.isNotNull(userId)) {
@ -213,7 +214,7 @@ public class SysUserController extends BaseController {
@GetMapping("/authRole/{userId}") @GetMapping("/authRole/{userId}")
public R<Map<String, Object>> authRole(@PathVariable Long userId) { public R<Map<String, Object>> authRole(@PathVariable Long userId) {
SysUser user = userService.selectUserById(userId); SysUser user = userService.selectUserById(userId);
List<SysRole> roles = roleService.selectRolesByUserId(userId); List<SysRoleVo> roles = roleService.selectRolesByUserId(userId);
return R.ok(Map.of( return R.ok(Map.of(
"user", user, "user", user,
"roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin()) "roles", LoginHelper.isAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isAdmin())

View File

@ -1,18 +1,10 @@
package com.ruoyi.system.domain; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; 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.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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -29,44 +21,32 @@ import java.util.Set;
@NoArgsConstructor @NoArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("sys_role") @TableName("sys_role")
@ExcelIgnoreUnannotated
public class SysRole extends BaseEntity { public class SysRole extends BaseEntity {
/** /**
* 角色ID * 角色ID
*/ */
@ExcelProperty(value = "角色序号")
@TableId(value = "role_id") @TableId(value = "role_id")
private Long roleId; private Long roleId;
/** /**
* 角色名称 * 角色名称
*/ */
@ExcelProperty(value = "角色名称")
@NotBlank(message = "角色名称不能为空")
@Size(min = 0, max = 30, message = "角色名称长度不能超过{max}个字符")
private String roleName; private String roleName;
/** /**
* 角色权限 * 角色权限
*/ */
@ExcelProperty(value = "角色权限")
@NotBlank(message = "权限字符不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过{max}个字符")
private String roleKey; private String roleKey;
/** /**
* 角色排序 * 角色排序
*/ */
@ExcelProperty(value = "角色排序")
@NotNull(message = "显示顺序不能为空")
private Integer roleSort; private Integer roleSort;
/** /**
* 数据范围1所有数据权限2自定义数据权限3本部门数据权限4本部门及以下数据权限5仅本人数据权限 * 数据范围1所有数据权限2自定义数据权限3本部门数据权限4本部门及以下数据权限5仅本人数据权限
*/ */
@ExcelProperty(value = "数据范围", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限,5=仅本人数据权限")
private String dataScope; private String dataScope;
/** /**
@ -82,8 +62,6 @@ public class SysRole extends BaseEntity {
/** /**
* 角色状态0正常 1停用 * 角色状态0正常 1停用
*/ */
@ExcelProperty(value = "角色状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "sys_normal_disable")
private String status; private String status;
/** /**
@ -125,7 +103,4 @@ public class SysRole extends BaseEntity {
this.roleId = roleId; 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.common.mybatis.annotation.DataPermission;
import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRole;
import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus; import com.ruoyi.common.mybatis.core.mapper.BaseMapperPlus;
import com.ruoyi.system.domain.vo.SysRoleVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -16,12 +17,12 @@ import java.util.List;
* *
* @author Lion Li * @author Lion Li
*/ */
public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, SysRole> { public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, SysRoleVo> {
@DataPermission({ @DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id") @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({ @DataPermission({
@DataColumn(key = "deptName", value = "d.dept_id") @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查询角色 * 根据用户ID查询角色
@ -40,7 +41,7 @@ public interface SysRoleMapper extends BaseMapperPlus<SysRoleMapper, SysRole, Sy
* @param userId 用户ID * @param userId 用户ID
* @return 角色列表 * @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 用户名 * @param userName 用户名
* @return 角色列表 * @return 角色列表
*/ */
List<SysRole> selectRolesByUserName(String userName); List<SysRoleVo> selectRolesByUserName(String userName);
} }

View File

@ -1,9 +1,10 @@
package com.ruoyi.system.service; package com.ruoyi.system.service;
import com.ruoyi.common.mybatis.core.page.PageQuery; 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.common.mybatis.core.page.TableDataInfo;
import com.ruoyi.system.domain.SysUserRole; 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.List;
import java.util.Set; import java.util.Set;
@ -16,15 +17,15 @@ import java.util.Set;
public interface ISysRoleService { public interface ISysRoleService {
TableDataInfo<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery); TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo bo, PageQuery pageQuery);
/** /**
* 根据条件分页查询角色数据 * 根据条件分页查询角色数据
* *
* @param role 角色信息 * @param bo 角色信息
* @return 角色数据集合信息 * @return 角色数据集合信息
*/ */
List<SysRole> selectRoleList(SysRole role); List<SysRoleVo> selectRoleList(SysRoleBo bo);
/** /**
* 根据用户ID查询角色列表 * 根据用户ID查询角色列表
@ -32,7 +33,7 @@ public interface ISysRoleService {
* @param userId 用户ID * @param userId 用户ID
* @return 角色列表 * @return 角色列表
*/ */
List<SysRole> selectRolesByUserId(Long userId); List<SysRoleVo> selectRolesByUserId(Long userId);
/** /**
* 根据用户ID查询角色权限 * 根据用户ID查询角色权限
@ -47,7 +48,7 @@ public interface ISysRoleService {
* *
* @return 角色列表 * @return 角色列表
*/ */
List<SysRole> selectRoleAll(); List<SysRoleVo> selectRoleAll();
/** /**
* 根据用户ID获取角色选择框列表 * 根据用户ID获取角色选择框列表
@ -63,30 +64,30 @@ public interface ISysRoleService {
* @param roleId 角色ID * @param roleId 角色ID
* @return 角色对象信息 * @return 角色对象信息
*/ */
SysRole selectRoleById(Long roleId); SysRoleVo selectRoleById(Long roleId);
/** /**
* 校验角色名称是否唯一 * 校验角色名称是否唯一
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
String checkRoleNameUnique(SysRole role); String checkRoleNameUnique(SysRoleBo bo);
/** /**
* 校验角色权限是否唯一 * 校验角色权限是否唯一
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @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 结果 * @return 结果
*/ */
int insertRole(SysRole role); int insertRole(SysRoleBo bo);
/** /**
* 修改保存角色信息 * 修改保存角色信息
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
int updateRole(SysRole role); int updateRole(SysRoleBo bo);
/** /**
* 修改角色状态 * 修改角色状态
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
int updateRoleStatus(SysRole role); int updateRoleStatus(SysRoleBo bo);
/** /**
* 修改数据权限信息 * 修改数据权限信息
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
int authDataScope(SysRole role); int authDataScope(SysRoleBo bo);
/** /**
* 通过角色ID删除角色 * 通过角色ID删除角色

View File

@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper; 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.SysRoleDept;
import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysRoleMenu;
import com.ruoyi.system.domain.SysUserRole; 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.SysRoleDeptMapper;
import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper;
@ -44,30 +47,30 @@ public class SysRoleServiceImpl implements ISysRoleService {
private final SysRoleDeptMapper roleDeptMapper; private final SysRoleDeptMapper roleDeptMapper;
@Override @Override
public TableDataInfo<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery) { public TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo bo, PageQuery pageQuery) {
Page<SysRole> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role)); Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(bo));
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
/** /**
* 根据条件分页查询角色数据 * 根据条件分页查询角色数据
* *
* @param role 角色信息 * @param bo 角色信息
* @return 角色数据集合信息 * @return 角色数据集合信息
*/ */
@Override @Override
public List<SysRole> selectRoleList(SysRole role) { public List<SysRoleVo> selectRoleList(SysRoleBo bo) {
return baseMapper.selectRoleList(this.buildQueryWrapper(role)); return baseMapper.selectRoleList(this.buildQueryWrapper(bo));
} }
private Wrapper<SysRole> buildQueryWrapper(SysRole role) { private Wrapper<SysRole> buildQueryWrapper(SysRoleBo bo) {
Map<String, Object> params = role.getParams(); Map<String, Object> params = bo.getParams();
QueryWrapper<SysRole> wrapper = Wrappers.query(); QueryWrapper<SysRole> wrapper = Wrappers.query();
wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL) wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL)
.eq(ObjectUtil.isNotNull(role.getRoleId()), "r.role_id", role.getRoleId()) .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId())
.like(StringUtils.isNotBlank(role.getRoleName()), "r.role_name", role.getRoleName()) .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName())
.eq(StringUtils.isNotBlank(role.getStatus()), "r.status", role.getStatus()) .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus())
.like(StringUtils.isNotBlank(role.getRoleKey()), "r.role_key", role.getRoleKey()) .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey())
.between(params.get("beginTime") != null && params.get("endTime") != null, .between(params.get("beginTime") != null && params.get("endTime") != null,
"r.create_time", params.get("beginTime"), params.get("endTime")) "r.create_time", params.get("beginTime"), params.get("endTime"))
.orderByAsc("r.role_sort"); .orderByAsc("r.role_sort");
@ -81,11 +84,11 @@ public class SysRoleServiceImpl implements ISysRoleService {
* @return 角色列表 * @return 角色列表
*/ */
@Override @Override
public List<SysRole> selectRolesByUserId(Long userId) { public List<SysRoleVo> selectRolesByUserId(Long userId) {
List<SysRole> userRoles = baseMapper.selectRolePermissionByUserId(userId); List<SysRoleVo> userRoles = baseMapper.selectRolePermissionByUserId(userId);
List<SysRole> roles = selectRoleAll(); List<SysRoleVo> roles = selectRoleAll();
for (SysRole role : roles) { for (SysRoleVo role : roles) {
for (SysRole userRole : userRoles) { for (SysRoleVo userRole : userRoles) {
if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) { if (role.getRoleId().longValue() == userRole.getRoleId().longValue()) {
role.setFlag(true); role.setFlag(true);
break; break;
@ -103,9 +106,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
*/ */
@Override @Override
public Set<String> selectRolePermissionByUserId(Long userId) { public Set<String> selectRolePermissionByUserId(Long userId) {
List<SysRole> perms = baseMapper.selectRolePermissionByUserId(userId); List<SysRoleVo> perms = baseMapper.selectRolePermissionByUserId(userId);
Set<String> permsSet = new HashSet<>(); Set<String> permsSet = new HashSet<>();
for (SysRole perm : perms) { for (SysRoleVo perm : perms) {
if (ObjectUtil.isNotNull(perm)) { if (ObjectUtil.isNotNull(perm)) {
permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(","))); permsSet.addAll(Arrays.asList(perm.getRoleKey().trim().split(",")));
} }
@ -119,8 +122,8 @@ public class SysRoleServiceImpl implements ISysRoleService {
* @return 角色列表 * @return 角色列表
*/ */
@Override @Override
public List<SysRole> selectRoleAll() { public List<SysRoleVo> selectRoleAll() {
return this.selectRoleList(new SysRole()); return this.selectRoleList(new SysRoleBo());
} }
/** /**
@ -141,21 +144,21 @@ public class SysRoleServiceImpl implements ISysRoleService {
* @return 角色对象信息 * @return 角色对象信息
*/ */
@Override @Override
public SysRole selectRoleById(Long roleId) { public SysRoleVo selectRoleById(Long roleId) {
return baseMapper.selectById(roleId); return baseMapper.selectVoById(roleId);
} }
/** /**
* 校验角色名称是否唯一 * 校验角色名称是否唯一
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public String checkRoleNameUnique(SysRole role) { public String checkRoleNameUnique(SysRoleBo bo) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
.eq(SysRole::getRoleName, role.getRoleName()) .eq(SysRole::getRoleName, bo.getRoleName())
.ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); .ne(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId()));
if (exist) { if (exist) {
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }
@ -165,14 +168,14 @@ public class SysRoleServiceImpl implements ISysRoleService {
/** /**
* 校验角色权限是否唯一 * 校验角色权限是否唯一
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public String checkRoleKeyUnique(SysRole role) { public String checkRoleKeyUnique(SysRoleBo bo) {
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>() boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysRole>()
.eq(SysRole::getRoleKey, role.getRoleKey()) .eq(SysRole::getRoleKey, bo.getRoleKey())
.ne(ObjectUtil.isNotNull(role.getRoleId()), SysRole::getRoleId, role.getRoleId())); .ne(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId()));
if (exist) { if (exist) {
return UserConstants.NOT_UNIQUE; return UserConstants.NOT_UNIQUE;
} }
@ -182,11 +185,11 @@ public class SysRoleServiceImpl implements ISysRoleService {
/** /**
* 校验角色是否允许操作 * 校验角色是否允许操作
* *
* @param role 角色信息 * @param bo 角色信息
*/ */
@Override @Override
public void checkRoleAllowed(SysRole role) { public void checkRoleAllowed(SysRoleBo bo) {
if (ObjectUtil.isNotNull(role.getRoleId()) && role.isAdmin()) { if (ObjectUtil.isNotNull(bo.getRoleId()) && bo.isAdmin()) {
throw new ServiceException("不允许操作超级管理员角色"); throw new ServiceException("不允许操作超级管理员角色");
} }
} }
@ -199,9 +202,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Override @Override
public void checkRoleDataScope(Long roleId) { public void checkRoleDataScope(Long roleId) {
if (!LoginHelper.isAdmin()) { if (!LoginHelper.isAdmin()) {
SysRole role = new SysRole(); SysRoleBo role = new SysRoleBo();
role.setRoleId(roleId); role.setRoleId(roleId);
List<SysRole> roles = this.selectRoleList(role); List<SysRoleVo> roles = this.selectRoleList(role);
if (CollUtil.isEmpty(roles)) { if (CollUtil.isEmpty(roles)) {
throw new ServiceException("没有权限访问角色数据!"); throw new ServiceException("没有权限访问角色数据!");
} }
@ -222,12 +225,13 @@ public class SysRoleServiceImpl implements ISysRoleService {
/** /**
* 新增保存角色信息 * 新增保存角色信息
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int insertRole(SysRole role) { public int insertRole(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class);
// 新增角色信息 // 新增角色信息
baseMapper.insert(role); baseMapper.insert(role);
return insertRoleMenu(role); return insertRoleMenu(role);
@ -236,12 +240,13 @@ public class SysRoleServiceImpl implements ISysRoleService {
/** /**
* 修改保存角色信息 * 修改保存角色信息
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateRole(SysRole role) { public int updateRole(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class);
// 修改角色信息 // 修改角色信息
baseMapper.updateById(role); baseMapper.updateById(role);
// 删除角色与菜单关联 // 删除角色与菜单关联
@ -252,23 +257,25 @@ public class SysRoleServiceImpl implements ISysRoleService {
/** /**
* 修改角色状态 * 修改角色状态
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
public int updateRoleStatus(SysRole role) { public int updateRoleStatus(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class);
return baseMapper.updateById(role); return baseMapper.updateById(role);
} }
/** /**
* 修改数据权限信息 * 修改数据权限信息
* *
* @param role 角色信息 * @param bo 角色信息
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int authDataScope(SysRole role) { public int authDataScope(SysRoleBo bo) {
SysRole role = BeanUtil.toBean(bo, SysRole.class);
// 修改角色信息 // 修改角色信息
baseMapper.updateById(role); baseMapper.updateById(role);
// 删除角色与部门关联 // 删除角色与部门关联
@ -345,9 +352,9 @@ public class SysRoleServiceImpl implements ISysRoleService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int deleteRoleByIds(Long[] roleIds) { public int deleteRoleByIds(Long[] roleIds) {
for (Long roleId : roleIds) { for (Long roleId : roleIds) {
checkRoleAllowed(new SysRole(roleId)); checkRoleAllowed(new SysRoleBo(roleId));
checkRoleDataScope(roleId); checkRoleDataScope(roleId);
SysRole role = selectRoleById(roleId); SysRole role = baseMapper.selectById(roleId);
if (countUserRoleByRoleId(roleId) > 0) { if (countUserRoleByRoleId(roleId) > 0) {
throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName())); 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.common.satoken.utils.LoginHelper;
import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.vo.SysPostVo; import com.ruoyi.system.domain.vo.SysPostVo;
import com.ruoyi.system.domain.vo.SysRoleVo;
import com.ruoyi.system.mapper.*; import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -165,11 +166,11 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
*/ */
@Override @Override
public String selectUserRoleGroup(String userName) { public String selectUserRoleGroup(String userName) {
List<SysRole> list = roleMapper.selectRolesByUserName(userName); List<SysRoleVo> list = roleMapper.selectRolesByUserName(userName);
if (CollUtil.isEmpty(list)) { if (CollUtil.isEmpty(list)) {
return StringUtils.EMPTY; 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"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysRoleMapper"> <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> </resultMap>
<sql id="selectRoleVo"> <sql id="selectRoleVo">