| | |
| | | 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; |
| | |
| | | return res; |
| | | } |
| | | |
| | | @Override |
| | | /*@Override |
| | | public List<SysMenu> getMenuLevelList(List<Long> menusId) { |
| | | //获取当前的权限菜单 |
| | | List<SysMenu> all = menuMapper.getAllInIds(menusId); |
| | |
| | | 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 |
| | |
| | | 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()); |
| | | } |
| | | } |