Java 树形 结构 省市区

2022/4/21 12:12:36

本文主要是介绍Java 树形 结构 省市区,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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);//不满足,递归
        }
    }
}
 

 



这篇关于Java 树形 结构 省市区的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程