ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 树形 结构 省市区

2022-04-21 11:04:17  阅读:206  来源: 互联网

标签:null Java ai resultList getChildren 树形 省市区 SsqVo id


1. javabean

 

 

 子集是必不可少的

2. sql   简单点说就是查询出全部的非删除状态数据 ,我这里面的choose when  和查询级别为1 的是因为业务需要

    select
            id,
            ssqmc,
            jb,
            sj
        from t_sys_ssqjcb
        where del_flag = 0
        <choose>
            <when test="id != null and id != ''">
                and sj = #{id}
            </when>
            <when test="name != null and name != ''">
                and ssqmc like concat('%',#{name},'%')
            </when>
            <otherwise>
                and jb = 1
            </otherwise>
        </choose>
        order by yzbm

3. Java 实现类

  @GetMapping("PCAAndSubsidy")
    @Override
    public RestResponse<List<SsqVo>> getIPCAAndSubsidyList(String name) {
//        查询一级省的信息
        List<SsqVo> all = pcaAndSubsidyDao.getIPCAAndSubsidyList(null,name);
        List<SsqVo> resultList=new ArrayList<>();  //结果集
        int minLevel = 3;  //最小的级别
        for (SsqVo a: all){
            if (a.getJb() < minLevel){ //如果级别低于最小级别就给最小级别赋值
                minLevel = a.getJb() ;
            }
        }
        for(SsqVo a: all){
            if(minLevel == a.getJb()){
                resultList.add(a);//级别是最低的话就放入结果集
            }
        }
        for (SsqVo a: resultList){
            getChildren(a,all);//递归查询子集
        }

        return new RestResponse<>(resultList);
    }


  
private void getChildren(SsqVo a,List<SsqVo> all){
for (SsqVo ai: all){
if (null !=ai.getSj()&& ai.getSj().equals(a.getId())){ //如果当前数据上级不为null 且上级id 等于a的id
if (null == a.getChildren()) {
List<SsqVo> c = new ArrayList<>();//新建一个list 可能这个子数据下面还有儿子数据
a.setChildren(c);
}
a.getChildren().add(ai);
getChildren(ai,all);//不满足,递归
}
}
}
 

 

标签:null,Java,ai,resultList,getChildren,树形,省市区,SsqVo,id
来源: https://www.cnblogs.com/lilulin/p/16173139.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有