From 4318ffbc62cf082dbea4e045b7ed84da7e0a66ab Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Fri, 23 Apr 2021 16:47:17 +0800
Subject: [PATCH] 修改配置菜单传空数组时不置空问题

---
 screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java |   70 ++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 34 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java
index 57b433f..34c5e4c 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java
@@ -63,7 +63,7 @@
             result = manageRoleMenuMapper.getDataByMenuIds(list,id);
         }
         List<Map> result1 = manageRoleMenuMapper.getDataByRoleId(id);
-        if (manageRoleMenuMapper.selectCount(wrapper)==0 || result.size()==0){
+        if ((manageRoleMenuMapper.selectCount(wrapper)==0 || result.size()==0)&&list.size()!=0){
             List<Map> insertList = new ArrayList<>();
             for (Object temp:list) {
                 Map<String,Object> map = new HashMap<>();
@@ -74,47 +74,49 @@
             if (insertList.size()!=0){
                 manageRoleMenuMapper.insertBatch(insertList);
             }
-        }
-        List updateList = new ArrayList();
-        for (Map manageRoleMenu:result1) {
-            int have = 1;
-            for (Object temp:list){
-                if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){
-                    have = 2;
+        }else {
+            List updateList = new ArrayList();
+            for (Map manageRoleMenu:result1) {
+                int have = 1;
+                for (Object temp:list){
+                    if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){
+                        have = 2;
+                        continue;
+                    }
+                }
+                if (have == 2){
                     continue;
                 }
+                updateList.add(manageRoleMenu.get("menu_id"));
+                System.out.println("++++++++++++++"+updateList);
             }
-            if (have == 2){
-                continue;
-            }
-            updateList.add(manageRoleMenu.get("menu_id"));
-        }
-        List insertList = new ArrayList();
-        for (Object temp:list) {
-            int have = 1;
-            for (Map manageRoleMenu:result1){
-                if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){
-                    have = 2;
+            List insertList = new ArrayList();
+            for (Object temp:list) {
+                int have = 1;
+                for (Map manageRoleMenu:result1){
+                    if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){
+                        have = 2;
+                        continue;
+                    }
+                }
+                if (have == 2){
                     continue;
                 }
+                insertList.add(temp);
             }
-            if (have == 2){
-                continue;
+            if (updateList.size()>0){
+                manageRoleMenuMapper.updateDeleteStateByRoleIdMenuIds(updateList,id);
             }
-            insertList.add(temp);
-        }
-        if (updateList.size()>0){
-            manageRoleMenuMapper.updateDeleteStateByRoleIdMenuIds(updateList,id);
-        }
-        if (insertList.size()>0){
-            List mapList = new ArrayList();
-            for (Object temp:insertList) {
-                Map<String,Integer> insertMap = new HashMap<>();
-                insertMap.put("role_id",id);
-                insertMap.put("menu_id",Integer.parseInt(temp.toString()));
-                mapList.add(insertMap);
+            if (insertList.size()>0){
+                List mapList = new ArrayList();
+                for (Object temp:insertList) {
+                    Map<String,Integer> insertMap = new HashMap<>();
+                    insertMap.put("role_id",id);
+                    insertMap.put("menu_id",Integer.parseInt(temp.toString()));
+                    mapList.add(insertMap);
+                }
+                manageRoleMenuMapper.insertBatch(mapList);
             }
-            manageRoleMenuMapper.insertBatch(mapList);
         }
         List<ManageMenu> manageMenusNew = manageMenuMapper.getManageMenuByRoleId(id);
         List manageMenuOldList = new ArrayList();

--
Gitblit v1.8.0