From e8483729b187824ceac987be6a57aa8c60046973 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期四, 02 二月 2023 18:34:23 +0800 Subject: [PATCH] update 优化 SysMenu 相关代码 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java | 8 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java | 13 +- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java | 84 +++++++++++++++- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java | 6 ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java | 17 +- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java | 3 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 145 +++------------------------- 9 files changed, 129 insertions(+), 155 deletions(-) diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java index 2c40e17..ee1bc58 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/com/ruoyi/common/mybatis/core/mapper/BaseMapperPlus.java @@ -157,6 +157,10 @@ return BeanCopyUtils.copy(obj, voClass); } + default List<V> selectVoList() { + return selectVoList(new QueryWrapper<>(), this.currentVoClass()); + } + default List<V> selectVoList(Wrapper<T> wrapper) { return selectVoList(wrapper, this.currentVoClass()); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java index 291920d..11ddb9c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysDictTypeController.java @@ -1,23 +1,22 @@ package com.ruoyi.system.controller.system; import cn.dev33.satoken.annotation.SaCheckPermission; -import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.web.core.BaseController; -import com.ruoyi.common.mybatis.core.page.PageQuery; import com.ruoyi.common.core.domain.R; -import com.ruoyi.system.domain.SysDictType; -import com.ruoyi.common.mybatis.core.page.TableDataInfo; -import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.excel.utils.ExcelUtil; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.mybatis.core.page.PageQuery; +import com.ruoyi.common.mybatis.core.page.TableDataInfo; +import com.ruoyi.common.web.core.BaseController; import com.ruoyi.system.domain.bo.SysDictTypeBo; import com.ruoyi.system.domain.vo.SysDictTypeVo; import com.ruoyi.system.service.ISysDictTypeService; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import jakarta.servlet.http.HttpServletResponse; import java.util.List; /** @@ -120,8 +119,8 @@ * 鑾峰彇瀛楀吀閫夋嫨妗嗗垪琛� */ @GetMapping("/optionselect") - public R<List<SysDictType>> optionselect() { - List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll(); + public R<List<SysDictTypeVo>> optionselect() { + List<SysDictTypeVo> dictTypes = dictTypeService.selectDictTypeAll(); return R.ok(dictTypes); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java index 0671abe..7c2f167 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/system/SysMenuController.java @@ -5,11 +5,10 @@ import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.web.core.BaseController; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.satoken.utils.LoginHelper; -import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.common.web.core.BaseController; import com.ruoyi.system.domain.bo.SysMenuBo; import com.ruoyi.system.domain.vo.SysMenuVo; import com.ruoyi.system.service.ISysMenuService; @@ -38,8 +37,8 @@ */ @SaCheckPermission("system:menu:list") @GetMapping("/list") - public R<List<SysMenu>> list(SysMenu menu) { - List<SysMenu> menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); + public R<List<SysMenuVo>> list(SysMenuBo menu) { + List<SysMenuVo> menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); return R.ok(menus); } @@ -58,8 +57,8 @@ * 鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛� */ @GetMapping("/treeselect") - public R<List<Tree<Long>>> treeselect(SysMenu menu) { - List<SysMenu> menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); + public R<List<Tree<Long>>> treeselect(SysMenuBo menu) { + List<SysMenuVo> menus = menuService.selectMenuList(menu, LoginHelper.getUserId()); return R.ok(menuService.buildMenuTreeSelect(menus)); } @@ -70,7 +69,7 @@ */ @GetMapping(value = "/roleMenuTreeselect/{roleId}") public R<Map<String, Object>> roleMenuTreeselect(@PathVariable("roleId") Long roleId) { - List<SysMenu> menus = menuService.selectMenuList(LoginHelper.getUserId()); + List<SysMenuVo> menus = menuService.selectMenuList(LoginHelper.getUserId()); return R.ok(Map.of( "checkedKeys", menuService.selectMenuListByRoleId(roleId), "menus", menuService.buildMenuTreeSelect(menus) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java index aec2f3b..1a320ef 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysMenu.java @@ -2,14 +2,12 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonInclude; +import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.mybatis.core.domain.TreeEntity; import lombok.Data; import lombok.EqualsAndHashCode; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; /** * 鑿滃崟鏉冮檺琛� sys_menu @@ -93,4 +91,80 @@ */ private String remark; + /** + * 鑾峰彇璺敱鍚嶇О + */ + public String getRouteName() { + String routerName = StringUtils.capitalize(path); + // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 + if (isMenuFrame()) { + routerName = StringUtils.EMPTY; + } + return routerName; + } + + /** + * 鑾峰彇璺敱鍦板潃 + */ + public String getRouterPath() { + String routerPath = this.path; + // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡 + if (getParentId() != 0L && isInnerLink()) { + routerPath = innerLinkReplaceEach(routerPath); + } + // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 + if (0L == getParentId() && UserConstants.TYPE_DIR.equals(getMenuType()) + && UserConstants.NO_FRAME.equals(getIsFrame())) { + routerPath = "/" + this.path; + } + // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級 + else if (isMenuFrame()) { + routerPath = "/"; + } + return routerPath; + } + + /** + * 鑾峰彇缁勪欢淇℃伅 + */ + public String getComponent() { + String component = UserConstants.LAYOUT; + if (StringUtils.isNotEmpty(this.component) && !isMenuFrame()) { + component = this.component; + } else if (StringUtils.isEmpty(this.component) && getParentId() != 0L && isInnerLink()) { + component = UserConstants.INNER_LINK; + } else if (StringUtils.isEmpty(this.component) && isParentView()) { + component = UserConstants.PARENT_VIEW; + } + return component; + } + + /** + * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞� + */ + public boolean isMenuFrame() { + return getParentId() == 0L && UserConstants.TYPE_MENU.equals(menuType) && isFrame.equals(UserConstants.NO_FRAME); + } + + /** + * 鏄惁涓哄唴閾剧粍浠� + */ + public boolean isInnerLink() { + return isFrame.equals(UserConstants.NO_FRAME) && StringUtils.ishttp(path); + } + + /** + * 鏄惁涓簆arent_view缁勪欢 + */ + public boolean isParentView() { + return getParentId() != 0L && UserConstants.TYPE_DIR.equals(menuType); + } + + /** + * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 + */ + public static String innerLinkReplaceEach(String path) { + return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, + new String[]{"", "", "", "/"}); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java index 9da959f..5283c64 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/SysMenuVo.java @@ -4,8 +4,9 @@ import java.io.Serial; import java.io.Serializable; +import java.util.ArrayList; import java.util.Date; - +import java.util.List; /** @@ -105,4 +106,9 @@ */ private Date createTime; + /** + * 瀛愯彍鍗� + */ + private List<SysMenuVo> children = new ArrayList<>(); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java index bd4b8d7..546e1bf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java @@ -1,7 +1,6 @@ package com.ruoyi.system.service; import com.ruoyi.common.mybatis.core.page.PageQuery; -import com.ruoyi.system.domain.SysDictType; import com.ruoyi.common.mybatis.core.page.TableDataInfo; import com.ruoyi.system.domain.bo.SysDictTypeBo; import com.ruoyi.system.domain.vo.SysDictDataVo; @@ -32,7 +31,7 @@ * * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 */ - List<SysDictType> selectDictTypeAll(); + List<SysDictTypeVo> selectDictTypeAll(); /** * 鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java index 43f1a86..1a97b27 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysMenuService.java @@ -22,7 +22,7 @@ * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 */ - List<SysMenu> selectMenuList(Long userId); + List<SysMenuVo> selectMenuList(Long userId); /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 @@ -31,7 +31,7 @@ * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 */ - List<SysMenu> selectMenuList(SysMenu menu, Long userId); + List<SysMenuVo> selectMenuList(SysMenuBo menu, Long userId); /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 @@ -79,7 +79,7 @@ * @param menus 鑿滃崟鍒楄〃 * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ - List<Tree<Long>> buildMenuTreeSelect(List<SysMenu> menus); + List<Tree<Long>> buildMenuTreeSelect(List<SysMenuVo> menus); /** * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java index 952e198..aae3159 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java @@ -84,8 +84,8 @@ * @return 瀛楀吀绫诲瀷闆嗗悎淇℃伅 */ @Override - public List<SysDictType> selectDictTypeAll() { - return baseMapper.selectList(); + public List<SysDictTypeVo> selectDictTypeAll() { + return baseMapper.selectVoList(); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java index 7e13c9f..d34ef32 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java @@ -7,8 +7,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.constant.UserConstants; +import com.ruoyi.common.core.utils.BeanCopyUtils; import com.ruoyi.common.core.utils.StreamUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.TreeBuildUtils; @@ -49,8 +49,8 @@ * @return 鑿滃崟鍒楄〃 */ @Override - public List<SysMenu> selectMenuList(Long userId) { - return selectMenuList(new SysMenu(), userId); + public List<SysMenuVo> selectMenuList(Long userId) { + return selectMenuList(new SysMenuBo(), userId); } /** @@ -60,11 +60,11 @@ * @return 鑿滃崟鍒楄〃 */ @Override - public List<SysMenu> selectMenuList(SysMenu menu, Long userId) { - List<SysMenu> menuList = null; + public List<SysMenuVo> selectMenuList(SysMenuBo menu, Long userId) { + List<SysMenuVo> menuList; // 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭� if (LoginHelper.isAdmin(userId)) { - menuList = baseMapper.selectList(new LambdaQueryWrapper<SysMenu>() + menuList = baseMapper.selectVoList(new LambdaQueryWrapper<SysMenu>() .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()) .eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus()) @@ -78,7 +78,8 @@ .eq(StringUtils.isNotBlank(menu.getStatus()), "m.status", menu.getStatus()) .orderByAsc("m.parent_id") .orderByAsc("m.order_num"); - menuList = baseMapper.selectMenuListByUserId(wrapper); + List<SysMenu> list = baseMapper.selectMenuListByUserId(wrapper); + menuList = BeanCopyUtils.copyList(list, SysMenuVo.class); } return menuList; } @@ -127,7 +128,7 @@ */ @Override public List<SysMenu> selectMenuTreeByUserId(Long userId) { - List<SysMenu> menus = null; + List<SysMenu> menus; if (LoginHelper.isAdmin(userId)) { menus = baseMapper.selectMenuTreeAll(); } else { @@ -160,9 +161,9 @@ for (SysMenu menu : menus) { RouterVo router = new RouterVo(); router.setHidden("1".equals(menu.getVisible())); - router.setName(getRouteName(menu)); - router.setPath(getRouterPath(menu)); - router.setComponent(getComponent(menu)); + router.setName(menu.getRouteName()); + router.setPath(menu.getRouterPath()); + router.setComponent(menu.getComponent()); router.setQuery(menu.getQueryParam()); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); List<SysMenu> cMenus = menu.getChildren(); @@ -170,7 +171,7 @@ router.setAlwaysShow(true); router.setRedirect("noRedirect"); router.setChildren(buildMenus(cMenus)); - } else if (isMenuFrame(menu)) { + } else if (menu.isMenuFrame()) { router.setMeta(null); List<RouterVo> childrenList = new ArrayList<>(); RouterVo children = new RouterVo(); @@ -181,12 +182,12 @@ children.setQuery(menu.getQueryParam()); childrenList.add(children); router.setChildren(childrenList); - } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { + } else if (menu.getParentId().intValue() == 0 && menu.isInnerLink()) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setPath("/"); List<RouterVo> childrenList = new ArrayList<>(); RouterVo children = new RouterVo(); - String routerPath = innerLinkReplaceEach(menu.getPath()); + String routerPath = SysMenu.innerLinkReplaceEach(menu.getPath()); children.setPath(routerPath); children.setComponent(UserConstants.INNER_LINK); children.setName(StringUtils.capitalize(routerPath)); @@ -206,7 +207,7 @@ * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ @Override - public List<Tree<Long>> buildMenuTreeSelect(List<SysMenu> menus) { + public List<Tree<Long>> buildMenuTreeSelect(List<SysMenuVo> menus) { if (CollUtil.isEmpty(menus)) { return CollUtil.newArrayList(); } @@ -304,94 +305,6 @@ } /** - * 鑾峰彇璺敱鍚嶇О - * - * @param menu 鑿滃崟淇℃伅 - * @return 璺敱鍚嶇О - */ - public String getRouteName(SysMenu menu) { - String routerName = StringUtils.capitalize(menu.getPath()); - // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 - if (isMenuFrame(menu)) { - routerName = StringUtils.EMPTY; - } - return routerName; - } - - /** - * 鑾峰彇璺敱鍦板潃 - * - * @param menu 鑿滃崟淇℃伅 - * @return 璺敱鍦板潃 - */ - public String getRouterPath(SysMenu menu) { - String routerPath = menu.getPath(); - // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡 - if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) { - routerPath = innerLinkReplaceEach(routerPath); - } - // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 - if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) - && UserConstants.NO_FRAME.equals(menu.getIsFrame())) { - routerPath = "/" + menu.getPath(); - } - // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級 - else if (isMenuFrame(menu)) { - routerPath = "/"; - } - return routerPath; - } - - /** - * 鑾峰彇缁勪欢淇℃伅 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁勪欢淇℃伅 - */ - public String getComponent(SysMenu menu) { - String component = UserConstants.LAYOUT; - if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) { - component = menu.getComponent(); - } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) { - component = UserConstants.INNER_LINK; - } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) { - component = UserConstants.PARENT_VIEW; - } - return component; - } - - /** - * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞� - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isMenuFrame(SysMenu menu) { - return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) - && menu.getIsFrame().equals(UserConstants.NO_FRAME); - } - - /** - * 鏄惁涓哄唴閾剧粍浠� - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isInnerLink(SysMenu menu) { - return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); - } - - /** - * 鏄惁涓簆arent_view缁勪欢 - * - * @param menu 鑿滃崟淇℃伅 - * @return 缁撴灉 - */ - public boolean isParentView(SysMenu menu) { - return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); - } - - /** * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣 * * @param list 鍒嗙被琛� @@ -415,34 +328,14 @@ */ private void recursionFn(List<SysMenu> list, SysMenu t) { // 寰楀埌瀛愯妭鐐瑰垪琛� - List<SysMenu> childList = getChildList(list, t); + List<SysMenu> childList = StreamUtils.filter(list, n -> n.getParentId().equals(t.getMenuId())); t.setChildren(childList); for (SysMenu tChild : childList) { - if (hasChild(list, tChild)) { + // 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 + if (list.stream().anyMatch(n -> n.getParentId().equals(tChild.getMenuId()))) { recursionFn(list, tChild); } } } - /** - * 寰楀埌瀛愯妭鐐瑰垪琛� - */ - private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) { - return StreamUtils.filter(list, n -> n.getParentId().equals(t.getMenuId())); - } - - /** - * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 - */ - private boolean hasChild(List<SysMenu> list, SysMenu t) { - return CollUtil.isNotEmpty(getChildList(list, t)); - } - - /** - * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 - */ - public String innerLinkReplaceEach(String path) { - return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, - new String[]{"", "", "", "/"}); - } } -- Gitblit v1.9.3