From 4c365701d4682d0d29fe99b7e979989532dc66cd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 13 Jul 2023 13:09:46 +0800 Subject: [PATCH] fix bug: add friend need update both request --- pkg/common/db/controller/friend.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/controller/friend.go b/pkg/common/db/controller/friend.go index 116345219..0dbf10276 100644 --- a/pkg/common/db/controller/friend.go +++ b/pkg/common/db/controller/friend.go @@ -221,6 +221,7 @@ func (f *friendDatabase) AgreeFriendRequest( friendRequest *relation.FriendRequestModel, ) (err error) { return f.tx.Transaction(func(tx any) error { + now := time.Now() fr, err := f.friendRequest.NewTx(tx).Take(ctx, friendRequest.FromUserID, friendRequest.ToUserID) if err != nil { return err @@ -230,11 +231,25 @@ func (f *friendDatabase) AgreeFriendRequest( } friendRequest.HandlerUserID = mcontext.GetOpUserID(ctx) friendRequest.HandleResult = constant.FriendResponseAgree - friendRequest.HandleTime = time.Now() + friendRequest.HandleTime = now err = f.friendRequest.NewTx(tx).Update(ctx, friendRequest) if err != nil { return err } + + fr2, err := f.friendRequest.NewTx(tx).Take(ctx, friendRequest.ToUserID, friendRequest.FromUserID) + if err == nil { + fr2.HandlerUserID = mcontext.GetOpUserID(ctx) + fr2.HandleResult = constant.FriendResponseAgree + fr2.HandleTime = now + err = f.friendRequest.NewTx(tx).Update(ctx, fr2) + if err != nil { + return err + } + } else if errs.Unwrap(err) != gorm.ErrRecordNotFound { + return err + } + exists, err := f.friend.NewTx(tx).FindUserState(ctx, friendRequest.FromUserID, friendRequest.ToUserID) if err != nil { return err