文章目录

  • 简单介绍
  • 一、打印效果
  • 二、数据库表结构
  • 三 实体
  • 四、代码实现
    • 2.1 获取树形结构
    • 2.2 添加子节点【回复评论】

简单介绍

一、打印效果

{"msg": "success","code": 200,"data": [{"createTime": "2021-08-17 08:46:13","updateTime": "2021-08-17 08:46:15","id": 1,"pid": 0,"uid": 1,"aid": 1,"content": "文章非常好,学到了很多,关注你了","support": 0,"isDelete": 0,"child": [{"createTime": "2021-08-19 11:59:08","updateTime": "2021-08-19 11:59:12","id": 3,"pid": 1,"uid": 3,"aid": 1,"content": "我也关注他了,兄弟","support": 0,"isDelete": 0,"child": [{"createTime": "2021-08-19 12:06:24","updateTime": "2021-08-19 12:06:25","id": 4,"pid": 3,"uid": 4,"aid": 1,"content": "你关注他干嘛","support": 0,"isDelete": 0,"child": null}]}]},{"createTime": "2021-08-19 11:58:10","updateTime": "2021-08-19 11:58:11","id": 2,"pid": 0,"uid": 2,"aid": 1,"content": "博主关注一下我,我关注博主了","support": 25,"isDelete": 0,"child": null}]
}

二、数据库表结构

DROP TABLE IF EXISTS `comment`;CREATE TABLE `comment` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',`pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级评论ID',`uid` int(11) NOT NULL COMMENT '评论者ID',`aid` int(20) NOT NULL COMMENT '被评论的文章ID',`content` text NOT NULL COMMENT '评论的内容',`support` int(20) NOT NULL DEFAULT '0' COMMENT '点赞数',`is_delete` int(4) NOT NULL DEFAULT '0' COMMENT '是否删除:1删除 0未删除',`create_time` datetime NOT NULL COMMENT '创建时间',`update_time` datetime NOT NULL COMMENT '更新时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4;

三 实体

@Data
@TableName("comment")
public class Comment extends BaseEntity {private static final Long serialVersionUID = 1L;/*** 主键*/@TableId(type = IdType.AUTO)private Integer id;/*** 父级评论ID*/private Integer pid;/*** 评论者ID*/private Integer uid;/*** 被评论的文章ID*/private Integer aid;/*** 评论的内容*/private String content;/*** 点赞数*/private Integer support;/*** 是否删除:1删除 0未删除*/private Integer isDelete;/*** 子评论*/@TableField(exist = false)private List<Comment> child;
}

四、代码实现

2.1 获取树形结构

/*** 获取树形结构* @param list 需要转换的列表* @return*/private List<Comment> getTree(List<Comment> list) {List<Comment> treeList = new ArrayList<>();for (Comment comment : list) {if (comment.getPid().equals(0)) {treeList.add(getChild(comment, list));}}return treeList;}

2.2 添加子节点【回复评论】

 /*** 获取孩子节点* @param comment 评论当前节点* @param list 列表* @return*/private Comment getChild(Comment comment, List<Comment> list) {for (Comment c : list) {if (comment.getId().equals(c.getPid())) {if (comment.getChild() == null) {comment.setChild(new ArrayList<Comment>());}comment.getChild().add(getChild(c, list));}}return comment;}

