From 695659ba6f96b224a28fab1134ade636e331da8f Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 4 Aug 2025 15:02:39 +0800 Subject: [PATCH] =?UTF-8?q?refactor(oa):=20=E9=87=8D=E6=9E=84=20AI=20?= =?UTF-8?q?=E8=81=8A=E5=A4=A9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 OaAiChatBo 类封装请求参数 - 修改 chat 方法签名,使用 OaAiChatBo作为参数 - 更新方法内部逻辑,使用 OaAiChatBo 中的属性 --- .../oa/controller/SysOaAiController.java | 21 ++++++++++--------- .../com/ruoyi/oa/domain/bo/OaAiChatBo.java | 9 ++++++++ 2 files changed, 20 insertions(+), 10 deletions(-) create mode 100644 ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaAiChatBo.java diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAiController.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAiController.java index f0bc958..6650af4 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAiController.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/controller/SysOaAiController.java @@ -3,6 +3,7 @@ package com.ruoyi.oa.controller; import java.util.*; import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.oa.domain.bo.OaAiChatBo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; @@ -227,32 +228,32 @@ public class SysOaAiController extends BaseController { * 发送消息给AI */ @PostMapping("/chat") - public R> chat(@RequestParam Long conversationId, @RequestParam String message) { + public R> chat(@RequestBody OaAiChatBo bo) { try { // 1. 保存用户消息 - messageService.addUserMessage(conversationId, message); + messageService.addUserMessage(bo.getConversationId(), bo.getMessage()); // 2. 获取对话历史(优先从Redis缓存获取) - List conversationHistory = aiServiceUtil.getCachedConversationHistory(conversationId); + List conversationHistory = aiServiceUtil.getCachedConversationHistory(bo.getConversationId()); if (conversationHistory == null) { // 缓存中没有,从数据库获取 - conversationHistory = messageService.queryByConversationId(conversationId); + conversationHistory = messageService.queryByConversationId(bo.getConversationId()); // 缓存对话历史 - aiServiceUtil.cacheConversationHistory(conversationId, conversationHistory); + aiServiceUtil.cacheConversationHistory(bo.getConversationId(), conversationHistory); } // 3. 调用AI服务获取回复(传递对话历史) - String aiResponse = callAiServiceWithHistory(message, conversationHistory); + String aiResponse = callAiServiceWithHistory(bo.getMessage(), conversationHistory); // 4. 保存AI回复 - messageService.addAiMessage(conversationId, aiResponse, 0, java.math.BigDecimal.ZERO); + messageService.addAiMessage(bo. getConversationId(), aiResponse, 0, java.math.BigDecimal.ZERO); // 5. 更新对话历史缓存 - List updatedHistory = messageService.queryByConversationId(conversationId); - aiServiceUtil.cacheConversationHistory(conversationId, updatedHistory); + List updatedHistory = messageService.queryByConversationId(bo.getConversationId()); + aiServiceUtil.cacheConversationHistory(bo.getConversationId(), updatedHistory); Map result = new HashMap<>(); - result.put("conversationId", conversationId); + result.put("conversationId", bo.getConversationId()); result.put("response", aiResponse); return R.ok(result); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaAiChatBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaAiChatBo.java new file mode 100644 index 0000000..6086ca9 --- /dev/null +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/OaAiChatBo.java @@ -0,0 +1,9 @@ +package com.ruoyi.oa.domain.bo; + +import lombok.Data; + +@Data +public class OaAiChatBo { + Long conversationId; + String message; +}