Commit Graph

140 Commits

Author SHA1 Message Date
ecab353802 feat(chat): 新增重置会话接口并优化主键策略
- ChatController 增加 /session/reset 端点,支持用户主动重置与 AI 角色的会话
- 会话重置逻辑:将当前活跃会话置为失效,并创建版本号递增的新会话
- 新增 SessionResetReq DTO 与 ChatSessionVO 返回视图
- KeyboardAiChatSession 主键生成策略由 AUTO 改为 ASSIGN_ID,适配分布式场景
2026-01-28 17:56:31 +08:00
234ea0c241 feat(chat): 新增会话管理支持多轮对话
- 引入 KeyboardAiChatSession 实体及对应 Mapper、Service
- 为 KeyboardAiChatMessage 增加 session_id 字段
- ChatServiceImpl 保存消息时绑定会话,支持按用户+角色获取或创建活跃会话
- 保证同一用户同一角色的连续对话归属同一会话,实现多轮上下文管理
2026-01-28 16:50:27 +08:00
e1aa1ce4e8 feat(service): 新增根据ID获取AI角色详情接口 2026-01-28 15:57:59 +08:00
c8d8046bf4 feat(ai-companion): 新增获取用户聊过天的AI角色列表接口 2026-01-28 15:50:15 +08:00
0e863288c8 feat(ai-companion): 新增获取用户已点赞AI角色列表接口 2026-01-28 15:30:48 +08:00
f28e6b7c39 fix(service): 延后VIP体验次数扣减至AI响应成功后 2026-01-27 21:11:45 +08:00
22e5041447 fix(ai-companion): 修复点赞状态与评论回复展示逻辑
- 分页查询接口新增当前用户点赞状态返回
- CommentVO 新增 replies 与 replyCount 字段支持嵌套回复
- 评论服务支持查询一级评论及其前 999 条回复
- 免登录白名单新增 /ai-companion/comment/page 接口
2026-01-27 19:42:44 +08:00
e68f1bea56 feat(ai-companion): 补充点赞与评论统计字段
- 在 AiCompanionVO 新增 likeCount、commentCount
- 分页接口批量聚合点赞/评论数并填充到 VO
- 减少 N+1 查询,提升列表接口性能
2026-01-27 18:37:47 +08:00
b6d124619e feat(ai-companion): 新增AI角色点赞功能
新增点赞/取消点赞接口,包含实体、Mapper、Service及DTO,支持用户点赞状态切换与异常处理。
2026-01-27 18:33:26 +08:00
6cf0275980 feat(speech): 新增语音转文字功能
新增 Deepgram 集成,支持音频文件上传、格式校验与转写;补充相关错误码并放行 /speech/transcribe 接口
2026-01-27 18:17:36 +08:00
f18217ba93 fix(chat): 为低VIP用户增加每日体验次数限制
- 在ChatServiceImpl.message()中新增VIP等级检查逻辑
- 使用Redis计数器实现每日额度控制,午夜自动重置
- 新增错误码VIP_TRIAL_LIMIT_REACHED(50030)
- 同步更新.gitignore忽略.omc目录
2026-01-26 22:02:44 +08:00
1decf0ac58 feat(vip): 新增vip等级字段及免费聊天次数配置 2026-01-26 21:39:12 +08:00
1523ea0fbd feat(ai-companion): 新增评论点赞功能及点赞状态查询 2026-01-26 21:31:32 +08:00
5a58c4ff38 feat(comment): 新增AI伴侣评论功能并补充相关错误码 2026-01-26 20:39:34 +08:00
ac9a352004 feat(chat): 为AI陪聊增加历史消息上下文支持
- ChatServiceImpl#message 现在会读取最近20条聊天记录作为LLM上下文
- 新增 callLLMWithHistory 方法,使用 Spring AI Message 构造对话历史
- KeyboardAiChatMessageService 新增 getRecentMessages 接口及实现,按时间正序返回指定条数消息
- 保持原有分页查询接口不变,仅补充上下文所需方法
2026-01-26 20:25:04 +08:00
aaf5d3bea4 feat(chat): 新增分页查询聊天记录接口 2026-01-26 18:38:51 +08:00
b887e52f55 feat(chat): 新增AI聊天记录持久化功能
新增KeyboardAiChatMessage实体及对应Mapper、Service,在ChatServiceImpl中同步对话时保存用户与AI消息到数据库,实现聊天记录持久化
2026-01-26 17:11:18 +08:00
6bb905bb30 feat(ai-companion): 新增AI伴侣模块及白名单路径 2026-01-26 16:25:39 +08:00
fd4c381d33 feat(ai-companion): 新增AI伴侣模块及白名单路径 2026-01-26 15:06:26 +08:00
8783a4c2af refactor(service): 用 RestClient 重写 ElevenLabs 调用并替换 UUID 工具类
- 将手写 HttpURLConnection 改为 Spring RestClient,精简 64 行冗余代码
- 引入 RestClientConfig 统一配置
- 统一使用 Hutool 的 IdUtil 生成文件名称
2026-01-26 13:49:50 +08:00
6a1bb50318 feat(chat): 集成 ElevenLabs TTS 并支持异步语音生成 2026-01-23 19:45:32 +08:00
bb3dcc56ff feat(service): 新增 WebSocket 实时语音转写与流式 TTS 全流程 2026-01-23 14:25:05 +08:00
8632dcd282 docs(readme): 重写项目文档,更新技术栈与功能说明
feat(character): 新增人设详情接口并优化获取逻辑
2026-01-07 16:17:57 +08:00
090cb65c0b fix(controller): 修复文件上传参数绑定与异常处理
- FileController:把 @RequestParam 改成 @RequestPart 并去掉多余注解
- GlobalExceptionHandler:新增 MissingServletRequestPartException 拦截,返回 FILE_IS_EMPTY 错误码
- RequestBodyCacheFilter:跳过 multipart 请求,避免文件上传被缓存过滤器破坏
- UserServiceImpl:修正更新语句为 updateById,防止字段丢失
2026-01-05 20:26:37 +08:00
a73a92c0c2 fix(config): 修复包名大小写并优化 Maven 构建配置
- 统一 interceptor 包名为小写
- 修正测试接口拼写 testSearchText
- 升级编译插件并显式声明 JDK17 与 Lombok 版本
- 将本地 Claude 记录文件加入忽略列表
2026-01-04 15:51:40 +08:00
2cdbdfeaf2 fix(config): 将分页拦截器数据库类型改为 PostgreSQL 2025-12-31 17:29:46 +08:00
a510a4afcb fix(invite): 重命名字段并补充AGENT类型支持 2025-12-29 18:43:09 +08:00
c38f62c3c1 feat(theme): 新增主题列表Redis缓存机制
为提升查询性能,在KeyboardThemesServiceImpl中集成RedisTemplate,优先从缓存读取主题列表;新增ThemeCacheInitializer用于应用启动时预热缓存。
2025-12-29 15:13:50 +08:00
be921e144f feat(invite): 支持租户与用户两种邀请码类型 2025-12-29 15:04:30 +08:00
778cf4a0cb fix(entity): 补全用户邀请绑定台账字段与注释
为 KeyboardUserInvites 实体新增 clickToken、inviteType、profitTenantId、profitEmployeeId、inviterTenantId、inviteCode 等字段,并统一 Schema 注解空格格式,满足邀请链接归因、代理结算及审计需求。
2025-12-29 13:59:02 +08:00
fb0c0c34a9 refactor(model): 移除 click_token 字段并调整字段顺序
- 删除实体与 Mapper 中 click_token 相关定义
- 保持其余字段(bind_type、bound_at、bind_ip、bind_user_agent)顺序一致
2025-12-25 14:17:09 +08:00
6ef1488e5f feat(invite): 新增H5邀请链接配置与返回
在 AppConfig 中增加 inviteConfig 及 h5Link 字段;
服务层改造 getUserInviteCode 返回 InviteCodeRespVO 并填充 h5Link;
Controller 简化调用逻辑,统一走服务层组装 VO。
2025-12-24 22:02:08 +08:00
b9197c4275 feat(invite): 新增用户邀请码创建与查询接口 2025-12-24 21:36:27 +08:00
e90078791c refactor(service): 优化推荐逻辑不再排除已购买主题 2025-12-23 15:43:27 +08:00
1b7374e959 fix(controller): 将 themeId 参数改为可选 2025-12-23 14:09:26 +08:00
2b0fa71c40 [Claude Code] After prompt #0 2025-12-23 13:53:53 +08:00
619c59d786 [Claude Code] After prompt #8 2025-12-22 22:00:16 +08:00
d07478eaea chore(build): 移除 Maven Wrapper 脚本
删除 mvnw 与 mvnw.cmd,项目已改用全局 Maven 构建,避免维护冗余脚本。
2025-12-22 19:50:33 +08:00
c70a1bd0e2 feat(wallet): 新增分页DTO并统一交易记录接口入参 2025-12-22 19:30:20 +08:00
45d6058b90 fix(service): 修复查询用户主题时调用错误服务
将 KeyboardThemePurchaseService 改为 userThemesService,并调整查询条件从支付状态改为删除标记,确保获取正确的用户主题列表。
2025-12-22 18:31:04 +08:00
ecce22384b fix(service): 修复查询用户主题时调用错误服务
将 KeyboardThemePurchaseService 改为 userThemesService,并调整查询条件从支付状态改为删除标记,确保获取正确的用户主题列表。
2025-12-22 16:39:01 +08:00
44f031c939 chore(config): 将配置文件注释乱码替换为中文可读文本 2025-12-19 21:56:41 +08:00
f69393b79d fix(config): 切换模型至 text-embedding-v4 并更新 API 配置 2025-12-19 21:37:54 +08:00
b068ab4d7c refactor(invite): 移除用户主动生成邀请码功能
- 删除 InviteCodeRespVO.java VO 类
- 移除 KeyboardUserInviteCodesService 及其实现中的 createInviteCode/getUserInviteCode 方法
- 删除 UserController 中 /inviteCode 查询接口
- 注册流程不再自动为用户创建邀请码,仅保留绑定逻辑
2025-12-19 15:15:53 +08:00
6638ff2ccc feat(invite): 添加邀请码注册与验证功能
- 新增邀请码实体、Mapper、Service 及 XML 配置
- 注册接口支持填写邀请码并建立绑定关系
- 邀请码校验包含存在性、状态、过期及次数限制
- 补充相关错误码:INVITE_CODE_* 与 RECEIPT_ALREADY_PROCESSED
2025-12-19 14:47:54 +08:00
0ef7a7fd83 feat(invite): 添加邀请码注册与验证功能
- 新增邀请码实体、Mapper、Service 及 XML 配置
- 注册接口支持填写邀请码并建立绑定关系
- 邀请码校验包含存在性、状态、过期及次数限制
- 补充相关错误码:INVITE_CODE_* 与 RECEIPT_ALREADY_PROCESSED
2025-12-19 14:21:02 +08:00
419878a607 feat(invite): 新增用户邀请码功能
新增实体、Mapper、Service及Controller接口,支持注册时自动生成与用户查询个人邀请码
2025-12-18 19:20:25 +08:00
c4d0c60ea8 chore(core): 清理Demo代码并优化配置文件
删除DemoController和PostReviewStatusEnum等测试/废弃代码;
.gitignore、SaTokenConfigure、SendMailUtils、application.yml小幅更新;
AppleAppStoreConfig改用流式读取私钥,适配容器化部署。
2025-12-18 15:51:46 +08:00
95fb77a575 fix(chat): 保存LLM响应的生成ID用于链路追踪 2025-12-17 19:23:21 +08:00
abfac871fd feat(user): 新增用户反馈提交功能 2025-12-17 18:20:05 +08:00