From ea580e4c64427bafe83ea80f93951d0acd5d2b72 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 15 Feb 2022 14:31:55 +0800 Subject: [PATCH 1/2] send message --- internal/msg_transfer/logic/history_msg_handler.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index e4b4360c6..78b3ba79c 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -45,7 +45,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) - //isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) + isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) switch msgFromMQ.MsgData.SessionType { case constant.SingleChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = SingleChatType", isHistory, isPersist) @@ -57,7 +57,10 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) } log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } - go sendMessageToPush(&msgFromMQ, msgKey) + if !isSenderSync && msgKey == msgFromMQ.MsgData.SendID { + } else { + go sendMessageToPush(&msgFromMQ, msgKey) + } log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) case constant.GroupChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = GroupChatType", isHistory, isPersist) From c405cedc41332e96b57e7f6435fa3342019542f5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 15 Feb 2022 14:34:03 +0800 Subject: [PATCH 2/2] Refactoring code --- internal/rpc/friend/firend.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 2d5fb40e8..dcea5be2a 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -101,13 +101,15 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg, HandleResult: 0, CreateTime: time.Now()} + friendRequest := db.FriendRequest{ + HandleResult: 0, ReqMsg: req.ReqMsg, CreateTime: time.Now()} 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.InsertFriendApplication(&friendRequest) err := imdb.InsertFriendApplication(&friendRequest, - map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime}) + map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime, + "handler_user_id": "", "handle_msg": "", "handle_time": utils.UnixSecondToTime(0), "ex": ""}) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil