This commit is contained in:
2026-06-13 07:33:46 +08:00
parent e2da13bc5c
commit 24017e7454
40 changed files with 3135 additions and 108 deletions
+44 -1
View File
@@ -113,7 +113,7 @@ class FriendService:
"id": friendship.id,
"friend_user_id": user.id,
"username": user.username,
"nickname": user.bio,
"nickname": user.nickname,
"avatar_url": user.avatar_url,
"remark": friendship.remark,
"status": user.status,
@@ -160,3 +160,46 @@ class FriendService:
(Friend.user_id == friend_id) & (Friend.friend_user_id == user_id)
)
)
async def add_direct(self, from_user_id: str, to_user_id: str):
"""直接添加好友(跳过验证)"""
if from_user_id == to_user_id:
raise ValueError("不能添加自己为好友")
# 检查目标用户是否存在
target = await self.db.execute(select(User).where(User.id == to_user_id))
if not target.scalars().first():
raise ValueError("目标用户不存在")
# 检查是否已是好友
existing = await self.db.execute(
select(Friend).where(
Friend.user_id == from_user_id,
Friend.friend_user_id == to_user_id,
)
)
if existing.scalars().first():
raise ValueError("已经是好友了")
# 创建双向好友关系
self.db.add(Friend(
id=str(uuid.uuid4()), user_id=from_user_id,
friend_user_id=to_user_id,
))
self.db.add(Friend(
id=str(uuid.uuid4()), user_id=to_user_id,
friend_user_id=from_user_id,
))
async def update_remark(self, user_id: str, friend_user_id: str, remark: str | None):
"""修改好友备注"""
result = await self.db.execute(
select(Friend).where(
Friend.user_id == user_id,
Friend.friend_user_id == friend_user_id,
)
)
friendship = result.scalars().first()
if not friendship:
raise ValueError("好友关系不存在")
friendship.remark = remark