This commit is contained in:
2026-06-13 10:40:59 +08:00
parent ebcfb0c258
commit 318ddd85a5
15 changed files with 614 additions and 30 deletions
+18
View File
@@ -4,6 +4,7 @@ import json
from datetime import datetime, timezone
from fastapi import WebSocket
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from app.websocket.events import EventType
@@ -34,6 +35,20 @@ async def handle_chat_send(ws: WebSocket, user_id: str, data: dict, db: AsyncSes
conv_service = ConversationService(db)
detail = await conv_service.get_conversation_detail(data["conversation_id"], user_id)
# 获取被引用消息的信息
reply_to_content = None
reply_to_sender_name = None
if message.reply_to_id:
from app.models.message import Message
reply_msg_result = await db.execute(
select(Message).where(Message.id == message.reply_to_id)
)
reply_msg = reply_msg_result.scalars().first()
if reply_msg:
reply_to_content = reply_msg.content[:200] if reply_msg.content else None
reply_sender = await user_service.get_by_id(reply_msg.sender_id)
reply_to_sender_name = reply_sender.username if reply_sender else None
msg_data = {
"id": message.id,
"conversation_id": message.conversation_id,
@@ -42,6 +57,9 @@ async def handle_chat_send(ws: WebSocket, user_id: str, data: dict, db: AsyncSes
"sender_avatar": sender.avatar_url if sender else None,
"type": message.type,
"content": message.content,
"reply_to_id": message.reply_to_id,
"reply_to_content": reply_to_content,
"reply_to_sender_name": reply_to_sender_name,
"created_at": message.created_at.isoformat(),
}