feat(ai): 写作/生图/创意/活动策划也保存历史记录

- ai_chat_list 新增 chat_type / params,旧数据默认 chat
- 新增 AiGenerationRecorder:成功后同事务写 list + history,末帧回传 chatId
- 聊天改为成功收尾才建行,失败/中止不再留下空记录
- 写作(含自由创作)、生图、创意助手、活动策划四处接入,软失败与断流不入库
- 历史列表只取最近 30 条(SQL LIMIT),并强制按登录用户过滤
- 修复历史排序用了不存在的 sort_number 列(多行会 NPE)
- 新增 4 个测试类:记录器规则、排序回归、创意成功/软失败、30 条上限
This commit is contained in:
2026-10-24 17:37:39 +08:00
parent d54f559d34
commit 4c2a787d81
18 changed files with 1012 additions and 46 deletions
+4 -1
View File
@@ -138,7 +138,10 @@ CREATE TABLE `ai_chat_list` (
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
`chat_type` varchar(32) NOT NULL DEFAULT 'chat' COMMENT '记录类型:chat/writing/image/creative/activity_outline',
`params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '生成参数快照(JSON)',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_ai_chat_list_user_type_time` (`user_id`,`chat_type`,`create_time`)
) ENGINE=InnoDB AUTO_INCREMENT=408 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
-- ----------------------------