From 234f74f8f009a9f164639666d8f3e654f1845b7c Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期六, 04 二月 2023 11:47:11 +0800 Subject: [PATCH] add 新增 翻译模块 部门名称翻译 update 优化 部门业务增加缓存逻辑 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java | 183 +++++++++------------------------------------ 1 files changed, 39 insertions(+), 144 deletions(-) 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 03337b7..ca94151 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 @@ -1,22 +1,25 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ObjectUtil; 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.system.domain.SysMenu; -import com.ruoyi.system.domain.SysRole; -import com.ruoyi.common.satoken.utils.LoginHelper; +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; +import com.ruoyi.common.satoken.utils.LoginHelper; +import com.ruoyi.system.domain.SysMenu; +import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.domain.SysRoleMenu; +import com.ruoyi.system.domain.bo.SysMenuBo; import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.RouterVo; +import com.ruoyi.system.domain.vo.SysMenuVo; import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; @@ -46,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); } /** @@ -57,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()) @@ -75,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; } @@ -124,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 { @@ -153,13 +157,13 @@ */ @Override public List<RouterVo> buildMenus(List<SysMenu> menus) { - List<RouterVo> routers = new LinkedList<RouterVo>(); + List<RouterVo> routers = new LinkedList<>(); 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.getComponentInfo()); router.setQuery(menu.getQueryParam()); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); List<SysMenu> cMenus = menu.getChildren(); @@ -167,23 +171,23 @@ 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>(); + List<RouterVo> childrenList = new ArrayList<>(); RouterVo children = new RouterVo(); children.setPath(menu.getPath()); - children.setComponent(menu.getComponent()); + children.setComponent(menu.getComponentInfo()); children.setName(StringUtils.capitalize(menu.getPath())); children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); 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>(); + 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)); @@ -203,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(); } @@ -221,8 +225,8 @@ * @return 鑿滃崟淇℃伅 */ @Override - public SysMenu selectMenuById(Long menuId) { - return baseMapper.selectById(menuId); + public SysMenuVo selectMenuById(Long menuId) { + return baseMapper.selectVoById(menuId); } /** @@ -250,22 +254,24 @@ /** * 鏂板淇濆瓨鑿滃崟淇℃伅 * - * @param menu 鑿滃崟淇℃伅 + * @param bo 鑿滃崟淇℃伅 * @return 缁撴灉 */ @Override - public int insertMenu(SysMenu menu) { + public int insertMenu(SysMenuBo bo) { + SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); return baseMapper.insert(menu); } /** * 淇敼淇濆瓨鑿滃崟淇℃伅 * - * @param menu 鑿滃崟淇℃伅 + * @param bo 鑿滃崟淇℃伅 * @return 缁撴灉 */ @Override - public int updateMenu(SysMenu menu) { + public int updateMenu(SysMenuBo bo) { + SysMenu menu = BeanUtil.toBean(bo, SysMenu.class); return baseMapper.updateById(menu); } @@ -287,7 +293,7 @@ * @return 缁撴灉 */ @Override - public String checkMenuNameUnique(SysMenu menu) { + public String checkMenuNameUnique(SysMenuBo menu) { boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysMenu>() .eq(SysMenu::getMenuName, menu.getMenuName()) .eq(SysMenu::getParentId, menu.getParentId()) @@ -299,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 鍒嗙被琛� @@ -394,7 +312,7 @@ * @return String */ public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) { - List<SysMenu> returnList = new ArrayList<SysMenu>(); + List<SysMenu> returnList = new ArrayList<>(); for (SysMenu t : list) { // 涓�銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 if (t.getParentId() == parentId) { @@ -407,40 +325,17 @@ /** * 閫掑綊鍒楄〃 - * - * @param list - * @param t */ 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 getChildList(list, t).size() > 0; - } - - /** - * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 - */ - public String innerLinkReplaceEach(String path) { - return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, "."}, - new String[]{"", "", "", "/"}); - } } -- Gitblit v1.9.3