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 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 49 insertions(+), 9 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 27d3b60..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,9 +18,10 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** - * 角色 + * 瑙掕壊 * * @author ody.yuan * @@ -29,8 +31,9 @@ @Autowired UserRoleDAO dao; + /** - * 得到菜单 + * 寰楀埌鑿滃崟 * * @return */ @@ -40,13 +43,13 @@ } /** - * 得到菜单 + * 寰楀埌鑿滃崟 * * @return */ private Result queryCommonMenus(String roleId) { - // 按角色过滤 + // 鎸夎鑹茶繃婊� Result result = new Result(true); @@ -85,7 +88,7 @@ } /** - * 取得当前角色是否编辑过 按钮权限,有记录就是编辑过 + * 鍙栧緱褰撳墠瑙掕壊鏄惁缂栬緫杩� 鎸夐挳鏉冮檺,鏈夎褰曞氨鏄紪杈戣繃 * * @return */ @@ -119,20 +122,56 @@ @Override public Result delete(String userId) { boolean result = dao.delete(userId); - String messge = "移除成功"; + String messge = "绉婚櫎鎴愬姛"; if (!result) { - messge = "移除失败"; + messge = "绉婚櫎澶辫触"; } return new Result(result, messge); } @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 @@ -172,4 +211,5 @@ return dao.addTeachers(teacherIds, roleId); } + } -- Gitblit v1.8.0