From d658560b2152bcedf57b8eff4e4e6915c7b2765b Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Thu, 29 Sep 2022 15:48:17 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.2.5=E3=80=91=E3=80=90role=E3=80=91?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=BB=91=E5=AE=9A=E8=8F=9C=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=92=8C=E8=8E=B7=E5=8F=96=E7=BB=91=E5=AE=9A=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E6=9D=83=E9=99=90=E5=88=97=E8=A1=A8=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menu/service/impl/SysMenuServiceImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java index fc437d8e0..c30ea3291 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/impl/SysMenuServiceImpl.java @@ -483,7 +483,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl public List getRoleBindMenuList(SysRoleRequest sysRoleRequest) { // 获取所有一级菜单,子菜单包含在children内 - List sysMenus = totalMenusWithOneLevel(); + List sysMenus = totalMenusWithOneLevel(sysRoleRequest.getResourceBizType()); // 获取角色绑定的菜单 List roleMenuList = roleServiceApi.getRoleMenuList(Collections.singletonList(sysRoleRequest.getRoleId())); @@ -496,7 +496,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl public List getRoleBindOperateList(SysRoleRequest sysRoleRequest) { // 获取所有一级菜单,子菜单包含在children内 - List sysMenus = totalMenusWithOneLevel(); + List sysMenus = totalMenusWithOneLevel(sysRoleRequest.getResourceBizType()); // 查询这些菜单对应的所有按钮 LambdaQueryWrapper buttonWrapper = new LambdaQueryWrapper<>(); @@ -854,15 +854,21 @@ public class SysMenuServiceImpl extends ServiceImpl impl /** * 获取所有的菜单,以一级菜单的形式展示 * + * @param antdvFrontType 菜单是前台显示还是后台显示 * @author fengshuonan * @date 2022/9/28 17:46 */ - private List totalMenusWithOneLevel() { + private List totalMenusWithOneLevel(Integer antdvFrontType) { // 查询所有菜单列表,根据前台传递参数,可选择前台还是后台菜单 LambdaQueryWrapper menuWrapper = new LambdaQueryWrapper<>(); menuWrapper.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()); menuWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()); - menuWrapper.eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.FRONT.getCode()); + + // 查询所有指定类型的菜单 + if (antdvFrontType != null) { + menuWrapper.nested(i -> i.eq(SysMenu::getAntdvFrontType, antdvFrontType).or().eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode())); + } + List sysMenuList = this.list(menuWrapper); // 将所有节点转化成树结构,整体只要两级结构,一级是一级菜单,第二级是所有以下菜单