博客系统评论模块列表转树形结构相关推荐

  1. 7.博客系统| 评论功能(文章评论,评论的评论)

    根评论:对文章的评论: 子评论:对评论的评论: 区别:是否有父评论. 评论的流程: 1构建样式 2提交根评论 3显示根评论 --------render显示 --------Ajax显示 4提交子评论 ...

  2. 在线博客系统——评论列表

    目录 数据表和实体类 接口说明 编码实现 Dao持久层 Mapper接口 Controller控制层 Service业务逻辑层 Vo对象 前端测试 数据表和实体类 数据表: CREATE TABLE ...

  3. Django博客系统(评论模型)

    1. 定义模型类 在home子应用的models.py模型中定义评论模型 class Comment(models.Model):#评论内容content=models.TextField()#评论的 ...

  4. 基于SpringBoot + Vue的个人博客系统07——文章列表和文章详情

    简介 由于本人不是专业的前端,所以写出来的界面可能会稍微有些丑陋,甚至有些地方的写法不是很专业,还请大家见谅 主界面 JS 部分 首先是 js 逻辑部分 我们先在@/http/request.js中定 ...

  5. 基于ssm的生活故事分享交流博客系统

    基于SSM的生活故事分享交流博客系统 摘要 随着互联网技术的快速发展,无论是人们的生活还是工作,互联网技术都带来了很多的方便,人们通过互联网技术不仅能够提高工作效率还能够降低出错的几率.由于目前很多生 ...

  6. blogs博客系统项目介绍

    blogs博客系统项目介绍 blogs 项目简介 项目展示 项目详述 blogs 一个简易的博客系统 GitHub地址:点击查看项目源码 Gitee地址:点击查看项目源码 项目简介 该项目是我之前学习 ...

  7. ModStartBlog 现代化个人博客系统 v5.2.0 源码下载

    ModStartBlog 是一个基于 Laravel 现代化个人博客系统.模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发.系统完全开源,基于 Apache 2.0 开 ...

  8. php博客系统 加载评论,Yii实现单用户博客系统文章详情页插入评论表单的方法...

    本文实例讲述了Yii实现单用户博客系统文章详情页插入评论表单的方法.分享给大家供大家参考,具体如下: action部分: function test($objs) { $objs->var=10 ...

  9. 博客系统后端设计(三) - 实现获取博客列表页功能

    文章目录 实现获取博客列表页功能 1. 约定前后端交互接口 2. 实现后端代码 3. 实现前端代码 4. 测试代码 5. 涉及到的两个 Bug 博客系统的后端设计: 1.准备工作与设计数据库 2.数据 ...

最新文章

  1. 介绍两个非常好用的Javascript内存泄漏检测工具
  2. linux系统深度清理上网记录,linux日志清理,云主机磁盘清理经验
  3. Vue3---安装Element-Plus组件库
  4. 什么是算术运算和逻辑运算_8086微处理器的算术和逻辑运算
  5. android studio的 jar导入问题 ‘Android Studio Failed to Create MD5 hash for file’
  6. Libvirt虚拟机的Qos与Cgroup
  7. Retrofit的讲解和使用
  8. 【三维路径规划】基于matlab蚁群算法水下潜器三维路径规划【含Matlab源码 043期】
  9. 家用电器行业十二月行业动态报告:11月冰洗表现亮眼,空调价格回升持续(20201231).PDF
  10. 福利:推荐一个免费的抠图网站
  11. 使用hexo+gitee免费搭建个人博客全网最详细
  12. 模仿6ecc 主页 主体部分(查看附件点击6eccHTML 就会看到如下页面效果)
  13. 各种大片任意看!真的超级好用!
  14. Glide的基本用法
  15. Centos8安装NodeJs-16
  16. DDN(数字数据网)
  17. 第三十四届广东金融科技交流会顺利举行,墨云分享风险验证技术新思路
  18. ILI9341的使用之【六】命令二
  19. DNS机制(实现域名和IP地址的转化)
  20. 大维德选媳妇之责任链模式

热门文章

  1. beego 优雅重启
  2. 23种设计模式之责任链模式
  3. java中泛型学习总结
  4. Vim winmanager文件浏览自动更新
  5. Unicode和Utf-8
  6. Springboot 集成 Swagger
  7. HDFS balancer 异常处理
  8. SQL老司机,居然是这样智能挖掘异常日志
  9. 全球权威MLPerf基准测试再发榜,浪潮AI服务器创18项AI性能纪录
  10. 从程序媛到微软全球 AKS 女掌门人,技术女神驾到!