fix bug: friend, args error (#534)

* fix bug: args error

* fix bug: args error

* fix bug: add friend need update both request

* fix bug: add friend need update both request
This commit is contained in:
WangchuXiao
2023-07-13 15:26:25 +08:00
committed by GitHub
parent e5ab278be5
commit 4cacc3f621
7 changed files with 29 additions and 19 deletions
+16 -1
View File
@@ -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.HandleResult == constant.FriendResponseNotHandle {
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