优化CozeAPI调用保存逻辑和前端图标修复
- 修复前端TrendingUpOutlined图标导入错误,改为LineChartOutlined - 优化CozeAPI调用记录保存逻辑: * 正确保存创建人和更新人字段为当前用户ID * 正确传递和保存message_id字段 * 新增带messageId的WebSocket聊天方法重载 - 修复WebSocket处理器中的用户消息保存逻辑 - 确保CozeApiCallService正确设置创建人和更新人字段 - 改进AI回复保存时的创建人设置逻辑
This commit is contained in:
@@ -149,7 +149,7 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
log.info("WebSocket发送聊天消息: conversationId={}, userId={}, message={}", conversationId, userId, message);
|
||||
|
||||
try {
|
||||
// 调用Coze API
|
||||
// 调用Coze API(不带messageId)
|
||||
String aiReply = sendMessage(conversationId, message, userId);
|
||||
|
||||
// 注意:不保存用户消息,因为WebSocket处理器已经保存了
|
||||
@@ -172,6 +172,38 @@ public class AiChatServiceImpl implements AiChatService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String sendChatMessageForWebSocket(String conversationId, String messageId, String message, String userId) {
|
||||
log.info("WebSocket发送聊天消息(带messageId): conversationId={}, messageId={}, userId={}, message={}",
|
||||
conversationId, messageId, userId, message);
|
||||
|
||||
try {
|
||||
// 调用Coze API(带messageId)
|
||||
String aiReply = sendMessageWithMessageId(conversationId, messageId, message, userId);
|
||||
|
||||
// 注意:不保存用户消息,因为WebSocket处理器已经保存了
|
||||
// 只保存AI回复
|
||||
Message aiMessage = new Message();
|
||||
aiMessage.setConversationId(conversationId);
|
||||
aiMessage.setCreateBy(userId); // 设置创建人为当前用户
|
||||
aiMessage.setContent(aiReply);
|
||||
aiMessage.setType("text");
|
||||
aiMessage.setSender("ai");
|
||||
aiMessage.setCozeRole("assistant");
|
||||
aiMessage.setCozeContentType("text");
|
||||
aiMessage = messageService.createMessage(aiMessage);
|
||||
|
||||
log.info("WebSocket聊天消息处理完成(带messageId): userMessageId={}, aiMessageId={}",
|
||||
messageId, aiMessage.getId());
|
||||
|
||||
return aiReply;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("WebSocket发送聊天消息失败(带messageId)", e);
|
||||
return "抱歉,我暂时无法回复,请稍后再试。";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateConversationSummary(String conversationId, String userId) {
|
||||
log.info("生成对话总结: conversationId={}, userId={}", conversationId, userId);
|
||||
|
||||
@@ -233,7 +233,7 @@ public class CozeApiCallServiceImpl extends ServiceImpl<CozeApiCallMapper, CozeA
|
||||
}
|
||||
|
||||
@Override
|
||||
public CozeApiCall createApiCall(String conversationId, String messageId, String userId,
|
||||
public CozeApiCall createApiCall(String conversationId, String messageId, String userId,
|
||||
String requestType, String requestUrl, String requestBody) {
|
||||
CozeApiCall apiCall = CozeApiCall.builder()
|
||||
.conversationId(conversationId)
|
||||
@@ -244,6 +244,8 @@ public class CozeApiCallServiceImpl extends ServiceImpl<CozeApiCallMapper, CozeA
|
||||
.requestBody(requestBody)
|
||||
.status("pending")
|
||||
.startTime(LocalDateTime.now())
|
||||
.createBy(userId) // 设置创建人为当前用户
|
||||
.updateBy(userId) // 设置更新人为当前用户
|
||||
.build();
|
||||
this.save(apiCall);
|
||||
return apiCall;
|
||||
|
||||
@@ -244,6 +244,7 @@ public class WebSocketServiceImpl implements WebSocketService {
|
||||
Message userMessage = new Message();
|
||||
userMessage.setConversationId(conversationId);
|
||||
userMessage.setUserId(userId);
|
||||
userMessage.setCreateBy(userId); // 设置创建人为当前用户
|
||||
userMessage
|
||||
.setUserType(request.getSenderType() == ChatRequest.SenderType.USER ? "registered" : "guest");
|
||||
userMessage.setContent(request.getContent());
|
||||
@@ -251,11 +252,12 @@ public class WebSocketServiceImpl implements WebSocketService {
|
||||
userMessage.setSender("user");
|
||||
userMessage.setCozeRole("user");
|
||||
userMessage.setCozeContentType("text");
|
||||
messageService.createMessage(userMessage);
|
||||
userMessage = messageService.createMessage(userMessage);
|
||||
|
||||
// 调用AI服务(WebSocket专用方法,不重复保存用户消息)
|
||||
// 调用AI服务(WebSocket专用方法,传递messageId)
|
||||
String aiReply = aiChatService.sendChatMessageForWebSocket(
|
||||
conversationId,
|
||||
userMessage.getId(), // 传递用户消息ID
|
||||
request.getContent(),
|
||||
userId
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user