博客系统评论模块列表转树形结构
生活随笔
收集整理的這篇文章主要介紹了
博客系统评论模块列表转树形结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 簡單介紹
- 一、打印效果
- 二、數據庫表結構
- 三 實體
- 四、代碼實現
- 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;}總結
以上是生活随笔為你收集整理的博客系统评论模块列表转树形结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux-centos7环境搭建
- 下一篇: 超详细前端开发案例:品优购商场项目(三)