From 4965e0f15fe78d1b46acfce6b1dcbda0c38f94b1 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Fri, 24 Jan 2025 14:47:46 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.3=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96=E8=A7=92=E8=89=B2=E6=A0=91?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/sys/api/SysRoleServiceApi.java | 9 +++++ .../sys/api/pojo/role/SysRoleTreeDTO.java | 8 +++++ .../role/service/RoleCategoryService.java | 9 ----- .../service/impl/RoleCategoryServiceImpl.java | 33 +----------------- .../role/service/impl/SysRoleServiceImpl.java | 34 ++++++++++++++++--- 5 files changed, 48 insertions(+), 45 deletions(-) diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysRoleServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysRoleServiceApi.java index ed7be3a64..0891c6155 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysRoleServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/SysRoleServiceApi.java @@ -25,6 +25,7 @@ package cn.stylefeng.roses.kernel.sys.api; import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO; +import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO; import java.util.List; @@ -80,4 +81,12 @@ public interface SysRoleServiceApi { */ List getBusinessRoleAndCompanyRole(List companyIdList); + /** + * 获取角色分类和角色组成的树结构 + * + * @author fengshuonan + * @since 2025/1/24 11:10 + */ + List roleCategoryAndRoleTreeList(Integer roleType, Long companyId); + } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/role/SysRoleTreeDTO.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/role/SysRoleTreeDTO.java index 695203047..bb6fb5fa0 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/role/SysRoleTreeDTO.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/pojo/role/SysRoleTreeDTO.java @@ -69,6 +69,14 @@ public class SysRoleTreeDTO implements AbstractTreeNode { @ChineseDescription("角色类型:10-系统角色,15-业务角色,20-公司角色") private Integer roleType; + /** + * 是否选中 + *

+ * 用在用户绑定角色上,选中的则是绑定的 + */ + @ChineseDescription("是否选中") + private Boolean checkedFlag; + /** * 子节点 */ diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/RoleCategoryService.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/RoleCategoryService.java index 832a6add8..eb42edd28 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/RoleCategoryService.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/RoleCategoryService.java @@ -1,6 +1,5 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service; -import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO; import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory; import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleCategoryRequest; import com.baomidou.mybatisplus.extension.service.IService; @@ -61,12 +60,4 @@ public interface RoleCategoryService extends IService { */ RoleCategory detail(RoleCategoryRequest roleCategoryRequest); - /** - * 获取角色分类和角色组成的树结构 - * - * @author fengshuonan - * @since 2025/1/24 11:10 - */ - List roleCategoryAndRoleTreeList(Integer roleType, Long companyId); - } diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleCategoryServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleCategoryServiceImpl.java index bdd3f82fa..2d3fa3139 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleCategoryServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleCategoryServiceImpl.java @@ -8,15 +8,11 @@ import cn.stylefeng.roses.kernel.rule.pidset.CalcParentIdListUtil; import cn.stylefeng.roses.kernel.rule.pidset.callback.PidGetterService; import cn.stylefeng.roses.kernel.rule.pidset.pojo.ParentIdInfoPojo; import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory; -import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO; import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory; -import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole; import cn.stylefeng.roses.kernel.sys.modular.role.enums.RoleCategoryExceptionEnum; -import cn.stylefeng.roses.kernel.sys.modular.role.factory.RoleTreeFactory; import cn.stylefeng.roses.kernel.sys.modular.role.mapper.RoleCategoryMapper; import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleCategoryRequest; import cn.stylefeng.roses.kernel.sys.modular.role.service.RoleCategoryService; -import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -40,9 +36,6 @@ public class RoleCategoryServiceImpl extends ServiceImpl treeList(RoleCategoryRequest roleCategoryRequest) { LambdaQueryWrapper wrapper = this.createWrapper(roleCategoryRequest); @@ -106,34 +99,10 @@ public class RoleCategoryServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(RoleCategory::getId, roleCategoryRequest.getId()); - queryWrapper.select(RoleCategory::getId, RoleCategory::getCategoryParentId, RoleCategory::getCategoryPids, RoleCategory::getCategoryType, RoleCategory::getRoleCategoryName, - RoleCategory::getFldSort); + queryWrapper.select(RoleCategory::getId, RoleCategory::getCategoryParentId, RoleCategory::getCategoryPids, RoleCategory::getCategoryType, RoleCategory::getRoleCategoryName, RoleCategory::getFldSort); return this.getOne(queryWrapper, false); } - @Override - public List roleCategoryAndRoleTreeList(Integer roleType, Long companyId) { - - // 根据业务类型或者公司类型,获取所有的角色分类列表 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(RoleCategory::getCategoryType, roleType); - if (ObjectUtil.isNotEmpty(companyId)) { - queryWrapper.eq(RoleCategory::getCompanyId, companyId); - } - List roleCategoryList = this.list(queryWrapper); - - // 根据业务类型,获取所有的角色列表 - LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); - roleQueryWrapper.eq(SysRole::getRoleType, roleType); - if (ObjectUtil.isNotEmpty(companyId)) { - roleQueryWrapper.eq(SysRole::getRoleCompanyId, companyId); - } - List sysRoleList = this.sysRoleService.list(roleQueryWrapper); - - // 将角色类型和角色树组成一颗完整的树 - return RoleTreeFactory.createRoleTree(roleCategoryList, sysRoleList); - } - /** * 获取信息 * diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java index 70c0aa9a6..5555b6da8 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/SysRoleServiceImpl.java @@ -20,17 +20,17 @@ import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; import cn.stylefeng.roses.kernel.sys.api.entity.SysMenuOptions; import cn.stylefeng.roses.kernel.sys.api.enums.role.RoleTypeEnum; import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleDTO; +import cn.stylefeng.roses.kernel.sys.api.pojo.role.SysRoleTreeDTO; import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService; import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuService; +import cn.stylefeng.roses.kernel.sys.modular.role.entity.RoleCategory; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRole; import cn.stylefeng.roses.kernel.sys.modular.role.enums.exception.SysRoleExceptionEnum; +import cn.stylefeng.roses.kernel.sys.modular.role.factory.RoleTreeFactory; import cn.stylefeng.roses.kernel.sys.modular.role.mapper.SysRoleMapper; import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.SysRoleRequest; -import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleLimitService; -import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuOptionsService; -import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuService; -import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService; +import cn.stylefeng.roses.kernel.sys.modular.role.service.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -71,6 +71,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Resource(name = "roleNameCache") private CacheOperatorApi roleNameCache; + @Resource + private RoleCategoryService roleCategoryService; + @Override public void add(SysRoleRequest sysRoleRequest) { @@ -426,6 +429,29 @@ public class SysRoleServiceImpl extends ServiceImpl impl } } + @Override + public List roleCategoryAndRoleTreeList(Integer roleType, Long companyId) { + + // 根据业务类型或者公司类型,获取所有的角色分类列表 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RoleCategory::getCategoryType, roleType); + if (ObjectUtil.isNotEmpty(companyId)) { + queryWrapper.eq(RoleCategory::getCompanyId, companyId); + } + List roleCategoryList = this.roleCategoryService.list(queryWrapper); + + // 根据业务类型,获取所有的角色列表 + LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); + roleQueryWrapper.eq(SysRole::getRoleType, roleType); + if (ObjectUtil.isNotEmpty(companyId)) { + roleQueryWrapper.eq(SysRole::getRoleCompanyId, companyId); + } + List sysRoleList = this.list(roleQueryWrapper); + + // 将角色类型和角色树组成一颗完整的树 + return RoleTreeFactory.createRoleTree(roleCategoryList, sysRoleList); + } + /** * 获取信息 *