diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 685e786f3..e0ba79824 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -144,6 +144,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq //Establish a latest relationship in the friend request table friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg} utils.CopyStructFields(&friendRequest, req.CommID) + // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 891020ec0..e7e348bc0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -65,11 +65,10 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { return err } friendRequest.CreateTime = time.Now() - err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error - if err != nil { - return err + if dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", + friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).RowsAffected == 0 { + return InsertFriendApplication(friendRequest) } - return nil } func InsertFriendApplication(friendRequest *FriendRequest) error {