Commit Graph

33 Commits

Author SHA1 Message Date
f74397ed1e feat(comment): 计数服务:评论点赞数更新,取消点赞接口
- 新增取消点赞接口 /comment/unlike
- 添加布隆过滤器校验评论是否已点赞
- 实现取消点赞时从布隆过滤器中移除记录
- 发送取消点赞消息到 RocketMQ 进行异步处理
- 新增取消点赞相关枚举和异常码
- 更新计数服务消费点赞/取消点赞消息逻辑
- 支持评论点赞数的增减与持久化更新
- 添加 HTTP 客户端测试用例
2025-11-09 13:53:07 +08:00
a8d5c7f9b7 feat(comment): 实现评论点赞功能
- 新增评论点赞接口,支持用户对评论进行点赞操作
- 集成 Redis 布隆过滤器,用于快速校验评论是否已被点赞
- 编写 Lua 脚本实现布隆过滤器的检查与添加逻辑
- 定义点赞相关枚举类,包括点赞状态和操作类型- 新增点赞请求 VO 和 MQ 消息 DTO,规范数据传输结构
- 通过 RocketMQ 异步处理点赞记录落库,提升接口响应速度
- 添加 HTTP 客户端测试用例,便于接口调试和验证
- 补充 Redis Key 构建方法及常量定义,统一缓存键管理
2025-11-08 22:16:15 +08:00
e3f9b6a5b5 feat(comment): 一级评论:子评论总数更新与查询
- 新增批量查询评论计数的数据库接口及SQL实现
- 优化本地缓存中评论ID失效判断逻辑,修正变量命名
- 增加从Redis中获取评论计数数据的功能,并支持缺失时回源数据库
- 实现评论计数数据异步同步至Redis的逻辑,包括子评论总数和点赞数
- 在消费端增加更新Redis中评论子评论总数的逻辑
- 添加评论计数相关的Redis Key和Field常量定义
- 更新HTTP测试用例中的评论内容和回复ID,验证计数同步功能
2025-11-08 21:01:15 +08:00
6f22c2b50d feat(comment): 实现二级评论分页查询功能
- 新增子评论分页查询接口 /comment/child/list- 添加查询一级评论下子评论总数的 Mapper 方法
- 实现二级评论分页数据查询的 Mapper 方法
- 补充对应的 XML 查询语句,支持按 parent_id 查询子评论
- 创建 FindChildCommentItemRspVO 和 FindChildCommentPageListReqVO VO 类
- 在 CommentServiceImpl 中实现子评论分页查询业务逻辑
- 支持批量查询子评论内容及用户信息并组装返回数据
- 添加 HTTP 客户端测试用例用于验证接口功能
2025-11-08 20:29:24 +08:00
bd775b805c feat(comment): 实现评论热度同步到 Redis ZSet
- 新增 Lua 脚本支持热点评论添加与更新
- 在评论消费端同步一级评论至 Redis 热点评论 ZSet
- 支持批量更新评论热度并维护 Redis 中的 Top 500 热点评论
- 修改 CommentDO 和 CommentHeatBO 模型,增加 noteId 字段以支持按笔记分组
- 调整 Mapper XML 查询字段,补充 note_id 字段用于构建 Redis Key
- 优化 Redis 脚本执行逻辑,确保线程安全及数据一致性
- 更新 HTTP 测试用例内容,验证 Redis 同步功能正确性
2025-11-08 15:48:18 +08:00
fdee4dc2b4 feat(comment): 实现评论分页查询功能
- 新增评论分页查询接口与实现逻辑
- 支持查询一级评论及其最早回复的二级评论
- 支持从KV服务批量获取评论内容
- 支持从用户服务批量获取用户信息并组装- 新增评论热度字段用于排序
- 修改MyBatis代码生成配置至comment模块
- 调整评论表结构,优化字段定义
- 完善相关DTO、VO及Mapper文件
- 添加HTTP客户端测试用例
2025-11-08 11:07:50 +08:00
2b06ca0300 feat(kv): 新增批量查询评论内容功能
- 新增 BatchFindCommentContentReqDTO 用于批量查询请求参数校验
- 新增 FindCommentContentReqDTO 和 FindCommentContentRspDTO 用于查询参数与响应封装
- 在 CommentContentController 中添加 /comment/content/batchFind 接口
- 实现 CommentContentRepository 的批量查询方法
- 在 CommentContentServiceImpl 中完成批量查询逻辑,包括参数解析与数据转换
- 更新 gateApi.http 添加批量查询接口测试用例
2025-11-08 09:54:34 +08:00
29cf889dd7 feat(comment): 新增一级评论首条回复ID字段及更新机制
- 在 CommentDO 中新增 firstReplyCommentId 字段,用于记录一级评论下最早回复的评论 ID
- 在 CommentDOMapper 中新增 selectEarliestByParentId 和 updateFirstReplyCommentIdByPrimaryKey 方法,用于查询和更新一级评论的首条回复 ID
- 在 t_comment 表中新增 first_reply_comment_id 字段- 新增 OneLevelCommentFirstReplyCommentIdUpdateConsumer 消费者,用于异步更新一级评论的首条回复 ID- 新增 RedisKeyConstants 常量类,用于构建 Redis Key
- 新增 RedisTemplateConfig 配置类,用于配置 RedisTemplate
- 在 pom.xml 中新增 spring-boot-starter-data-redis 依赖
2025-11-07 21:49:47 +08:00
c454e1832c feat(comment): 新增评论热度计算与更新功能
- 在评论数据对象中新增 childCommentTotal 和 heat 字段
- 扩展 CommentDOMapper 支持批量更新评论热度值
- 新增 CommentHeatBO 类用于封装评论热度信息
- 实现基于点赞数和回复数的热度值计算工具类 HeatCalculator
- 添加 RocketMQ 消费者异步处理评论热度更新消息
- 引入 buffer-trigger依赖实现消息聚合发送
- 扩展 JsonUtils 工具类支持 Set 类型反序列化
- 新增 MQ 常量 TOPIC_COMMENT_HEAT_UPDATE用于热度更新主题
- 修改 SQL 脚本增加 heat 字段并设置默认值- 更新测试接口请求参数内容以适配新逻辑
2025-11-07 21:19:42 +08:00
9ec330216f feat(count): 实现评论计数功能支持二级评论统计
- 新增评论数据对象 CommentDO 及其 MyBatis 映射配置
- 新增评论级别枚举 CommentLevelEnum 区分一级与二级评论
- 新增 CountNoteChildCommentConsumer 消费 MQ 消息并更新子评论总数
- 修改 CountPublishCommentMqDTO 增加 level 和 parentId 字段以支持层级识别
- 调整 Comment2DBConsumer 中构造 CountPublishCommentMqDTO 的逻辑,使用 commentBO 提取完整信息
- 配置 MyBatis Code Helper 插件指向新的 han-note-count 模块路径
- 更新 gateApi.http 测试接口示例,添加 replyCommentId 参数用于模拟二级评论发布
2025-11-07 17:42:43 +08:00
63495b4938 feat(count): 实现评论发布后异步更新笔记评论数功能
- 新增 CountPublishCommentMqDTO 用于传输评论计数消息
- 在评论服务中添加异步发送评论计数消息逻辑
- 新建 CountNoteCommentConsumer 消费评论计数消息并批量更新笔记评论数
- 扩展 t_comment 表结构,新增 child_comment_total 字段
- 更新 MQ 常量配置,添加评论计数相关 Topic 定义
- 调整 LIKE/UNLIKE 和 COLLECT/UNCOLLECT 消费者中的注解使用(防止循环依赖)
- 修改 gateApi.http 中的测试用例内容以适配新功能
2025-11-07 17:13:01 +08:00
a37e76c87c feat(comment): 实现评论异步消费与内容存储
- 新增评论内容批量存储接口与实现
- 实现MQ消息消费端处理评论发布逻辑
- 支持一级与二级评论的层级关系构建
- 添加评论内容与元数据分离存储机制
- 集成分布式ID生成服务用于评论ID生成
- 完善评论相关DTO、DO、BO模型类
- 添加Cassandra数据库操作支持
- 实现Feign接口调用与事务控制
2025-11-05 19:19:19 +08:00
eb19d52fcb feat(comment): 引入MQ消息重试机制
- 添加Spring Retry依赖及AOP支持
- 配置重试策略与指数退避机制
- 创建SendMqRetryHelper封装MQ发送与重试逻辑
- 替换原有RocketMQTemplate为带重试功能的实现
- 增加线程池配置以支持异步重试任务执行
- 更新测试用例中的评论内容用于验证重试机制
2025-11-04 21:38:28 +08:00
226c28885b feat(comment): 新增评论功能模块
- 新增评论发布接口,支持内容和图片评论
- 新增评论和评论点赞数据表结构及对应DO、Mapper
- 新增评论相关DTO、VO及校验规则
- 新增评论服务接口及实现,集成RocketMQ异步发送
- 新增全局异常处理器,统一处理参数校验和业务异常
- 配置网关路由,支持/comment/**路径转发至评论服务
- 新增RocketMQ配置类,启用MQ自动配置
- 添加评论发布HTTP测试用例
2025-11-04 19:45:11 +08:00
2b2cd2be70 refactor(search):重构搜索服务模块结构
- 将 han-note-search 模块拆分为 han-note-search-api 和 han-note-search-biz
- 调整包路径,统一添加 biz 子包以区分业务实现
- 更新相关类的导入路径以适配新的包结构
- 修改 Maven 模块配置,设置父模块打包方式为 pom- 添加新的 API 模块用于 RPC 接口定义
- 更新依赖配置,确保模块间正确引用
- 调整 IDEA 编译器配置以识别新模块
- 更新 HTTP 客户端测试数据和请求示例
- 添加 Feign 客户端支持以实现服务间通信
- 实现笔记文档重建功能并提供对外接口
- 增加数据对齐服务中远程调用搜索服务的能力
- 更新全局异常处理器和枚举类的包路径
- 调整应用启动类的 Mapper 扫描路径
- 更新 Elasticsearch 配置类和索引相关类路径
- 修改控制器和服务接口以支持新架构
- 更新测试类路径以匹配新的项目结构
2025-11-03 16:00:22 +08:00
4b13e52a29 feat(search): 实现用户搜索昵称高亮与粉丝数格式化- 添加昵称高亮字段 highlightNickname 到 SearchUserRspVO
- 修改粉丝总数字段类型为 String,支持格式化显示
- 引入 NumberUtils 工具类,实现数字转“万”单位格式
- 配置 Elasticsearch 查询高亮规则,支持昵称关键词高亮
- 新增 mergeHitToRspVO 方法,合并原始数据与高亮结果
- 优化搜索请求构建逻辑,增强可读性与扩展性
2025-11-01 13:50:18 +08:00
4e00542371 feat(search): 实现用户搜索功能
- 添加 Elasticsearch 客户端配置
- 创建用户搜索接口和实现类
- 定义搜索请求和响应 VO 类
- 集成分页查询和关键字匹配逻辑
- 添加 Elasticsearch 测试用例
- 更新 pom.xml 依赖和版本管理
- 添加 HTTP 客户端测试脚本
2025-10-30 22:21:06 +08:00
c216ca4c63 chore(http-client): 添加 Elasticsearch 索引和文档操作示例
- 新增创建索引的 HTTP 请求示例
- 添加多个创建文档的 PUT 请求示例
- 包含不同类型内容的文档数据(旅游、美食、穿搭)
- 提供基于 multi_match 的搜索文档示例
- 所有请求均针对 note 索引进行操作
- 补充完整的请求体和时间字段内容
2025-10-27 23:04:14 +08:00
d1f756d5c8 refactor(data-align):优化数据对齐任务与MQ消费逻辑
fix(data-align,note):点赞同一用户发布的两篇不同笔记,无法保存变更记录。点赞笔记的SQL查询错误修复。

- 移除了事务模板,简化数据库操作流程
- 分离笔记ID与用户ID的布隆过滤器处理逻辑- 新增针对笔记作者的点赞/收藏数变更记录
- 重构Redis键命名规范,区分笔记与用户维度
- 优化MQ消息处理流程,增强异常捕获机制
- 更新HTTP客户端测试用例与环境配置
-修复NoteServiceImpl中点赞查询的用户ID条件缺失
- 调整分片计算方式,提升数据分布均匀性
2025-10-24 20:57:21 +08:00
17123657f4 feat(data-align): 实现用户关注、粉丝及笔记发布数的数据对齐功能
- 新增 LUA 脚本实现布隆过滤器校验日增量数据
- 修改表结构将 t_data_align_note_publish_count_temp 的 note_id 替换为 user_id
-为 CreateTableXxlJob 添加事务管理确保表创建一致性
- 新增 FollowUnfollowMqDTO 和 NoteOperateMqDTO 用于消息传递
- 扩展 InsertRecordMapper 支持插入关注、粉丝和笔记发布计数记录
- 在 RedisKeyConstants 中新增多个布隆过滤器相关常量和构建方法
- 新增两个 RocketMQ 消费者处理用户关注/取关和笔记发布/删除事件
- 更新 HTTP 测试文件中的请求参数以适配最新接口逻辑
2025-10-23 20:02:36 +08:00
7fc24e1e2a feat(count): 实现笔记发布与删除的计数更新功能
- 新增笔记操作 MQ 消费者 CountNotePublishConsumer
- 支持处理笔记发布和删除消息,更新 Redis 和数据库计数
- 新增笔记操作相关常量:TOPIC_NOTE_OPERATE、TAG_NOTE_PUBLISH、TAG_NOTE_DELETE
- 定义笔记操作 DTO:NoteOperateMqDTO,用于 MQ 消息传递
- 在笔记服务中发送笔记发布和删除的 MQ 消息
- 新增 Redis Hash 字段 noteTotal 用于存储笔记总数
- 新增数据库操作 insertOrUpdateNoteTotalByUserId 用于更新笔记总数
2025-10-19 17:58:57 +08:00
c036fadbff feat(note): 实现笔记取消收藏功能
- 新增取消收藏笔记的 Controller 接口 /uncollect
- 实现取消收藏笔记的业务逻辑,包括布隆过滤器校验和数据库状态更新
- 添加 Lua 脚本用于 Redis 布隆过滤器检查笔记是否被收藏
- 新增取消收藏相关的枚举类 NoteUnCollectLuaResultEnum
- 扩展 RocketMQ 消息标签支持取消收藏操作
- 在 NoteCollectionDOMapper 中新增 update2UnCollectByUserIdAndNoteId 方法
- 新增响应码 NOTE_NOT_COLLECTED用于未收藏情况的错误提示
- 添加取消收藏请求参数 VO 类 UnCollectNoteReqVO
- 更新 HTTP 客户端测试脚本增加取消收藏接口调用示例
2025-10-19 15:40:27 +08:00
65b089de70 feat(note): 实现笔记收藏功能
- 新增笔记收藏接口及对应业务逻辑
- 添加布隆过滤器和ZSet校验笔记是否已收藏
- 实现异步初始化用户收藏笔记数据到Redis
- 新增多个Lua脚本支持批量操作和过期时间设置
- 更新NoteCollectionDO实体类字段类型和时间格式
- 添加收藏相关枚举类和请求VO类
- 扩展RedisKeyConstants常量类支持收藏功能键名构建
- 在网关API测试文件中增加笔记收藏入口配置
2025-10-18 21:11:10 +08:00
90bd9a5a5d feat(note): 实现笔记取消点赞功能
- 新增 Lua 脚本用于布隆过滤器校验笔记是否被点赞
- 添加取消点赞接口 /note/note/unlike
- 实现取消点赞业务逻辑,包括 Redis ZSet 删除与 MQ 异步更新
- 新增取消点赞请求 VO 类 UnlikeNoteReqVO
- 新增 Lua 脚本执行结果枚举 NoteUnlikeLuaResultEnum
- 添加响应码 NOTE_NOT_LIKED 用于未点赞提示
- 更新 HTTP 客户端测试用例,增加取消点赞入口
- 消费者 LikeUnlikeNoteConsumer 支持处理取消点赞消息
- 补充相关服务层方法 unlikeNote 及其实现
2025-10-18 15:28:38 +08:00
648c621fbf feat(note): 实现笔记点赞功能
- 新增笔记点赞接口,支持用户对笔记进行点赞操作
- 集成 Redis 布隆过滤器,用于高效判断用户是否已点赞
- 添加 Lua 脚本处理点赞逻辑,包括布隆过滤器检查与更新
- 实现异步批量初始化布隆过滤器,提升性能与用户体验
- 完善点赞相关枚举、VO 类及 Redis Key 常量定义
- 在 HTTP 客户端中新增点赞接口测试用例
- 增加笔记存在性校验逻辑,确保操作目标有效
- 添加点赞状态枚举和响应码,优化错误提示信息
2025-10-16 22:47:18 +08:00
9e3c35043e feat(relation): 实现用户粉丝列表查询功能
- 新增查询用户粉丝列表接口
- 定义粉丝列表请求参数类 FindFansListReqVO- 定义粉丝信息响应类 FindFansUserRspVO
- 在 RelationController 中添加 /fans/list POST 接口
- 在 RelationService 中定义 findFansList 方法
- 在 RelationServiceImpl 中实现粉丝列表查询逻辑
- 支持 Redis 缓存查询与数据库分页查询
- 实现粉丝列表异步同步至 Redis 功能
- 添加 HTTP 客户端测试用例
2025-10-15 17:40:36 +08:00
1e350a4af5 feat(user): 新增用户关注列表查询功能
- 新增查询用户关注列表接口,支持分页查询
- 新增批量查询用户信息接口,提升查询效率
- 优化 MQ 消费模式为顺序消费,确保关注/取关操作有序性
- 完善用户信息 DTO,新增简介字段
- 新增分页响应封装类,支持分页查询结果返回
- 优化 Redis 查询逻辑,支持从缓存中分页获取关注列表
- 新增 Lua 脚本结果类型设置,确保脚本执行结果正确解析
- 添加 HTTP 接口测试用例,覆盖关注列表及批量查询接口
- 实现缓存与数据库双写一致性,提高数据查询性能
2025-10-14 22:29:13 +08:00
b70d9073d8 feat(relation): 实现用户取关功能
- 新增取消关注接口及完整业务逻辑
- 添加 Lua 脚本支持 Redis 取关校验与删除操作
- 实现 MQ 异步处理取关事件
- 补充相关 DTO、VO 类以及枚举响应码
- 完善 Redis Key 构建工具方法
- 增加 HTTP 测试用例用于手动验证接口
- 优化关注流程中的 Redis ZSet 粉丝列表维护逻辑
- 添加粉丝数量限制控制,超出时自动移除最早关注者
2025-10-13 22:40:11 +08:00
362c32cbd6 feat(user-relation): 实现用户关注与取消关注功能
- 在 t_following 和 t_fans 表中添加联合唯一索引,确保关注关系的幂等性- 新增 RocketMQ 消费者 FollowUnfollowConsumer,处理关注和取消关注消息
- 实现关注逻辑,通过事务保证关注表和粉丝表数据一致性
- 修改 DeleteNoteLocalCacheConsumer 的 consumerGroup 名称,避免消费者组冲突,否则可能遇到消费者不消费的情况
2025-10-12 21:17:39 +08:00
3c8dc9e4af feat(relation): 实现用户关注功能及相关校验逻辑
- 新增 DateUtils 工具类,支持 LocalDateTime 转时间戳
- 编写三个 Lua 脚本:单条关注、批量关注及关注校验与添加
- 新增 RedisKeyConstants 常量类,用于构建关注列表 KEY
- 新增 LuaResultEnum 枚举,定义 Lua 脚本返回结果状态
- 实现关注接口的完整业务逻辑,包括 Redis 校验和数据库兜底
- 添加 HTTP 测试用例和环境变量配置
- 支持关注关系的过期策略,包含随机过期时间计算
- 增加对关注上限和重复关注的业务异常处理
- 实现从数据库同步关注数据到 Redis 的逻辑
- 使用 Lua 脚本保证操作的原子性和性能优化
2025-10-12 19:55:20 +08:00
7942a46592 feat(relation): 实现用户关注功能
- 新增关注用户接口,支持通过用户ID关注其他用户
- 添加参数校验,确保被关注用户ID不为空
- 实现关注用户时的业务逻辑,包括:
  -不能关注自己
  - 校验被关注用户是否存
  - 集成Feign客户端,调用用户服务查询用户信息
- 定义关注相关的异常码和错误信息
- 更新网关配置,路由/relation/**请求到用户关系服务- 添加HTTP客户端测试用例,用于验证关注功能
- 引入用户API依赖,支持远程调用用户服务
2025-10-12 15:02:15 +08:00
16ab8a13d2 feat(http): 添加用户信息更新和笔记管理接口测试用例
- 新增更新用户信息的 multipart/form-data 请求示例
- 添加发布图文笔记和视频笔记的 JSON 请求示例- 添加笔记详情查询和笔记修改的请求示例
- 在私有环境变量中增加 noteId 字段用于笔记相关接口测试
- 调整包名路径以符合项目结构规范
2025-10-12 14:13:52 +08:00
e5c79f1abc feat(user): 更新用户表字段及认证接口
- 将用户表中的 `han_note_id` 注释更新为 "小憨书号"
- 将用户表中的 `phone` 字段改为 `email` 并更新注释
- 更新分布式ID生成器中相关SQL表名引用从 `leaf_alloc` 到 `leaf`
- 在HTTP客户端配置文件中新增认证API请求示例
- 修改Feign接口方法名以匹配邮箱查询逻辑
- 调整RPC服务调用方法名保持一致性
2025-10-12 00:49:35 +08:00