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;
    }
    

      

  • 相关阅读:
    zoj2132-The Most Frequent Number
    ant-design getFieldDecorator 无法获取自定义组件的值
    ant-design-pro Login 组件 实现 rules 验证
    js 终止 forEach 循环
    js 终止 for 循环
    vue打包后出现一些map文件的解决方法
    ant font 本地化
    react 设置代理(proxy) 实现跨域请求
    ES6 async 与 await 实战
    {...formItemLayout} 标签布局
  • 原文地址:https://www.cnblogs.com/jiawen010/p/14804307.html
Copyright © 2011-2022 走看看