Commit 4c3e2bd8155752807868fa906f8eb80eceea6c1b

Authored by YunaiV
1 parent 3e5bd019

1. RoleDO 字段的调整和优化

2. 初始化 Role 模块相关接口的 VO 类
Showing 28 changed files with 397 additions and 390 deletions
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java deleted
1   -package com.ruoyi.web.controller.system;
2   -
3   -import java.util.List;
4   -import org.springframework.beans.factory.annotation.Autowired;
5   -import org.springframework.security.access.prepost.PreAuthorize;
6   -import org.springframework.validation.annotation.Validated;
7   -import org.springframework.web.bind.annotation.DeleteMapping;
8   -import org.springframework.web.bind.annotation.GetMapping;
9   -import org.springframework.web.bind.annotation.PathVariable;
10   -import org.springframework.web.bind.annotation.PostMapping;
11   -import org.springframework.web.bind.annotation.PutMapping;
12   -import org.springframework.web.bind.annotation.RequestBody;
13   -import org.springframework.web.bind.annotation.RequestMapping;
14   -import org.springframework.web.bind.annotation.RestController;
15   -import com.ruoyi.common.annotation.Log;
16   -import com.ruoyi.common.constant.UserConstants;
17   -import com.ruoyi.common.core.controller.BaseController;
18   -import com.ruoyi.common.core.domain.AjaxResult;
19   -import com.ruoyi.common.core.domain.entity.SysRole;
20   -import com.ruoyi.common.core.domain.model.LoginUser;
21   -import com.ruoyi.common.core.page.TableDataInfo;
22   -import com.ruoyi.common.enums.BusinessType;
23   -import com.ruoyi.common.utils.SecurityUtils;
24   -import com.ruoyi.common.utils.ServletUtils;
25   -import com.ruoyi.common.utils.StringUtils;
26   -import com.ruoyi.common.utils.poi.ExcelUtil;
27   -import com.ruoyi.framework.web.service.SysPermissionService;
28   -import com.ruoyi.framework.web.service.TokenService;
29   -import com.ruoyi.system.service.ISysRoleService;
30   -import com.ruoyi.system.service.ISysUserService;
31   -
32   -/**
33   - * 角色信息
34   - *
35   - * @author ruoyi
36   - */
37   -@RestController
38   -@RequestMapping("/system/role")
39   -public class SysRoleController extends BaseController
40   -{
41   - @Autowired
42   - private ISysRoleService roleService;
43   -
44   - @Autowired
45   - private TokenService tokenService;
46   -
47   - @Autowired
48   - private SysPermissionService permissionService;
49   -
50   - @Autowired
51   - private ISysUserService userService;
52   -
53   - @PreAuthorize("@ss.hasPermi('system:role:list')")
54   - @GetMapping("/list")
55   - public TableDataInfo list(SysRole role)
56   - {
57   - startPage();
58   - List<SysRole> list = roleService.selectRoleList(role);
59   - return getDataTable(list);
60   - }
61   -
62   - @Log(title = "角色管理", businessType = BusinessType.EXPORT)
63   - @PreAuthorize("@ss.hasPermi('system:role:export')")
64   - @GetMapping("/export")
65   - public AjaxResult export(SysRole role)
66   - {
67   - List<SysRole> list = roleService.selectRoleList(role);
68   - ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
69   - return util.exportExcel(list, "角色数据");
70   - }
71   -
72   - /**
73   - * 根据角色编号获取详细信息
74   - */
75   - @PreAuthorize("@ss.hasPermi('system:role:query')")
76   - @GetMapping(value = "/{roleId}")
77   - public AjaxResult getInfo(@PathVariable Long roleId)
78   - {
79   - return AjaxResult.success(roleService.selectRoleById(roleId));
80   - }
81   -
82   - /**
83   - * 新增角色
84   - */
85   - @PreAuthorize("@ss.hasPermi('system:role:add')")
86   - @Log(title = "角色管理", businessType = BusinessType.INSERT)
87   - @PostMapping
88   - public AjaxResult add(@Validated @RequestBody SysRole role)
89   - {
90   - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
91   - {
92   - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
93   - }
94   - else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
95   - {
96   - return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
97   - }
98   - role.setCreateBy(SecurityUtils.getUsername());
99   - return toAjax(roleService.insertRole(role));
100   -
101   - }
102   -
103   - /**
104   - * 修改保存角色
105   - */
106   - @PreAuthorize("@ss.hasPermi('system:role:edit')")
107   - @Log(title = "角色管理", businessType = BusinessType.UPDATE)
108   - @PutMapping
109   - public AjaxResult edit(@Validated @RequestBody SysRole role)
110   - {
111   - roleService.checkRoleAllowed(role);
112   - if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
113   - {
114   - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
115   - }
116   - else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
117   - {
118   - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
119   - }
120   - role.setUpdateBy(SecurityUtils.getUsername());
121   -
122   - if (roleService.updateRole(role) > 0)
123   - {
124   - // 更新缓存用户权限
125   - LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
126   - if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
127   - {
128   - loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
129   - loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
130   - tokenService.setLoginUser(loginUser);
131   - }
132   - return AjaxResult.success();
133   - }
134   - return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
135   - }
136   -
137   - /**
138   - * 修改保存数据权限
139   - */
140   - @PreAuthorize("@ss.hasPermi('system:role:edit')")
141   - @Log(title = "角色管理", businessType = BusinessType.UPDATE)
142   - @PutMapping("/dataScope")
143   - public AjaxResult dataScope(@RequestBody SysRole role)
144   - {
145   - roleService.checkRoleAllowed(role);
146   - return toAjax(roleService.authDataScope(role));
147   - }
148   -
149   - /**
150   - * 状态修改
151   - */
152   - @PreAuthorize("@ss.hasPermi('system:role:edit')")
153   - @Log(title = "角色管理", businessType = BusinessType.UPDATE)
154   - @PutMapping("/changeStatus")
155   - public AjaxResult changeStatus(@RequestBody SysRole role)
156   - {
157   - roleService.checkRoleAllowed(role);
158   - role.setUpdateBy(SecurityUtils.getUsername());
159   - return toAjax(roleService.updateRoleStatus(role));
160   - }
161   -
162   - /**
163   - * 删除角色
164   - */
165   - @PreAuthorize("@ss.hasPermi('system:role:remove')")
166   - @Log(title = "角色管理", businessType = BusinessType.DELETE)
167   - @DeleteMapping("/{roleIds}")
168   - public AjaxResult remove(@PathVariable Long[] roleIds)
169   - {
170   - return toAjax(roleService.deleteRoleByIds(roleIds));
171   - }
172   -
173   - /**
174   - * 获取角色选择框列表
175   - */
176   - @PreAuthorize("@ss.hasPermi('system:role:query')")
177   - @GetMapping("/optionselect")
178   - public AjaxResult optionselect()
179   - {
180   - return AjaxResult.success(roleService.selectRoleAll());
181   - }
182   -}
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
... ... @@ -3,6 +3,7 @@ package com.ruoyi.common.core.controller;
3 3 import java.beans.PropertyEditorSupport;
4 4 import java.util.Date;
5 5 import java.util.List;
  6 +
