diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java index ecb0c1ee4..3b77a4e95 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/pojo/menu/layui/LayuiMenuAndButtonTreeResponse.java @@ -1,7 +1,10 @@ package cn.stylefeng.roses.kernel.system.pojo.menu.layui; +import cn.stylefeng.roses.kernel.rule.abstracts.AbstractTreeNode; import lombok.Data; +import java.util.List; + /** * 角色分配资源和菜单的树 * @@ -9,7 +12,7 @@ import lombok.Data; * @date 2021/1/9 16:59 */ @Data -public class LayuiMenuAndButtonTreeResponse { +public class LayuiMenuAndButtonTreeResponse implements AbstractTreeNode { /** * 节点ID @@ -41,4 +44,23 @@ public class LayuiMenuAndButtonTreeResponse { */ private String buttonCode; + /** + * 子节点集合 + */ + private List children; + + @Override + public String getNodeId() { + return this.id.toString(); + } + + @Override + public String getNodeParentId() { + return this.pid.toString(); + } + + @Override + public void setChildrenNodes(List childrenNodes) { + this.children = childrenNodes; + } } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java index d8dce9969..fac5ec217 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/controller/SysMenuController.java @@ -136,14 +136,26 @@ public class SysMenuController { } /** - * 获取系统菜单树(包含按钮),用于给角色授权时选择 + * 获取系统菜单平级树(包含按钮),用于给角色授权时选择 * * @author majianguo * @date 2021/1/9 17:10 */ @GetResource(name = "获取系统菜单树(包含按钮),用于给角色授权时选择", path = "/sysMenu/menuAndButtonTree") public List menuAndButtonTree(SysRoleRequest sysRoleRequest) { - return sysMenuService.getMenuAndButtonTree(sysRoleRequest); + return sysMenuService.getMenuAndButtonTree(sysRoleRequest, true); + } + + /** + * 获取系统菜单树(包含按钮),用于给角色授权时选择 + * + * @author majianguo + * @date 2021/1/9 17:10 + */ + @GetResource(name = "获取系统菜单树(包含按钮),用于给角色授权时选择", path = "/sysMenu/menuAndButtonTreeChildren") + public ResponseData menuAndButtonTreeChildren(SysRoleRequest sysRoleRequest) { + List treeResponseList = sysMenuService.getMenuAndButtonTree(sysRoleRequest, false); + return new SuccessResponseData(treeResponseList); } /** diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java index 28d4aa7ad..44ea91f3e 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/SysMenuService.java @@ -179,5 +179,5 @@ public interface SysMenuService extends IService { * @author majianguo * @date 2021/1/9 17:11 */ - List getMenuAndButtonTree(SysRoleRequest sysRoleRequest); + List getMenuAndButtonTree(SysRoleRequest sysRoleRequest,Boolean lateralFlag); } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java index 3f17ac8cf..5c9445e66 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/menu/modular/service/impl/SysMenuServiceImpl.java @@ -330,7 +330,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List getMenuAndButtonTree(SysRoleRequest sysRoleRequest) { + public List getMenuAndButtonTree(SysRoleRequest sysRoleRequest, Boolean lateralFlag) { List menuTreeNodeList = CollectionUtil.newArrayList(); LambdaQueryWrapper munuWrapper = new LambdaQueryWrapper<>(); @@ -425,8 +425,13 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 记录菜单节点 menuTreeNodeList.add(menuTree); } - - return menuTreeNodeList; + + // 返回结果 + if (lateralFlag) { + return menuTreeNodeList; + } else { + return new DefaultTreeBuildFactory().doTreeBuild(menuTreeNodeList); + } } @Override diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/controller/ResourceController.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/controller/ResourceController.java index 65472a897..b12b20ca8 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/controller/ResourceController.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/controller/ResourceController.java @@ -75,7 +75,19 @@ public class ResourceController { */ @GetResource(name = "获取资源平级树列表,用于分配接口权限", path = "/resource/getLateralTree") public List getLateralTree(SysRoleRequest sysRoleRequest) { - return sysResourceService.getResourceLateralTree(sysRoleRequest.getRoleId()); + return sysResourceService.getResourceTree(sysRoleRequest.getRoleId(), true); + } + + /** + * 获取资源树列表,用于分配接口权限 + * + * @author majianguo + * @date 2021/1/9 15:07 + */ + @GetResource(name = "获取资源树列表,用于分配接口权限", path = "/resource/getLateralTreeChildren") + public ResponseData getLateralTreeChildren(SysRoleRequest sysRoleRequest) { + List resourceLateralTree = sysResourceService.getResourceTree(sysRoleRequest.getRoleId(), false); + return new SuccessResponseData(resourceLateralTree); } /** diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/pojo/ResourceTreeNode.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/pojo/ResourceTreeNode.java index 1a85b96a7..9ce0cd19c 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/pojo/ResourceTreeNode.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/pojo/ResourceTreeNode.java @@ -1,5 +1,6 @@ package cn.stylefeng.roses.kernel.resource.modular.pojo; +import cn.stylefeng.roses.kernel.rule.abstracts.AbstractTreeNode; import lombok.Data; import java.util.List; @@ -11,7 +12,7 @@ import java.util.List; * @date 2020/3/26 14:29 */ @Data -public class ResourceTreeNode { +public class ResourceTreeNode implements AbstractTreeNode { /** * 资源id @@ -46,4 +47,18 @@ public class ResourceTreeNode { */ private List children; + @Override + public String getNodeId() { + return this.code; + } + + @Override + public String getNodeParentId() { + return this.parentCode; + } + + @Override + public void setChildrenNodes(List childrenNodes) { + this.children = childrenNodes; + } } diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/SysResourceService.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/SysResourceService.java index cef1081db..afc45ca4d 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/SysResourceService.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/SysResourceService.java @@ -73,5 +73,5 @@ public interface SysResourceService extends IService { * @author majianguo * @date 2021/1/9 15:08 */ - List getResourceLateralTree(Long roleId); + List getResourceTree(Long roleId,Boolean lateralFlag); } diff --git a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java index 26b258891..aeeeadbf2 100644 --- a/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java +++ b/kernel-s-system/system-business-resource/src/main/java/cn/stylefeng/roses/kernel/resource/modular/service/impl/SysResourceServiceImpl.java @@ -19,10 +19,12 @@ import cn.stylefeng.roses.kernel.resource.modular.pojo.ResourceTreeNode; import cn.stylefeng.roses.kernel.resource.modular.service.SysResourceService; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; +import cn.stylefeng.roses.kernel.rule.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.system.ResourceServiceApi; import cn.stylefeng.roses.kernel.system.RoleServiceApi; import cn.stylefeng.roses.kernel.system.UserServiceApi; import cn.stylefeng.roses.kernel.system.constants.SystemConstants; +import cn.stylefeng.roses.kernel.system.pojo.organization.layui.LayuiOrganizationTreeNode; import cn.stylefeng.roses.kernel.system.pojo.resource.request.ResourceRequest; import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResourceResponse; import cn.stylefeng.roses.kernel.system.pojo.role.response.SysRoleResponse; @@ -137,7 +139,7 @@ public class SysResourceServiceImpl extends ServiceImpl getResourceLateralTree(Long roleId) { + public List getResourceTree(Long roleId, Boolean lateralFlag) { // 结果 List res = new ArrayList<>(); @@ -214,7 +216,11 @@ public class SysResourceServiceImpl extends ServiceImpl().doTreeBuild(res); + } } @Override