diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/app/AppExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/app/AppExceptionEnum.java index 991c5cf32..91972e51d 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/app/AppExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/app/AppExceptionEnum.java @@ -56,7 +56,12 @@ public enum AppExceptionEnum implements AbstractExceptionEnum { /** * 激活的应用不能被禁用 */ - CANT_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "14", "激活的应用不能被禁用"); + CANT_DISABLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "14", "激活的应用不能被禁用"), + + /** + * 激活应用失败,该应用没有菜单 + */ + ACTIVE_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "15", "激活应用失败,该应用没有菜单"); /** * 错误编码 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 72741f2b1..fac61dfc3 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 @@ -155,6 +155,12 @@ public class SysAppServiceImpl extends ServiceImpl impleme public void updateActiveFlag(SysAppRequest sysAppRequest) { SysApp currentApp = this.querySysApp(sysAppRequest); + // 如果应用下没有菜单,不能激活 + boolean hasMenu = menuApi.hasMenu(currentApp.getAppCode()); + if (hasMenu) { + throw new ServiceException(AppExceptionEnum.ACTIVE_ERROR); + } + // 所有已激活的改为未激活 LambdaUpdateWrapper sysAppLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); sysAppLambdaUpdateWrapper.set(SysApp::getActiveFlag, YesOrNotEnum.N.getCode());