From c4e4ee266f3bce750c09731a7241405ae528d3f0 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Tue, 24 Aug 2021 20:16:14 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.1.2=E3=80=91=E3=80=90app=E3=80=91?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=AE=A1=E7=90=86=E5=A2=9E=E5=8A=A0=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/system/api/AppServiceApi.java | 9 ++ .../system/api/pojo/app/SysAppRequest.java | 9 +- .../system/api/pojo/app/SysAppResult.java | 84 +++++++++++++++++++ .../system/modular/app/entity/SysApp.java | 7 ++ .../app/service/impl/SysAppServiceImpl.java | 17 ++++ .../menu/factory/AntdMenusFactory.java | 26 +++--- 6 files changed, 137 insertions(+), 15 deletions(-) create mode 100644 kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/AppServiceApi.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/AppServiceApi.java index 4b13e516c..5ae86998b 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/AppServiceApi.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/AppServiceApi.java @@ -25,6 +25,7 @@ package cn.stylefeng.roses.kernel.system.api; import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; +import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult; import java.util.Set; @@ -65,4 +66,12 @@ public interface AppServiceApi { */ String getActiveAppCode(); + /** + * 获取应用信息详情 + * + * @author fengshuonan + * @date 2021/8/24 20:12 + */ + SysAppResult getAppInfoByAppCode(String appCode); + } diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java index 513cd5815..5bdc7dbcf 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppRequest.java @@ -76,9 +76,16 @@ public class SysAppRequest extends BaseRequest { columnName = "app_code", idFieldName = "app_id", excludeLogicDeleteItems = true) - @ChineseDescription("编码不能为空") + @ChineseDescription("应用编码") private String appCode; + /** + * 应用图标 + */ + @NotBlank(message = "应用图标不能为空", groups = {add.class, edit.class}) + @ChineseDescription("应用图标") + private String appIcon; + /** * 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开 */ diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java new file mode 100644 index 000000000..0f59cd40d --- /dev/null +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/pojo/app/SysAppResult.java @@ -0,0 +1,84 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.system.api.pojo.app; + +import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity; +import cn.stylefeng.roses.kernel.scanner.api.annotation.field.ChineseDescription; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 系统应用表 + * + * @author fengshuonan + * @date 2020/11/24 21:05 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SysAppResult extends BaseEntity { + + /** + * 主键id + */ + @ChineseDescription("主键id") + private Long appId; + + /** + * 应用名称 + */ + @ChineseDescription("应用名称") + private String appName; + + /** + * 编码 + */ + @ChineseDescription("编码") + private String appCode; + + /** + * 应用图标 + */ + @ChineseDescription("应用图标") + private String appIcon; + + /** + * 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开 + */ + @ChineseDescription("是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开") + private String activeFlag; + + /** + * 状态:1-启用,2-禁用 + */ + @ChineseDescription("状态:1-启用,2-禁用") + private Integer statusFlag; + + /** + * 是否删除:Y-已删除,N-未删除 + */ + @ChineseDescription("是否删除:Y-已删除,N-未删除") + private String delFlag; + +} diff --git a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java index df5b91e2f..1e9357e4b 100644 --- a/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java +++ b/kernel-s-system/system-business-app/src/main/java/cn/stylefeng/roses/kernel/system/modular/app/entity/SysApp.java @@ -65,6 +65,13 @@ public class SysApp extends BaseEntity { @ChineseDescription("编码") private String appCode; + /** + * 应用图标 + */ + @TableField("app_icon") + @ChineseDescription("应用图标") + private String appIcon; + /** * 是否默认激活:Y-是,N-否,激活的应用下的菜单会在首页默认展开 */ 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 aafbc4b85..82d3aedd9 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 @@ -38,6 +38,7 @@ 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.api.pojo.app.SysAppResult; 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; @@ -73,6 +74,7 @@ public class SysAppServiceImpl extends ServiceImpl impleme // 设置名称和编码 sysApp.setAppName(sysAppRequest.getAppName()); sysApp.setAppCode(sysAppRequest.getAppCode()); + sysApp.setAppIcon(sysAppRequest.getAppIcon()); // 默认不激活 sysApp.setActiveFlag(YesOrNotEnum.N.getCode()); @@ -246,6 +248,21 @@ public class SysAppServiceImpl extends ServiceImpl impleme } } + @Override + public SysAppResult getAppInfoByAppCode(String appCode) { + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(SysApp::getAppCode, appCode); + SysApp sysApp = this.getOne(lambdaQueryWrapper, false); + + if (sysApp != null) { + SysAppResult sysAppResult = new SysAppResult(); + BeanUtil.copyProperties(sysApp, sysAppResult); + return sysAppResult; + } else { + return new SysAppResult(); + } + } + /** * 获取系统应用 * diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java index c810e914b..bed17f131 100644 --- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java +++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/AntdMenusFactory.java @@ -25,14 +25,13 @@ package cn.stylefeng.roses.kernel.system.modular.menu.factory; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import cn.stylefeng.roses.kernel.rule.constants.TreeConstants; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; -import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.tree.factory.DefaultTreeBuildFactory; import cn.stylefeng.roses.kernel.system.api.AppServiceApi; +import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult; import cn.stylefeng.roses.kernel.system.api.pojo.menu.MenuAndButtonTreeResponse; import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdMenuSelectTreeNode; import cn.stylefeng.roses.kernel.system.api.pojo.menu.antd.AntdSysMenuDTO; @@ -42,7 +41,10 @@ import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu; import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenuButton; import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * 针对于antd vue版本的前端菜单的组装 @@ -289,17 +291,13 @@ public class AntdMenusFactory { // 获取应用的详细信息 AppServiceApi appServiceApi = SpringUtil.getBean(AppServiceApi.class); - Set appsByAppCodes = appServiceApi.getAppsByAppCodes(CollectionUtil.set(false, appCode)); - - if (appsByAppCodes.size() > 0) { - SimpleDict appInfo = appsByAppCodes.iterator().next(); - antdSysMenuDTO.setTitle(appInfo.getName()); - antdSysMenuDTO.setIcon("PieChartTwoTone"); - antdSysMenuDTO.setPath("/" + appCode); - antdSysMenuDTO.setComponent(null); - antdSysMenuDTO.setHide(false); - antdSysMenuDTO.setUid(null); - } + SysAppResult appInfoByAppCode = appServiceApi.getAppInfoByAppCode(appCode); + antdSysMenuDTO.setTitle(appInfoByAppCode.getAppName()); + antdSysMenuDTO.setIcon(appInfoByAppCode.getAppIcon()); + antdSysMenuDTO.setPath("/" + appCode); + antdSysMenuDTO.setComponent(null); + antdSysMenuDTO.setHide(false); + antdSysMenuDTO.setUid(null); return antdSysMenuDTO; }