xieb
2023-05-06 f22255579ddc213725b6bb5d27958628117f7262
用户管理新增角色权限控制(超级管理员不控制)
5 files modified
33 ■■■■■ changed files
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java 8 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml 12 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java 2 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java
@@ -102,6 +102,14 @@
        return R.data(tree);
    }
    @GetMapping("/treeByParentId")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "树形结构", notes = "树形结构")
    public R<List<RoleVO>> treeByParentId(String parentId) {
        List<RoleVO> tree = roleService.treeByParentId(parentId);
        return R.data(tree);
    }
    /**
     * 获取指定角色树形结构
     */
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java
@@ -48,6 +48,8 @@
     */
    List<RoleVO> tree(String tenantId, String excludeRole);
    List<RoleVO> treeByParentId(String parentId);
    /**
     * 获取角色名
     *
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml
@@ -34,6 +34,18 @@
        </if>
    </select>
    <select id="treeByParentId" resultMap="treeNodeResultMap">
        select id, parent_id, role_name as title, id as "value", id as "key" from blade_role where is_deleted = 0
        <if test="_parameter!=null and _parameter!=''">
            and (
                id = #{_parameter} or parent_id = #{_parameter} or parent_id in (
                select b.id from blade_role b where b.is_deleted = 0 and b.PARENT_ID = #{_parameter}
                ) or role_alias = 'appxczrr' or role_alias = 'gldwzrr' or role_alias = 'jszrr' or role_alias = 'zgbmzrr' or role_alias = 'xzzrr'
            )
        </if>
        ORDER BY sort
    </select>
    <select id="getRoleNames" resultType="java.lang.String">
        SELECT
        role_name
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java
@@ -48,6 +48,8 @@
     */
    List<RoleVO> tree(String tenantId);
    List<RoleVO> treeByParentId(String parentId);
    /**
     * 权限配置
     *
skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java
@@ -37,6 +37,7 @@
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringPool;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -79,6 +80,14 @@
    }
    @Override
    public List<RoleVO> treeByParentId(String parentId) {
        if (AuthUtil.isAdministrator()) {
            return ForestNodeMerger.merge(baseMapper.tree(StringPool.EMPTY, RoleConstant.ADMINISTRATOR));
        }
        return ForestNodeMerger.merge(baseMapper.treeByParentId(parentId));
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds) {
        return grantRoleMenu(roleIds, menuIds) && grantDataScope(roleIds, dataScopeIds) && grantApiScope(roleIds, apiScopeIds);