评论功能实现

9.8 评论功能实现整理
这里以实现文章页面的评论列表为例

一、业务分析

模拟B站评论业务

1.1 业务逻辑

  • 当访问某篇文章的时候,尝试获取该文章的评论列表。
  • 按照文章评论配置(这些配置单独一张表,与文章一对一关系),进行分页展示相应的一级评论和二级评论。
  • 对于一级评论,点击显示更多评论,显示该评论下的所有二级评论,并进行分页展示。
  • 一级评论和二级评论均可根据文章配置按照热度或创建时间进行排序

1.2 实现思路

  • 为评论添加一个父id指向父评论,添加一个回复id指向回复评论。
  • 评论一共分为两层,分别为一级评论和二级评论。
  • 一级评论的父id约定为0,二级评论的父评论指向一级评论。
  • 回复id是针对于某一个以及评论下的二级评论之间进行的信息回复。

1.3 规则分析

  1. 一级评论父id都为0L
  2. 二级评论必须有父id,且不能为0L
  3. 二级评论不能回复其他父id下的二级评论
  4. 一级评论不能回复其他评论,其他评论也不能回复一级评论

二、表结构

2.1 comment

在这里插入图片描述
在这里插入图片描述

2.2 comment_settings

在这里插入图片描述
在这里插入图片描述

三、模型建立

使用Spring Data Jpa与数据库交互

3.1 Comment

Comment 模型内部维护User、回复User、子评论列表

@Entity
@Table(name = "comment")
public class Comment
{
   
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private Long articleId;

    private Long userId;

    private Long replayUserId;

    private Long parentId;

    private Integer likeNum = 0;
    
    private String content;
    
    @Column(updatable = false)
    private Long createdAt;
    
    @Transient
    private User user;

    @Transient
    private User replayUser;

    @Transient
    private List<Comment> childrenComment;

3.2 CommentSettings

CommentSettings内部维护了文章配置信息

@Entity
@Table(name = "comment_settings")
public class CommentSettings
{
   
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private Long articleId;

    @Convert(converter = SettingsInfoConverter.class)
    private SettingsInfo settings;
}

3.3 SettingsInfo

public class SettingsInfo
{
   
    private Byte requiredSignin = 0;

    private Byte requiredReply = 0;
}
  • 13
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Spring Boot中实现评论功能可以按照以下步骤进行: 1. 创建数据库表结构: 根据引用中提供的表结构,创建一个名为`comment`的表,包含`id`、`parent_id`、`content`、`author`和`create_time`字段。 2. 创建实体类: 创建一个名为`Comment`的实体类,包含与数据库表结构对应的属性,并使用注解进行字段映射。 3. 创建数据访问层接口: 创建一个名为`CommentMapper`的接口,使用MyBatis-Plus提供的注解或XML配置文件,定义对`comment`表的增删改查操作。 4. 创建服务层接口和实现类: 创建一个名为`CommentService`的接口,定义评论相关的业务逻辑方法,例如添加评论、获取评论列表等。 创建一个名为`CommentServiceImpl`的实现类,实现`CommentService`接口,并注入`CommentMapper`进行数据库操作。 5. 创建控制器: 创建一个名为`CommentController`的控制器类,使用`@RestController`注解标识为RESTful风格的控制器。 在控制器中注入`CommentService`,并定义相应的请求处理方法,例如添加评论的方法、获取评论列表的方法等。 6. 配置路由和请求映射: 在`application.properties`或`application.yml`配置文件中配置路由和请求映射,将请求路径与相应的控制器方法进行映射。 7. 编写前端页面: 根据需求,编写前端页面,通过Ajax或其他方式向后端发送请求,并展示评论列表、添加评论功能。 8. 运行和测试: 启动Spring Boot应用程序,访问相应的URL进行测试,确保评论功能正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值