From 3d879a1df4c1c9c389e43f5dd5c249ed35d7e607 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 05 九月 2024 16:19:35 +0800
Subject: [PATCH] 修改菜单功能

---
 se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java            |   42 ++++++++-----
 se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java         |   46 +++++++++------
 se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml               |   18 +++++
 se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java    |   14 ++++
 docker-compose/mysql/initdb/se_cloud_20240629.sql                                     |    3 +
 se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java |    7 ++
 docker-compose/docker-compose.yml                                                     |    3 
 7 files changed, 94 insertions(+), 39 deletions(-)

diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml
index 75e675b..041a6f9 100644
--- a/docker-compose/docker-compose.yml
+++ b/docker-compose/docker-compose.yml
@@ -35,8 +35,9 @@
       - ./nacos/logs/:/home/nacos/logs
       - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
     ports:
+#      - 7848:7848
       - 8848:8848
-#      - 9848:9848
+      - 9848:9848
 #      - 9849:9849
     depends_on:
       - se-mysql
diff --git a/docker-compose/mysql/initdb/se_cloud_20240629.sql b/docker-compose/mysql/initdb/se_cloud_20240629.sql
index 97db0a4..8b99704 100644
--- a/docker-compose/mysql/initdb/se_cloud_20240629.sql
+++ b/docker-compose/mysql/initdb/se_cloud_20240629.sql
@@ -390,6 +390,9 @@
 -- insert into sys_role_menu values ('2', '1059');
 -- insert into sys_role_menu values ('2', '1060');
 
+update sys_role_menu set role_id = 1;
+-- select * from sys_role_menu;
+
 -- ----------------------------
 -- 8銆佽鑹插拰閮ㄩ棬鍏宠仈琛�  瑙掕壊1-N閮ㄩ棬
 -- ----------------------------
diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java
index 4b87041..e7cdf65 100644
--- a/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java
+++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java
@@ -157,4 +157,18 @@
         List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
         return success(menuService.buildMenus(menus));
     }
+
+    /**
+     * 鏍规嵁鏍囪瘑鑾峰彇鑿滃崟
+     *
+     * @return 鑿滃崟
+     */
+    @GetMapping("getMenusByMark")
+    public AjaxResult getMenusByMark(String mark)
+    {
+        Long userId = SecurityUtils.getUserId();
+        List<SysMenu> menus = menuService.selectMenusByUserIdAndMark(userId, mark);
+
+        return success(menus);
+    }
 }
\ No newline at end of file
diff --git a/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java
index 4df0242..cf1c83e 100644
--- a/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java
+++ b/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java
@@ -10,11 +10,10 @@
  * 
  * @author admin
  */
-public interface SysMenuMapper
-{
+public interface SysMenuMapper {
     /**
      * 鏌ヨ绯荤粺鑿滃崟鍒楄〃
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 鑿滃崟鍒楄〃
      */
@@ -22,14 +21,14 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛鎵�鏈夋潈闄�
-     * 
+     *
      * @return 鏉冮檺鍒楄〃
      */
     public List<String> selectMenuPerms();
 
     /**
      * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 鑿滃崟鍒楄〃
      */
@@ -37,7 +36,7 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
-     * 
+     *
      * @param roleId 瑙掕壊ID
      * @return 鏉冮檺鍒楄〃
      */
@@ -45,7 +44,7 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺
-     * 
+     *
      * @param userId 鐢ㄦ埛ID
      * @return 鏉冮檺鍒楄〃
      */
@@ -53,14 +52,14 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟
-     * 
+     *
      * @return 鑿滃崟鍒楄〃
      */
     public List<SysMenu> selectMenuTreeAll();
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟
-     * 
+     *
      * @param userId 鐢ㄦ埛ID
      * @return 鑿滃崟鍒楄〃
      */
@@ -68,8 +67,8 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
-     * 
-     * @param roleId 瑙掕壊ID
+     *
+     * @param roleId            瑙掕壊ID
      * @param menuCheckStrictly 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀�
      * @return 閫変腑鑿滃崟鍒楄〃
      */
@@ -77,7 +76,7 @@
 
     /**
      * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 鑿滃崟淇℃伅
      */
@@ -85,7 +84,7 @@
 
     /**
      * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 缁撴灉
      */
@@ -93,7 +92,7 @@
 
     /**
      * 鏂板鑿滃崟淇℃伅
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
@@ -101,7 +100,7 @@
 
     /**
      * 淇敼鑿滃崟淇℃伅
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
@@ -109,7 +108,7 @@
 
     /**
      * 鍒犻櫎鑿滃崟绠$悊淇℃伅
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 缁撴灉
      */
@@ -117,10 +116,19 @@
 
     /**
      * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴
-     * 
+     *
      * @param menuName 鑿滃崟鍚嶇О
      * @param parentId 鐖惰彍鍗旾D
      * @return 缁撴灉
      */
     public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId);
+
+    /**
+     * 鏍规嵁鐢ㄦ埛ID鍜屾爣璇嗘煡璇㈣彍鍗�
+     *
+     * @param userId 鐢ㄦ埛ID
+     * @param mark   鏍囪瘑
+     * @return 鑿滃崟闆嗗悎
+     */
+    List<SysMenu> selectMenusByUserIdAndMark(@Param("userId") Long userId, @Param("mark") String mark);
 }
