From 106fde8e6bfe4cd77beea2aa1624a3d77655ad38 Mon Sep 17 00:00:00 2001 From: "liu.zixi" Date: Tue, 25 Nov 2025 14:03:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=8A=A5=E9=94=99=E6=97=B6=E4=B9=9F?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CaseAiChatServiceImpl.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java index 1aef4960..3a39828e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CaseAiChatServiceImpl.java @@ -132,6 +132,13 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { // 3. 构建请求参数 String userId = currentUser.getCode(); + + // 6. 用于收集对话数据的容器 + AiChatConversationData conversationData = new AiChatConversationData(); + conversationData.setQuery(caseAiChatDto.getQuery()); + conversationData.setConversationId(conversationId); + conversationData.setUserId(userId); + String kId = caseAiProperties.getCaseKnowledgeId(); JSONObject chatParam = new JSONObject(); chatParam.put("userId", userId); @@ -162,9 +169,18 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { String accessToken; try { accessToken = aiAccessTokenService.getAccessToken(); + if (org.apache.commons.lang3.StringUtils.isBlank(accessToken)) { + errMessage(sseEmitter, SYS_ERR_MSG); + sseEmitter.complete(); + conversationData.appendAnswer(SYS_ERR_MSG); + elasticSearchIndexService.createData(conversationData); + return sseEmitter; + } } catch (Exception e) { log.error("获取access_token失败", e); errMessage(sseEmitter, SYS_ERR_MSG); + conversationData.appendAnswer(SYS_ERR_MSG); + elasticSearchIndexService.createData(conversationData); sseEmitter.complete(); return sseEmitter; } @@ -176,13 +192,6 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { RequestBody bodyRequestBody = RequestBody.create(chatParamStr, MediaType.parse("application/json")); builder.post(bodyRequestBody); Request request = builder.build(); - - - // 6. 用于收集对话数据的容器 - AiChatConversationData conversationData = new AiChatConversationData(); - conversationData.setQuery(caseAiChatDto.getQuery()); - conversationData.setConversationId(conversationId); - conversationData.setUserId(userId); // 7. 创建事件监听器 EventSourceListener listener = new EventSourceListener() { @@ -271,6 +280,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { conversationEventSourceMap.remove(conversationId); // 即使失败,也要将已有的对话数据保存到ES + conversationData.appendAnswer(SYS_ERR_MSG); elasticSearchIndexService.createData(conversationData); return; } @@ -282,16 +292,17 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService { // 从Map中移除失败的会话 conversationEventSourceMap.remove(conversationId); // 即使失败,也要将已有的对话数据保存到ES + conversationData.appendAnswer(SYS_ERR_MSG); elasticSearchIndexService.createData(conversationData); return; } - sseEmitter.completeWithError(e); // 从Map中移除失败的会话 conversationEventSourceMap.remove(conversationId); // 即使失败,也要将已有的对话数据保存到ES elasticSearchIndexService.createData(conversationData); + sseEmitter.completeWithError(e); } };