Commit 4c3e2bd8155752807868fa906f8eb80eceea6c1b
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,6 +3,7 @@ package com.ruoyi.common.core.controller; | ||
| 3 | import java.beans.PropertyEditorSupport; | 3 | import java.beans.PropertyEditorSupport; |
| 4 | import java.util.Date; | 4 | import java.util.Date; |
| 5 | import java.util.List; | 5 | import java.util.List; |
| 6 | + | ||
| 6 | import org.slf4j.Logger; | 7 | import org.slf4j.Logger; |
| 7 | import org.slf4j.LoggerFactory; | 8 | import org.slf4j.LoggerFactory; |
| 8 | import org.springframework.web.bind.WebDataBinder; | 9 | import org.springframework.web.bind.WebDataBinder; |
| @@ -23,54 +24,21 @@ import com.ruoyi.common.utils.sql.SqlUtil; | @@ -23,54 +24,21 @@ import com.ruoyi.common.utils.sql.SqlUtil; | ||
| 23 | * | 24 | * |
| 24 | * @author ruoyi | 25 | * @author ruoyi |
| 25 | */ | 26 | */ |
| 26 | -public class BaseController | ||
| 27 | -{ | 27 | +public class BaseController { |
| 28 | protected final Logger logger = LoggerFactory.getLogger(BaseController.class); | 28 | protected final Logger logger = LoggerFactory.getLogger(BaseController.class); |
| 29 | 29 | ||
| 30 | /** | 30 | /** |
| 31 | * 将前台传递过来的日期格式的字符串,自动转化为Date类型 | 31 | * 将前台传递过来的日期格式的字符串,自动转化为Date类型 |
| 32 | */ | 32 | */ |
| 33 | @InitBinder | 33 | @InitBinder |
| 34 | - public void initBinder(WebDataBinder binder) | ||
| 35 | - { | 34 | + public void initBinder(WebDataBinder binder) { |
| 36 | // Date 类型转换 | 35 | // Date 类型转换 |
| 37 | - binder.registerCustomEditor(Date.class, new PropertyEditorSupport() | ||
| 38 | - { | 36 | + binder.registerCustomEditor(Date.class, new PropertyEditorSupport() { |
| 39 | @Override | 37 | @Override |
| 40 | - public void setAsText(String text) | ||
| 41 | - { | 38 | + public void setAsText(String text) { |
| 42 | setValue(DateUtils.parseDate(text)); | 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 | package cn.iocoder.dashboard.modules.system.controller.permission; | 1 | package cn.iocoder.dashboard.modules.system.controller.permission; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.common.pojo.CommonResult; | 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 | import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert; | 8 | import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert; |
| 9 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; | 9 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; |
| 10 | import cn.iocoder.dashboard.modules.system.service.permission.SysMenuService; | 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
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
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 | import io.swagger.annotations.ApiModel; | 3 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 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 | import io.swagger.annotations.ApiModel; | 3 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 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 | import io.swagger.annotations.ApiModel; | 3 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 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,7 +26,7 @@ public interface SysAuthConvert { | ||
| 26 | default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) { | 26 | default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) { |
| 27 | return SysAuthPermissionInfoRespVO.builder() | 27 | return SysAuthPermissionInfoRespVO.builder() |
| 28 | .user(SysAuthPermissionInfoRespVO.UserVO.builder().nickname(user.getNickname()).avatar(user.getAvatar()).build()) | 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 | .permissions(CollectionUtils.convertSet(menuList, SysMenuDO::getPermission)) | 30 | .permissions(CollectionUtils.convertSet(menuList, SysMenuDO::getPermission)) |
| 31 | .build(); | 31 | .build(); |
| 32 | } | 32 | } |
src/main/java/cn/iocoder/dashboard/modules/system/convert/permission/SysMenuConvert.java
| 1 | package cn.iocoder.dashboard.modules.system.convert.permission; | 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 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; | 6 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; |
| 7 | import org.mapstruct.Mapper; | 7 | import org.mapstruct.Mapper; |
| 8 | import org.mapstruct.factory.Mappers; | 8 | import org.mapstruct.factory.Mappers; |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/permission/SysMenuMapper.java
| 1 | package cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission; | 1 | package cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.framework.mybatis.core.query.QueryWrapperX; | 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 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; | 5 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; |
| 6 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 6 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | 7 | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/permission/SysRoleDO.java
| 1 | package cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission; | 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 | import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; | 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 | import com.baomidou.mybatisplus.annotation.TableId; | 8 | import com.baomidou.mybatisplus.annotation.TableId; |
| 7 | import com.baomidou.mybatisplus.annotation.TableName; | 9 | import com.baomidou.mybatisplus.annotation.TableName; |
| 8 | import lombok.Data; | 10 | import lombok.Data; |
| 9 | import lombok.EqualsAndHashCode; | 11 | import lombok.EqualsAndHashCode; |
| 10 | 12 | ||
| 11 | -import javax.validation.constraints.NotBlank; | ||
| 12 | -import javax.validation.constraints.Size; | ||
| 13 | - | ||
| 14 | /** | 13 | /** |
| 15 | * 角色 DO | 14 | * 角色 DO |
| 16 | * | 15 | * |
| @@ -19,79 +18,58 @@ import javax.validation.constraints.Size; | @@ -19,79 +18,58 @@ import javax.validation.constraints.Size; | ||
| 19 | @TableName("sys_role") | 18 | @TableName("sys_role") |
| 20 | @Data | 19 | @Data |
| 21 | @EqualsAndHashCode(callSuper = true) | 20 | @EqualsAndHashCode(callSuper = true) |
| 22 | -// TODO 芋艿:数据库的字段默认值 | ||
| 23 | public class SysRoleDO extends BaseDO { | 21 | public class SysRoleDO extends BaseDO { |
| 24 | 22 | ||
| 25 | /** | 23 | /** |
| 26 | * 角色ID | 24 | * 角色ID |
| 27 | */ | 25 | */ |
| 28 | @TableId | 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
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 | package cn.iocoder.dashboard.modules.system.service.permission; | 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 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; | 7 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; |
| 8 | 8 | ||
| 9 | import java.util.Collection; | 9 | import java.util.Collection; |
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysMenuServiceImpl.java
| 1 | package cn.iocoder.dashboard.modules.system.service.permission.impl; | 1 | package cn.iocoder.dashboard.modules.system.service.permission.impl; |
| 2 | 2 | ||
| 3 | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | 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 | import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert; | 8 | import cn.iocoder.dashboard.modules.system.convert.permission.SysMenuConvert; |
| 9 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysMenuMapper; | 9 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysMenuMapper; |
| 10 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysMenuDO; | 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,7 +3,7 @@ package cn.iocoder.dashboard.modules.system.service.permission.impl; | ||
| 3 | import cn.hutool.core.collection.CollectionUtil; | 3 | import cn.hutool.core.collection.CollectionUtil; |
| 4 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysRoleMapper; | 4 | import cn.iocoder.dashboard.modules.system.dal.mysql.dao.permission.SysRoleMapper; |
| 5 | import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysRoleDO; | 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 | import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; | 7 | import cn.iocoder.dashboard.modules.system.service.permission.SysRoleService; |
| 8 | import com.google.common.collect.ImmutableMap; | 8 | import com.google.common.collect.ImmutableMap; |
| 9 | import lombok.extern.slf4j.Slf4j; | 9 | import lombok.extern.slf4j.Slf4j; |
| @@ -29,7 +29,7 @@ public class SysRoleServiceImpl implements SysRoleService { | @@ -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 | * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 | 34 | * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 |
| 35 | */ | 35 | */ |
| @@ -45,7 +45,7 @@ public class SysRoleServiceImpl implements SysRoleService { | @@ -45,7 +45,7 @@ public class SysRoleServiceImpl implements SysRoleService { | ||
| 45 | List<SysRoleDO> roleDOList = roleMapper.selectList(null); | 45 | List<SysRoleDO> roleDOList = roleMapper.selectList(null); |
| 46 | // 写入缓存 | 46 | // 写入缓存 |
| 47 | ImmutableMap.Builder<Long, SysRoleDO> builder = ImmutableMap.builder(); | 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 | roleCache = builder.build(); | 49 | roleCache = builder.build(); |
| 50 | log.info("[init][初始化 Role 数量为 {}]", roleDOList.size()); | 50 | log.info("[init][初始化 Role 数量为 {}]", roleDOList.size()); |
| 51 | } | 51 | } |
| @@ -55,7 +55,7 @@ public class SysRoleServiceImpl implements SysRoleService { | @@ -55,7 +55,7 @@ public class SysRoleServiceImpl implements SysRoleService { | ||
| 55 | if (CollectionUtil.isEmpty(roleIds)) { | 55 | if (CollectionUtil.isEmpty(roleIds)) { |
| 56 | return Collections.emptyList(); | 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 | .collect(Collectors.toList()); | 59 | .collect(Collectors.toList()); |
| 60 | } | 60 | } |
| 61 | 61 | ||
| @@ -64,7 +64,7 @@ public class SysRoleServiceImpl implements SysRoleService { | @@ -64,7 +64,7 @@ public class SysRoleServiceImpl implements SysRoleService { | ||
| 64 | if (CollectionUtil.isEmpty(roleList)) { | 64 | if (CollectionUtil.isEmpty(roleList)) { |
| 65 | return false; | 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 | } |