fix: 完善错误信息提示的处理方式

This commit is contained in:
liu.zixi
2025-11-25 16:51:16 +08:00
parent 106fde8e6b
commit 09d61ceb9d

View File

@@ -122,7 +122,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
conversationId = getOrCreateConversationId(caseAiChatDto, currentUser);
} catch (Exception e) {
log.error("获取会话ID失败", e);
errMessage(sseEmitter, SYS_ERR_MSG);
errMessage(sseEmitter, null, SYS_ERR_MSG);
sseEmitter.complete();
return sseEmitter;
}
@@ -170,7 +170,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
try {
accessToken = aiAccessTokenService.getAccessToken();
if (org.apache.commons.lang3.StringUtils.isBlank(accessToken)) {
errMessage(sseEmitter, SYS_ERR_MSG);
errMessage(sseEmitter, conversationId, SYS_ERR_MSG);
sseEmitter.complete();
conversationData.appendAnswer(SYS_ERR_MSG);
elasticSearchIndexService.createData(conversationData);
@@ -178,7 +178,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
}
} catch (Exception e) {
log.error("获取access_token失败", e);
errMessage(sseEmitter, SYS_ERR_MSG);
errMessage(sseEmitter, conversationId, SYS_ERR_MSG);
conversationData.appendAnswer(SYS_ERR_MSG);
elasticSearchIndexService.createData(conversationData);
sseEmitter.complete();
@@ -245,7 +245,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
} else {
// 异常问题取message内容
String message = jsonData.getString("message");
errMessage(sseEmitter, message);
errMessage(sseEmitter, conversationId, message);
return;
}
}
@@ -274,7 +274,7 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
log.error("调用接口 [{}] 接口异常", request.url(), e);
if (isTimeoutException(e)) {
log.warn("接口调用超时conversationId: {}", conversationId);
errMessage(sseEmitter, SYS_ERR_MSG);
errMessage(sseEmitter, conversationId, SYS_ERR_MSG);
sseEmitter.complete();
// 从Map中移除失败的会话
conversationEventSourceMap.remove(conversationId);
@@ -690,12 +690,23 @@ public class CaseAiChatServiceImpl implements ICaseAiChatService {
}
}
private void errMessage(SseEmitter sseEmitter, String message) {
private void errMessage(SseEmitter sseEmitter, String conversationId, String message) {
JSONObject conversationData = new JSONObject();
conversationData.put("conversationId", conversationId);
conversationData.put("content", "");
conversationData.put("status", 0);
JSONObject jsonData = new JSONObject();
jsonData.put("status", 1);
jsonData.put("content", message);
JSONObject finishData = new JSONObject();
jsonData.put("status", 4);
jsonData.put("content", "");
try {
sseEmitter.send(conversationData.toJSONString());
sseEmitter.send(jsonData.toJSONString());
sseEmitter.send(finishData.toJSONString());
} catch (IOException e) {
log.error("发送错误信息异常", e);
sseEmitter.completeWithError(e);