zoukankan      html  css  js  c++  java
  • 获取子父节点,tree树状结构的方式--通过循环的方式

    1.导包

    <dependencies>
      //将domain quary写到了这层
    <dependency>
    <groupId>cn.xxx.aigou</groupId>
    <artifactId>qqq_product_interface</artifactId>
    <version>1.0-SNAPSHOT</version>
    </dependency>

    <!--springboot相关的依赖-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    </dependency>

    <!--mp的依赖-->
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>2.2.0</version>
    </dependency>

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.20</version>
    </dependency>
    <!--eureka的客户端-->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <!--swagger2接口文档依赖-->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
    </dependency>
    <!--配置中心支持-->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    </dependencies>

    2.contrlloer实现
    /**
    * 树状结构数据查询:
    * @return
    */
    @RequestMapping(value = "/treeData",method = RequestMethod.GET)
    public List<ProductType> treeData()
    {

    return productTypeService.treeData();
    }
    3.service写逻辑
    @Override
    public List<ProductType> treeData() {
    /*
    使用循环的方式获取不同层次的节点
    */
    return treeDataLoop();
    }
    private List<ProductType> treeDataLoop() {
    //1:首先查询出所有的数据
    List<ProductType> allProductTypes = productTypeMapper.selectList(null);

    //获取所有的数据的key--value的值
    Map<Long,ProductType> map=new HashMap<>();
    for (ProductType pt : allProductTypes) {
    map.put(pt.getId(),pt);
    }

    //最终返回的结果:一级菜单
    List<ProductType> result=new ArrayList<>();

    //2:遍历:封装父节点和子节点
    for (ProductType currentProductType : allProductTypes) {
    //判断是否是一级菜单
    if(currentProductType.getPid()==0){
    // 如果是一级菜单则返回
    result.add(currentProductType);
    }else{
    ProductType parent =map.get(currentProductType.getPid());
    parent.getChildren().add(currentProductType);
    }

    }

    return result;
    }
    3.前台写好后,直接测试

  • 相关阅读:
    while语句的使用
    Sql Server2008忘记sa登陆密码
    C# 读取Excel到DataTable两种方式对比
    读《太阳照常升起》-海明威
    年终总结-2019 混沌收获
    如何在调试状态下部署局域网网站
    HTML-文本标签
    HTML-表单
    HTML-入门
    正则表达式大全
  • 原文地址:https://www.cnblogs.com/wgyi140724-/p/10634135.html
Copyright © 2011-2022 走看看