Journal d'apprentissage du magasin de céréales (23) - Acquisition de l'arborescence récursive d'une classification à trois niveaux des produits de base

Acquisition d'arborescence récursive de classification de produit à trois niveaux

manette


Ajouter une nouvelle méthode à la couche de contrôle GategoryController du module produit

 /**
     * 返回三级分类tree
     */
    @RequestMapping("/list/tree")
    public R listTree(){
    
    
        List<CategoryEntity> tree = categoryService.getTree();
        return R.ok().put("data", tree);
    }

entité

Ajouter une structure de sous-classe
@TableField (exist = false) mybatis-plus annotation-not in the table structure

/**
	 * 子类category
	 */
	@TableField(exist = false)
	private List<CategoryEntity> child;

un service

GateService ajouté

    List<CategoryEntity> getTree();

Classe d'implémentation

 @Override
    public List<CategoryEntity> getTree() {
    
    
        //查询出所有
        List<CategoryEntity> all =baseMapper.selectList(null);
        //组装成父子结构——改变category的结构
        //找到所有的一级分类
        List<CategoryEntity> lv1Menu = all.stream().filter(menu->
             menu.getParentCid()== 0
        ).map((menu)->{
            //通过递归找到子分类
            menu.setChild(getChild(menu,all));
            return menu;
        }).sorted((menu1,menu2)->{
            return menu1.getSort()-menu2.getSort();
        }).collect(Collectors.toList());
        return lv1Menu;
    }

Parmi eux, map () trouve toutes les sous-classes en appelant la méthode récursive

private List<CategoryEntity> getChild(CategoryEntity root , List<CategoryEntity> all){
    
    
        List<CategoryEntity> child = all.stream().filter(menu->
                menu.getParentCid()==root.getCatId()).map((menu)->{
            //通过递归找到子分类
            menu.setChild(getChild(menu,all));
            return menu;
        }).sorted((menu1,menu2)->{
            return menu1.getSort()-menu2.getSort();
        }).collect(Collectors.toList());
        return child;
    }

test

Commencer la visite du projet

http: // localhost: 10000 / produit / catégorie / liste / arbre

Obtenez json

Je suppose que tu aimes

Origine blog.csdn.net/menxinziwen/article/details/115148085
conseillé
Classement