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