peanut
9d352f40a0
feat(script-favorite): add ScriptFavoriteServiceImpl
...
- toggleFavorite: upsert via logical-delete check + save, @Transactional
- getFavoritePage: paginate favorites then fetch EpicScript details
- getFavoritedScriptIds: batch IN query for checking multiple scripts
- isFavorited: count > 0 check for single script
- getFavoriteCount: total count for current user
- Uses UserContextHolder for userId, consistent with project pattern
2026-07-19 21:41:54 +08:00
peanut
674188f471
feat(script-favorite): add ScriptFavoriteService interface
...
- toggleFavorite: toggle favorite status for a script
- getFavoritePage: paginated list of user's favorite scripts
- getFavoritedScriptIds: batch check which scripts are favorited
- isFavorited: check single script favorite status
- getFavoriteCount: count user's total favorites
2026-07-19 21:41:28 +08:00
peanut
62ca1730b9
feat(script-favorite): add ScriptFavoriteResponse DTO
...
- Fields: scriptId, isFavorited, favoriteTime
- Used by toggle/check endpoints to return favorite status
2026-07-19 21:41:14 +08:00
peanut
0d27d1a072
feat(script-favorite): add ScriptFavoriteToggleRequest DTO
...
- Single field: scriptId with @NotBlank validation
- Uses javax.validation.constraints.NotBlank matching project convention
2026-07-19 21:41:02 +08:00
peanut
d74d8b22c6
feat(script-favorite): add ScriptFavoriteMapper
...
- Extends BaseMapper<ScriptFavorite>
- Standard MyBatis-Plus mapper pattern matching project convention
2026-07-19 21:40:06 +08:00
peanut
489131a04b
feat(script-favorite): add ScriptFavorite entity
...
- Extends BaseEntity for id, createTime, updateTime, isDeleted
- Maps to t_script_favorite table via MyBatis-Plus @TableName
- Fields: userId, scriptId
2026-07-19 21:39:47 +08:00
peanut
43ac037f5b
feat(script-favorite): add t_script_favorite migration SQL
...
- Create t_script_favorite table with user_id, script_id
- Add unique key uk_user_script (user_id, script_id)
- Add indexes idx_user_id and idx_script_id
- Support logical delete via is_deleted flag
2026-07-19 21:39:27 +08:00
peanut
00f17d2f47
test(server): ShortNovelController 集成测试
2026-07-19 12:22:25 +08:00
peanut
c06b04869b
feat(server): 短篇小说 SSE 代理 Controller
2026-07-19 12:21:09 +08:00
peanut
02c58767bd
fix(server): SSE 代理错误消息不再暴露原始异常信息给客户端
2026-07-19 12:18:54 +08:00
peanut
7018f5780a
feat(server): 短篇小说服务 SSE 代理实现
2026-07-19 12:15:50 +08:00
peanut
031d824dd0
refactor(server): 抽取 saveNovelResult 方法供短篇小说服务复用
2026-07-19 12:08:54 +08:00
peanut
8f96239b56
style(server): 统一 ShortNovel 配置类和 DTO 的字段注释风格
2026-07-19 12:07:26 +08:00
peanut
21ce56c6da
feat(server): 短篇小说外部服务配置类和请求 DTO
2026-07-19 12:02:17 +08:00
peanut
912fc42860
fix: 剧本查询时自动为历史剧本补建 conversation(兼容前端临时 ID)
2026-06-29 22:40:59 +08:00
peanut
e3eb1afbb0
fix: listByConversation 在 conversation 不存在时返回空列表而非抛异常
2026-06-28 22:40:13 +08:00
peanut
bd3ccbd757
test: 新增 EpicScriptDialogueService 未登录场景测试
2026-06-28 18:49:10 +08:00
peanut
3b9a8222de
feat: 新增 ScriptChatController 统一流式接口
2026-06-28 18:16:07 +08:00
peanut
8537c27015
feat: MessageController 新增 listByConversation、versions、deleteVersion
2026-06-28 18:09:07 +08:00
peanut
a66a78a0f3
feat: EpicScriptController 新增 createWithDialogue 和 switchVersion
2026-06-28 18:09:06 +08:00
peanut
57f1e311b6
feat: 实现 EpicScriptService.switchVersion
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 18:00:27 +08:00
peanut
8618b8b80f
feat: EpicScriptService 新增 switchVersion 方法声明
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 18:00:22 +08:00
peanut
b11a3463b2
feat: 实现剧本消息版本管理服务
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 17:42:11 +08:00
peanut
e252dc5fd2
feat: 新增 ScriptMessageService 接口
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 17:42:05 +08:00
peanut
0520f30d84
feat: 新增 ScriptChatService 接口
2026-06-28 17:36:02 +08:00
peanut
752fd30686
fix: 修复剧本对话创建服务实现问题
...
- 添加系统欢迎语消息(messageOrder=1, sender=system)
- 调整用户消息顺序为 messageOrder=2
- 添加 AI 助手开场白消息(messageOrder=3, sender=assistant, type=script)
- 从 AI 生成结果中解析标题并更新到剧本实体
- 修复 messageCount 为 3 以匹配实际消息数量
- 删除不再需要的 buildTitle 方法
- 新增 buildSystemWelcome 方法构建系统欢迎语
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 17:24:47 +08:00
peanut
56369fdeb2
feat: 新增 EpicScriptDialogueService 接口
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 17:15:47 +08:00
peanut
88d586bab1
feat: MessageResponse 新增 scriptId、parentMessageId、versionNumber、metadata、status、timestamp
2026-06-28 17:08:31 +08:00
peanut
0149bac281
feat: EpicScriptResponse 新增 conversationId 和 currentVersionMessageId
2026-06-28 17:08:26 +08:00
peanut
42d1350aff
feat: 新增 SwitchVersionRequest
2026-06-28 17:08:22 +08:00
peanut
43622be5b0
feat: 新增 ScriptChatStreamRequest
2026-06-28 17:08:18 +08:00
peanut
74183ccb30
feat: 新增 EpicScriptCreateWithDialogueResponse
2026-06-28 17:08:13 +08:00
peanut
06b2ee58e2
feat: 新增 EpicScriptCreateWithDialogueRequest
2026-06-28 17:08:09 +08:00
peanut
83c379d5d5
feat: Message 实体新增 scriptId 和 versionNumber 字段
2026-06-28 17:01:52 +08:00
peanut
15fce9eadf
feat: Conversation 实体新增 scriptId 和 currentMessageId 字段
2026-06-28 16:56:58 +08:00
peanut
0ba2960c1b
feat: EpicScript 实体新增 conversationId 和 currentVersionMessageId 字段
2026-06-28 16:56:57 +08:00
peanut
0e2cc42a41
chore: 新增剧本对话关联字段迁移脚本
2026-06-28 16:50:31 +08:00
peanut
8e6b69f6c7
fix: 修复遗漏的 backend-single 引用(Java源码/前端注释/配置文件/IDE配置)
2026-06-27 17:32:18 +08:00
peanut
5586dc5eac
docs: 更新核心文档和前端代码中的后端目录引用为 server
2026-06-27 17:26:50 +08:00
peanut
6cb9496abb
refactor: 更新 Maven artifactId 和部署脚本 JAR 名称为 server
2026-06-27 17:24:46 +08:00
peanut
0d77d76858
refactor: 重命名 backend-single 目录为 server
2026-06-27 17:23:53 +08:00
peanut
b6818b179c
优化并移除不再有任何用处的文件
2025-09-12 14:12:56 +08:00
peanut
2f3d39fb00
feat: 增强情绪博物馆项目功能 - 新增用户评论和帖子功能,优化前端架构和WebSocket通信 - 更新文档和部署配置
2025-07-29 07:38:47 +08:00