|
@ -0,0 +1,42 @@ |
|
|
|
|
|
package com.example.demo.serviceImpl; |
|
|
|
|
|
|
|
|
|
|
|
import com.example.demo.domain.entity.Market; |
|
|
|
|
|
import com.example.demo.domain.vo.MenuVo; |
|
|
|
|
|
import com.example.demo.mapper.MarketMapper; |
|
|
|
|
|
import com.example.demo.service.MarketService; |
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
import java.util.Objects; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
|
|
@Service |
|
|
|
|
|
public class MarketServiceImpl implements MarketService { |
|
|
|
|
|
@Autowired |
|
|
|
|
|
private MarketMapper marketMapper; |
|
|
|
|
|
@Override |
|
|
|
|
|
public List<Market> selectMarket() { |
|
|
|
|
|
List<Market> markets = marketMapper.getMarket(); |
|
|
|
|
|
|
|
|
|
|
|
// 2. 构建树形结构(根节点parentId=1) |
|
|
|
|
|
return buildTree(markets, 1); |
|
|
|
|
|
} |
|
|
|
|
|
private List<Market> buildTree(List<Market> markets, Integer parentId) { |
|
|
|
|
|
// 过滤出当前父节点的子菜单 |
|
|
|
|
|
List<Market> children = markets.stream() |
|
|
|
|
|
.filter(menu -> Objects.equals(menu.getParentId(), parentId)) |
|
|
|
|
|
.collect(Collectors.toList()); |
|
|
|
|
|
// 过滤出当前父节点的子菜单,同时过滤掉id为9的权限 |
|
|
|
|
|
// List<MenuVo> children = allMenus.stream() |
|
|
|
|
|
// .filter(menu -> Objects.equals(menu.getParentId(), parentId) && !Objects.equals(menu.getId(), 9)) |
|
|
|
|
|
// .collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
|
|
// 递归为每个子菜单设置子节点 |
|
|
|
|
|
for (Market child : children) { |
|
|
|
|
|
child.setChildren(buildTree(markets, child.getId())); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return children; |
|
|
|
|
|
} |
|
|
|
|
|
} |