gulimall增加三级分类树形结构

需要在三级分类中添加以下的属性  ---  表示非本表数据


//自定义属性
@JsonInclude(JsonInclude.Include.NON_EMPTY)   //不为空,spring才将这个属性返回
@TableField(exist = false)
private List<CategoryEntity> children;

然后在seversimpl 增加一下代码

@Override
public List<CategoryEntity> listWithTree() {
    //1查出所有分类
    List<CategoryEntity> entities = baseMapper.selectList(null);
    //2组装成父子树形结构
    //2.1找出所有1级分类
    List<CategoryEntity> level1Menus = entities.stream().filter((categoryEntity) -> {
        return categoryEntity.getParentCid() == 0;
    }).map((menu) -> {
        menu.setChildren(getChildrens(menu, entities));
        return menu;
    }).sorted((menu1, menu2) -> {
        return (menu1.getSort() == null ? 0 : menu1.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
    }).collect(Collectors.toList());
    return level1Menus;
}

//递归查找所有菜单的子菜单
private List<CategoryEntity> getChildrens(CategoryEntity root, List<CategoryEntity> all) {
    List<CategoryEntity> cildren = all.stream().filter(categoryEntity -> {
        return categoryEntity.getParentCid() == root.getCatId();
    }).map(categoryEntity -> {
        //1.找到子菜单
        categoryEntity.setChildren(getChildrens(categoryEntity, all));
        return categoryEntity;
    }).sorted((menu1, menu2) -> {
        //2.菜单排序
        return (menu1.getSort() == null ? 0 : menu1.getSort()) - (menu2.getSort() == null ? 0 : menu2.getSort());
    }).collect(Collectors.toList());
    return cildren;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值