iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java接口返回省市区树形结构如何实现
  • 788
分享到

Java接口返回省市区树形结构如何实现

2023-07-04 23:07:50 788人浏览 安东尼
摘要

这篇文章主要介绍“Java接口返回省市区树形结构如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java接口返回省市区树形结构如何实现”文章能帮助大家解决问题。前言最近和前端联调接口,需要进行

这篇文章主要介绍“Java接口返回省市区树形结构如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java接口返回省市区树形结构如何实现”文章能帮助大家解决问题。

前言

最近和前端联调接口,需要进行一个省市区联动,最终定的方案是通过接口返回一个树形结构给前端,类似这样的结构:

Java接口返回省市区树形结构如何实现

设计表结构

表结构已经准备好了,直接执行即可。

由于数据量较大,这里放不下,需要的伙伴们可以私聊我

CREATE TABLE `sys_region`  (  `id` int(19) NOT NULL AUTO_INCREMENT COMMENT 'id',  `pid` int(19) NULL DEFAULT NULL COMMENT '上级ID,一级为0',  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',  `tree_level` int(3) NULL DEFAULT NULL COMMENT '层级',  `leaf` int(3) NULL DEFAULT NULL COMMENT '是否叶子节点  0:否   1:是',  `sort` int(19) NULL DEFAULT NULL COMMENT '排序',  `create_by` varchar(19) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',  `update_by` varchar(19) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新者',  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 820202 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '行政区域' ROW_FORMAT = Dynamic;

Java代码

下面分享Java相关的代码

entity

实体就是这个表的属性,这里最后一个属性childList就是用来存放子列表的,可以先建一个VO,我直接写在实体里面了。

package org.jeecg.modules.entity;import java.io.Serializable;import java.io.UnsupportedEncodingException;import java.util.Date;import java.math.BigDecimal;import java.util.List;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;import com.fasterxml.jackson.annotation.JSONFormat;import org.springframework.format.annotation.DateTimeFormat;import org.jeecgframework.poi.excel.annotation.Excel;import org.jeecg.common.aspect.annotation.Dict;import io.swagger.annotations.apiModel;import io.swagger.annotations.ApiModelProperty;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;@Data@TableName("sys_region")@Accessors(chain = true)@EqualsAndHashCode(callSuper = false)@ApiModel(value = "sys_region对象", description = "行政区域")public class SysRegion implements Serializable {    private static final long serialVersionUID = 1L;        @TableId(type = IdType.ASSIGN_ID)    @ApiModelProperty(value = "id")    private Integer id;        @Excel(name = "上级ID,一级为0", width = 15)    @ApiModelProperty(value = "上级ID,一级为0")    private Integer pid;        @Excel(name = "名称", width = 15)    @ApiModelProperty(value = "名称")    private String name;        @Excel(name = "层级", width = 15)    @ApiModelProperty(value = "层级")    private Integer treeLevel;        @Excel(name = "是否叶子节点  0:否   1:是", width = 15)    @ApiModelProperty(value = "是否叶子节点  0:否   1:是")    private Integer leaf;        @Excel(name = "排序", width = 15)    @ApiModelProperty(value = "排序")    private Integer sort;        @ApiModelProperty(value = "创建者")    private String createBy;        @jsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")    @DateTimeFormat(pattern = "yyyy-MM-dd")    @ApiModelProperty(value = "创建时间")    private Date createTime;        @ApiModelProperty(value = "更新者")    private String updateBy;        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")    @DateTimeFormat(pattern = "yyyy-MM-dd")    @ApiModelProperty(value = "更新时间")    private Date updateTime;        @TableField(exist = false)  //表示这个属性不属于表中的字段    private List<SysRegion> childList;}

service

        List<SysRegion> queryAllProvinceTree();

serviceImpl

  @Override    public List<SysRegion> queryAllProvinceTree() {        // 获取全部区域        List<SysRegion> list = this.query().list();        // 省区域        List<SysRegion> provinceListOneLevelRegion = list.stream().filter(item -> item.getPid().intValue()==0).collect(Collectors.toList());        //遍历一级地区        provinceListOneLevelRegion.stream().forEach(oneItem ->                {                    //获得二级                    List<SysRegion> twoLevelRegion = list.stream().filter(twoItem -> twoItem.getPid().intValue() == oneItem.getId().intValue())                            .collect(Collectors.toList());                    //遍历二级                    twoLevelRegion.stream().forEach(twoItem ->                    {                        //获得三级                        List<SysRegion> threeLevelRegion = list.stream().filter(threeItem -> threeItem.getPid().intValue() == twoItem.getId().intValue())                                .collect(Collectors.toList());                        twoItem.setChildList(threeLevelRegion);                    });                    oneItem.setChildList(twoLevelRegion);                }        );        // 最终的树形结构列表        return provinceListOneLevelRegion;    }

controller

     @ApiOperation(value = "行政区域-查询所有省级区域以树形式展示关系", notes = "行政区域-查询所有省级区域以树形式展示关系")    @GetMapping(value = "/queryAllProvinceTree")    public Result<?> queryAllProvinceTree() {        return Result.OK(SysRegionService.queryAllProvinceTree());    }

调用接口查看结果

以上代码写完之后,就可以调用接口了,返回格式如下:

Java接口返回省市区树形结构如何实现

关于“Java接口返回省市区树形结构如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: Java接口返回省市区树形结构如何实现

本文链接: https://www.lsjlt.com/news/348180.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java接口返回省市区树形结构如何实现
    这篇文章主要介绍“Java接口返回省市区树形结构如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java接口返回省市区树形结构如何实现”文章能帮助大家解决问题。前言最近和前端联调接口,需要进行...
    99+
    2023-07-04
  • Java接口返回省市区树形结构的实现
    目录前言设计表结构Java代码调用接口查看结果前言 最近和前端联调接口,需要进行一个省市区联动,最终定的方案是通过接口返回一个树形结构给前端,类似这样的结构: 下面就把相关表和代码...
    99+
    2023-01-08
    Java 返回树形结构 Java 接口返回树形结构
  • java实现省市区转换成树形结构
    本文实例为大家分享了java实现省市区转换成树形结构的具体代码,供大家参考,具体内容如下 前言:为什我想写这篇博客呢?第一方面是记录,另一方面是分享。 1.创建数据库表 1.建表语句...
    99+
    2022-11-12
  • JAVA使用hutool工具实现查询树结构数据(省市区)
    下面通过代码看下JAVA查询树结构数据(省市区)使用hutool工具实现 代码: @PostMapping("/getTree") public Object getTr...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作