From bed2bfb6dbb71e2157b07b9f692de924f9e98024 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 12:50:36 +0800 Subject: [PATCH 1/3] push msg specify receiver --- internal/rpc/msg/send_msg.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 184f48697..cbfbb3345 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -14,6 +14,7 @@ import ( "context" "encoding/json" "github.com/garyburd/redigo/redis" + "github.com/golang/protobuf/proto" "math/rand" "net/http" "strconv" @@ -165,6 +166,20 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.Error(pb.Token, pb.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrMsg) return returnMsg(&replay, pb, reply.ErrCode, reply.ErrMsg, "", 0) } + var addUidList []string + switch pb.MsgData.ContentType { + case constant.MemberKickedNotification: + var tips sdk_ws.TipsComm + var memberKickedTips sdk_ws.MemberKickedTips + _ = proto.Unmarshal(pb.MsgData.Content, &tips) + _ = proto.Unmarshal(tips.Detail, &memberKickedTips) + for _, v := range memberKickedTips.KickedUserList { + addUidList = append(addUidList, v.UserID) + } + case constant.MemberQuitNotification: + addUidList = append(addUidList, pb.MsgData.SendID) + default: + } groupID := pb.MsgData.GroupID for _, v := range reply.MemberList { pb.MsgData.RecvID = v.UserID @@ -178,6 +193,19 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } } + } + for _, v := range addUidList { + pb.MsgData.RecvID = v + isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, pb) + if isSend { + msgToMQ.MsgData = pb.MsgData + err := rpc.sendMsgToKafka(&msgToMQ, v) + if err != nil { + log.NewError(msgToMQ.OperationID, "kafka send msg err:UserId", v, msgToMQ.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } + } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: From 927cde3777a6fd50344086a6f9ec7d19c0e60a60 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 12:59:20 +0800 Subject: [PATCH 2/3] log --- internal/rpc/msg/send_msg.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index cbfbb3345..5fcbc05c7 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -194,9 +194,11 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } } + log.Info(msgToMQ.OperationID, "addUidList", addUidList) for _, v := range addUidList { pb.MsgData.RecvID = v isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, pb) + log.Info(msgToMQ.OperationID, "isSend", isSend) if isSend { msgToMQ.MsgData = pb.MsgData err := rpc.sendMsgToKafka(&msgToMQ, v) From a81e5aa6e4ab370d177403a2ca22d50e96e9f6cc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 13:05:17 +0800 Subject: [PATCH 3/3] log --- internal/rpc/msg/send_msg.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 5fcbc05c7..7518997c0 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -171,8 +171,15 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S case constant.MemberKickedNotification: var tips sdk_ws.TipsComm var memberKickedTips sdk_ws.MemberKickedTips - _ = proto.Unmarshal(pb.MsgData.Content, &tips) - _ = proto.Unmarshal(tips.Detail, &memberKickedTips) + err := proto.Unmarshal(pb.MsgData.Content, &tips) + if err != nil { + log.Error(pb.OperationID, "Unmarshal err", err.Error()) + } + err = proto.Unmarshal(tips.Detail, &memberKickedTips) + if err != nil { + log.Error(pb.OperationID, "Unmarshal err", err.Error()) + } + log.Info(pb.OperationID, "data is ", memberKickedTips) for _, v := range memberKickedTips.KickedUserList { addUidList = append(addUidList, v.UserID) }