diff --git a/modules/friend/api_del.go b/modules/friend/api_del.go index 2a6da6285..f1bcbad0e 100644 --- a/modules/friend/api_del.go +++ b/modules/friend/api_del.go @@ -28,10 +28,28 @@ func (this *apiComp) Del(session comm.IUserSession, req *pb.FriendDelReq) (code return } - friendIds := utils.DeleteString(self.FriendIds, req.FriendId) + // 从好友列表中删除 + selfFriendIds := utils.DeleteString(self.FriendIds, req.FriendId) if err := this.moduleFriend.modelFriend.Change(self.Uid, map[string]interface{}{ - "friendIds": friendIds, + "friendIds": selfFriendIds, + }); err != nil { + log.Errorf("Del friend err:%v", err) + code = pb.ErrorCode_FriendApplyError + return + } + + target := this.moduleFriend.modelFriend.GetFriend(req.FriendId) + if target == nil { + code = pb.ErrorCode_FriendNotSelf + return + } + + // 将自己从对方好友列表中移除 + targetFriendIds := utils.DeleteString(target.FriendIds, session.GetUserId()) + + if err := this.moduleFriend.modelFriend.Change(req.FriendId, map[string]interface{}{ + "friendIds": targetFriendIds, }); err != nil { log.Errorf("Del friend err:%v", err) code = pb.ErrorCode_FriendApplyError