feat(comment): 新增评论功能模块

- 新增评论发布接口,支持内容和图片评论
- 新增评论和评论点赞数据表结构及对应DO、Mapper
- 新增评论相关DTO、VO及校验规则
- 新增评论服务接口及实现,集成RocketMQ异步发送
- 新增全局异常处理器,统一处理参数校验和业务异常
- 配置网关路由,支持/comment/**路径转发至评论服务
- 新增RocketMQ配置类,启用MQ自动配置
- 添加评论发布HTTP测试用例
This commit is contained in:
2025-11-04 19:45:11 +08:00
parent 5eb3c7b58e
commit 226c28885b
21 changed files with 667 additions and 6 deletions

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hanserwei.hannote.comment.biz.domain.mapper.CommentDOMapper">
<resultMap id="BaseResultMap" type="com.hanserwei.hannote.comment.biz.domain.dataobject.CommentDO">
<!--@mbg.generated-->
<!--@Table t_comment-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="note_id" jdbcType="BIGINT" property="noteId" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="content_uuid" jdbcType="VARCHAR" property="contentUuid" />
<result column="is_content_empty" jdbcType="BIT" property="isContentEmpty" />
<result column="image_url" jdbcType="VARCHAR" property="imageUrl" />
<result column="level" jdbcType="TINYINT" property="level" />
<result column="reply_total" jdbcType="BIGINT" property="replyTotal" />
<result column="like_total" jdbcType="BIGINT" property="likeTotal" />
<result column="parent_id" jdbcType="BIGINT" property="parentId" />
<result column="reply_comment_id" jdbcType="BIGINT" property="replyCommentId" />
<result column="reply_user_id" jdbcType="BIGINT" property="replyUserId" />
<result column="is_top" jdbcType="TINYINT" property="isTop" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, note_id, user_id, content_uuid, is_content_empty, image_url, `level`, reply_total,
like_total, parent_id, reply_comment_id, reply_user_id, is_top, create_time, update_time
</sql>
</mapper>