zoukankan      html  css  js  c++  java
  • 递归查询子级元素,返回树形菜单数据

        /**
         * 将普通的entity的集合转成存在树状结构的集合
         * @param list
         * @return
         */
        public static List<CityVo> getDtoTreeList(List<DvCity> list){
            List<CityVo> dtos = new ArrayList<>();
            if (list == null || list.isEmpty()) {
                return dtos;
            }
            for (DvCity city : list) {
                if (city.getParentCode()==0){
                    //找到顶层目录
                    CityVo cityVo = new CityVo();
                    //将实体类的数据转成dto
                    BeanUtil.copyProperties(city,cityVo);
                    cityVo.setName(city.getName());
                    //获取该实体类下的所有子级
                    dtos.add(findChildren(cityVo,list));
                }
            }
            return dtos;
        }
    
        /**
         * 获取cityVo类下面的所有子级,存到dto中的children中
         * @param cityVo
         * @param list
         * @return
         */
        private static CityVo findChildren(CityVo cityVo, List<DvCity> list) {
            for (DvCity city : list) {
                if (cityVo.getCode().equals(city.getParentCode())){
                    //此时menu是menuDto下的子级
                    if (cityVo.getChildList() == null){
                        cityVo.setChildList(new ArrayList<CityVo>());
                    }
                    CityVo dto = new CityVo();
                    BeanUtil.copyProperties(city,dto);
                    dto.setName(city.getName());
                    //递归
                    cityVo.getChildList().add(findChildren(dto,list));
                }
            }
            return cityVo;
        }
    

      实体类

    @Data
      @Accessors(chain = true)
    @ApiModel(value="DvCity对象", description="城市表")
    public class DvCity extends BaseObject {
    
        private static final long serialVersionUID=1L;
    
          @ApiModelProperty(value = "城市编码")
          @Id
          private Integer code;
    
          @ApiModelProperty(value = "城市名称")
          private String name;
    
          @ApiModelProperty(value = "父级code")
          private Integer parentCode;
    
          @ApiModelProperty(value = "是否显示 0显示1不显示")
          private Integer deleted;
    }
    

      

  • 相关阅读:
    第二次结对编程作业
    第一次结对编程作业
    团队项目需求分析报告
    第03组 团队Git现场编程实战
    团队项目选题报告
    上传大文件的问题
    Maven安装与环境变量设置
    jsp中的相对路径和绝对路径
    Highcharts使用入门随笔
    Tomcat服务器项目外网无法访问
  • 原文地址:https://www.cnblogs.com/jiawen010/p/14804307.html
Copyright © 2011-2022 走看看