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