diff --git a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/service/impl/SysAppServiceImpl.java b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/service/impl/SysAppServiceImpl.java index 918386a75..793835489 100644 --- a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/service/impl/SysAppServiceImpl.java +++ b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/service/impl/SysAppServiceImpl.java @@ -37,10 +37,10 @@ import cn.stylefeng.roses.kernel.system.api.AppServiceApi; import cn.stylefeng.roses.kernel.system.api.MenuServiceApi; import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; import cn.stylefeng.roses.kernel.system.api.exception.enums.app.AppExceptionEnum; +import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppRequest; import cn.stylefeng.roses.kernel.system.modular.app.entity.SysApp; import cn.stylefeng.roses.kernel.system.modular.app.mapper.SysAppMapper; import cn.stylefeng.roses.kernel.system.modular.app.service.SysAppService; -import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -260,6 +260,9 @@ public class SysAppServiceImpl extends ServiceImpl impleme // 根据编码模糊查询 queryWrapper.like(ObjectUtil.isNotEmpty(sysAppRequest.getAppCode()), SysApp::getAppCode, sysAppRequest.getAppCode()); + // 根据激活状态 + queryWrapper.eq(ObjectUtil.isNotEmpty(sysAppRequest.getStatusFlag()), SysApp::getActiveFlag, sysAppRequest.getActiveFlag()); + return queryWrapper; } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java index 1b4095a28..198e5d50e 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/controller/SysMenuController.java @@ -142,8 +142,8 @@ public class SysMenuController { * @date 2021/1/7 15:17 */ @GetResource(name = "获取系统所有菜单(适用于登录后获取左侧菜单)(适配antd vue版本)", path = "/sysMenu/getLeftMenusAntdv", requiredPermission = false) - public ResponseData getLeftMenusAntdv() { - List sysMenuResponses = sysMenuService.getLeftMenusAntdv(); + public ResponseData getLeftMenusAntdv(SysMenuRequest sysMenuRequest) { + List sysMenuResponses = sysMenuService.getLeftMenusAntdv(sysMenuRequest); return new SuccessResponseData(sysMenuResponses); } diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/SysMenuService.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/SysMenuService.java index bcc3305fa..ec4358851 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/SysMenuService.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/service/SysMenuService.java @@ -133,7 +133,7 @@ public interface SysMenuService extends IService { * @author majianguo * @date 2021/1/7 15:24 */ - List getLeftMenusAntdv(); + List getLeftMenusAntdv(SysMenuRequest sysMenuRequest); /** * 获取包含按钮的系统菜单 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 c1a0b239d..9b0bfa2ab 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 @@ -278,30 +278,19 @@ public class SysMenuServiceImpl extends ServiceImpl impl } @Override - public List getLeftMenusAntdv() { + public List getLeftMenusAntdv(SysMenuRequest sysMenuRequest) { - LambdaQueryWrapper wrapper = this.createWrapper(new SysMenuRequest()); - wrapper.select(SysMenu::getMenuName, - SysMenu::getAntdvIcon, - SysMenu::getAntdvRouter, - SysMenu::getAntdvComponent, - SysMenu::getVisible, - SysMenu::getAntdvUidUrl, - SysMenu::getMenuId, - SysMenu::getMenuParentId); - wrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()); + String appCode = sysMenuRequest.getAppCode(); - // 如果是超级管理员,则获取所有的菜单 - if (LoginContext.me().getSuperAdminFlag()) { - List totalList = this.list(wrapper); - return AntdMenusFactory.createTotalMenus(totalList); + // 获取默认激活的应用 + if (ObjectUtil.isEmpty(appCode)) { + appCode = appServiceApi.getActiveAppCode(); } - // 获取当前用户的所有菜单 - List menuIdList = getCurrentUserMenuIds(); - wrapper.in(SysMenu::getMenuId, menuIdList); - List customList = this.list(wrapper); - return AntdMenusFactory.createTotalMenus(customList); + // 获取应用对应的菜单 + List currentUserMenus = this.getCurrentUserMenus(appCode); + + return AntdMenusFactory.createTotalMenus(currentUserMenus); } @Override @@ -417,23 +406,29 @@ public class SysMenuServiceImpl extends ServiceImpl impl @Override public List getCurrentUserMenus(String appCode) { - // 获取当前用户所有的菜单id - List menuIdList = getCurrentUserMenuIds(); - - // 当前用户没有菜单 - if (menuIdList.isEmpty()) { - throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS); - } - - // 获取菜单列表 + // 菜单查询条件 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.in(SysMenu::getMenuId, menuIdList).eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()).eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()).orderByAsc(SysMenu::getMenuSort); + queryWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode()) + .eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode()) + .orderByAsc(SysMenu::getMenuSort); // 如果应用编码不为空,则拼接应用编码 if (StrUtil.isNotBlank(appCode)) { queryWrapper.eq(SysMenu::getAppCode, appCode); } + // 如果是超级管理员,则获取所有的菜单 + if (LoginContext.me().getSuperAdminFlag()) { + return this.list(queryWrapper); + } + + // 非超级管理员,获取当前用户所有的菜单id + List menuIdList = getCurrentUserMenuIds(); + if (menuIdList.isEmpty()) { + throw new SystemModularException(SysUserExceptionEnum.USER_NOT_HAVE_MENUS); + } + queryWrapper.in(SysMenu::getMenuId, menuIdList); + return this.list(queryWrapper); }