From d22b530fa0fbd910d8d7baefa29d88d755568e68 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 15 十二月 2025 10:01:41 +0800
Subject: [PATCH] 1、 修复权限相关的bug

---
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
index 2d08603..8201887 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -19,6 +19,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
 import java.util.List;
@@ -102,20 +103,31 @@
      * @return
      */
     private String saveRoleMenu(Long roleId, List<SysMenu> menuList) {
-        log.info("閰嶇疆瑙掕壊鑿滃崟鍏冲績");
+        log.info("閰嶇疆瑙掕壊鑿滃崟鍏崇郴");
+        if (CollectionUtils.isEmpty(menuList)) {
+            // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
+            sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
+            // 鍒犻櫎缂撳瓨
+            sysUserService.clearUserAuthorityInfoByRoleId(roleId);
+            return "success";
+        }
         List<SysRoleMenu> roleMenuList = menuList.stream().map(menu -> {
-            SysRoleMenu roleMenu = new SysRoleMenu();
-            roleMenu.setRoleId(roleId);
-            roleMenu.setMenuId(menu.getId());
+            SysRoleMenu roleMenu = new SysRoleMenu(roleId,menu.getId());
             return roleMenu;
         }).collect(Collectors.toList());
+        // 浣跨敤娴佸鐞嗚彍鍗曞垪琛紝鎻愬彇 children 鐨� id锛屽苟璁剧疆鍒� SysRoleMenu 涓�
+        List<SysRoleMenu> childrenList = menuList.stream()
+                .flatMap(menu -> menu.getChildren().stream()) // 鎵佸钩鍖栧鐞� children 鍒楄〃
+                .map(child -> {
+                    SysRoleMenu roleMenu = new SysRoleMenu(roleId,child.getId());
+                    return roleMenu;
+                })
+                .collect(Collectors.toList());
         log.info("娓呯┖瑙掕壊鏉冮檺琛ㄤ腑璇ヨ鑹蹭俊鎭�");
-
-
         // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑
         sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
         sysRoleMenuService.saveBatch(roleMenuList);
-
+        sysRoleMenuService.saveBatch(childrenList);
         // 鍒犻櫎缂撳瓨
         sysUserService.clearUserAuthorityInfoByRoleId(roleId);
         return "success";

--
Gitblit v1.8.0