| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.HashSet; |
| | | import java.util.Iterator; |
| | | import java.util.LinkedList; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.system.mapper.SysMenuMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMapper; |
| | | import com.ruoyi.system.mapper.SysRoleMenuMapper; |
| | | import com.ruoyi.system.utils.util.SpringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import com.ruoyi.common.constant.Constants; |
| | |
| | | import com.ruoyi.system.domain.vo.MetaVo; |
| | | import com.ruoyi.system.domain.vo.RouterVo; |
| | | import com.ruoyi.system.service.ISysMenuService; |
| | | |
| | | import static java.util.Comparator.comparing; |
| | | |
| | | /** |
| | | * 菜单 业务层处理 |
| | |
| | | return menuMapper.selectList(); |
| | | } |
| | | |
| | | @Override |
| | | public List<SysMenu> selectResources() { |
| | | List<SysMenu> allResources = menuMapper.selectList(); |
| | | SysMenu item; |
| | | //获取根节点的集合 |
| | | List<SysMenu> root = new ArrayList<>(); |
| | | Map<Long, SysMenu> tempMap = new HashMap<>(3); |
| | | //子节点集合 |
| | | SysMenu parent; |
| | | for (SysMenu resources : allResources) { |
| | | item = SpringUtils.beanCopy(resources, SysMenu.class); |
| | | //每次循环都将集合重新循环添加到父集合中 |
| | | tempMap.put(resources.getMenuId(), item); |
| | | parent = tempMap.get(resources.getParentId()); |
| | | if (Objects.nonNull(parent)) { |
| | | //父集合不为空时,获取下级集合 |
| | | //子节点集合 |
| | | parent.getChildren().add(item); |
| | | // 对子集排序,升序 |
| | | // parent.getChildren().sort(comparing(SysMenu::getSort)); |
| | | } else { |
| | | //根集合 |
| | | root.add(item); |
| | | // 对根集合排序,升序 |
| | | // root.sort(comparing(SysMenu::getSort)); |
| | | } |
| | | } |
| | | return root; |
| | | } |
| | | |
| | | /** |
| | | * 获取路由名称 |
| | | * |