From 1da190e7f267bcd3501884f3aeaac7476850fec7 Mon Sep 17 00:00:00 2001 From: EricsHu <hrr145632> Date: 星期日, 26 十一月 2023 17:53:03 +0800 Subject: [PATCH] 优化菜单查询 --- src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java b/src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java index 47ed924..b16bd6b 100644 --- a/src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java +++ b/src/main/java/com/qxueyou/scc/user/service/impl/UserRoleService.java @@ -1,5 +1,6 @@ package com.qxueyou.scc.user.service.impl; +import com.qxueyou.scc.admin.classes.model.ClsClass; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.impl.CommonAppService; import com.qxueyou.scc.base.util.ClientUtils; @@ -17,6 +18,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 瑙掕壊 @@ -28,6 +30,7 @@ public class UserRoleService extends CommonAppService implements IUserRoleService { @Autowired UserRoleDAO dao; + /** * 寰楀埌鑿滃崟 @@ -128,11 +131,47 @@ @Override public Result queryRoleDetail(String roleId) { - List<Map<String, Object>> findMenuLstById = dao.findMenuLstById(roleId); + List<Map<String, Object>> findRoleMenuLstById = dao.findMenuLstById(roleId); UserRole userRole = read(UserRole.class, roleId); +///////////////////////////////////////////////////鏂板鏂规硶 + + StringBuffer hql=new StringBuffer( "select m.name as name ,m.menuId as menuId ,m.parentMenuId as parentMenuId ,m.level as level from SysMenu m where deleteFlag is false "); +//鑾峰彇鎵�鏈夎彍鍗� + List<SysMenu> sysMenusAll = new ArrayList<>(); + List<Map<String, Object>> listWithMapByHql = findListWithMapByHql(hql.toString(), CollectionUtils.newObjectMap()); + //灏唌ap杞寲鎴怱ysMenu瀹炰綋绫� + for (Map<String, Object> stringObjectMap : listWithMapByHql) { + SysMenu sysMenu = new SysMenu(); + sysMenu.setMenuId(stringObjectMap.get("menuId").toString()); + sysMenu.setName(stringObjectMap.get("name").toString()); + sysMenu.setParentMenuId(stringObjectMap.get("parentMenuId").toString()); + sysMenu.setLevel(Integer.parseInt(stringObjectMap.get("level").toString())); + sysMenusAll.add(sysMenu); + } + //鑾峰彇涓�绾ц彍鍗� + List<SysMenu> firstMenuList = sysMenusAll.stream().filter + //杩囨护鍑轰竴绾ц彍鍗� + (s -> s.getLevel()==0) + // 杩斿洖list闆嗗悎褰㈠紡 + .collect(Collectors.toList()); + // 閬嶅巻涓�绾ц彍鍗�,鏋勯�犺彍鍗曟爲 + for (SysMenu menu : firstMenuList) { + getChildrenList(menu, sysMenusAll); + } + ///////////////////////////////////////////////////鏂板鏂规硶 return new Result(true, "success", - CollectionUtils.newObjectMap("roleName", userRole.getName(), "menuLst", findMenuLstById)); + CollectionUtils.newObjectMap("roleName", userRole.getName(), "menuLstAll", firstMenuList,"roleMenuLstById",findRoleMenuLstById)); + } + + public SysMenu getChildrenList(SysMenu sysMenu, List<SysMenu> sysMenuList ) { + for (SysMenu menu : sysMenuList) { + if (menu.getParentMenuId().equals(sysMenu.getMenuId())) { + + sysMenu.getChildrenList().add(getChildrenList(menu, sysMenuList)); + } + } + return sysMenu; } @Override -- Gitblit v1.8.0