zoukankan      html  css  js  c++  java
  • JAVA查询类别(菜单)下的所有子类别(递归)

    /**
         * 获取父类别下面的所有子类别
         * @return List<StoreGoodsCate> 返回当前类别下的所有子类别集合
         */
        public List<StoreGoodsCate> getCateNode(List<StoreGoodsCate> storeGoodsCates){
            List<StoreGoodsCate> newCateIdNode = new ArrayList<>();
            for(StoreGoodsCate cate: storeGoodsCates){
                if(getCateChildren(cate).size() != 0){
                    //还有子类别,递归查询所有子类别
                    newCateIdNode.addAll(getCateNode(getCateChildren(cate)));
                }else{
                    //没有子类别,把当前节点添加到集合中
                    newCateIdNode.add(cate);
                }
            }
            return newCateIdNode;
        }
    
        /**
         * 查询当前类别的子类别集合
         *  这里根据自己实际项目方法即可
         * @param storeGoodsCate
         * @return
         */
        public List<StoreGoodsCate> getCateChildren(StoreGoodsCate storeGoodsCate){
            QueryWrapper<StoreGoodsCate> queryWrapper = new QueryWrapper<StoreGoodsCate>()
                    .eq("pid", storeGoodsCate.getId())
                    .eq("is_deleted", 0);
           return cateService.list(queryWrapper);
        }

    这种方法只能适用于数据量比较少的,如果数据量很大,这种查询方式会非常慢,慎用

    -----------------------有任何问题可以在评论区评论,也可以私信我,我看到的话会进行回复,欢迎大家指教------------------------ (蓝奏云官网有些地址失效了,需要把请求地址lanzous改成lanzoux才可以)
  • 相关阅读:
    2014华为上机题(转)
    c语言scanf详解
    Linux环境下Android JNI程序的编译
    C++中cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
    容器化交付流程设计
    阿里云云计算相关术语概念
    k8s的部署策略
    pod控制器介绍
    Statefulset详细解析
    k8s持久化状态存储原理
  • 原文地址:https://www.cnblogs.com/pxblog/p/14517634.html
Copyright © 2011-2022 走看看