This commit is contained in:
2026-06-13 11:02:47 +08:00
parent 318ddd85a5
commit 68678304ff
15 changed files with 659 additions and 78 deletions
+26 -8
View File
@@ -102,12 +102,20 @@ class FriendService:
result = await self.db.execute(
select(Friend).where(Friend.user_id == user_id)
)
friendships = result.scalars().all()
if not friendships:
return []
# 批量获取所有好友用户
friend_user_ids = [f.friend_user_id for f in friendships]
users_result = await self.db.execute(
select(User).where(User.id.in_(friend_user_ids))
)
users_map = {u.id: u for u in users_result.scalars().all()}
friends = []
for friendship in result.scalars().all():
user_result = await self.db.execute(
select(User).where(User.id == friendship.friend_user_id)
)
user = user_result.scalars().first()
for friendship in friendships:
user = users_map.get(friendship.friend_user_id)
if user:
friends.append({
"id": friendship.id,
@@ -128,10 +136,20 @@ class FriendService:
FriendRequest.status == "pending",
).order_by(FriendRequest.created_at.desc())
)
requests_list = result.scalars().all()
if not requests_list:
return []
# 批量获取所有发送者
from_user_ids = list(set(r.from_user_id for r in requests_list))
users_result = await self.db.execute(
select(User).where(User.id.in_(from_user_ids))
)
users_map = {u.id: u for u in users_result.scalars().all()}
requests = []
for req in result.scalars().all():
from_user = await self.db.execute(select(User).where(User.id == req.from_user_id))
fu = from_user.scalars().first()
for req in requests_list:
fu = users_map.get(req.from_user_id)
requests.append({
"id": req.id,
"from_user_id": req.from_user_id,