1.4
This commit is contained in:
@@ -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(),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user