From 4b8e20b85c1e114aacdab2a31bd851012f71b755 Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Tue, 27 Apr 2021 17:11:20 +0800 Subject: [PATCH] 递归查询前端传入的所有子菜单的父菜单 --- screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java | 2 +- screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java b/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java index 5e9236d..6a0a421 100644 --- a/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java +++ b/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java @@ -19,6 +19,6 @@ public interface ManageRoleMenuService extends IService<ManageRoleMenu> { @Transactional - Map<String,Object> updateRoleMenu(List list,int id); + Map<String,Object> updateRoleMenu(List menuList,int id); } 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 b09e4b8..0db0ef6 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 @@ -16,14 +16,13 @@ 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 +49,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(); @@ -143,4 +151,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