diff --git a/.idea/AugmentWebviewStateStore.xml b/.idea/AugmentWebviewStateStore.xml
index 88fc6f3..d408b67 100644
--- a/.idea/AugmentWebviewStateStore.xml
+++ b/.idea/AugmentWebviewStateStore.xml
@@ -3,7 +3,7 @@
diff --git a/backend-single/src/main/java/com/emotion/service/AiChatService.java b/backend-single/src/main/java/com/emotion/service/AiChatService.java
index 495ea3f..c4d4de3 100644
--- a/backend-single/src/main/java/com/emotion/service/AiChatService.java
+++ b/backend-single/src/main/java/com/emotion/service/AiChatService.java
@@ -27,6 +27,16 @@ public interface AiChatService {
*/
String sendChatMessageForWebSocket(String conversationId, String message, String userId);
+ /**
+ * WebSocket方式发送聊天消息(只保存AI回复,带messageId)
+ * @param conversationId 会话ID
+ * @param messageId 用户消息ID
+ * @param message 用户消息内容
+ * @param userId 用户ID
+ * @return AI回复内容
+ */
+ String sendChatMessageForWebSocket(String conversationId, String messageId, String message, String userId);
+
/**
* 生成对话总结
* @param conversationId 会话ID
diff --git a/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java b/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java
index bc2d68e..85c0e30 100644
--- a/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java
+++ b/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java
@@ -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);
diff --git a/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java b/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java
index 5bdc2b8..e41d906 100644
--- a/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java
+++ b/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java
@@ -233,7 +233,7 @@ public class CozeApiCallServiceImpl extends ServiceImpl
-