对话逻辑修复

This commit is contained in:
2025-07-25 17:48:02 +08:00
parent a4c6140ed5
commit f576de68da
31 changed files with 2129 additions and 588 deletions
+6 -17
View File
@@ -40,7 +40,7 @@ export const useChatStore = defineStore('chat', () => {
}
}
// 发送消息:WebSocket推送+数据库保存
// 发送消息:仅通过WebSocket推送,后端统一处理保存
const sendMessage = async (content: string) => {
if (!wsConnected.value) {
console.error('WebSocket未连接,无法发送消息')
@@ -52,7 +52,7 @@ export const useChatStore = defineStore('chat', () => {
return
}
// 添加用户消息
// 添加用户消息到前端显示
const userMessage = addMessage({
content,
type: 'user',
@@ -60,28 +60,17 @@ export const useChatStore = defineStore('chat', () => {
})
try {
// WebSocket推送
// 仅通过WebSocket推送,后端会统一处理消息保存
webSocketService.sendChatMessage(content, currentSession.value?.id)
// 更新消息状态为已发送
updateMessageStatus(userMessage.id, 'sent')
// 数据库保存
if (currentSession.value?.id && userStore.user?.id) {
await chatApi.createMessage({
conversationId: currentSession.value.id,
userId: userStore.user.id,
content,
contentType: 'TEXT',
senderType: 'USER',
senderId: userStore.user.id
})
// 注意:移除了重复的REST API调用,避免重复保存消息
// 后端WebSocket处理器会统一保存用户消息到数据库
// 更新消息状态为已送达
updateMessageStatus(userMessage.id, 'delivered')
}
} catch (error) {
console.error('消息发送或保存失败:', error)
console.error('消息发送失败:', error)
// 更新消息状态为失败
updateMessageStatus(userMessage.id, 'failed', '发送失败')