html查看节点下所有子节点,根据根节点查询所有子节点

package com.atguigu.gulimall.product.service.impl;

import com.sun.org.apache.bcel.internal.generic.RETURN;

import org.springframework.stereotype.Service;

import java.util.List;

import java.util.Map;

import java.util.stream.Collectors;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.core.metadata.IPage;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

import com.atguigu.common.utils.PageUtils;

import com.atguigu.common.utils.Query;

import com.atguigu.gulimall.product.dao.CategoryDao;

import com.atguigu.gulimall.product.entity.CategoryEntity;

import com.atguigu.gulimall.product.service.CategoryService;

@Service("categoryService")

public class CategoryServiceImpl extends ServiceImpl implements CategoryService {

@Override

public PageUtils queryPage(Map params) {

IPage page = this.page(

new Query().getPage(params),

new QueryWrapper()

);

return new PageUtils(page);

}

@Override

public List listWithTree() {

List entities = baseMapper.selectList(null);

//找到所有一级分类

List level1Menus = entities.stream().filter((categoryEntity -> {

return

categoryEntity.getParentCid() == 0;

}

)).map((menu)->{

menu.setChildren(getChildrens(menu,entities));

return menu;

}).sorted((menu1,menu2)->{

return menu1.getSort()-menu2.getSort();

}).collect(Collectors.toList());

return level1Menus;

}

//递归查找所有菜单的子菜单

private List getChildrens(CategoryEntity root,List all){

List children = all.stream().filter((categoryEntity -> {

return categoryEntity.getParentCid() == root.getCatId();

})).map((categoryEntity -> {

categoryEntity.setChildren(getChildrens(categoryEntity,all));

return categoryEntity;

})).sorted((menu1,menu2)->{

return (menu1.getSort()==null?0:menu1.getSort())-(menu2.getSort()==null?0:menu2.getSort());

}).collect(Collectors.toList());

return children;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值