feat(复习):标准思维导图生成与回忆对比

- 新增 review_standard_mind_maps / review_recall_records 数据表
- BuiltinMindMapGenerator:从报告/残片/应用场景规则生成标准导图
- MindMapAiClient 接口 + RemoteAiMindMapClient 预留
- StandardMindMapService:生成/编辑/重新生成/回忆对比
- 对比算法:标题归一化 + Bigram Jaccard 模糊匹配
- ReviewController 新增 6 个端点
- MindMapTreeTool / MindMapNode / CompareResult 工具类
- 完整单元测试(10 个,全部通过)
- 更新 docs/review-module-design.md
This commit is contained in:
2026-07-03 08:53:51 +08:00
parent 5f3f35c53b
commit 32b247526b
34 changed files with 1890 additions and 153 deletions
@@ -4,9 +4,8 @@ import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class CreateReviewApplicationRequest {
public class CreateTaskApplicationRequest {
@NotBlank(message = "任务编号不可为空")
private String taskNum;
@NotBlank(message = "应用项目标题不可为空")
@@ -0,0 +1,14 @@
package com.guo.learningprogresstracker.dto.request;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* 用户回忆对比请求
*/
@Data
public class RecallCompareRequest {
@NotBlank(message = "回忆大纲不可为空")
private String recallOutline;
}
@@ -0,0 +1,14 @@
package com.guo.learningprogresstracker.dto.request;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
/**
* 更新标准思维导图(大纲文本形式)请求
*/
@Data
public class UpdateStandardMindMapRequest {
@NotBlank(message = "思维导图大纲不可为空")
private String outline;
}
@@ -4,7 +4,7 @@ import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Data
public class UpdateReviewApplicationRequest {
public class UpdateTaskApplicationRequest {
@NotBlank(message = "应用项目标题不可为空")
private String title;