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写逻辑
@Overridepublic 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.前台写好后,直接测试
原文地址:https://www.cnblogs.com/wgyi140724-/p/10634135.html
时间: 2024-12-16 01:36:44