From d91d0f51bb5eff7bed395dcfb388996fefbbd3c3 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期六, 01 三月 2025 15:25:26 +0800 Subject: [PATCH] 优化代码 --- src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java | 75 ++++++++++++++++++++++++++----------- 1 files changed, 52 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java index c6ed303..fad86e5 100644 --- a/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java +++ b/src/main/java/com/ruoyi/project/system/service/impl/SysMenuServiceImpl.java @@ -37,7 +37,7 @@ @Autowired private SysMenuMapper menuMapper; - + @Autowired private SysRoleMapper roleMapper; @@ -89,6 +89,27 @@ public Set<String> selectMenuPermsByUserId(Long userId) { List<String> perms = menuMapper.selectMenuPermsByUserId(userId); + Set<String> permsSet = new HashSet<>(); + for (String perm : perms) + { + if (StringUtils.isNotEmpty(perm)) + { + permsSet.addAll(Arrays.asList(perm.trim().split(","))); + } + } + return permsSet; + } + + /** + * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 + * + * @param roleId 瑙掕壊ID + * @return 鏉冮檺鍒楄〃 + */ + @Override + public Set<String> selectMenuPermsByRoleId(Long roleId) + { + List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId); Set<String> permsSet = new HashSet<>(); for (String perm : perms) { @@ -154,7 +175,7 @@ router.setQuery(menu.getQuery()); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); List<SysMenu> cMenus = menu.getChildren(); - if (!cMenus.isEmpty() && cMenus.size() > 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType())) + if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { router.setAlwaysShow(true); router.setRedirect("noRedirect"); @@ -167,7 +188,7 @@ RouterVo children = new RouterVo(); children.setPath(menu.getPath()); children.setComponent(menu.getComponent()); - children.setName(StringUtils.capitalize(menu.getPath())); + children.setName(getRouteName(menu.getRouteName(), menu.getPath())); children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); children.setQuery(menu.getQuery()); childrenList.add(children); @@ -176,13 +197,13 @@ else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); - router.setPath("/inner"); + router.setPath("/"); List<RouterVo> childrenList = new ArrayList<RouterVo>(); RouterVo children = new RouterVo(); String routerPath = innerLinkReplaceEach(menu.getPath()); children.setPath(routerPath); children.setComponent(UserConstants.INNER_LINK); - children.setName(StringUtils.capitalize(routerPath)); + children.setName(getRouteName(menu.getRouteName(), routerPath)); children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath())); childrenList.add(children); router.setChildren(childrenList); @@ -202,11 +223,7 @@ public List<SysMenu> buildMenuTree(List<SysMenu> menus) { List<SysMenu> returnList = new ArrayList<SysMenu>(); - List<Long> tempList = new ArrayList<Long>(); - for (SysMenu dept : menus) - { - tempList.add(dept.getMenuId()); - } + List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();) { SysMenu menu = (SysMenu) iterator.next(); @@ -259,7 +276,7 @@ public boolean hasChildByMenuId(Long menuId) { int result = menuMapper.hasChildByMenuId(menuId); - return result > 0 ? true : false; + return result > 0; } /** @@ -272,7 +289,7 @@ public boolean checkMenuExistRole(Long menuId) { int result = roleMenuMapper.checkMenuExistRole(menuId); - return result > 0 ? true : false; + return result > 0; } /** @@ -318,7 +335,7 @@ * @return 缁撴灉 */ @Override - public String checkMenuNameUnique(SysMenu menu) + public boolean checkMenuNameUnique(SysMenu menu) { Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); @@ -337,13 +354,25 @@ */ public String getRouteName(SysMenu menu) { - String routerName = StringUtils.capitalize(menu.getPath()); // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 if (isMenuFrame(menu)) { - routerName = StringUtils.EMPTY; + return StringUtils.EMPTY; } - return routerName; + return getRouteName(menu.getRouteName(), menu.getPath()); + } + + /** + * 鑾峰彇璺敱鍚嶇О锛屽娌℃湁閰嶇疆璺敱鍚嶇О鍒欏彇璺敱鍦板潃 + * + * @param name 璺敱鍚嶇О + * @param path 璺敱鍦板潃 + * @return 璺敱鍚嶇О锛堥┘宄版牸寮忥級 + */ + public String getRouteName(String name, String path) + { + String routerName = StringUtils.isNotEmpty(name) ? name : path; + return StringUtils.capitalize(routerName); } /** @@ -409,7 +438,7 @@ return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME); } - + /** * 鏄惁涓簆arent_view缁勪欢 * @@ -458,8 +487,8 @@ /** * 閫掑綊鍒楄〃 * - * @param list - * @param t + * @param list 鍒嗙被琛� + * @param t 瀛愯妭鐐� */ private void recursionFn(List<SysMenu> list, SysMenu t) { @@ -498,17 +527,17 @@ */ private boolean hasChild(List<SysMenu> list, SysMenu t) { - return getChildList(list, t).size() > 0 ? true : false; + return getChildList(list, t).size() > 0; } /** * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 * - * @return + * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕 */ public String innerLinkReplaceEach(String path) { - return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS }, - new String[] { "", "" }); + return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, + new String[] { "", "", "", "/", "/" }); } } -- Gitblit v1.9.3