From 320e7cd68a368a666986019e29c4af0fc9ddaa48 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期日, 12 四月 2026 20:13:21 +0800
Subject: [PATCH] 处理冲突

---
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupMenuServiceImpl.java |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupMenuServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupMenuServiceImpl.java
index 6ed0434..c23a53c 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupMenuServiceImpl.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/SysGroupMenuServiceImpl.java
@@ -59,8 +59,25 @@
             return;
         }
 
+        List<SysGroupMenu> list = this.list(new LambdaQueryWrapper<SysGroupMenu>().eq(SysGroupMenu::getGroupId, groupId));
+        List<Long> deleteMenuIds = new ArrayList<>();
+        List<Long> addMenuIds = new ArrayList<>();
+        //查找需要删除的数据
+        for (SysGroupMenu sysGroupMenu : list) {
+            if(!menuIds.contains(sysGroupMenu.getMenuId())){
+                deleteMenuIds.add(sysGroupMenu.getMenuId());
+            }
+        }
+        //查找需要添加的数据
+        List<Long> collect = list.stream().map(SysGroupMenu::getMenuId).collect(Collectors.toList());
+        for (Long menuId : menuIds) {
+            if(!collect.contains(menuId)){
+                addMenuIds.add(menuId);
+            }
+        }
+
         // 构建批量插入的数据
-        List<SysGroupMenu> groupMenus = menuIds.stream()
+        List<SysGroupMenu> groupMenus = addMenuIds.stream()
                 .filter(Objects::nonNull)
                 .map(menuId -> {
                     SysGroupMenu groupMenu = new SysGroupMenu();
@@ -74,6 +91,9 @@
         if (!groupMenus.isEmpty()) {
             this.saveBatch(groupMenus);
         }
+        if(!deleteMenuIds.isEmpty()){
+            this.remove(new LambdaQueryWrapper<SysGroupMenu>().eq(SysGroupMenu::getGroupId, groupId).in(SysGroupMenu::getMenuId, deleteMenuIds));
+        }
     }
 
     /**

--
Gitblit v1.7.1