From c3e1a6e698747891f85823255f6fe653e112783b Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Sun, 27 Dec 2020 18:21:53 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90menu=E3=80=91=E6=95=B4=E7=90=86?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E7=9A=84=E4=B8=A4=E4=B8=AA=E9=80=9A=E7=94=A8?= =?UTF-8?q?service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../menu/modular/service/SysMenuService.java | 19 ++++++++++++- .../service/impl/SysMenuServiceImpl.java | 27 ++++++++++++++++--- 2 files changed, 41 insertions(+), 5 deletions(-) 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 6ab98a932..4f01f36d4 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 @@ -25,10 +25,10 @@ Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意 package cn.stylefeng.roses.kernel.menu.modular.service; import cn.stylefeng.roses.kernel.menu.modular.entity.SysMenu; -import com.baomidou.mybatisplus.extension.service.IService; import cn.stylefeng.roses.kernel.system.pojo.menu.SysMenuRequest; import cn.stylefeng.roses.kernel.system.pojo.menu.tree.LoginMenuTreeNode; import cn.stylefeng.roses.kernel.system.pojo.menu.tree.MenuBaseTreeNode; +import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -87,6 +87,23 @@ public interface SysMenuService extends IService { */ List list(SysMenuRequest sysMenuRequest); + /** + * 获取当前用户的所有菜单 + * + * @author fengshuonan + * @date 2020/12/27 18:11 + */ + List getCurrentUserMenus(); + + /** + * 获取当前用户的某个应用下的菜单 + * + * @param appCode 应用编码 + * @author fengshuonan + * @date 2020/12/27 18:11 + */ + List getCurrentUserMenus(String appCode); + /** * 获取某个应用的菜单,用于系统顶部切换菜单(AntDesign前端框架) * 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 f0d6d6a5b..e10aab2e5 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 @@ -27,6 +27,7 @@ package cn.stylefeng.roses.kernel.menu.modular.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo; @@ -148,8 +149,14 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List getAppMenusAntDesign(String appCode) { + public List getCurrentUserMenus() { + return getCurrentUserMenus(null); + } + @Override + public List getCurrentUserMenus(String appCode) { + + // 获取当前用户所有的菜单id List menuIdList = getCurrentUserMenuIds(); // 当前用户没有菜单 @@ -162,12 +169,24 @@ public class SysMenuServiceImpl extends ServiceImpl impl queryWrapper.in(SysMenu::getMenuId, menuIdList) .eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()) .eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()) - .eq(SysMenu::getAppCode, appCode) .orderByAsc(SysMenu::getMenuSort); - List sysMenuList = this.list(queryWrapper); + + // 如果应用编码不为空,则拼接应用编码 + if (StrUtil.isNotBlank(appCode)) { + queryWrapper.eq(SysMenu::getAppCode, appCode); + } + + return this.list(queryWrapper); + } + + @Override + public List getAppMenusAntDesign(String appCode) { + + // 获取当前用户的所有菜单 + List currentUserMenus = this.getCurrentUserMenus(appCode); // 转换成登录菜单格式 - return MenuFactory.convertSysMenuToLoginMenu(sysMenuList); + return MenuFactory.convertSysMenuToLoginMenu(currentUserMenus); } @Override