feat(复习): 支持会话维度复习 + 标准导图按会话过滤(后端)
- MindMapNode 新增 sessionNum 字段
- BuiltinMindMapGenerator 生成节点时填充 sessionNum
- MindMapTreeTool.filterBySession() 按会话过滤标准导图
- recallCompare 接受 sessionNum 参数
- ReviewRecallRecordEntity 新增 sessionNum 字段
- Flyway V20260705_1: review_recall_records 加 session_num 列
- 新增 GET /study-sessions/tasks/{taskNum}/sessions 端点
This commit is contained in:
@@ -35,6 +35,8 @@ public class MindMapNode {
|
||||
private String notes;
|
||||
private String sourceType;
|
||||
private Integer sourceId;
|
||||
/** 可选:节点来源会话编码(REPORT/FRAGMENT 节点使用) */
|
||||
private String sessionNum;
|
||||
private List<MindMapNode> children;
|
||||
|
||||
public MindMapNode(String title) {
|
||||
@@ -51,6 +53,7 @@ public class MindMapNode {
|
||||
map.put("notes", notes != null ? notes : "");
|
||||
if (sourceType != null) map.put("sourceType", sourceType);
|
||||
if (sourceId != null) map.put("sourceId", sourceId);
|
||||
if (sessionNum != null) map.put("sessionNum", sessionNum);
|
||||
List<Object> childMaps = new ArrayList<>();
|
||||
if (children != null) {
|
||||
for (MindMapNode c : children) {
|
||||
@@ -70,6 +73,7 @@ public class MindMapNode {
|
||||
if (map.containsKey("sourceId") && map.get("sourceId") != null) {
|
||||
node.setSourceId(((Number) map.get("sourceId")).intValue());
|
||||
}
|
||||
node.setSessionNum((String) map.get("sessionNum"));
|
||||
Object raw = map.getOrDefault("children", map.get("nodes"));
|
||||
List<MindMapNode> children = new ArrayList<>();
|
||||
if (raw instanceof List<?> list) {
|
||||
|
||||
Reference in New Issue
Block a user