From 5bacbb17debde58d6ff2581e4a03a866ca009c02 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Mon, 31 May 2021 15:33:05 +0800
Subject: [PATCH] 菜单接口合并,查询父菜单列表

---
 screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java |   39 +++++++++++++++++++++++++++++++++------
 1 files changed, 33 insertions(+), 6 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 34c5e4c..0eefaa7 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
@@ -13,17 +13,17 @@
 import com.moral.api.util.LogUtils;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.TokenUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -50,7 +50,16 @@
 
     @Override
     @Transactional
-    public Map<String, Object> updateRoleMenu(List list, int id) {
+    public Map<String, Object> updateRoleMenu(List menuList, int id) {
+        //���������������
+        List supplementList = new ArrayList();
+        supplementList.addAll(menuList);
+        for (int i=0;i<supplementList.size();i++) {
+            supplementList.addAll(supplementParentMenus(Integer.parseInt(supplementList.get(i).toString())));
+        }
+        LinkedHashSet<Object> hashSet = new LinkedHashSet<>(supplementList);
+        ArrayList<Object> list = new ArrayList<>(hashSet);
+        //return null;
         Map<String,Object> resultMap = new HashMap<>();
         List<ManageMenu> manageMenusOld = manageMenuMapper.getManageMenuByRoleId(id);
         QueryWrapper<ManageRoleMenu> wrapper = new QueryWrapper();
@@ -88,7 +97,6 @@
                     continue;
                 }
                 updateList.add(manageRoleMenu.get("menu_id"));
-                System.out.println("++++++++++++++"+updateList);
             }
             List insertList = new ArrayList();
             for (Object temp:list) {
@@ -118,6 +126,8 @@
                 manageRoleMenuMapper.insertBatch(mapList);
             }
         }
+        //������token
+        TokenUtils.destoryToken(id);
         List<ManageMenu> manageMenusNew = manageMenuMapper.getManageMenuByRoleId(id);
         List manageMenuOldList = new ArrayList();
         List manageMenuNewList = new ArrayList();
@@ -144,4 +154,21 @@
         resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg());
         return resultMap;
     }
+
+    /**
+     * @Description: ���������������
+     * @Param: [list, menuId]list���menuId������
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/4/7
+     */
+    private List supplementParentMenus(int menuId) {
+        List list = new ArrayList();
+        ManageMenu manageMenu = manageMenuMapper.getManageMenuById(menuId);
+        if (manageMenu.getParentId()!=0){
+            list.add(manageMenu.getParentId());
+            list.addAll(supplementParentMenus(manageMenu.getParentId()));
+        }
+        return list;
+    }
 }

--
Gitblit v1.8.0