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