diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java index c22f798..58c2c15 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/controller/SysMenuController.java @@ -15,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; /** @@ -35,7 +36,9 @@ public class SysMenuController extends BaseController { @GetMapping("/list") public Result list (SysMenu menu) { Long userId = SecurityUtils.getUserId(); + List menus = menuService.selectMenuList(menu, userId); + return success(menus); } 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..3aa3aea 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 @@ -135,4 +135,7 @@ public interface SysMenuMapper extends BaseMapper { * @return 结果 */ public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId); + + public List selectSysMenuList(@Param("list") List list); + public List selectSysChdMenuList(@Param("list") List list); } diff --git a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java index 29bfb07..dc2f897 100644 --- a/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java +++ b/muyu-modules/muyu-system/src/main/java/com/muyu/system/service/SysMenuService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.system.domain.SysMenu; import com.muyu.system.domain.vo.RouterVo; import com.muyu.system.domain.vo.TreeSelect; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Set; @@ -158,4 +159,5 @@ public interface SysMenuService extends IService { * @return 结果 */ public boolean checkMenuNameUnique (SysMenu menu); + } 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..ad40e82 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 @@ -51,6 +51,22 @@ public class SysMenuServiceImpl extends ServiceImpl impl return selectMenuList(new SysMenu(), userId); } + public List selectSysMenuList(List menuList){ + List list = menuList.stream() + .map(menu -> menu.getParentId()) + .filter(parentId -> parentId != 0) + .distinct() + .toList(); + if (list.size()==0){ + return null; + } + List sysMenus = menuMapper.selectSysMenuList(list); + List sysMenus1 = selectSysMenuList(sysMenus); + if (sysMenus1!=null){ + sysMenus.addAll(sysMenus1); + } + return sysMenus; + } /** * 查询系统菜单列表 * @@ -64,13 +80,43 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 管理员显示所有菜单信息 if (SysUser.isAdmin(userId)) { menuList = menuMapper.selectMenuList(menu); +// menuList.addAll(selectSysMenuList(menuList)); + List sysMenus1 = selectSysMenuList(menuList); + if (sysMenus1!=null&& sysMenus1.size()!=0){ + menuList.addAll(sysMenus1); + + } + List sysMenus = selectSysChdMenuList(menuMapper.selectMenuList(menu)); + if (sysMenus!=null&& sysMenus.size()!=0){ + menuList.addAll(sysMenus); + } } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } + menuList= menuList.stream() + .distinct() + .toList(); return menuList; } + private List selectSysChdMenuList(List menuList) { + List list = menuList.stream() + .map(sysMenu -> sysMenu.getMenuId()) + .toList(); + System.out.println(list); + List sysMenus = menuMapper.selectSysChdMenuList(list); + if (sysMenus!=null&&sysMenus.size()!=0){ + List sysMenus1 = selectSysMenuList(sysMenus); + if (sysMenus1!=null){ + sysMenus.addAll(sysMenus1); + } + }else { + return null; + } + return sysMenus; + } + /** * 根据用户ID查询权限 * @@ -321,6 +367,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl return UserConstants.UNIQUE; } + /** * 获取路由名称 * 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..a9a261e 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,38 @@ where menu_name=#{menuName} and parent_id = #{parentId} limit 1 + + + update sys_menu