diff --git a/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java b/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java
index 61746b0..0b38484 100644
--- a/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java
@@ -11,11 +11,10 @@
  * 
  * @author admin
  */
-public interface ISysMenuService
-{
+public interface ISysMenuService {
     /**
      * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃
-     * 
+     *
      * @param userId 鐢ㄦ埛ID
      * @return 鑿滃崟鍒楄〃
      */
@@ -23,8 +22,8 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃
-     * 
-     * @param menu 鑿滃崟淇℃伅
+     *
+     * @param menu   鑿滃崟淇℃伅
      * @param userId 鐢ㄦ埛ID
      * @return 鑿滃崟鍒楄〃
      */
@@ -32,7 +31,7 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺
-     * 
+     *
      * @param userId 鐢ㄦ埛ID
      * @return 鏉冮檺鍒楄〃
      */
@@ -40,7 +39,7 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺
-     * 
+     *
      * @param roleId 瑙掕壊ID
      * @return 鏉冮檺鍒楄〃
      */
@@ -48,7 +47,7 @@
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟鏍戜俊鎭�
-     * 
+     *
      * @param userId 鐢ㄦ埛ID
      * @return 鑿滃崟鍒楄〃
      */
@@ -56,7 +55,7 @@
 
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
-     * 
+     *
      * @param roleId 瑙掕壊ID
      * @return 閫変腑鑿滃崟鍒楄〃
      */
@@ -64,7 +63,7 @@
 
     /**
      * 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟
-     * 
+     *
      * @param menus 鑿滃崟鍒楄〃
      * @return 璺敱鍒楄〃
      */
@@ -72,7 +71,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯
-     * 
+     *
      * @param menus 鑿滃崟鍒楄〃
      * @return 鏍戠粨鏋勫垪琛�
      */
@@ -80,7 +79,7 @@
 
     /**
      * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯
-     * 
+     *
      * @param menus 鑿滃崟鍒楄〃
      * @return 涓嬫媺鏍戠粨鏋勫垪琛�
      */
@@ -88,7 +87,7 @@
 
     /**
      * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 鑿滃崟淇℃伅
      */
@@ -96,7 +95,7 @@
 
     /**
      * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐�
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦�
      */
@@ -104,7 +103,7 @@
 
     /**
      * 鏌ヨ鑿滃崟鏄惁瀛樺湪瑙掕壊
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦�
      */
@@ -112,7 +111,7 @@
 
     /**
      * 鏂板淇濆瓨鑿滃崟淇℃伅
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
@@ -120,7 +119,7 @@
 
     /**
      * 淇敼淇濆瓨鑿滃崟淇℃伅
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
@@ -128,7 +127,7 @@
 
     /**
      * 鍒犻櫎鑿滃崟绠$悊淇℃伅
-     * 
+     *
      * @param menuId 鑿滃崟ID
      * @return 缁撴灉
      */
@@ -136,9 +135,18 @@
 
     /**
      * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴
-     * 
+     *
      * @param menu 鑿滃崟淇℃伅
      * @return 缁撴灉
      */
     public boolean checkMenuNameUnique(SysMenu menu);
+
+    /**
+     * 鏍规嵁鐢ㄦ埛ID鍜屾爣璇嗘煡璇㈣彍鍗�
+     *
+     * @param userId 鐢ㄦ埛ID
+     * @param mark   鏍囪瘑
+     * @return 鑿滃崟闆嗗悎
+     */
+    List<SysMenu> selectMenusByUserIdAndMark(Long userId, String mark);
 }
diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java
index 6dcb451..1d73a13 100644
--- a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java
+++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java
@@ -143,6 +143,13 @@
         return getChildPerms(menus, 0);
     }
 
+    @Override
+    public List<SysMenu> selectMenusByUserIdAndMark(Long userId, String mark) {
+        List<SysMenu> menus = menuMapper.selectMenusByUserIdAndMark(userId, mark);
+
+        return getChildPerms(menus, 0);
+    }
+
     /**
      * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭�
      * 
diff --git a/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml
index eecb729..6caf382 100644
--- a/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml
+++ b/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml
@@ -74,7 +74,7 @@
 		</if>
 		order by m.parent_id, m.order_num
 	</select>
-    
+
     <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult">
 		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
 		from sys_menu m
@@ -85,7 +85,21 @@
 		where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0  AND ro.status = 0
 		order by m.parent_id, m.order_num
 	</select>
-	
+
+	<select id="selectMenusByUserIdAndMark" resultMap="SysMenuResult">
+		select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time
+		from sys_menu m
+			left join sys_role_menu rm on m.menu_id = rm.menu_id
+			left join sys_user_role ur on rm.role_id = ur.role_id
+			left join sys_role ro on ur.role_id = ro.role_id
+			left join sys_user u on ur.user_id = u.user_id
+		where u.user_id = #{userId} and m.menu_type in ('M', 'C', 'F') and m.status = 0  AND ro.status = 0
+			<if test="mark != null and mark != ''">
+				AND m.mark = #{mark}
+			</if>
+		order by m.parent_id, m.order_num
+	</select>
+
 	<select id="selectMenuListByRoleId" resultType="Long">
 		select m.menu_id
 		from sys_menu m

--
Gitblit v1.9.3