From ab9346537901418d4cabd62fa5a9bff490f886be Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 03 一月 2025 02:19:12 +0800 Subject: [PATCH] 1.大屏接口 2.bug修改 --- medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 49 insertions(+), 1 deletions(-) diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java index a531559..96ba621 100644 --- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java +++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/SysRoleServiceImpl.java @@ -38,6 +38,7 @@ import java.util.Arrays; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -526,7 +527,7 @@ return res; } - @Override + /*@Override public List<SysMenu> getMenuLevelList(List<Long> menusId) { //获取当前的权限菜单 List<SysMenu> all = menuMapper.getAllInIds(menusId); @@ -553,6 +554,39 @@ menu.setChildren(collect); } return s1; + }*/ + @Override + public List<SysMenu> getMenuLevelList(List<Long> menusId) { + //获取当前的权限菜单 + List<SysMenu> all = menuMapper.getAllInIds(menusId); + + // 第一级 + List<SysMenu> s1 = all.stream().filter(e -> e.getMenuType().equals("M")) + .collect(Collectors.toList()); + // 构建以 parentId 为键的 Map + Map<Long, List<SysMenu>> menuMap = all.stream() + .collect(Collectors.groupingBy(SysMenu::getParentId)); + //封装树形层级 + buildMenuTree(menuMap, s1); + return s1; + } + + /** + * 封装树形层级 + * + * @param menuMap + * @param s1 + */ + public void buildMenuTree(Map<Long, List<SysMenu>> menuMap, List<SysMenu> s1) { + for (SysMenu sysMenu : s1) { + // 获取当前菜单的子级 + List<SysMenu> children = menuMap.getOrDefault(sysMenu.getMenuId(), new ArrayList<>()); + sysMenu.setChildren(children); + //移除当前菜单 + menuMap.remove(sysMenu.getMenuId()); + // 递归设置子级菜单 + buildMenuTree(menuMap, children); + } } @Override @@ -578,4 +612,18 @@ List<SysRole> list = list(); return BeanUtils.copyToList(list, SysRoleVO.class); } + + /** + * 用户菜单权限集合 + * + * @param userId + * @return + */ + @Override + public Set<Long> getMenuIdSets(Long userId) { + SysRole sysRole = roleMapper.selectRoleByUserId(userId); + // 获取当前角色的菜单列表 + List<SysMenu> menus = menuMapper.selectListByRoleId(sysRole.getRoleId()); + return menus.stream().map(SysMenu::getMenuId).collect(Collectors.toSet()); + } } -- Gitblit v1.7.1