From 73accd59c10f5d7344cdaeccc05f141cc300069d Mon Sep 17 00:00:00 2001
From: fengshuonan <sn93@qq.com>
Date: Wed, 21 Jul 2021 15:32:02 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=907.0.4=E3=80=91=E3=80=90menu=E3=80=91?=
 =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=97=B6?=
 =?UTF-8?q?=E5=80=99=E7=9A=84=E7=B1=BB=E5=9E=8B=E8=AE=BE=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../modular/menu/factory/MenuTypeFactory.java | 24 +++++++++++++++----
 .../menu/service/impl/SysMenuServiceImpl.java |  8 +++----
 2 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/MenuTypeFactory.java b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/MenuTypeFactory.java
index b929840ba..518e40ead 100644
--- a/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/MenuTypeFactory.java
+++ b/kernel-s-system/system-business-menu/src/main/java/cn/stylefeng/roses/kernel/system/modular/menu/factory/MenuTypeFactory.java
@@ -25,6 +25,7 @@
 package cn.stylefeng.roses.kernel.system.modular.menu.factory;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
 import cn.stylefeng.roses.kernel.system.modular.menu.entity.SysMenu;
 
@@ -42,7 +43,8 @@ public class MenuTypeFactory {
      * @author fengshuonan
      * @date 2021/7/21 14:44
      */
-    public static void processMenuType(SysMenu sysMenu) {
+    public static void processMenuType(SysMenu sysMenu, String visible) {
+
         if (ObjectUtil.isAllEmpty(
                 sysMenu.getAntdvIcon(),
                 sysMenu.getAntdvComponent(),
@@ -50,15 +52,27 @@ public class MenuTypeFactory {
                 sysMenu.getAntdvUidUrl(),
                 sysMenu.getAntdvLinkOpenType(),
                 sysMenu.getAntdvLinkUrl())) {
-            sysMenu.setLayuiVisible(YesOrNotEnum.Y.getCode());
-            sysMenu.setAntdvVisible(YesOrNotEnum.N.getCode());
+
+            if (StrUtil.isEmpty(visible)) {
+                sysMenu.setLayuiVisible(YesOrNotEnum.Y.getCode());
+                sysMenu.setAntdvVisible(YesOrNotEnum.N.getCode());
+            } else {
+                sysMenu.setLayuiVisible(visible);
+                sysMenu.setAntdvVisible(YesOrNotEnum.N.getCode());
+            }
         }
 
         if (ObjectUtil.isAllEmpty(
                 sysMenu.getLayuiIcon(),
                 sysMenu.getLayuiPath())) {
-            sysMenu.setLayuiVisible(YesOrNotEnum.N.getCode());
-            sysMenu.setAntdvVisible(YesOrNotEnum.Y.getCode());
+
+            if (StrUtil.isEmpty(visible)) {
+                sysMenu.setLayuiVisible(YesOrNotEnum.N.getCode());
+                sysMenu.setAntdvVisible(YesOrNotEnum.Y.getCode());
+            } else {
+                sysMenu.setLayuiVisible(YesOrNotEnum.N.getCode());
+                sysMenu.setAntdvVisible(visible);
+            }
         }
     }
 
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 72f77ba6a..e6346cd84 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
@@ -121,7 +121,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         sysMenu.setDelFlag(YesOrNotEnum.N.getCode());
 
         // 设置添加的菜单的类型
-        MenuTypeFactory.processMenuType(sysMenu);
+        MenuTypeFactory.processMenuType(sysMenu, sysMenuRequest.getVisible());
 
         this.save(sysMenu);
     }
@@ -164,10 +164,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         // 不能修改状态,用修改状态接口修改状态
         oldMenu.setStatusFlag(null);
 
-        // 更新 AntdvVisible LayuiVisible 字段
-        String visible = sysMenuRequest.getVisible();
-        oldMenu.setAntdvVisible(visible);
-        oldMenu.setLayuiVisible(visible);
+        // 设置添加的菜单的类型fengshuonan_sedinbj
+        MenuTypeFactory.processMenuType(oldMenu, sysMenuRequest.getVisible());
 
         this.updateById(oldMenu);
     }