6 7 import org.slf4j.Logger;
7 8 import org.slf4j.LoggerFactory;
8 9 import org.springframework.web.bind.WebDataBinder;
... ... @@ -23,54 +24,21 @@ import com.ruoyi.common.utils.sql.SqlUtil;
23 24 *
24 25 * @author ruoyi
25 26 */
26   -public class BaseController
27   -{
  27 +public class BaseController {
28 28 protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
29 29  
30 30 /**
31 31 * 将前台传递过来的日期格式的字符串,自动转化为Date类型
32 32 */
33 33 @InitBinder
34   - public void initBinder(WebDataBinder binder)
35   - {
  34 + public void initBinder(WebDataBinder binder) {
36 35 // Date 类型转换
37   - binder.registerCustomEditor(Date.class, new PropertyEditorSupport()
38   - {
  36 + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
39 37 @Override
40   - public void setAsText(String text)
41   - {
  38 + public void setAsText(String text) {
42 39 setValue(DateUtils.parseDate(text));
43 40 }
44 41 });
45 42 }
46 43  
47   - /**
48   - * 设置请求分页数据
49   - */
50   - protected void startPage()
51   - {
52   - PageDomain pageDomain = TableSupport.buildPageRequest();
53   - Integer pageNum = pageDomain.getPageNum();
54   - Integer pageSize = pageDomain.getPageSize();
55   - if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
56   - {
57   - String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
58   - PageHelper.startPage(pageNum, pageSize, orderBy);
59   - }
60   - }
61   -
62   - /**
63   - * 响应请求分页数据
64   - */
65   - @SuppressWarnings({ "rawtypes", "unchecked" })
66   - protected TableDataInfo getDataTable(List<?> list)
67   - {
68   - TableDataInfo rspData = new TableDataInfo();
69   - rspData.setCode(HttpStatus.SUCCESS);
70   - rspData.setMsg("查询成功");
71   - rspData.setRows(list);
72   - rspData.setTotal(new PageInfo(list).getTotal());
73   - return rspData;
74   - }
75   -
76 44 }
... ...
ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java deleted
1   -package com.ruoyi.common.core.page;
2   -
3   -import com.ruoyi.common.utils.StringUtils;
4   -
5   -/**
6   - * 分页数据
7   - *
8   - * @author ruoyi
9   - */
10   -public class PageDomain
11   -{
12   - /** 当前记录起始索引 */
13   - private Integer pageNum;
14   -
15   - /** 每页显示记录数 */
16   - private Integer pageSize;
17   -
18   - /** 排序列 */
19   - private String orderByColumn;
20   -
21   - /** 排序的方向desc或者asc */
22   - private String isAsc = "asc";
23   -
24   - public String getOrderBy()
25   - {
26   - if (StringUtils.isEmpty(orderByColumn))
27   - {
28   - return "";
29   - }
30   - return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
31   - }
32   -
33   -}
ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java deleted
1   -package com.ruoyi.common.core.page;
2   -
3   -import java.io.Serializable;
4   -import java.util.List;
5   -
6   -/**
7   - * 表格分页数据对象
8   - *
9   - * @author ruoyi
10   - */
11   -public class TableDataInfo implements Serializable
12   -{
13   - private static final long serialVersionUID = 1L;
14   -
15   - /** 总记录数 */
16   - private long total;
17   -
18   - /** 列表数据 */
19   - private List<?> rows;
20   -
21   - /** 消息状态码 */
22   - private int code;
23   -
24   - /** 消息内容 */
25   - private String msg;
26   -
27   -}
ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java deleted
1   -package com.ruoyi.common.core.page;
2   -
3   -import com.ruoyi.common.utils.ServletUtils;
4   -
5   -/**
6   - * 表格数据处理
7   - *
8   - * @author ruoyi
9   - */
10   -public class TableSupport
11   -{
12   - /**
13   - * 当前记录起始索引
14   - */
15   - public static final String PAGE_NUM = "pageNum";
16   -
17   - /**
18   - * 每页显示记录数
19   - */
20   - public static final String PAGE_SIZE = "pageSize";
21   -
22   - /**
23   - * 排序列
24   - */
25   - public static final String ORDER_BY_COLUMN = "orderByColumn";
26   -
27   - /**
28   - * 排序的方向 "desc" 或者 "asc".
29   - */
30   - public static final String IS_ASC = "isAsc";
31   -
32   -}
src/main/java/cn/iocoder/dashboard/framework/security/core/enums/DataScopeEnum.java 0 → 100644
  1 +package cn.iocoder.dashboard.framework.security.core.enums;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +/**
  7 + * 数据范围枚举类
  8 + *
  9 + * 用于实现数据级别的权限
  10 + *
  11 + * @author 芋道源码
  12 + */
  13 +@Getter
  14 +@AllArgsConstructor
  15 +public enum DataScopeEnum {
  16 +
  17 + ALL(1), // 全部数据权限
  18 + CUSTOM(2), // 自定数据权限
  19 + DEPT(3), // 部门数据权限
  20 + DEPT_AND_CHILD(4), // 部门及以下数据权限
  21 + SELF(5); // 仅本人数据权限
  22 +
  23 + /**
  24 + * 范围
  25 + */
  26 + private final Integer score;
  27 +
  28 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/SysMenuController.java
1 1 package cn.iocoder.dashboard.modules.system.controller.permission;
2 2  
3 3 import cn.iocoder.dashboard.common.pojo.CommonResult;
4   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuCreateReqVO;
5   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuListReqVO;
6   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuRespVO;
7   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuUpdateReqVO;
  4 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;
  5 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuRespVO;
  7 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;
8 8 import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert;
9 9 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
10 10 import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/SysRoleController.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission;
  2 +
  3 +import io.swagger.annotations.Api;
  4 +import org.springframework.web.bind.annotation.RequestMapping;
  5 +import org.springframework.web.bind.annotation.RestController;
  6 +
  7 +@Api(tags = "角色 API")
  8 +@RestController
  9 +@RequestMapping("/system/role")
  10 +public class SysRoleController {
  11 +
  12 +// @PreAuthorize("@ss.hasPermi('system:role:list')")
  13 +// @GetMapping("/list")
  14 +// public TableDataInfo list(SysRole role)
  15 +// {
  16 +// startPage();
  17 +// List<SysRole> list = roleService.selectRoleList(role);
  18 +// return getDataTable(list);
  19 +// }
  20 +//
  21 +// @Log(title = "角色管理", businessType = BusinessType.EXPORT)
  22 +// @PreAuthorize("@ss.hasPermi('system:role:export')")
  23 +// @GetMapping("/export")
  24 +// public AjaxResult export(SysRole role)
  25 +// {
  26 +// List<SysRole> list = roleService.selectRoleList(role);
  27 +// ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
  28 +// return util.exportExcel(list, "角色数据");
  29 +// }
  30 +//
  31 +// /**
  32 +// * 根据角色编号获取详细信息
  33 +// */
  34 +// @PreAuthorize("@ss.hasPermi('system:role:query')")
  35 +// @GetMapping(value = "/{roleId}")
  36 +// public AjaxResult getInfo(@PathVariable Long roleId)
  37 +// {
  38 +// return AjaxResult.success(roleService.selectRoleById(roleId));
  39 +// }
  40 +//
  41 +// /**
  42 +// * 新增角色
  43 +// */
  44 +// @PreAuthorize("@ss.hasPermi('system:role:add')")
  45 +// @Log(title = "角色管理", businessType = BusinessType.INSERT)
  46 +// @PostMapping
  47 +// public AjaxResult add(@Validated @RequestBody SysRole role)
  48 +// {
  49 +// if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
  50 +// {
  51 +// return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
  52 +// }
  53 +// else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
  54 +// {
  55 +// return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
  56 +// }
  57 +// role.setCreateBy(SecurityUtils.getUsername());
  58 +// return toAjax(roleService.insertRole(role));
  59 +//
  60 +// }
  61 +//
  62 +// /**
  63 +// * 修改保存角色
  64 +// */
  65 +// @PreAuthorize("@ss.hasPermi('system:role:edit')")
  66 +// @Log(title = "角色管理", businessType = BusinessType.UPDATE)
  67 +// @PutMapping
  68 +// public AjaxResult edit(@Validated @RequestBody SysRole role)
  69 +// {
  70 +// roleService.checkRoleAllowed(role);
  71 +// if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
  72 +// {
  73 +// return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
  74 +// }
  75 +// else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
  76 +// {
  77 +// return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
  78 +// }
  79 +// role.setUpdateBy(SecurityUtils.getUsername());
  80 +//
  81 +// if (roleService.updateRole(role) > 0)
  82 +// {
  83 +// // 更新缓存用户权限
  84 +// LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
  85 +// if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
  86 +// {
  87 +// loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
  88 +// loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
  89 +// tokenService.setLoginUser(loginUser);
  90 +// }
  91 +// return AjaxResult.success();
  92 +// }
  93 +// return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
  94 +// }
  95 +//
  96 +// /**
  97 +// * 修改保存数据权限
  98 +// */
  99 +// @PreAuthorize("@ss.hasPermi('system:role:edit')")
  100 +// @Log(title = "角色管理", businessType = BusinessType.UPDATE)
  101 +// @PutMapping("/dataScope")
  102 +// public AjaxResult dataScope(@RequestBody SysRole role)
  103 +// {
  104 +// roleService.checkRoleAllowed(role);
  105 +// return toAjax(roleService.authDataScope(role));
  106 +// }
  107 +//
  108 +// /**
  109 +// * 状态修改
  110 +// */
  111 +// @PreAuthorize("@ss.hasPermi('system:role:edit')")
  112 +// @Log(title = "角色管理", businessType = BusinessType.UPDATE)
  113 +// @PutMapping("/changeStatus")
  114 +// public AjaxResult changeStatus(@RequestBody SysRole role)
  115 +// {
  116 +// roleService.checkRoleAllowed(role);
  117 +// role.setUpdateBy(SecurityUtils.getUsername());
  118 +// return toAjax(roleService.updateRoleStatus(role));
  119 +// }
  120 +//
  121 +// /**
  122 +// * 删除角色
  123 +// */
  124 +// @PreAuthorize("@ss.hasPermi('system:role:remove')")
  125 +// @Log(title = "角色管理", businessType = BusinessType.DELETE)
  126 +// @DeleteMapping("/{roleIds}")
  127 +// public AjaxResult remove(@PathVariable Long[] roleIds)
  128 +// {
  129 +// return toAjax(roleService.deleteRoleByIds(roleIds));
  130 +// }
  131 +//
  132 +// /**
  133 +// * 获取角色选择框列表
  134 +// */
  135 +// @PreAuthorize("@ss.hasPermi('system:role:query')")
  136 +// @GetMapping("/optionselect")
  137 +// public AjaxResult optionselect()
  138 +// {
  139 +// return AjaxResult.success(roleService.selectRoleAll());
  140 +// }
  141 +
  142 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/SysMenuBaseVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/menu/SysMenuBaseVO.java
1   -package cn.iocoder.dashboard.modules.system.controller.permission.vo;
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
2 2  
3 3 import io.swagger.annotations.ApiModelProperty;
4 4 import lombok.Data;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/SysMenuCreateReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/menu/SysMenuCreateReqVO.java
1   -package cn.iocoder.dashboard.modules.system.controller.permission.vo;
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import lombok.*;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/SysMenuListReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/menu/SysMenuListReqVO.java
1   -package cn.iocoder.dashboard.modules.system.controller.permission.vo;
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/SysMenuRespVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/menu/SysMenuRespVO.java
1   -package cn.iocoder.dashboard.modules.system.controller.permission.vo;
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/SysMenuUpdateReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/menu/SysMenuUpdateReqVO.java
1   -package cn.iocoder.dashboard.modules.system.controller.permission.vo;
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.menu;
2 2  
3 3 import io.swagger.annotations.ApiModel;
4 4 import io.swagger.annotations.ApiModelProperty;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysMenuPageReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import cn.iocoder.dashboard.common.pojo.PageParam;
  4 +import io.swagger.annotations.ApiModel;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +
  8 +@ApiModel("角色分页 Request VO")
  9 +@Data
  10 +@EqualsAndHashCode(callSuper = true)
  11 +public class SysMenuPageReqVO extends PageParam {
  12 +
  13 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleBaseVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import io.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +
  6 +import javax.validation.constraints.NotBlank;
  7 +import javax.validation.constraints.Size;
  8 +
  9 +/**
  10 + * 角色 Base VO,提供给添加、修改、详细的子 VO 使用
  11 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
  12 + */
  13 +@Data
  14 +public class SysRoleBaseVO {
  15 +
  16 + @ApiModelProperty(value = "角色名称", required = true, example = "管理员")
  17 + @NotBlank(message = "角色名称不能为空")
  18 + @Size(max = 30, message = "角色名称长度不能超过30个字符")
  19 + private String name;
  20 +
  21 + @NotBlank(message = "角色标志不能为空")
  22 + @Size(max = 100, message = "角色标志长度不能超过100个字符")
  23 + @ApiModelProperty(value = "角色编码", required = true, example = "ADMIN")
  24 + private String code;
  25 +
  26 + @ApiModelProperty(value = "显示顺序不能为空", required = true, example = "1024")
  27 + @NotBlank(message = "显示顺序不能为空")
  28 + private String sort;
  29 +
  30 + @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "见 RoleTypeEnum 枚举")
  31 + private Integer type;
  32 +
  33 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleCreateReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import lombok.Data;
  5 +import lombok.EqualsAndHashCode;
  6 +
  7 +@ApiModel("角色创建 Request VO")
  8 +@Data
  9 +@EqualsAndHashCode(callSuper = true)
  10 +public class SysRoleCreateReqVO extends SysRoleBaseVO {
  11 +
  12 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleExcelRespVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import cn.iocoder.dashboard.framework.excel.Excel;
  4 +import lombok.Data;
  5 +
  6 +/**
  7 + * 角色 Excel 导出响应 VO
  8 + */
  9 +@Data
  10 +public class SysRoleExcelRespVO {
  11 +
  12 + @Excel(name = "角色序号", cellType = Excel.ColumnType.NUMERIC)
  13 + private Long id;
  14 +
  15 + @Excel(name = "角色名称")
  16 + private String name;
  17 +
  18 + @Excel(name = "角色标志")
  19 + private String code;
  20 +
  21 + @Excel(name = "角色排序")
  22 + private Integer sort;
  23 +
  24 + @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限")
  25 + private Integer dataScope;
  26 +
  27 + @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
  28 + private String status;
  29 +
  30 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleRespVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.AllArgsConstructor;
  6 +import lombok.Data;
  7 +import lombok.EqualsAndHashCode;
  8 +import lombok.NoArgsConstructor;
  9 +
  10 +import java.util.Date;
  11 +
  12 +@ApiModel("角色信息 Response VO")
  13 +@Data
  14 +@NoArgsConstructor
  15 +@AllArgsConstructor
  16 +@EqualsAndHashCode(callSuper = true)
  17 +public class SysRoleRespVO extends SysRoleBaseVO {
  18 +
  19 + @ApiModelProperty(value = "角色编号", required = true, example = "1")
  20 + private Integer id;
  21 +
  22 + @ApiModelProperty(value = "数据范围", required = true, example = "1", notes = "参见 DataScopeEnum 枚举类")
  23 + private Integer dataScope;
  24 +
  25 + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类")
  26 + private Integer status;
  27 +
  28 + @ApiModelProperty(value = "角色类型", required = true, example = "1", notes = "参见 RoleTypeEnum 枚举类")
  29 + private Integer type;
  30 +
  31 + @ApiModelProperty(value = "备注", example = "我是一个角色")
  32 + private String remark;
  33 +
  34 + @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式")
  35 + private Date createTime;
  36 +
  37 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleUpdateReqVO.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.controller.permission.vo.role;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import io.swagger.annotations.ApiModelProperty;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +
  8 +import javax.validation.constraints.NotNull;
  9 +
  10 +@ApiModel("角色更新 Request VO")
  11 +@Data
  12 +@EqualsAndHashCode(callSuper = true)
  13 +public class SysRoleUpdateReqVO extends SysRoleBaseVO {
  14 +
  15 + @ApiModelProperty(value = "角色编号", required = true, example = "1024")
  16 + @NotNull(message = "角色编号不能为空")
  17 + private Long id;
  18 +
  19 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/convert/auth/SysAuthConvert.java
... ... @@ -26,7 +26,7 @@ public interface SysAuthConvert {
26 26 default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) {
27 27 return SysAuthPermissionInfoRespVO.builder()
28 28 .user(SysAuthPermissionInfoRespVO.UserVO.builder().nickname(user.getNickname()).avatar(user.getAvatar()).build())
29   - .roles(CollectionUtils.convertSet(roleList, SysRoleDO::getRoleKey))
  29 + .roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode))
30 30 .permissions(CollectionUtils.convertSet(menuList, SysMenuDO::getPermission))
31 31 .build();
32 32 }
... ...
src/main/java/cn/iocoder/dashboard/modules/system/convert/permission/SysMenuConvert.java
1 1 package cn.iocoder.dashboard.modules.system.convert.permission;
2 2  
3   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuCreateReqVO;
4   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuRespVO;
5   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuUpdateReqVO;
  3 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;
  4 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuRespVO;
  5 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;
6 6 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
7 7 import org.mapstruct.Mapper;
8 8 import org.mapstruct.factory.Mappers;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/permission/SysMenuMapper.java
1 1 package cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission;
2 2  
3 3 import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX;
4   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuListReqVO;
  4 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
5 5 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
6 6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 7 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/permission/SysRoleDO.java
1 1 package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission;
2 2  
3   -import cn.iocoder.dashboard.framework.excel.Excel;
  3 +import cn.iocoder.dashboard.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
5   -import com.baomidou.mybatisplus.annotation.TableField;
  5 +import cn.iocoder.dashboard.framework.security.core.enums.DataScopeEnum;
  6 +import cn.iocoder.dashboard.modules.system.enums.permission.RoleCodeEnum;
  7 +import cn.iocoder.dashboard.modules.system.enums.permission.RoleTypeEnum;
6 8 import com.baomidou.mybatisplus.annotation.TableId;
7 9 import com.baomidou.mybatisplus.annotation.TableName;
8 10 import lombok.Data;
9 11 import lombok.EqualsAndHashCode;
10 12  
11   -import javax.validation.constraints.NotBlank;
12   -import javax.validation.constraints.Size;
13   -
14 13 /**
15 14 * 角色 DO
16 15 *
... ... @@ -19,79 +18,58 @@ import javax.validation.constraints.Size;
19 18 @TableName("sys_role")
20 19 @Data
21 20 @EqualsAndHashCode(callSuper = true)
22   -// TODO 芋艿:数据库的字段默认值
23 21 public class SysRoleDO extends BaseDO {
24 22  
25 23 /**
26 24 * 角色ID
27 25 */
28 26 @TableId
29   - @Excel(name = "角色序号", cellType = Excel.ColumnType.NUMERIC)
30   - private Long roleId;
31   -
  27 + private Long id;
32 28 /**
33 29 * 角色名称
34 30 */
35   - @Excel(name = "角色名称")
36   - @NotBlank(message = "角色名称不能为空")
37   - @Size(max = 30, message = "角色名称长度不能超过30个字符")
38   - private String roleName;
39   -
  31 + private String name;
40 32 /**
41   - * 角色权限
  33 + * 角色标识
  34 + *
  35 + * 枚举 {@link RoleCodeEnum}
42 36 */
43   - @Excel(name = "角色权限")
44   - @NotBlank(message = "权限字符不能为空")
45   - @Size(max = 100, message = "权限字符长度不能超过100个字符")
46   - private String roleKey;
47   -
  37 + private String code;
48 38 /**
49 39 * 角色排序
50 40 */
51   - @Excel(name = "角色排序")
52   - @NotBlank(message = "显示顺序不能为空")
53   - private Integer roleSort;
54   -
  41 + private Integer sort;
55 42 /**
56   - * 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限)
  43 + * 数据范围
  44 + *
  45 + * 枚举类 {@link DataScopeEnum}
57 46 */
58   - @Excel(name = "数据范围", readConverterExp = "1=所有数据权限,2=自定义数据权限,3=本部门数据权限,4=本部门及以下数据权限")
59   - private String dataScope;
60   -
61   - /**
62   - * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
63   - */
64   - private boolean menuCheckStrictly;
65   -
  47 + private Integer dataScope;
66 48 /**
67   - * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
  49 + * 角色状态
  50 + *
  51 + * 枚举 {@link CommonStatusEnum}
68 52 */
69   - private boolean deptCheckStrictly;
70   -
  53 + private String status;
71 54 /**
72   - * 角色状态(0正常 1停用)
  55 + * 角色类型
  56 + *
  57 + * 枚举 {@link RoleTypeEnum}
73 58 */
74   - @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
75   - private String status;
76   -
77   - // TODO FROM 芋艿:下面的字段,需要忽略
78   -
  59 + private Integer type;
79 60 /**
80   - * 用户是否存在此角色标识 默认不存在
  61 + * 备注
81 62 */
82   - @TableField(exist = false)
83   - private boolean flag = false;
  63 + private String remark;
84 64  
85 65 /**
86   - * 菜单组
  66 + * 菜单树选择项是否关联显示( 0:父子不互相关联显示 1:父子互相关联显示)
87 67 */
88   - @TableField(exist = false)
89   - private Long[] menuIds;
  68 + private boolean menuCheckStrictly;
90 69  
91 70 /**
92   - * 部门组(数据权限)
  71 + * 部门树选择项是否关联显示(0:父子不互相关联显示 1:父子互相关联显示 )
93 72 */
94   - @TableField(exist = false)
95   - private Long[] deptIds;
  73 + private boolean deptCheckStrictly;
96 74  
97 75 }
... ...
src/main/java/cn/iocoder/dashboard/modules/system/enums/permission/RoleKeyEnum.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/enums/permission/RoleCodeEnum.java
... ... @@ -8,7 +8,7 @@ import lombok.Getter;
8 8 */
9 9 @Getter
10 10 @AllArgsConstructor
11   -public enum RoleKeyEnum {
  11 +public enum RoleCodeEnum {
12 12  
13 13 ADMIN("admin"), // 超级管理员
14 14 ;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/enums/permission/RoleTypeEnum.java 0 → 100644
  1 +package cn.iocoder.dashboard.modules.system.enums.permission;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import lombok.Getter;
  5 +
  6 +@Getter
  7 +@AllArgsConstructor
  8 +public enum RoleTypeEnum {
  9 +
  10 + /**
  11 + * 内置角色
  12 + */
  13 + SYSTEM(1),
  14 + /**
  15 + * 自定义角色
  16 + */
  17 + CUSTOM(2);
  18 +
  19 + private final Integer type;
  20 +
  21 +}
... ...
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/SysMenuService.java
1 1 package cn.iocoder.dashboard.modules.system.service.permission;
2 2  
3   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuCreateReqVO;
4   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuListReqVO;
5   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuRespVO;
6   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuUpdateReqVO;
  3 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;
  4 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
  5 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuRespVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;
7 7 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
8 8  
9 9 import java.util.Collection;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java
1 1 package cn.iocoder.dashboard.modules.system.service.permission.impl;
2 2  
3 3 import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil;
4   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuCreateReqVO;
5   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuListReqVO;
6   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuRespVO;
7   -import cn.iocoder.dashboard.modules.system.controller.permission.vo.SysMenuUpdateReqVO;
  4 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuCreateReqVO;
  5 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuListReqVO;
  6 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuRespVO;
  7 +import cn.iocoder.dashboard.modules.system.controller.permission.vo.menu.SysMenuUpdateReqVO;
8 8 import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert;
9 9 import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysMenuMapper;
10 10 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO;
... ...
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java
... ... @@ -3,7 +3,7 @@ package cn.iocoder.dashboard.modules.system.service.permission.impl;
3 3 import cn.hutool.core.collection.CollectionUtil;
4 4 import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysRoleMapper;
5 5 import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysRoleDO;
6   -import cn.iocoder.dashboard.modules.system.enums.permission.RoleKeyEnum;
  6 +import cn.iocoder.dashboard.modules.system.enums.permission.RoleCodeEnum;
7 7 import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService;
8 8 import com.google.common.collect.ImmutableMap;
9 9 import lombok.extern.slf4j.Slf4j;
... ... @@ -29,7 +29,7 @@ public class SysRoleServiceImpl implements SysRoleService {
29 29  
30 30 /**
31 31 * 角色缓存
32   - * key:角色编号 {@link SysRoleDO#getRoleId()}
  32 + * key:角色编号 {@link SysRoleDO#getId()}
33 33 *
34 34 * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向
35 35 */
... ... @@ -45,7 +45,7 @@ public class SysRoleServiceImpl implements SysRoleService {
45 45 List<SysRoleDO> roleDOList = roleMapper.selectList(null);
46 46 // 写入缓存
47 47 ImmutableMap.Builder<Long, SysRoleDO> builder = ImmutableMap.builder();
48   - roleDOList.forEach(sysRoleDO -> builder.put(sysRoleDO.getRoleId(), sysRoleDO));
  48 + roleDOList.forEach(sysRoleDO -> builder.put(sysRoleDO.getId(), sysRoleDO));
49 49 roleCache = builder.build();
50 50 log.info("[init][初始化 Role 数量为 {}]", roleDOList.size());
51 51 }
... ... @@ -55,7 +55,7 @@ public class SysRoleServiceImpl implements SysRoleService {
55 55 if (CollectionUtil.isEmpty(roleIds)) {
56 56 return Collections.emptyList();
57 57 }
58   - return roleCache.values().stream().filter(roleDO -> roleIds.contains(roleDO.getRoleId()))
  58 + return roleCache.values().stream().filter(roleDO -> roleIds.contains(roleDO.getId()))
59 59 .collect(Collectors.toList());
60 60 }
61 61  
... ... @@ -64,7 +64,7 @@ public class SysRoleServiceImpl implements SysRoleService {
64 64 if (CollectionUtil.isEmpty(roleList)) {
65 65 return false;
66 66 }
67   - return roleList.stream().anyMatch(roleDO -> RoleKeyEnum.ADMIN.getKey().equals(roleDO.getRoleKey()));
  67 + return roleList.stream().anyMatch(roleDO -> RoleCodeEnum.ADMIN.getKey().equals(roleDO.getCode()));
68 68 }
69 69  
70 70 }
... ...