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