当前位置: 首页 > news >正文

融资项目——获取树形结构的数据

如下图所示,下列数据是一个树形结构数据,行业中包含若干子节点。表的设计如下图,设置了一个id为1的虚拟根节点。(本树形结构带虚拟根节点共三层)

实现逻辑:

延时展示方法,先展现第二层的信息,如果想要看到具体第三层的信息,点击按钮触发后台请求,通过当前点击的父节点获得其所有子节点。

实现方法:

0. 首先在Dict实体类中加入如下属性:

 @TableField(exist = false)//逻辑概念的属性,与物理表没有关系,数据库表中不存在该字段。private boolean hasChildren;

1.Service层:

    @Overridepublic List<Dict> listByParentId(Long parentId) {QueryWrapper<Dict> queryWrapper=new QueryWrapper<>();queryWrapper.eq("parent_id",parentId);List<Dict> dictList= dictMapper.selectList(queryWrapper);//填充hasChildren字段dictList.forEach(dict -> {//判断当前字段是否有子节点dict.setHasChildren(this.hasChildre(parentId));});return dictList;}//    判断当前节点下是否存在子节点private  boolean hasChildre(Long id){QueryWrapper<Dict> queryWrapper=new QueryWrapper<>();queryWrapper.eq("parent_id",id);Integer count=dictMapper.selectCount(queryWrapper);if(count>0)return true;else return false;}

2. Controller层:

@ApiOperation("根据上级id获取所有子节点信息")@GetMapping("/listByParentId/{parentId}")public R listByParentId(@ApiParam(value = "上级父节点的id")@PathVariable Long parentId){List<Dict> dictList=dictService.listByParentId(parentId);return R.ok().data("list",dictList);}

http://www.lryc.cn/news/300906.html

相关文章:

  • Crypto-RSA2
  • IEEE Internet of Things Journal投稿经验
  • 实例分割论文阅读之:FCN:《Fully Convolutional Networks for Semantica Segmentation》
  • apk反编译修改教程系列---简单去除apk登陆 修改vip与一些反编译基础常识【十二】
  • 网络安全习题集
  • C++中的volatile:穿越编译器的屏障
  • (07)Hive——窗口函数详解
  • 【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
  • 阅读笔记(SOFT COMPUTING 2018)Seam elimination based on Curvelet for image stitching
  • LinkedList数据结构链表
  • [计算机网络]---序列化和反序列化
  • [前端开发] 常见的 HTML CSS JavaScript 事件
  • H5/CSS 笔试面试考题(71-80)
  • 【Node.js】path 模块进行路径处理
  • react+ts【项目实战一】配置项目/路由/redux
  • 英文论文(sci)解读复现【NO.20】TPH-YOLOv5++:增强捕获无人机的目标检测跨层不对称变压器的场景
  • 第十五章 以编程方式使用 SQL 网关 - %SQLGatewayConnection 方法和属性
  • 【QTableView】
  • VS-Code-C#配置
  • 第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例
  • LeetCode 第33天 | 1005. K 次取反后最大化的数组和 135. 分发糖果 134. 加油站
  • PointMixer论文阅读笔记
  • [word] word分割线在哪里设置 #其他#经验分享
  • C++ 音视频原理
  • C# 只允许开启一个exe程序
  • 【Java程序员面试专栏 分布式中间件】Redis 核心面试指引
  • 2024年【高处安装、维护、拆除】模拟考试题库及高处安装、维护、拆除实操考试视频
  • 【QT+QGIS跨平台编译】之三十七:【Shapelib+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
  • 【机器学习基础】决策树(Decision Tree)
  • 图神经网络DGL框架,graph classification,多个且不同维度的node feature 训练