Commit 1bfaa2c967859a946460b9ff397d3b1f827d0173
1 parent
04feb57e
完成 Role 模块的迁移
Showing
26 changed files
with
151 additions
and
361 deletions
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysMenuMapper.java
| 1 | 1 | package com.ruoyi.system.mapper; |
| 2 | 2 | |
| 3 | 3 | import java.util.List; |
| 4 | + | |
| 4 | 5 | import org.apache.ibatis.annotations.Param; |
| 5 | 6 | import com.ruoyi.common.core.domain.entity.SysMenu; |
| 6 | 7 | |
| ... | ... | @@ -9,22 +10,7 @@ import com.ruoyi.common.core.domain.entity.SysMenu; |
| 9 | 10 | * |
| 10 | 11 | * @author ruoyi |
| 11 | 12 | */ |
| 12 | -public interface SysMenuMapper | |
| 13 | -{ | |
| 14 | - /** | |
| 15 | - * 查询系统菜单列表 | |
| 16 | - * | |
| 17 | - * @param menu 菜单信息 | |
| 18 | - * @return 菜单列表 | |
| 19 | - */ | |
| 20 | - public List<SysMenu> selectMenuList(SysMenu menu); | |
| 21 | - | |
| 22 | - /** | |
| 23 | - * 根据用户所有权限 | |
| 24 | - * | |
| 25 | - * @return 权限列表 | |
| 26 | - */ | |
| 27 | - public List<String> selectMenuPerms(); | |
| 13 | +public interface SysMenuMapper { | |
| 28 | 14 | |
| 29 | 15 | /** |
| 30 | 16 | * 根据用户查询系统菜单列表 |
| ... | ... | @@ -60,7 +46,7 @@ public interface SysMenuMapper |
| 60 | 46 | /** |
| 61 | 47 | * 根据角色ID查询菜单树信息 |
| 62 | 48 | * |
| 63 | - * @param roleId 角色ID | |
| 49 | + * @param roleId 角色ID | |
| 64 | 50 | * @param menuCheckStrictly 菜单树选择项是否关联显示 |
| 65 | 51 | * @return 选中菜单列表 |
| 66 | 52 | */ | ... | ... |
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
| 1 | 1 | package com.ruoyi.system.mapper; |
| 2 | 2 | |
| 3 | 3 | import java.util.List; |
| 4 | + | |
| 4 | 5 | import com.ruoyi.common.core.domain.entity.SysRole; |
| 5 | 6 | |
| 6 | 7 | /** |
| 7 | 8 | * 角色表 数据层 |
| 8 | - * | |
| 9 | + * | |
| 9 | 10 | * @author ruoyi |
| 10 | 11 | */ |
| 11 | -public interface SysRoleMapper | |
| 12 | -{ | |
| 12 | +public interface SysRoleMapper { | |
| 13 | + | |
| 13 | 14 | /** |
| 14 | 15 | * 根据条件分页查询角色数据 |
| 15 | - * | |
| 16 | + * | |
| 16 | 17 | * @param role 角色信息 |
| 17 | 18 | * @return 角色数据集合信息 |
| 18 | 19 | */ |
| ... | ... | @@ -20,88 +21,26 @@ public interface SysRoleMapper |
| 20 | 21 | |
| 21 | 22 | /** |
| 22 | 23 | * 根据用户ID查询角色 |
| 23 | - * | |
| 24 | + * | |
| 24 | 25 | * @param userId 用户ID |
| 25 | 26 | * @return 角色列表 |
| 26 | 27 | */ |
| 27 | 28 | public List<SysRole> selectRolePermissionByUserId(Long userId); |
| 28 | 29 | |
| 29 | 30 | /** |
| 30 | - * 查询所有角色 | |
| 31 | - * | |
| 32 | - * @return 角色列表 | |
| 33 | - */ | |
| 34 | - public List<SysRole> selectRoleAll(); | |
| 35 | - | |
| 36 | - /** | |
| 37 | 31 | * 根据用户ID获取角色选择框列表 |
| 38 | - * | |
| 32 | + * | |
| 39 | 33 | * @param userId 用户ID |
| 40 | 34 | * @return 选中角色ID列表 |
| 41 | 35 | */ |
| 42 | 36 | public List<Integer> selectRoleListByUserId(Long userId); |
| 43 | 37 | |
| 44 | 38 | /** |
| 45 | - * 通过角色ID查询角色 | |
| 46 | - * | |
| 47 | - * @param roleId 角色ID | |
| 48 | - * @return 角色对象信息 | |
| 49 | - */ | |
| 50 | - public SysRole selectRoleById(Long roleId); | |
| 51 | - | |
| 52 | - /** | |
| 53 | 39 | * 根据用户ID查询角色 |
| 54 | - * | |
| 40 | + * | |
| 55 | 41 | * @param userName 用户名 |
| 56 | 42 | * @return 角色列表 |
| 57 | 43 | */ |
| 58 | 44 | public List<SysRole> selectRolesByUserName(String userName); |
| 59 | 45 | |
| 60 | - /** | |
| 61 | - * 校验角色名称是否唯一 | |
| 62 | - * | |
| 63 | - * @param roleName 角色名称 | |
| 64 | - * @return 角色信息 | |
| 65 | - */ | |
| 66 | - public SysRole checkRoleNameUnique(String roleName); | |
| 67 | - | |
| 68 | - /** | |
| 69 | - * 校验角色权限是否唯一 | |
| 70 | - * | |
| 71 | - * @param roleKey 角色权限 | |
| 72 | - * @return 角色信息 | |
| 73 | - */ | |
| 74 | - public SysRole checkRoleKeyUnique(String roleKey); | |
| 75 | - | |
| 76 | - /** | |
| 77 | - * 修改角色信息 | |
| 78 | - * | |
| 79 | - * @param role 角色信息 | |
| 80 | - * @return 结果 | |
| 81 | - */ | |
| 82 | - public int updateRole(SysRole role); | |
| 83 | - | |
| 84 | - /** | |
| 85 | - * 新增角色信息 | |
| 86 | - * | |
| 87 | - * @param role 角色信息 | |
| 88 | - * @return 结果 | |
| 89 | - */ | |
| 90 | - public int insertRole(SysRole role); | |
| 91 | - | |
| 92 | - /** | |
| 93 | - * 通过角色ID删除角色 | |
| 94 | - * | |
| 95 | - * @param roleId 角色ID | |
| 96 | - * @return 结果 | |
| 97 | - */ | |
| 98 | - public int deleteRoleById(Long roleId); | |
| 99 | - | |
| 100 | - /** | |
| 101 | - * 批量删除角色信息 | |
| 102 | - * | |
| 103 | - * @param roleIds 需要删除的角色ID | |
| 104 | - * @return 结果 | |
| 105 | - */ | |
| 106 | - public int deleteRoleByIds(Long[] roleIds); | |
| 107 | 46 | } | ... | ... |
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMenuMapper.java deleted
| 1 | -package com.ruoyi.system.mapper; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import com.ruoyi.system.domain.SysRoleMenu; | |
| 5 | - | |
| 6 | -/** | |
| 7 | - * 角色与菜单关联表 数据层 | |
| 8 | - * | |
| 9 | - * @author ruoyi | |
| 10 | - */ | |
| 11 | -public interface SysRoleMenuMapper | |
| 12 | -{ | |
| 13 | - /** | |
| 14 | - * 查询菜单使用数量 | |
| 15 | - * | |
| 16 | - * @param menuId 菜单ID | |
| 17 | - * @return 结果 | |
| 18 | - */ | |
| 19 | - public int checkMenuExistRole(Long menuId); | |
| 20 | - | |
| 21 | - /** | |
| 22 | - * 通过角色ID删除角色和菜单关联 | |
| 23 | - * | |
| 24 | - * @param roleId 角色ID | |
| 25 | - * @return 结果 | |
| 26 | - */ | |
| 27 | - public int deleteRoleMenuByRoleId(Long roleId); | |
| 28 | - | |
| 29 | - /** | |
| 30 | - * 批量删除角色菜单关联信息 | |
| 31 | - * | |
| 32 | - * @param ids 需要删除的数据ID | |
| 33 | - * @return 结果 | |
| 34 | - */ | |
| 35 | - public int deleteRoleMenu(Long[] ids); | |
| 36 | - | |
| 37 | - /** | |
| 38 | - * 批量新增角色菜单信息 | |
| 39 | - * | |
| 40 | - * @param roleMenuList 角色菜单列表 | |
| 41 | - * @return 结果 | |
| 42 | - */ | |
| 43 | - public int batchRoleMenu(List<SysRoleMenu> roleMenuList); | |
| 44 | -} |
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java deleted
| 1 | -package com.ruoyi.system.mapper; | |
| 2 | - | |
| 3 | -import java.util.List; | |
| 4 | -import org.apache.ibatis.annotations.Param; | |
| 5 | -import com.ruoyi.system.domain.SysUserRole; | |
| 6 | - | |
| 7 | -/** | |
| 8 | - * 用户与角色关联表 数据层 | |
| 9 | - * | |
| 10 | - * @author ruoyi | |
| 11 | - */ | |
| 12 | -public interface SysUserRoleMapper | |
| 13 | -{ | |
| 14 | - /** | |
| 15 | - * 通过用户ID删除用户和角色关联 | |
| 16 | - * | |
| 17 | - * @param userId 用户ID | |
| 18 | - * @return 结果 | |
| 19 | - */ | |
| 20 | - public int deleteUserRoleByUserId(Long userId); | |
| 21 | - | |
| 22 | - /** | |
| 23 | - * 批量删除用户和角色关联 | |
| 24 | - * | |
| 25 | - * @param ids 需要删除的数据ID | |
| 26 | - * @return 结果 | |
| 27 | - */ | |
| 28 | - public int deleteUserRole(Long[] ids); | |
| 29 | - | |
| 30 | - /** | |
| 31 | - * 通过角色ID查询角色使用数量 | |
| 32 | - * | |
| 33 | - * @param roleId 角色ID | |
| 34 | - * @return 结果 | |
| 35 | - */ | |
| 36 | - public int countUserRoleByRoleId(Long roleId); | |
| 37 | - | |
| 38 | - /** | |
| 39 | - * 批量新增用户角色信息 | |
| 40 | - * | |
| 41 | - * @param userRoleList 用户角色列表 | |
| 42 | - * @return 结果 | |
| 43 | - */ | |
| 44 | - public int batchUserRole(List<SysUserRole> userRoleList); | |
| 45 | - | |
| 46 | - /** | |
| 47 | - * 删除用户和角色关联信息 | |
| 48 | - * | |
| 49 | - * @param userRole 用户和角色关联信息 | |
| 50 | - * @return 结果 | |
| 51 | - */ | |
| 52 | - public int deleteUserRoleInfo(SysUserRole userRole); | |
| 53 | - | |
| 54 | - /** | |
| 55 | - * 批量取消授权用户角色 | |
| 56 | - * | |
| 57 | - * @param roleId 角色ID | |
| 58 | - * @param userIds 需要删除的用户数据ID | |
| 59 | - * @return 结果 | |
| 60 | - */ | |
| 61 | - public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); | |
| 62 | -} |
ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml
| ... | ... | @@ -4,22 +4,6 @@ |
| 4 | 4 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| 5 | 5 | <mapper namespace="com.ruoyi.system.mapper.SysMenuMapper"> |
| 6 | 6 | |
| 7 | - <select id="selectMenuList" parameterType="SysMenu" resultMap="SysMenuResult"> | |
| 8 | - <include refid="selectMenuVo"/> | |
| 9 | - <where> | |
| 10 | - <if test="menuName != null and menuName != ''"> | |
| 11 | - AND menu_name like concat('%', #{menuName}, '%') | |
| 12 | - </if> | |
| 13 | - <if test="visible != null and visible != ''"> | |
| 14 | - AND visible = #{visible} | |
| 15 | - </if> | |
| 16 | - <if test="status != null and status != ''"> | |
| 17 | - AND status = #{status} | |
| 18 | - </if> | |
| 19 | - </where> | |
| 20 | - order by parent_id, order_num | |
| 21 | - </select> | |
| 22 | - | |
| 23 | 7 | <select id="selectMenuTreeAll" resultMap="SysMenuResult"> |
| 24 | 8 | select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time |
| 25 | 9 | from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0 |
| ... | ... | @@ -67,13 +51,6 @@ |
| 67 | 51 | order by m.parent_id, m.order_num |
| 68 | 52 | </select> |
| 69 | 53 | |
| 70 | - <select id="selectMenuPerms" resultType="String"> | |
| 71 | - select distinct m.perms | |
| 72 | - from sys_menu m | |
| 73 | - left join sys_role_menu rm on m.menu_id = rm.menu_id | |
| 74 | - left join sys_user_role ur on rm.role_id = ur.role_id | |
| 75 | - </select> | |
| 76 | - | |
| 77 | 54 | <select id="selectMenuPermsByUserId" parameterType="Long" resultType="String"> |
| 78 | 55 | select distinct m.perms |
| 79 | 56 | from sys_menu m |
| ... | ... | @@ -83,13 +60,4 @@ |
| 83 | 60 | where m.status = '0' and r.status = '0' and ur.user_id = #{userId} |
| 84 | 61 | </select> |
| 85 | 62 | |
| 86 | - <select id="hasChildByMenuId" resultType="Integer"> | |
| 87 | - select count(1) from sys_menu where parent_id = #{menuId} | |
| 88 | - </select> | |
| 89 | - | |
| 90 | - <select id="checkMenuNameUnique" parameterType="SysMenu" resultMap="SysMenuResult"> | |
| 91 | - <include refid="selectMenuVo"/> | |
| 92 | - where menu_name=#{menuName} and parent_id = #{parentId} limit 1 | |
| 93 | - </select> | |
| 94 | - | |
| 95 | 63 | </mapper> | ... | ... |
ruoyi-system/src/main/resources/mapper/system/SysRoleMenuMapper.xml deleted
| 1 | -<?xml version="1.0" encoding="UTF-8" ?> | |
| 2 | -<!DOCTYPE mapper | |
| 3 | -PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
| 4 | -"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
| 5 | -<mapper namespace="com.ruoyi.system.mapper.SysRoleMenuMapper"> | |
| 6 | - | |
| 7 | - <resultMap type="SysRoleMenu" id="SysRoleMenuResult"> | |
| 8 | - <result property="roleId" column="role_id" /> | |
| 9 | - <result property="menuId" column="menu_id" /> | |
| 10 | - </resultMap> | |
| 11 | - | |
| 12 | - <select id="checkMenuExistRole" resultType="Integer"> | |
| 13 | - select count(1) from sys_role_menu where menu_id = #{menuId} | |
| 14 | - </select> | |
| 15 | - | |
| 16 | - <delete id="deleteRoleMenuByRoleId" parameterType="Long"> | |
| 17 | - delete from sys_role_menu where role_id=#{roleId} | |
| 18 | - </delete> | |
| 19 | - | |
| 20 | - <delete id="deleteRoleMenu" parameterType="Long"> | |
| 21 | - delete from sys_role_menu where role_id in | |
| 22 | - <foreach collection="array" item="roleId" open="(" separator="," close=")"> | |
| 23 | - #{roleId} | |
| 24 | - </foreach> | |
| 25 | - </delete> | |
| 26 | - | |
| 27 | - <insert id="batchRoleMenu"> | |
| 28 | - insert into sys_role_menu(role_id, menu_id) values | |
| 29 | - <foreach item="item" index="index" collection="list" separator=","> | |
| 30 | - (#{item.roleId},#{item.menuId}) | |
| 31 | - </foreach> | |
| 32 | - </insert> | |
| 33 | - | |
| 34 | -</mapper> | |
| 35 | 0 | \ No newline at end of file |
ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml deleted
| 1 | -<?xml version="1.0" encoding="UTF-8" ?> | |
| 2 | -<!DOCTYPE mapper | |
| 3 | -PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | |
| 4 | -"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
| 5 | -<mapper namespace="com.ruoyi.system.mapper.SysUserRoleMapper"> | |
| 6 | - | |
| 7 | - <resultMap type="SysUserRole" id="SysUserRoleResult"> | |
| 8 | - <result property="userId" column="user_id" /> | |
| 9 | - <result property="roleId" column="role_id" /> | |
| 10 | - </resultMap> | |
| 11 | - | |
| 12 | - <delete id="deleteUserRoleByUserId" parameterType="Long"> | |
| 13 | - delete from sys_user_role where user_id=#{userId} | |
| 14 | - </delete> | |
| 15 | - | |
| 16 | - <select id="countUserRoleByRoleId" resultType="Integer"> | |
| 17 | - select count(1) from sys_user_role where role_id=#{roleId} | |
| 18 | - </select> | |
| 19 | - | |
| 20 | - <delete id="deleteUserRole" parameterType="Long"> | |
| 21 | - delete from sys_user_role where user_id in | |
| 22 | - <foreach collection="array" item="userId" open="(" separator="," close=")"> | |
| 23 | - #{userId} | |
| 24 | - </foreach> | |
| 25 | - </delete> | |
| 26 | - | |
| 27 | - <insert id="batchUserRole"> | |
| 28 | - insert into sys_user_role(user_id, role_id) values | |
| 29 | - <foreach item="item" index="index" collection="list" separator=","> | |
| 30 | - (#{item.userId},#{item.roleId}) | |
| 31 | - </foreach> | |
| 32 | - </insert> | |
| 33 | - | |
| 34 | - <delete id="deleteUserRoleInfo" parameterType="SysUserRole"> | |
| 35 | - delete from sys_user_role where user_id=#{userId} and role_id=#{roleId} | |
| 36 | - </delete> | |
| 37 | - | |
| 38 | - <delete id="deleteUserRoleInfos"> | |
| 39 | - delete from sys_user_role where role_id=#{roleId} and user_id in | |
| 40 | - <foreach collection="userIds" item="userId" open="(" separator="," close=")"> | |
| 41 | - #{userId} | |
| 42 | - </foreach> | |
| 43 | - </delete> | |
| 44 | -</mapper> | |
| 45 | 0 | \ No newline at end of file |
ruoyi-ui/src/api/system/dept.js
| ... | ... | @@ -25,24 +25,6 @@ export function getDept(deptId) { |
| 25 | 25 | }) |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | -// 查询部门下拉树结构 | |
| 29 | -// TODO 准备删除 | |
| 30 | -export function treeselect() { | |
| 31 | - return request({ | |
| 32 | - url: '/system/dept/treeselect', | |
| 33 | - method: 'get' | |
| 34 | - }) | |
| 35 | -} | |
| 36 | - | |
| 37 | -// 根据角色ID查询部门树结构 | |
| 38 | -// TODO 准备删除 | |
| 39 | -export function roleDeptTreeselect(roleId) { | |
| 40 | - return request({ | |
| 41 | - url: '/system/dept/roleDeptTreeselect/' + roleId, | |
| 42 | - method: 'get' | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | 28 | // 获取部门精简信息列表 |
| 47 | 29 | export function listSimpleDepts() { |
| 48 | 30 | return request({ |
| ... | ... | @@ -76,3 +58,6 @@ export function delDept(deptId) { |
| 76 | 58 | method: 'delete' |
| 77 | 59 | }) |
| 78 | 60 | } |
| 61 | + | |
| 62 | +export class treeselect { | |
| 63 | +} | ... | ... |
ruoyi-ui/src/api/system/permission.js
| ... | ... | @@ -16,3 +16,12 @@ export function assignRoleMenu(data) { |
| 16 | 16 | data: data |
| 17 | 17 | }) |
| 18 | 18 | } |
| 19 | + | |
| 20 | +// 赋予角色数据权限 | |
| 21 | +export function assignRoleDataScope(data) { | |
| 22 | + return request({ | |
| 23 | + url: '/system/permission/assign-role-data-scope', | |
| 24 | + method: 'post', | |
| 25 | + data: data | |
| 26 | + }) | |
| 27 | +} | ... | ... |
ruoyi-ui/src/api/system/role.js
| ... | ... | @@ -35,15 +35,6 @@ export function updateRole(data) { |
| 35 | 35 | }) |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | -// 角色数据权限 | |
| 39 | -export function dataScope(data) { | |
| 40 | - return request({ | |
| 41 | - url: '/system/role/dataScope', | |
| 42 | - method: 'put', | |
| 43 | - data: data | |
| 44 | - }) | |
| 45 | -} | |
| 46 | - | |
| 47 | 38 | // 角色状态修改 |
| 48 | 39 | export function changeRoleStatus(id, status) { |
| 49 | 40 | const data = { | ... | ... |
ruoyi-ui/src/utils/constants.js
ruoyi-ui/src/utils/ruoyi.js
| ... | ... | @@ -55,15 +55,15 @@ export function resetForm(refName) { |
| 55 | 55 | |
| 56 | 56 | // 添加日期范围 |
| 57 | 57 | export function addDateRange(params, dateRange, propName) { |
| 58 | - var search = params; | |
| 59 | - search.params = {}; | |
| 60 | - if (null != dateRange && '' != dateRange) { | |
| 58 | + const search = params; | |
| 59 | + search.params = {}; | |
| 60 | + if (null != dateRange && '' !== dateRange) { | |
| 61 | 61 | if (typeof(propName) === "undefined") { |
| 62 | - search.params["beginTime"] = dateRange[0]; | |
| 63 | - search.params["endTime"] = dateRange[1]; | |
| 62 | + search["beginTime"] = dateRange[0]; | |
| 63 | + search["endTime"] = dateRange[1]; | |
| 64 | 64 | } else { |
| 65 | - search.params["begin" + propName] = dateRange[0]; | |
| 66 | - search.params["end" + propName] = dateRange[1]; | |
| 65 | + search["begin" + propName] = dateRange[0]; | |
| 66 | + search["end" + propName] = dateRange[1]; | |
| 67 | 67 | } |
| 68 | 68 | } |
| 69 | 69 | return search; | ... | ... |
ruoyi-ui/src/views/system/role/index.vue
| ... | ... | @@ -248,8 +248,8 @@ import { |
| 248 | 248 | updateRole |
| 249 | 249 | } from "@/api/system/role"; |
| 250 | 250 | import {listSimpleMenus} from "@/api/system/menu"; |
| 251 | -import {assignRoleMenu, listRoleMenus} from "@/api/system/permission"; | |
| 252 | -import {listSimpleDepts, treeselect as deptTreeselect} from "@/api/system/dept"; | |
| 251 | +import {assignRoleMenu, listRoleMenus, assignRoleDataScope} from "@/api/system/permission"; | |
| 252 | +import {listSimpleDepts} from "@/api/system/dept"; | |
| 253 | 253 | import {SysCommonStatusEnum, SysDataScopeEnum} from "@/utils/constants"; |
| 254 | 254 | import {DICT_TYPE, getDictDataLabel, getDictDatas} from "@/utils/dict"; |
| 255 | 255 | |
| ... | ... | @@ -326,7 +326,10 @@ export default { |
| 326 | 326 | /** 查询角色列表 */ |
| 327 | 327 | getList() { |
| 328 | 328 | this.loading = true; |
| 329 | - listRole(this.addDateRange(this.queryParams, this.dateRange)).then( | |
| 329 | + listRole(this.addDateRange(this.queryParams, [ | |
| 330 | + this.dateRange[0] ? this.dateRange[0] + ' 00:00:00' : undefined, | |
| 331 | + this.dateRange[1] ? this.dateRange[1] + ' 23:59:59' : undefined, | |
| 332 | + ])).then( | |
| 330 | 333 | response => { |
| 331 | 334 | this.roleList = response.data.list; |
| 332 | 335 | this.total = response.data.total; |
| ... | ... | @@ -387,6 +390,7 @@ export default { |
| 387 | 390 | sort: 0, |
| 388 | 391 | deptIds: [], |
| 389 | 392 | menuIds: [], |
| 393 | + dataScope: undefined, | |
| 390 | 394 | deptCheckStrictly: false, |
| 391 | 395 | remark: undefined |
| 392 | 396 | }; |
| ... | ... | @@ -485,11 +489,11 @@ export default { |
| 485 | 489 | // 处理 menuOptions 参数 |
| 486 | 490 | this.deptOptions = []; |
| 487 | 491 | this.deptOptions.push(...this.handleTree(response.data, "id")); |
| 488 | - }); | |
| 489 | - // 获得角色拥有的数据权限 | |
| 490 | - getRole(row.id).then(response => { | |
| 491 | - // TODO 搞一搞 | |
| 492 | - // this.$refs.dept.setCheckedKeys(res.checkedKeys); | |
| 492 | + // 获得角色拥有的数据权限 | |
| 493 | + getRole(row.id).then(response => { | |
| 494 | + this.form.dataScope = response.data.dataScope; | |
| 495 | + this.$refs.dept.setCheckedKeys(response.data.dataScopeDeptIds, false); | |
| 496 | + }); | |
| 493 | 497 | }); |
| 494 | 498 | }, |
| 495 | 499 | /** 提交按钮 */ |
| ... | ... | @@ -515,11 +519,10 @@ export default { |
| 515 | 519 | /** 提交按钮(数据权限) */ |
| 516 | 520 | submitDataScope: function() { |
| 517 | 521 | if (this.form.id !== undefined) { |
| 518 | - // this.form.deptIds = this.getDeptAllCheckedKeys(); | |
| 519 | - debugger | |
| 520 | - dataScope({ | |
| 522 | + assignRoleDataScope({ | |
| 521 | 523 | roleId: this.form.id, |
| 522 | - deptIds: this.form.dataScope !== SysDataScopeEnum.DEPT_CUSTOM ? [] : | |
| 524 | + dataScope: this.form.dataScope, | |
| 525 | + dataScopeDeptIds: this.form.dataScope !== SysDataScopeEnum.DEPT_CUSTOM ? [] : | |
| 523 | 526 | this.$refs.dept.getCheckedKeys(false) |
| 524 | 527 | }).then(response => { |
| 525 | 528 | this.msgSuccess("修改成功"); | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/SysPermissionController.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.permission.SysPermissionAssignRoleDataScopeReqVO; | |
| 4 | 5 | import cn.iocoder.dashboard.modules.system.controller.permission.vo.permission.SysPermissionAssignRoleMenuReqVO; |
| 5 | 6 | import cn.iocoder.dashboard.modules.system.service.permission.SysPermissionService; |
| 6 | 7 | import io.swagger.annotations.Api; |
| ... | ... | @@ -43,6 +44,15 @@ public class SysPermissionController { |
| 43 | 44 | return success(true); |
| 44 | 45 | } |
| 45 | 46 | |
| 47 | + @PostMapping("/assign-role-data-scope") | |
| 48 | + @ApiOperation("赋予角色数据权限") | |
| 49 | +// @RequiresPermissions("system:permission:assign-role-data-scope") | |
| 50 | + public CommonResult<Boolean> assignRoleDataScope( | |
| 51 | + @Validated @RequestBody SysPermissionAssignRoleDataScopeReqVO reqVO) { | |
| 52 | + permissionService.assignRoleDataScope(reqVO.getRoleId(), reqVO.getDataScope(), reqVO.getDataScopeDeptIds()); | |
| 53 | + return success(true); | |
| 54 | + } | |
| 55 | + | |
| 46 | 56 | // @GetMapping("/list-admin-roles") |
| 47 | 57 | // @ApiOperation("获得管理员拥有的角色编号列表") |
| 48 | 58 | //// @RequiresPermissions("system:permission:assign-admin-role") | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/permission/SysPermissionAssignRoleDataScopeReqVO.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.permission.vo.permission; | |
| 2 | + | |
| 3 | +import io.swagger.annotations.ApiModel; | |
| 4 | +import io.swagger.annotations.ApiModelProperty; | |
| 5 | +import lombok.Data; | |
| 6 | + | |
| 7 | +import javax.validation.constraints.NotNull; | |
| 8 | +import java.util.Collections; | |
| 9 | +import java.util.Set; | |
| 10 | + | |
| 11 | +@ApiModel("赋予角色数据权限 Request VO") | |
| 12 | +@Data | |
| 13 | +public class SysPermissionAssignRoleDataScopeReqVO { | |
| 14 | + | |
| 15 | + @ApiModelProperty(value = "角色编号", required = true, example = "1") | |
| 16 | + @NotNull(message = "角色编号不能为空") | |
| 17 | + private Long roleId; | |
| 18 | + | |
| 19 | + @ApiModelProperty(value = "数据范围", required = true, example = "1", notes = "参见 SysDataScopeEnum 枚举类") | |
| 20 | + @NotNull(message = "数据范围不能为空") | |
| 21 | +// TODO 这里要多一个枚举校验 | |
| 22 | + private Integer dataScope; | |
| 23 | + | |
| 24 | + @ApiModelProperty(value = "部门编号列表", example = "1,3,5", notes = "只有范围类型为 DEPT_CUSTOM 时,该字段才需要") | |
| 25 | + private Set<Long> dataScopeDeptIds = Collections.emptySet(); // 兜底 | |
| 26 | + | |
| 27 | +} | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/permission/SysPermissionAssignRoleMenuReqVO.java
| ... | ... | @@ -12,7 +12,7 @@ import java.util.Set; |
| 12 | 12 | @Data |
| 13 | 13 | public class SysPermissionAssignRoleMenuReqVO { |
| 14 | 14 | |
| 15 | - @ApiModelProperty(value = "角色名", required = true, example = "1") | |
| 15 | + @ApiModelProperty(value = "角色编号", required = true, example = "1") | |
| 16 | 16 | @NotNull(message = "角色编号不能为空") |
| 17 | 17 | private Long roleId; |
| 18 | 18 | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRolePageReqVO.java
| ... | ... | @@ -5,6 +5,11 @@ import io.swagger.annotations.ApiModel; |
| 5 | 5 | import io.swagger.annotations.ApiModelProperty; |
| 6 | 6 | import lombok.Data; |
| 7 | 7 | import lombok.EqualsAndHashCode; |
| 8 | +import org.springframework.format.annotation.DateTimeFormat; | |
| 9 | + | |
| 10 | +import java.util.Date; | |
| 11 | + | |
| 12 | +import static cn.iocoder.dashboard.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | |
| 8 | 13 | |
| 9 | 14 | @ApiModel("角色分页 Request VO") |
| 10 | 15 | @Data |
| ... | ... | @@ -14,7 +19,18 @@ public class SysRolePageReqVO extends PageParam { |
| 14 | 19 | @ApiModelProperty(value = "角色名称", example = "芋道", notes = "模糊匹配") |
| 15 | 20 | private String name; |
| 16 | 21 | |
| 22 | + @ApiModelProperty(value = "角色标识", example = "yudao", notes = "模糊匹配") | |
| 23 | + private String code; | |
| 24 | + | |
| 17 | 25 | @ApiModelProperty(value = "展示状态", example = "1", notes = "参见 SysCommonStatusEnum 枚举类") |
| 18 | 26 | private Integer status; |
| 19 | 27 | |
| 28 | + @ApiModelProperty(value = "开始时间", example = "2020-10-24") | |
| 29 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 30 | + private Date beginTime; | |
| 31 | + | |
| 32 | + @ApiModelProperty(value = "结束时间", example = "2020-10-24") | |
| 33 | + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | |
| 34 | + private Date endTime; | |
| 35 | + | |
| 20 | 36 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/controller/permission/vo/role/SysRoleRespVO.java
| ... | ... | @@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode; |
| 8 | 8 | import lombok.NoArgsConstructor; |
| 9 | 9 | |
| 10 | 10 | import java.util.Date; |
| 11 | +import java.util.Set; | |
| 11 | 12 | |
| 12 | 13 | @ApiModel("角色信息 Response VO") |
| 13 | 14 | @Data |
| ... | ... | @@ -22,6 +23,9 @@ public class SysRoleRespVO extends SysRoleBaseVO { |
| 22 | 23 | @ApiModelProperty(value = "数据范围", required = true, example = "1", notes = "参见 DataScopeEnum 枚举类") |
| 23 | 24 | private Integer dataScope; |
| 24 | 25 | |
| 26 | + @ApiModelProperty(value = "数据范围(指定部门数组)", example = "1") | |
| 27 | + private Set<Long> dataScopeDeptIds; | |
| 28 | + | |
| 25 | 29 | @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") |
| 26 | 30 | private Integer status; |
| 27 | 31 | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dao/permission/SysRoleMapper.java
| ... | ... | @@ -14,7 +14,9 @@ public interface SysRoleMapper extends BaseMapper<SysRoleDO> { |
| 14 | 14 | default IPage<SysRoleDO> selectPage(SysRolePageReqVO reqVO) { |
| 15 | 15 | return selectPage(MyBatisUtils.buildPage(reqVO), |
| 16 | 16 | new QueryWrapperX<SysRoleDO>().likeIfPresent("name", reqVO.getName()) |
| 17 | - .eqIfPresent("status", reqVO.getStatus())); | |
| 17 | + .likeIfPresent("code", reqVO.getCode()) | |
| 18 | + .eqIfPresent("status", reqVO.getStatus()) | |
| 19 | + .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime())); | |
| 18 | 20 | } |
| 19 | 21 | |
| 20 | 22 | default SysRoleDO selectByName(String name) { | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/dal/mysql/dataobject/permission/SysRoleDO.java
| ... | ... | @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; |
| 12 | 12 | import lombok.Data; |
| 13 | 13 | import lombok.EqualsAndHashCode; |
| 14 | 14 | |
| 15 | -import java.util.List; | |
| 15 | +import java.util.Set; | |
| 16 | 16 | |
| 17 | 17 | /** |
| 18 | 18 | * 角色 DO |
| ... | ... | @@ -72,6 +72,6 @@ public class SysRoleDO extends BaseDO { |
| 72 | 72 | * 适用于 {@link #dataScope} 的值为 {@link DataScopeEnum#DEPT_CUSTOM} 时 |
| 73 | 73 | */ |
| 74 | 74 | @TableField(typeHandler = FastjsonTypeHandler.class) |
| 75 | - private List<Long> dataScopeDeptIds; | |
| 75 | + private Set<Long> dataScopeDeptIds; | |
| 76 | 76 | |
| 77 | 77 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/enums/SysErrorCodeConstants.java
| ... | ... | @@ -30,7 +30,6 @@ public interface SysErrorCodeConstants { |
| 30 | 30 | ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1002003000, "角色不存在"); |
| 31 | 31 | ErrorCode ROLE_NAME_DUPLICATE = new ErrorCode(1002003001, "已经存在名为【{}}】的角色"); |
| 32 | 32 | ErrorCode ROLE_CODE_DUPLICATE = new ErrorCode(1002003002, "已经存在编码为【{}}】的角色"); |
| 33 | - ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1002003004, "不能修改类型为系统内置的角色"); | |
| 34 | - ErrorCode ROLE_CAN_NOT_DELETE_SYSTEM_TYPE_ROLE = new ErrorCode(1002003005, "不能删除类型为系统内置的角色"); | |
| 33 | + ErrorCode ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE = new ErrorCode(1002003004, "不能操作类型为系统内置的角色"); | |
| 35 | 34 | |
| 36 | 35 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/SysPermissionService.java
| ... | ... | @@ -52,7 +52,7 @@ public interface SysPermissionService { |
| 52 | 52 | Set<Long> listRoleMenuIds(Long roleId); |
| 53 | 53 | |
| 54 | 54 | /** |
| 55 | - * 赋予赋予角色菜单 | |
| 55 | + * 设置角色菜单 | |
| 56 | 56 | * |
| 57 | 57 | * @param roleId 角色编号 |
| 58 | 58 | * @param menuIds 菜单编号集合 |
| ... | ... | @@ -60,6 +60,15 @@ public interface SysPermissionService { |
| 60 | 60 | void assignRoleMenu(Long roleId, Set<Long> menuIds); |
| 61 | 61 | |
| 62 | 62 | /** |
| 63 | + * 设置角色的数据权限 | |
| 64 | + * | |
| 65 | + * @param roleId 角色编号 | |
| 66 | + * @param dataScope 数据范围 | |
| 67 | + * @param dataScopeDeptIds 部门编号数组 | |
| 68 | + */ | |
| 69 | + void assignRoleDataScope(Long roleId, Integer dataScope, Set<Long> dataScopeDeptIds); | |
| 70 | + | |
| 71 | + /** | |
| 63 | 72 | * 处理角色删除时,删除关联授权角色 |
| 64 | 73 | * |
| 65 | 74 | * @param roleId 角色编号 | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/SysRoleService.java
| ... | ... | @@ -8,6 +8,7 @@ import cn.iocoder.dashboard.modules.system.dal.mysql.dataobject.permission.SysRo |
| 8 | 8 | |
| 9 | 9 | import java.util.Collection; |
| 10 | 10 | import java.util.List; |
| 11 | +import java.util.Set; | |
| 11 | 12 | |
| 12 | 13 | /** |
| 13 | 14 | * 角色 Service 接口 |
| ... | ... | @@ -91,4 +92,13 @@ public interface SysRoleService { |
| 91 | 92 | */ |
| 92 | 93 | void updateRoleStatus(Long id, Integer status); |
| 93 | 94 | |
| 95 | + /** | |
| 96 | + * 设置角色的数据权限 | |
| 97 | + * | |
| 98 | + * @param id 角色编号 | |
| 99 | + * @param dataScope 数据范围 | |
| 100 | + * @param dataScopeDeptIds 部门编号数组 | |
| 101 | + */ | |
| 102 | + void updateRoleDataScope(Long id, Integer dataScope, Set<Long> dataScopeDeptIds); | |
| 103 | + | |
| 94 | 104 | } | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysPermissionServiceImpl.java
| ... | ... | @@ -143,6 +143,11 @@ public class SysPermissionServiceImpl implements SysPermissionService { |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | 145 | @Override |
| 146 | + public void assignRoleDataScope(Long roleId, Integer dataScope, Set<Long> dataScopeDeptIds) { | |
| 147 | + roleService.updateRoleDataScope(roleId, dataScope, dataScopeDeptIds); | |
| 148 | + } | |
| 149 | + | |
| 150 | + @Override | |
| 146 | 151 | public void processRoleDeleted(Long roleId) { |
| 147 | 152 | // TODO 实现我 |
| 148 | 153 | // // 标记删除 RoleResource | ... | ... |
src/main/java/cn/iocoder/dashboard/modules/system/service/permission/impl/SysRoleServiceImpl.java
| ... | ... | @@ -23,10 +23,7 @@ import org.springframework.util.StringUtils; |
| 23 | 23 | |
| 24 | 24 | import javax.annotation.PostConstruct; |
| 25 | 25 | import javax.annotation.Resource; |
| 26 | -import java.util.Collection; | |
| 27 | -import java.util.Collections; | |
| 28 | -import java.util.List; | |
| 29 | -import java.util.Map; | |
| 26 | +import java.util.*; | |
| 30 | 27 | import java.util.stream.Collectors; |
| 31 | 28 | |
| 32 | 29 | import static cn.iocoder.dashboard.modules.system.enums.SysErrorCodeConstants.*; |
| ... | ... | @@ -148,6 +145,18 @@ public class SysRoleServiceImpl implements SysRoleService { |
| 148 | 145 | roleMapper.updateById(updateObject); |
| 149 | 146 | } |
| 150 | 147 | |
| 148 | + @Override | |
| 149 | + public void updateRoleDataScope(Long id, Integer dataScope, Set<Long> dataScopeDeptIds) { | |
| 150 | + // 校验是否可以更新 | |
| 151 | + checkUpdateRole(id); | |
| 152 | + // 更新数据范围 | |
| 153 | + SysRoleDO updateObject = new SysRoleDO(); | |
| 154 | + updateObject.setId(id); | |
| 155 | + updateObject.setDataScope(dataScope); | |
| 156 | + updateObject.setDataScopeDeptIds(dataScopeDeptIds); | |
| 157 | + roleMapper.updateById(updateObject); | |
| 158 | + } | |
| 159 | + | |
| 151 | 160 | /** |
| 152 | 161 | * 校验角色的唯一字段是否重复 |
| 153 | 162 | * |
| ... | ... | @@ -187,7 +196,7 @@ public class SysRoleServiceImpl implements SysRoleService { |
| 187 | 196 | } |
| 188 | 197 | // 内置角色,不允许删除 |
| 189 | 198 | if (RoleTypeEnum.SYSTEM.getType().equals(roleDO.getType())) { |
| 190 | - throw ServiceExceptionUtil.exception(ROLE_CAN_NOT_DELETE_SYSTEM_TYPE_ROLE); | |
| 199 | + throw ServiceExceptionUtil.exception(ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE); | |
| 191 | 200 | } |
| 192 | 201 | } |
| 193 | 202 | ... | ... |
src/main/java/cn/iocoder/dashboard/util/date/DateUtils.java
| ... | ... | @@ -8,6 +8,8 @@ import java.util.Date; |
| 8 | 8 | */ |
| 9 | 9 | public class DateUtils { |
| 10 | 10 | |
| 11 | + public static final String FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND = "yyyy-MM-dd HH:mm:ss"; | |
| 12 | + | |
| 11 | 13 | public static Date addTime(Duration duration) { |
| 12 | 14 | return new Date(System.currentTimeMillis() + duration.toMillis()); |
| 13 | 15 | } | ... | ... |