From 6193495f8e3a7d25cb3fc721e4156e1c9592eb6f Mon Sep 17 00:00:00 2001 From: YuanYh <2972788632@qq.com> Date: Sat, 20 Apr 2024 10:06:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E4=BC=98=E5=8C=96=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/muyu/system/domain/SysMenu.java | 2 + .../com/muyu/system/mapper/SysMenuMapper.java | 13 +++++++ .../service/impl/SysMenuServiceImpl.java | 38 +++++++++++++++++++ .../resources/mapper/system/SysMenuMapper.xml | 4 ++ 4 files changed, 57 insertions(+) diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysMenu.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysMenu.java index b7f4558..7c670e4 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysMenu.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/domain/SysMenu.java @@ -36,6 +36,8 @@ public class SysMenu extends BaseEntity { /** * 菜单名称 */ + @NotBlank(message = "菜单名称不能为空") + @Size(min = 0,max = 50,message = "菜单名称长度不能超过50个字符") private String menuName; /** diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java index 8ceaaa0..6f8535c 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/mapper/SysMenuMapper.java @@ -90,6 +90,19 @@ public interface SysMenuMapper extends BaseMapper { */ public SysMenu selectMenuById (Long menuId); + + + /** + * @Description 根据菜单ID查询信息 + * @Date 2024/4/20 父级菜单ID + * @param parentId + * @return java.util.List + **/ + List selectMenuByParentId(Long parentId); + + + + /** * 是否存在菜单子节点 * diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java index e4e2ec8..5682b5f 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/impl/SysMenuServiceImpl.java @@ -60,6 +60,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl */ @Override public List selectMenuList (SysMenu menu, Long userId) { + int size = menuMapper.selectMenuList(new SysMenu()).size(); List menuList = null; // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { @@ -68,9 +69,46 @@ public class SysMenuServiceImpl extends ServiceImpl impl menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + if (menuList.size() != size){ + List sysMenuList = new ArrayList<>(); + menuList.forEach(menuObj ->{ + //查子级 + sysMenuList.addAll(treeMenu(menuObj)); + //差父级 + if (menuObj.getParentId() != 0){ + sysMenuList.addAll(superMenu(menuObj)); + } + }); + menuList.addAll(sysMenuList); + menuList = menuList.stream().distinct().toList(); + } return menuList; } + + + public List treeMenu(SysMenu menus){ + List sysMenus1 = new ArrayList<>(); + List sysMenus = menuMapper.selectMenuByParentId(menus.getMenuId()); + sysMenus1.addAll(sysMenus); + if (sysMenus.size()>0){ + for (SysMenu sysMenu : sysMenus) { + treeMenu(sysMenu); + } + } + return sysMenus1; + } + + public List superMenu(SysMenu sysMenu){ + List sysMenus = new ArrayList<>(); + SysMenu sysMenuParent = menuMapper.selectMenuById(sysMenu.getParentId()); + sysMenus.add(sysMenuParent); + if (sysMenuParent.getParentId() != 0){ + sysMenus.addAll(superMenu(sysMenuParent)); + } + return sysMenus; + } + /** * 根据用户ID查询权限 * diff --git a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml index 1dac5c4..9341640 100644 --- a/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/muyu-modules/muyu-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -185,6 +185,10 @@ where menu_name=#{menuName} and parent_id = #{parentId} limit 1 + update sys_menu