Commit Graph

204 Commits

Author SHA1 Message Date
74b8b72545 feat(user): 新增注销账户接口 2026-02-27 14:13:47 +08:00
1b68227ebc fix(config): 调整角色缓存TTL为5分钟并更新AI提示语 2026-02-27 13:49:02 +08:00
3f27b916da feat(user): 新增客服邮箱获取接口
通过 @Value 注入 customer_mail 配置,提供 /user/customerMail 端点供前端获取客服邮箱地址。
2026-02-24 20:19:41 +08:00
590230a86b fix(chat): 优化聊天流式接口异常处理与拦截器分发类型过滤
- talk 接口改为 TEXT_EVENT_STREAM 输出并包装 Flux 异常处理,返回 error/done 事件
- 登录与签名校验拦截器忽略 ASYNC/ERROR 分发,防止二次校验导致上下文丢失
- 更新嵌入模型与 Qdrant 配置,保持与线上环境一致
2026-02-24 14:54:59 +08:00
d3abe32e1a feat(chat): 新增AI陪聊角色voiceId字段及使用逻辑
- AiCompanionVO、KeyboardAiCompanion实体新增voiceId字段与Swagger注解
- ChatServiceImpl同步/异步消息接口优先使用角色配置voiceId进行TTS
- 补充角色状态校验,下线角色禁止对话
2026-02-11 20:38:59 +08:00
e7437a39b2 feat(speech): 为语音转文字接口增加VIP每日调用限制 2026-02-04 20:01:25 +08:00
ca2cd87d89 feat(chat): 新增删除聊天记录接口并支持逻辑删除 2026-02-04 19:03:21 +08:00
190fb95bb6 feat(comment): 新增回复目标用户ID与昵称字段 2026-02-04 18:27:20 +08:00
884e5f5da4 refactor(auth): 精简放行白名单并移除举报类型校验
- 仅保留必要匿名接口,清理历史 demo 与业务无关路径
- 合并 CORS 配置,保持跨域设置不变
- AI 举报接口改为仅校验角色存在,不再校验类型范围,简化逻辑
- 商品实体与 VO 新增 level 字段
2026-02-04 16:38:22 +08:00
7f6edde956 fix(service): 调整AI聊天消息排序为倒序 2026-01-30 15:44:21 +08:00
392d9ecfe8 feat(ai-companion): 新增AI角色举报功能
- 新增举报接口 POST /ai-companion/report,支持多选举报类型
- 引入 KeyboardAiCompanionReportService 处理举报业务
- 补充举报相关错误码:类型无效、角色ID为空、类型为空
- 新增实体、DTO、Mapper、Service 及 XML 配置,完成举报数据持久化
2026-01-29 19:38:13 +08:00
6a773ee0ca fix(service): 修复聊天消息排序逻辑
在分页查询消息时,先按时间升序再按ID升序,确保顺序稳定一致
2026-01-29 14:32:16 +08:00
7d23b6be0f fix(service): 仅返回活跃会话中的聊天角色列表 2026-01-28 20:53:47 +08:00
408d4d4bc1 fix(service): 限制聊天查询仅活跃会话 2026-01-28 18:06:51 +08:00
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