From cf205c24805a14ce68e97938d8240eb7bab997df Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 26 Jul 2022 15:16:46 +0800 Subject: [PATCH] superGroupMaxSeq --- cmd/open_im_api/main.go | 1 + internal/api/manage/management_chat.go | 102 +++++-- internal/rpc/msg/msg_status.go | 40 +++ internal/rpc/msg/pull_message.go | 1 + pkg/base_info/manage_api_struct.go | 22 +- pkg/common/constant/constant.go | 42 +-- pkg/common/db/RedisModel.go | 9 + pkg/common/db/rocks_cache/rocks_cache.go | 19 +- pkg/proto/msg/msg.pb.go | 370 +++++++++++++++++++---- pkg/proto/msg/msg.proto | 23 +- test/mysql/cmd/main.go | 9 - test/mysql/importuser.go | 56 ---- 12 files changed, 521 insertions(+), 173 deletions(-) create mode 100644 internal/rpc/msg/msg_status.go delete mode 100644 test/mysql/cmd/main.go delete mode 100644 test/mysql/importuser.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 63be3a496..873d328d5 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -143,6 +143,7 @@ func main() { chatGroup.POST("/clear_msg", apiChat.ClearMsg) chatGroup.POST("/manage_send_msg", manage.ManagementSendMsg) chatGroup.POST("/batch_send_msg", manage.ManagementBatchSendMsg) + chatGroup.POST("/check_msg_is_send_success", manage.CheckMsgIsSendSuccess) chatGroup.POST("/set_msg_min_seq", apiChat.SetMsgMinSeq) } //Conversation diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 50be90c0a..79896622b 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -28,6 +28,13 @@ import ( var validate *validator.Validate +func SetOptions(options map[string]bool, value bool) { + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, value) + utils.SetSwitchFromOptions(options, constant.IsHistory, value) + utils.SetSwitchFromOptions(options, constant.IsPersistent, value) + utils.SetSwitchFromOptions(options, constant.IsSenderSync, value) +} + func newUserSendMsgReq(params *api.ManagementSendMsgReq) *pbChat.SendMsgReq { var newContent string var err error @@ -50,11 +57,15 @@ func newUserSendMsgReq(params *api.ManagementSendMsgReq) *pbChat.SendMsgReq { } options := make(map[string]bool, 5) if params.IsOnlineOnly { - utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) - utils.SetSwitchFromOptions(options, constant.IsHistory, false) - utils.SetSwitchFromOptions(options, constant.IsPersistent, false) - utils.SetSwitchFromOptions(options, constant.IsSenderSync, false) + SetOptions(options, false) } + if params.ContentType == constant.CustomMsgOnlineOnly { + SetOptions(options, false) + } else if params.ContentType == constant.CustomMsgNotTriggerConversation { + SetOptions(options, false) + utils.SetSwitchFromOptions(options, constant.IsConversationUpdate, false) + } + pbData := pbChat.SendMsgReq{ OperationID: params.OperationID, MsgData: &open_im_sdk.MsgData{ @@ -135,6 +146,10 @@ func ManagementSendMsg(c *gin.Context) { case constant.OANotification: data = OANotificationElem{} params.SessionType = constant.NotificationChatType + case constant.CustomMsgNotTriggerConversation: + data = CustomElem{} + case constant.CustomMsgOnlineOnly: + data = CustomElem{} //case constant.HasReadReceipt: //case constant.Typing: //case constant.Quote: @@ -193,14 +208,21 @@ func ManagementSendMsg(c *gin.Context) { return } client := pbChat.NewMsgClient(etcdConn) - log.Info(params.OperationID, "", "api ManagementSendMsg call, api call rpc...") - RpcResp, err := client.SendMsg(context.Background(), pbData) - if err != nil { - log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) - return + if err != nil || (RpcResp != nil && RpcResp.ErrCode != 0) { + resp, err2 := client.SetSendMsgFailedFlag(context.Background(), &pbChat.SetSendMsgFailedFlagReq{OperationID: params.OperationID}) + if err2 != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) + } + if resp != nil && resp.ErrCode != 0 { + log.NewError(params.OperationID, utils.GetSelfFuncName(), resp.ErrCode, resp.ErrMsg) + } + if err != nil { + log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) + return + } } log.Info(params.OperationID, "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) resp := api.ManagementSendMsgResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, ResultList: server_api_params.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} @@ -255,6 +277,10 @@ func ManagementBatchSendMsg(c *gin.Context) { case constant.OANotification: data = OANotificationElem{} params.SessionType = constant.NotificationChatType + case constant.CustomMsgNotTriggerConversation: + data = CustomElem{} + case constant.CustomMsgOnlineOnly: + data = CustomElem{} //case constant.HasReadReceipt: //case constant.Typing: //case constant.Quote: @@ -283,9 +309,19 @@ func ManagementBatchSendMsg(c *gin.Context) { if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) return - } log.NewInfo(params.OperationID, "Ws call success to ManagementSendMsgReq", params) + var msgSendFailedFlag bool + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) + if etcdConn == nil { + errMsg := params.OperationID + "getcdv3.GetConn == nil" + log.NewError(params.OperationID, errMsg) + //resp.Data.FailedIDList = params.RecvIDList + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "rpc server error: etcdConn == nil"}) + return + } + client := pbChat.NewMsgClient(etcdConn) for _, recvID := range params.RecvIDList { req := &api.ManagementSendMsgReq{ ManagementSendMsg: params.ManagementSendMsg, @@ -294,23 +330,18 @@ func ManagementBatchSendMsg(c *gin.Context) { pbData := newUserSendMsgReq(req) pbData.MsgData.RecvID = recvID log.Info(params.OperationID, "", "api ManagementSendMsg call start..., ", pbData.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) - if etcdConn == nil { - errMsg := params.OperationID + "getcdv3.GetConn == nil" - log.NewError(params.OperationID, errMsg) - resp.Data.FailedIDList = append(resp.Data.FailedIDList, recvID) - continue - } - client := pbChat.NewMsgClient(etcdConn) + rpcResp, err := client.SendMsg(context.Background(), pbData) if err != nil { log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) resp.Data.FailedIDList = append(resp.Data.FailedIDList, recvID) + msgSendFailedFlag = true continue } if rpcResp.ErrCode != 0 { log.NewError(params.OperationID, utils.GetSelfFuncName(), "rpc failed", pbData, rpcResp) resp.Data.FailedIDList = append(resp.Data.FailedIDList, recvID) + msgSendFailedFlag = true continue } resp.Data.ResultList = append(resp.Data.ResultList, server_api_params.UserSendMsgResp{ @@ -319,11 +350,44 @@ func ManagementBatchSendMsg(c *gin.Context) { SendTime: rpcResp.SendTime, }) } + if msgSendFailedFlag { + resp, err2 := client.SetSendMsgFailedFlag(context.Background(), &pbChat.SetSendMsgFailedFlagReq{OperationID: params.OperationID}) + if err2 != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err2.Error()) + } + if resp != nil && resp.ErrCode != 0 { + log.NewError(params.OperationID, utils.GetSelfFuncName(), resp.ErrCode, resp.ErrMsg) + } + } log.NewInfo(params.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, resp) } +func CheckMsgIsSendSuccess(c *gin.Context) { + var req api.CheckMsgIsSendSuccessReq + var resp api.CheckMsgIsSendSuccessResp + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, req.OperationID) + if etcdConn == nil { + errMsg := req.OperationID + "getcdv3.GetConn == nil" + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + + client := pbChat.NewMsgClient(etcdConn) + rpcResp, err := client.GetSendMsgStatus(context.Background(), &pbChat.GetSendMsgStatusReq{OperationID: req.OperationID}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call GetSendMsgStatus rpc server failed"}) + return + } + resp.ErrMsg = rpcResp.ErrMsg + resp.ErrCode = rpcResp.ErrCode + resp.Status = rpcResp.Status + c.JSON(http.StatusOK, resp) +} + type PictureBaseInfo struct { UUID string `mapstructure:"uuid"` Type string `mapstructure:"type" ` diff --git a/internal/rpc/msg/msg_status.go b/internal/rpc/msg/msg_status.go new file mode 100644 index 000000000..9aff2b517 --- /dev/null +++ b/internal/rpc/msg/msg_status.go @@ -0,0 +1,40 @@ +package msg + +import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + pbMsg "Open_IM/pkg/proto/msg" + "Open_IM/pkg/utils" + "context" + goRedis "github.com/go-redis/redis/v8" +) + +func (rpc *rpcChat) SetSendMsgFailedFlag(_ context.Context, req pbMsg.SetSendMsgFailedFlagReq) (resp pbMsg.SetSendMsgFailedFlagResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + if err := db.DB.SetSendMsgFailedFlag(req.OperationID); err != nil { + resp.ErrCode = constant.ErrDB.ErrCode + resp.ErrMsg = err.Error() + return resp, nil + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) + return resp, nil +} + +func (rpc *rpcChat) GetSendMsgStatus(_ context.Context, req pbMsg.GetSendMsgStatusReq) (resp pbMsg.GetSendMsgStatusResp, err error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + if err := db.DB.GetSendMsgStatus(req.OperationID); err != nil { + if err == goRedis.Nil { + resp.Status = 0 + return + } else { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + resp.ErrMsg = err.Error() + resp.ErrCode = constant.ErrDB.ErrCode + return + } + } + resp.Status = 1 + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) + return resp, nil +} diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index e5d09ca12..4fcf9f9f7 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -43,6 +43,7 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *open_im_sdk.GetMaxAnd resp.GroupMaxAndMinSeq = m return resp, nil } + func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 5c249b3f7..52634839f 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -40,12 +40,13 @@ type AccountCheckResp struct { } type ManagementSendMsg struct { - OperationID string `json:"operationID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - GroupID string `json:"groupID" ` - SenderNickname string `json:"senderNickname" ` - SenderFaceURL string `json:"senderFaceURL" ` - SenderPlatformID int32 `json:"senderPlatformID"` + OperationID string `json:"operationID" binding:"required"` + BusinessOperationID string `json:"businessOperationID"` + SendID string `json:"sendID" binding:"required"` + GroupID string `json:"groupID" ` + SenderNickname string `json:"senderNickname" ` + SenderFaceURL string `json:"senderFaceURL" ` + SenderPlatformID int32 `json:"senderPlatformID"` //ForceList []string `json:"forceList" ` Content map[string]interface{} `json:"content" binding:"required" swaggerignore:"true"` ContentType int32 `json:"contentType" binding:"required"` @@ -76,3 +77,12 @@ type ManagementBatchSendMsgResp struct { FailedIDList []string } `json:"data"` } + +type CheckMsgIsSendSuccessReq struct { + OperationID string +} + +type CheckMsgIsSendSuccessResp struct { + CommResp + Status int32 `json:"status"` +} diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 3deeed5e6..8c6c45ec0 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -28,24 +28,30 @@ const ( ///ContentType //UserRelated - Text = 101 - Picture = 102 - Voice = 103 - Video = 104 - File = 105 - AtText = 106 - Merger = 107 - Card = 108 - Location = 109 - Custom = 110 - Revoke = 111 - HasReadReceipt = 112 - Typing = 113 - Quote = 114 - GroupHasReadReceipt = 116 - Common = 200 - GroupMsg = 201 - SignalMsg = 202 + Text = 101 + Picture = 102 + Voice = 103 + Video = 104 + File = 105 + AtText = 106 + Merger = 107 + Card = 108 + Location = 109 + Custom = 110 + Revoke = 111 + HasReadReceipt = 112 + Typing = 113 + Quote = 114 + GroupHasReadReceipt = 116 + AdvancedText = 117 + AdvancedRevoke = 118 //影响前者消息 + CustomMsgNotTriggerConversation = 119 + CustomMsgOnlineOnly = 120 + + Common = 200 + GroupMsg = 201 + SignalMsg = 202 + CustomNotification = 203 //SysRelated NotificationBegin = 1000 diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index bd6d634bc..01b75ea27 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -33,6 +33,7 @@ const ( GlobalMsgRecvOpt = "GLOBAL_MSG_RECV_OPT" groupUserMinSeq = "GROUP_USER_MIN_SEQ:" groupMaxSeq = "GROUP_MAX_SEQ" + sendMsgFailedFlag = "SEND_MSG_FAILED_FLAG" ) func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) { @@ -364,3 +365,11 @@ func (d *DataBases) GetGetuiToken() (string, error) { result := d.RDB.Get(context.Background(), getuiToken) return result.String(), result.Err() } + +func (d *DataBases) SetSendMsgFailedFlag(operationID string) error { + return d.RDB.Set(context.Background(), sendMsgFailedFlag+operationID, 1, time.Hour*24).Err() +} + +func (d *DataBases) GetSendMsgStatus(operationID string) error { + return d.RDB.Get(context.Background(), sendMsgFailedFlag+operationID).Err() +} diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 25a9b00be..3fe11f509 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -3,6 +3,7 @@ package rocksCache import ( "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "context" "encoding/json" @@ -29,6 +30,7 @@ func init() { fmt.Println("init to del old keys") for _, key := range []string{groupCache, friendRelationCache, blackListCache, userInfoCache, groupInfoCache, groupOwnerIDCache, joinedGroupListCache, groupMemberInfoCache, groupAllMemberInfoCache, allFriendInfoCache} { + fName := utils.GetSelfFuncName() var cursor uint64 var n int for { @@ -40,10 +42,19 @@ func init() { } n += len(keys) //fmt.Printf("\n %s key found %d keys: %v, current cursor %d\n", key, n, keys, cursor) - if len(keys) > 0 { - err = db.DB.RDB.Del(context.Background(), keys...).Err() - if err != nil { - panic(err.Error()) + //if len(keys) > 0 { + // err = db.DB.RDB.Del(context.Background(), keys...).Err() + // if err != nil { + // panic(err.Error()) + // } + //} + for _, key := range keys { + if err = db.DB.RDB.Del(context.Background(), key).Err(); err != nil { + log.NewError("", fName, key, err.Error()) + err = db.DB.RDB.Del(context.Background(), key).Err() + if err != nil { + panic(err.Error()) + } } } if cursor == 0 { diff --git a/pkg/proto/msg/msg.pb.go b/pkg/proto/msg/msg.pb.go index 807281950..f2002012f 100644 --- a/pkg/proto/msg/msg.pb.go +++ b/pkg/proto/msg/msg.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{0} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{1} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -137,7 +137,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{2} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -192,7 +192,7 @@ func (m *MsgDataToMongoByMQ) Reset() { *m = MsgDataToMongoByMQ{} } func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMongoByMQ) ProtoMessage() {} func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{3} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{3} } func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b) @@ -272,7 +272,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{4} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{4} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -320,7 +320,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{5} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{5} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -381,7 +381,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{6} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{6} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -437,7 +437,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{7} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{7} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -505,7 +505,7 @@ func (m *ClearMsgReq) Reset() { *m = ClearMsgReq{} } func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) } func (*ClearMsgReq) ProtoMessage() {} func (*ClearMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{8} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{8} } func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b) @@ -558,7 +558,7 @@ func (m *ClearMsgResp) Reset() { *m = ClearMsgResp{} } func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) } func (*ClearMsgResp) ProtoMessage() {} func (*ClearMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{9} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{9} } func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b) @@ -607,7 +607,7 @@ func (m *SetMsgMinSeqReq) Reset() { *m = SetMsgMinSeqReq{} } func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) } func (*SetMsgMinSeqReq) ProtoMessage() {} func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{10} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{10} } func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b) @@ -674,7 +674,7 @@ func (m *SetMsgMinSeqResp) Reset() { *m = SetMsgMinSeqResp{} } func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) } func (*SetMsgMinSeqResp) ProtoMessage() {} func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_f78465087fd6709c, []int{11} + return fileDescriptor_msg_b3ce531eb8197ddf, []int{11} } func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b) @@ -708,6 +708,182 @@ func (m *SetMsgMinSeqResp) GetErrMsg() string { return "" } +type SetSendMsgFailedFlagReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetSendMsgFailedFlagReq) Reset() { *m = SetSendMsgFailedFlagReq{} } +func (m *SetSendMsgFailedFlagReq) String() string { return proto.CompactTextString(m) } +func (*SetSendMsgFailedFlagReq) ProtoMessage() {} +func (*SetSendMsgFailedFlagReq) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_b3ce531eb8197ddf, []int{12} +} +func (m *SetSendMsgFailedFlagReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSendMsgFailedFlagReq.Unmarshal(m, b) +} +func (m *SetSendMsgFailedFlagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSendMsgFailedFlagReq.Marshal(b, m, deterministic) +} +func (dst *SetSendMsgFailedFlagReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSendMsgFailedFlagReq.Merge(dst, src) +} +func (m *SetSendMsgFailedFlagReq) XXX_Size() int { + return xxx_messageInfo_SetSendMsgFailedFlagReq.Size(m) +} +func (m *SetSendMsgFailedFlagReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetSendMsgFailedFlagReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetSendMsgFailedFlagReq proto.InternalMessageInfo + +func (m *SetSendMsgFailedFlagReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetSendMsgFailedFlagResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetSendMsgFailedFlagResp) Reset() { *m = SetSendMsgFailedFlagResp{} } +func (m *SetSendMsgFailedFlagResp) String() string { return proto.CompactTextString(m) } +func (*SetSendMsgFailedFlagResp) ProtoMessage() {} +func (*SetSendMsgFailedFlagResp) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_b3ce531eb8197ddf, []int{13} +} +func (m *SetSendMsgFailedFlagResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSendMsgFailedFlagResp.Unmarshal(m, b) +} +func (m *SetSendMsgFailedFlagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSendMsgFailedFlagResp.Marshal(b, m, deterministic) +} +func (dst *SetSendMsgFailedFlagResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSendMsgFailedFlagResp.Merge(dst, src) +} +func (m *SetSendMsgFailedFlagResp) XXX_Size() int { + return xxx_messageInfo_SetSendMsgFailedFlagResp.Size(m) +} +func (m *SetSendMsgFailedFlagResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetSendMsgFailedFlagResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetSendMsgFailedFlagResp proto.InternalMessageInfo + +func (m *SetSendMsgFailedFlagResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *SetSendMsgFailedFlagResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type GetSendMsgStatusReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSendMsgStatusReq) Reset() { *m = GetSendMsgStatusReq{} } +func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } +func (*GetSendMsgStatusReq) ProtoMessage() {} +func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_b3ce531eb8197ddf, []int{14} +} +func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b) +} +func (m *GetSendMsgStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSendMsgStatusReq.Marshal(b, m, deterministic) +} +func (dst *GetSendMsgStatusReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSendMsgStatusReq.Merge(dst, src) +} +func (m *GetSendMsgStatusReq) XXX_Size() int { + return xxx_messageInfo_GetSendMsgStatusReq.Size(m) +} +func (m *GetSendMsgStatusReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetSendMsgStatusReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSendMsgStatusReq proto.InternalMessageInfo + +func (m *GetSendMsgStatusReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetSendMsgStatusResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSendMsgStatusResp) Reset() { *m = GetSendMsgStatusResp{} } +func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } +func (*GetSendMsgStatusResp) ProtoMessage() {} +func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_b3ce531eb8197ddf, []int{15} +} +func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b) +} +func (m *GetSendMsgStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSendMsgStatusResp.Marshal(b, m, deterministic) +} +func (dst *GetSendMsgStatusResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSendMsgStatusResp.Merge(dst, src) +} +func (m *GetSendMsgStatusResp) XXX_Size() int { + return xxx_messageInfo_GetSendMsgStatusResp.Size(m) +} +func (m *GetSendMsgStatusResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetSendMsgStatusResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSendMsgStatusResp proto.InternalMessageInfo + +func (m *GetSendMsgStatusResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetSendMsgStatusResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetSendMsgStatusResp) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + func init() { proto.RegisterType((*MsgDataToMQ)(nil), "msg.MsgDataToMQ") proto.RegisterType((*MsgDataToDB)(nil), "msg.MsgDataToDB") @@ -721,6 +897,10 @@ func init() { proto.RegisterType((*ClearMsgResp)(nil), "msg.ClearMsgResp") proto.RegisterType((*SetMsgMinSeqReq)(nil), "msg.SetMsgMinSeqReq") proto.RegisterType((*SetMsgMinSeqResp)(nil), "msg.SetMsgMinSeqResp") + proto.RegisterType((*SetSendMsgFailedFlagReq)(nil), "msg.SetSendMsgFailedFlagReq") + proto.RegisterType((*SetSendMsgFailedFlagResp)(nil), "msg.SetSendMsgFailedFlagResp") + proto.RegisterType((*GetSendMsgStatusReq)(nil), "msg.GetSendMsgStatusReq") + proto.RegisterType((*GetSendMsgStatusResp)(nil), "msg.GetSendMsgStatusResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -740,6 +920,8 @@ type MsgClient interface { DelMsgList(ctx context.Context, in *sdk_ws.DelMsgListReq, opts ...grpc.CallOption) (*sdk_ws.DelMsgListResp, error) ClearMsg(ctx context.Context, in *ClearMsgReq, opts ...grpc.CallOption) (*ClearMsgResp, error) SetMsgMinSeq(ctx context.Context, in *SetMsgMinSeqReq, opts ...grpc.CallOption) (*SetMsgMinSeqResp, error) + SetSendMsgFailedFlag(ctx context.Context, in *SetSendMsgFailedFlagReq, opts ...grpc.CallOption) (*SetSendMsgFailedFlagResp, error) + GetSendMsgStatus(ctx context.Context, in *GetSendMsgStatusReq, opts ...grpc.CallOption) (*GetSendMsgStatusResp, error) } type msgClient struct { @@ -804,6 +986,24 @@ func (c *msgClient) SetMsgMinSeq(ctx context.Context, in *SetMsgMinSeqReq, opts return out, nil } +func (c *msgClient) SetSendMsgFailedFlag(ctx context.Context, in *SetSendMsgFailedFlagReq, opts ...grpc.CallOption) (*SetSendMsgFailedFlagResp, error) { + out := new(SetSendMsgFailedFlagResp) + err := grpc.Invoke(ctx, "/msg.msg/SetSendMsgFailedFlag", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) GetSendMsgStatus(ctx context.Context, in *GetSendMsgStatusReq, opts ...grpc.CallOption) (*GetSendMsgStatusResp, error) { + out := new(GetSendMsgStatusResp) + err := grpc.Invoke(ctx, "/msg.msg/GetSendMsgStatus", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for Msg service type MsgServer interface { @@ -813,6 +1013,8 @@ type MsgServer interface { DelMsgList(context.Context, *sdk_ws.DelMsgListReq) (*sdk_ws.DelMsgListResp, error) ClearMsg(context.Context, *ClearMsgReq) (*ClearMsgResp, error) SetMsgMinSeq(context.Context, *SetMsgMinSeqReq) (*SetMsgMinSeqResp, error) + SetSendMsgFailedFlag(context.Context, *SetSendMsgFailedFlagReq) (*SetSendMsgFailedFlagResp, error) + GetSendMsgStatus(context.Context, *GetSendMsgStatusReq) (*GetSendMsgStatusResp, error) } func RegisterMsgServer(s *grpc.Server, srv MsgServer) { @@ -927,6 +1129,42 @@ func _Msg_SetMsgMinSeq_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Msg_SetSendMsgFailedFlag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetSendMsgFailedFlagReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).SetSendMsgFailedFlag(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/msg.msg/SetSendMsgFailedFlag", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).SetSendMsgFailedFlag(ctx, req.(*SetSendMsgFailedFlagReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_GetSendMsgStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSendMsgStatusReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).GetSendMsgStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/msg.msg/GetSendMsgStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).GetSendMsgStatus(ctx, req.(*GetSendMsgStatusReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "msg.msg", HandlerType: (*MsgServer)(nil), @@ -955,57 +1193,71 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "SetMsgMinSeq", Handler: _Msg_SetMsgMinSeq_Handler, }, + { + MethodName: "SetSendMsgFailedFlag", + Handler: _Msg_SetSendMsgFailedFlag_Handler, + }, + { + MethodName: "GetSendMsgStatus", + Handler: _Msg_GetSendMsgStatus_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "msg/msg.proto", } -func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_f78465087fd6709c) } +func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_b3ce531eb8197ddf) } -var fileDescriptor_msg_f78465087fd6709c = []byte{ - // 696 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xc1, 0x6e, 0xd3, 0x4c, - 0x10, 0x96, 0x9b, 0x26, 0x69, 0xc6, 0xad, 0xd2, 0x7f, 0xff, 0x52, 0x45, 0x16, 0x07, 0xd7, 0x02, - 0x14, 0x01, 0x4a, 0xa4, 0xc0, 0xad, 0x17, 0x48, 0x53, 0xa1, 0x4a, 0x98, 0xb6, 0x4e, 0xb9, 0x70, - 0x09, 0xa6, 0x59, 0x6d, 0xad, 0xc6, 0xf6, 0x66, 0xc7, 0xa1, 0x2d, 0x3c, 0x03, 0x0f, 0xc0, 0x89, - 0x1b, 0xaf, 0xc2, 0x6b, 0xa1, 0xdd, 0x75, 0x92, 0x75, 0x12, 0xa9, 0x51, 0x0f, 0x1c, 0xbf, 0xcf, - 0xb3, 0x33, 0xdf, 0x37, 0x3b, 0xb3, 0x86, 0x9d, 0x18, 0x59, 0x3b, 0x46, 0xd6, 0xe2, 0x22, 0xcd, - 0x52, 0x52, 0x8a, 0x91, 0x39, 0x07, 0xa7, 0x9c, 0x26, 0x83, 0x13, 0xbf, 0xcd, 0xaf, 0x59, 0x5b, - 0xf1, 0x6d, 0x1c, 0x5e, 0x0f, 0x6e, 0xb0, 0x7d, 0x83, 0x3a, 0xce, 0xfb, 0x0e, 0xb6, 0x8f, 0xac, - 0x17, 0x66, 0xe1, 0x45, 0xea, 0x9f, 0x93, 0x3d, 0x28, 0x67, 0xe9, 0x35, 0x4d, 0x1a, 0x96, 0x6b, - 0x35, 0x6b, 0x81, 0x06, 0xc4, 0x05, 0x3b, 0xe5, 0x54, 0x84, 0x59, 0x94, 0x26, 0x27, 0xbd, 0xc6, - 0x86, 0xfa, 0x66, 0x52, 0xe4, 0x35, 0x54, 0x63, 0x9d, 0xa6, 0x51, 0x72, 0xad, 0xa6, 0xdd, 0x71, - 0x5a, 0x48, 0xc5, 0x57, 0x2a, 0x06, 0x21, 0x8f, 0x06, 0x3c, 0x14, 0x61, 0x8c, 0xad, 0xbc, 0x50, - 0x30, 0x0d, 0xf5, 0xa8, 0x51, 0xbc, 0xd7, 0x35, 0x93, 0x58, 0x6b, 0x27, 0xb9, 0x5f, 0x9c, 0xf7, - 0xc3, 0x82, 0xfa, 0xd9, 0x04, 0xaf, 0x4c, 0xa3, 0x2e, 0xd8, 0xa7, 0xc6, 0x29, 0x6d, 0xd7, 0xa4, - 0x4c, 0x35, 0x1b, 0xeb, 0xab, 0xf1, 0x60, 0x9b, 0x4f, 0xf0, 0xea, 0x22, 0xfd, 0x88, 0x54, 0x9c, - 0xf4, 0x54, 0x37, 0x6a, 0x41, 0x81, 0xf3, 0x7e, 0x5b, 0x40, 0xe6, 0x5a, 0xd2, 0x84, 0xa5, 0xdd, - 0x3b, 0xff, 0x9c, 0x34, 0xa0, 0x3a, 0x0a, 0x31, 0xeb, 0xd3, 0xb1, 0x92, 0xb3, 0x19, 0x4c, 0x21, - 0x79, 0x02, 0x3b, 0x21, 0x63, 0x82, 0xb2, 0xa2, 0xc9, 0x22, 0x49, 0x3a, 0x60, 0xc7, 0x14, 0x31, - 0x64, 0xf4, 0x7d, 0x84, 0x59, 0xa3, 0xe4, 0x96, 0x9a, 0x76, 0x67, 0xb7, 0x25, 0x67, 0xc2, 0x70, - 0x1e, 0x98, 0x41, 0xe4, 0x31, 0xd4, 0x32, 0x11, 0x31, 0xa6, 0xb4, 0x6e, 0xaa, 0xac, 0x73, 0xc2, - 0xfb, 0x00, 0xe4, 0x1d, 0xcd, 0xfc, 0xf0, 0xf6, 0x6d, 0x32, 0xf4, 0xa3, 0xa4, 0x4f, 0xc7, 0x01, - 0x1d, 0x93, 0x7d, 0xa8, 0xe4, 0xe6, 0x74, 0xd7, 0x72, 0xb4, 0xd8, 0xd2, 0x8d, 0xa5, 0x96, 0x7a, - 0x37, 0xf0, 0xff, 0x52, 0x3e, 0xe4, 0xd2, 0xf8, 0xb1, 0x10, 0x47, 0xe9, 0x90, 0xaa, 0x8c, 0xe5, - 0x60, 0x0a, 0x65, 0xa9, 0x63, 0x21, 0x7c, 0x64, 0x79, 0xb6, 0x1c, 0x49, 0xde, 0x0f, 0x6f, 0x65, - 0xa7, 0x64, 0x7f, 0x77, 0x82, 0x1c, 0x29, 0x5e, 0xe5, 0x55, 0x5e, 0x24, 0xaf, 0x90, 0xf7, 0x0d, - 0xa0, 0x4f, 0x93, 0xa1, 0x8f, 0x4c, 0x1a, 0xf8, 0xb7, 0x43, 0xfe, 0xcb, 0x02, 0x7b, 0x56, 0x5c, - 0xbb, 0xa5, 0x45, 0xb7, 0x74, 0xee, 0x96, 0x16, 0xdc, 0x6a, 0x24, 0x95, 0xe9, 0x3a, 0x3e, 0xb2, - 0xd9, 0x35, 0x99, 0x94, 0x8c, 0xb8, 0x1c, 0x45, 0x34, 0xc9, 0x74, 0x44, 0x59, 0x47, 0x18, 0x14, - 0x71, 0x60, 0x0b, 0x69, 0x32, 0xbc, 0x88, 0x62, 0xda, 0xa8, 0xb8, 0x56, 0xb3, 0x14, 0xcc, 0xb0, - 0x77, 0x09, 0xf6, 0xd1, 0x88, 0x86, 0x22, 0x6f, 0xcf, 0x3e, 0x54, 0x26, 0x85, 0xfb, 0xd5, 0x48, - 0xa6, 0x48, 0x79, 0x7e, 0xf3, 0x5a, 0xe0, 0x0c, 0x2f, 0x36, 0xaf, 0xb4, 0xbc, 0x84, 0x6f, 0x60, - 0x7b, 0x5e, 0xe4, 0x21, 0x6d, 0xf0, 0x7e, 0x5a, 0x50, 0xef, 0x53, 0xe9, 0xa7, 0x30, 0x8b, 0x2b, - 0xb5, 0x36, 0xa0, 0xca, 0x44, 0x3a, 0xe1, 0x33, 0xa9, 0x53, 0x28, 0x4f, 0xc4, 0x7a, 0x44, 0xf2, - 0xd1, 0xd1, 0x68, 0xd1, 0xc1, 0xe6, 0xf2, 0xf5, 0x9b, 0xfe, 0xcb, 0x45, 0xff, 0x5e, 0x0f, 0x76, - 0x8b, 0xd2, 0x1e, 0xe2, 0xb0, 0xf3, 0xa7, 0x04, 0xf2, 0xdd, 0x26, 0x9f, 0xa1, 0xbe, 0xb0, 0x27, - 0xe4, 0xe9, 0x8a, 0x51, 0x5b, 0xde, 0x4d, 0xe7, 0xd9, 0x3a, 0x61, 0xc8, 0x49, 0x0a, 0x7b, 0x67, - 0x93, 0xd1, 0xc8, 0xd7, 0x4f, 0x41, 0xf7, 0xae, 0x4f, 0xc7, 0xea, 0x3d, 0x78, 0xbe, 0xe2, 0xfc, - 0xaa, 0x40, 0x59, 0xeb, 0xc5, 0xda, 0xb1, 0xc8, 0xc9, 0x4b, 0xa8, 0xe6, 0x4b, 0x40, 0xea, 0xea, - 0x49, 0x9a, 0xef, 0xa3, 0xb3, 0x5b, 0x24, 0x90, 0x93, 0x73, 0x80, 0x1e, 0x1d, 0xf9, 0xc8, 0x94, - 0x28, 0x77, 0x45, 0xa1, 0xf9, 0x67, 0x99, 0xe1, 0xe0, 0x9e, 0x08, 0xe4, 0xa4, 0x0d, 0x5b, 0xd3, - 0xf9, 0x23, 0xba, 0xa0, 0x31, 0xf3, 0xce, 0x7f, 0x0b, 0x0c, 0x72, 0x72, 0x08, 0xdb, 0xe6, 0x95, - 0x92, 0xbd, 0x5c, 0x65, 0x61, 0x00, 0x9d, 0x47, 0x2b, 0x58, 0xe4, 0x5d, 0xfb, 0x53, 0xad, 0x25, - 0xff, 0xc6, 0x87, 0x31, 0xb2, 0x2f, 0x15, 0xf5, 0xab, 0x7d, 0xf5, 0x37, 0x00, 0x00, 0xff, 0xff, - 0x3e, 0x48, 0x33, 0x18, 0xa3, 0x07, 0x00, 0x00, +var fileDescriptor_msg_b3ce531eb8197ddf = []byte{ + // 793 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcf, 0x6e, 0xfb, 0x44, + 0x10, 0x96, 0x9b, 0x7f, 0xbf, 0x8c, 0x5b, 0x25, 0x2c, 0xa1, 0x18, 0xab, 0x48, 0xa9, 0x05, 0x28, + 0x02, 0x94, 0x48, 0x01, 0x89, 0x43, 0x2f, 0x90, 0xa6, 0xad, 0x2a, 0xd5, 0xb4, 0xb5, 0xcb, 0x85, + 0x4b, 0x6a, 0x9a, 0xd5, 0xd6, 0xaa, 0xff, 0x6c, 0x3c, 0x0e, 0x6d, 0xe1, 0x19, 0x78, 0x00, 0x4e, + 0xdc, 0x78, 0x33, 0xde, 0x03, 0xed, 0xae, 0x93, 0xd8, 0x89, 0xa1, 0x51, 0x0e, 0xbf, 0xe3, 0xf7, + 0x79, 0x76, 0xe6, 0xfb, 0x66, 0x67, 0x27, 0x81, 0x83, 0x10, 0xd9, 0x20, 0x44, 0xd6, 0xe7, 0x49, + 0x9c, 0xc6, 0xa4, 0x12, 0x22, 0x33, 0x8f, 0xaf, 0x39, 0x8d, 0x26, 0x97, 0xf6, 0x80, 0x3f, 0xb1, + 0x81, 0xe4, 0x07, 0x38, 0x7d, 0x9a, 0x3c, 0xe3, 0xe0, 0x19, 0x55, 0x9c, 0xf5, 0x3b, 0xe8, 0x36, + 0xb2, 0xb1, 0x97, 0x7a, 0x77, 0xb1, 0x7d, 0x4b, 0x3a, 0x50, 0x4b, 0xe3, 0x27, 0x1a, 0x19, 0x5a, + 0x57, 0xeb, 0x35, 0x1d, 0x05, 0x48, 0x17, 0xf4, 0x98, 0xd3, 0xc4, 0x4b, 0xfd, 0x38, 0xba, 0x1c, + 0x1b, 0x7b, 0xf2, 0x5b, 0x9e, 0x22, 0xdf, 0x42, 0x23, 0x54, 0x69, 0x8c, 0x4a, 0x57, 0xeb, 0xe9, + 0x43, 0xb3, 0x8f, 0x34, 0xf9, 0x95, 0x26, 0x13, 0x8f, 0xfb, 0x13, 0xee, 0x25, 0x5e, 0x88, 0xfd, + 0xac, 0x90, 0xb3, 0x08, 0xb5, 0x68, 0xae, 0xf8, 0x78, 0x94, 0x4f, 0xa2, 0x6d, 0x9d, 0xe4, 0x6d, + 0x71, 0xd6, 0x1f, 0x1a, 0xb4, 0x6e, 0xe6, 0xf8, 0x98, 0x37, 0xda, 0x05, 0xfd, 0x3a, 0x77, 0x4a, + 0xd9, 0xcd, 0x53, 0x79, 0x35, 0x7b, 0xdb, 0xab, 0xb1, 0x60, 0x9f, 0xcf, 0xf1, 0xf1, 0x2e, 0xfe, + 0x09, 0x69, 0x72, 0x39, 0x96, 0xdd, 0x68, 0x3a, 0x05, 0xce, 0xfa, 0x5b, 0x03, 0xb2, 0xd2, 0x12, + 0x47, 0x2c, 0x1e, 0xbd, 0xda, 0xb7, 0xc4, 0x80, 0x46, 0xe0, 0x61, 0xea, 0xd2, 0x99, 0x94, 0x53, + 0x75, 0x16, 0x90, 0x7c, 0x06, 0x07, 0x1e, 0x63, 0x09, 0x65, 0x45, 0x93, 0x45, 0x92, 0x0c, 0x41, + 0x0f, 0x29, 0xa2, 0xc7, 0xe8, 0x95, 0x8f, 0xa9, 0x51, 0xe9, 0x56, 0x7a, 0xfa, 0xb0, 0xdd, 0x17, + 0x33, 0x91, 0x73, 0xee, 0xe4, 0x83, 0xc8, 0x11, 0x34, 0xd3, 0xc4, 0x67, 0x4c, 0x6a, 0xad, 0xca, + 0xac, 0x2b, 0xc2, 0xfa, 0x11, 0xc8, 0x05, 0x4d, 0x6d, 0xef, 0xe5, 0x87, 0x68, 0x6a, 0xfb, 0x91, + 0x4b, 0x67, 0x0e, 0x9d, 0x91, 0x43, 0xa8, 0x67, 0xe6, 0x54, 0xd7, 0x32, 0xb4, 0xde, 0xd2, 0xbd, + 0x8d, 0x96, 0x5a, 0xcf, 0xf0, 0xe1, 0x46, 0x3e, 0xe4, 0xc2, 0xf8, 0x59, 0x92, 0x9c, 0xc6, 0x53, + 0x2a, 0x33, 0xd6, 0x9c, 0x05, 0x14, 0xa5, 0xce, 0x92, 0xc4, 0x46, 0x96, 0x65, 0xcb, 0x90, 0xe0, + 0x6d, 0xef, 0x45, 0x74, 0x4a, 0xf4, 0xf7, 0xc0, 0xc9, 0x90, 0xe4, 0x65, 0x5e, 0xe9, 0x45, 0xf0, + 0x12, 0x59, 0xbf, 0x01, 0xb8, 0x34, 0x9a, 0xda, 0xc8, 0x84, 0x81, 0xf7, 0x3b, 0xe4, 0x7f, 0x69, + 0xa0, 0x2f, 0x8b, 0x2b, 0xb7, 0xb4, 0xe8, 0x96, 0xae, 0xdc, 0xd2, 0x82, 0x5b, 0x85, 0x84, 0x32, + 0x55, 0xc7, 0x46, 0xb6, 0xbc, 0xa6, 0x3c, 0x25, 0x22, 0x1e, 0x02, 0x9f, 0x46, 0xa9, 0x8a, 0xa8, + 0xa9, 0x88, 0x1c, 0x45, 0x4c, 0x78, 0x87, 0x34, 0x9a, 0xde, 0xf9, 0x21, 0x35, 0xea, 0x5d, 0xad, + 0x57, 0x71, 0x96, 0xd8, 0x7a, 0x00, 0xfd, 0x34, 0xa0, 0x5e, 0x92, 0xb5, 0xe7, 0x10, 0xea, 0xf3, + 0xc2, 0xfd, 0x2a, 0x24, 0x52, 0xc4, 0x3c, 0xbb, 0x79, 0x25, 0x70, 0x89, 0xd7, 0x9b, 0x57, 0xd9, + 0x7c, 0x84, 0xdf, 0xc3, 0xfe, 0xaa, 0xc8, 0x2e, 0x6d, 0xb0, 0xfe, 0xd4, 0xa0, 0xe5, 0x52, 0xe1, + 0xa7, 0x30, 0x8b, 0xa5, 0x5a, 0x0d, 0x68, 0xb0, 0x24, 0x9e, 0xf3, 0xa5, 0xd4, 0x05, 0x14, 0x27, + 0x42, 0x35, 0x22, 0xd9, 0xe8, 0x28, 0xb4, 0xee, 0xa0, 0xba, 0x79, 0xfd, 0x79, 0xff, 0xb5, 0xa2, + 0x7f, 0x6b, 0x0c, 0xed, 0xa2, 0xb4, 0x9d, 0x1c, 0x9e, 0xc0, 0xc7, 0x2e, 0x4d, 0xb3, 0x61, 0x39, + 0xf7, 0xfc, 0x80, 0x4e, 0xcf, 0x03, 0x4f, 0x5e, 0xca, 0x9a, 0x3c, 0x6d, 0xb3, 0xc1, 0x57, 0x60, + 0x94, 0x1f, 0xde, 0x49, 0xca, 0x77, 0xf2, 0xa9, 0x66, 0xd9, 0xdc, 0xd4, 0x4b, 0xe7, 0xb8, 0x9d, + 0x8c, 0x7b, 0xe8, 0x6c, 0x1e, 0xdc, 0x69, 0xec, 0x0f, 0xa1, 0x8e, 0xf2, 0xbc, 0xbc, 0xa9, 0x9a, + 0x93, 0xa1, 0xe1, 0x3f, 0x55, 0x10, 0xbf, 0x6e, 0xe4, 0x1e, 0x5a, 0x6b, 0xdb, 0x84, 0x7c, 0x5e, + 0xf2, 0x20, 0x37, 0x37, 0x98, 0xf9, 0xc5, 0x36, 0x61, 0xc8, 0x49, 0x0c, 0x9d, 0x9b, 0x79, 0x10, + 0xd8, 0x6a, 0x61, 0x8e, 0x5e, 0x5d, 0x3a, 0x93, 0x5b, 0xf3, 0xcb, 0x92, 0xf3, 0x65, 0x81, 0xa2, + 0xd6, 0x57, 0x5b, 0xc7, 0x22, 0x27, 0x5f, 0x43, 0x23, 0xeb, 0x1c, 0x69, 0xc9, 0xc5, 0xbd, 0xda, + 0x5a, 0x66, 0xbb, 0x48, 0x20, 0x27, 0xb7, 0x00, 0x63, 0x1a, 0xd8, 0xc8, 0xa4, 0xa8, 0x6e, 0x49, + 0xa1, 0xd5, 0x67, 0x91, 0xe1, 0xf8, 0x8d, 0x08, 0xe4, 0x64, 0x00, 0xef, 0x16, 0xaf, 0x94, 0xa8, + 0x82, 0xb9, 0xcd, 0x60, 0x7e, 0xb0, 0xc6, 0x20, 0x27, 0x27, 0xb0, 0x9f, 0x1f, 0x7c, 0xd2, 0xc9, + 0x54, 0x16, 0x9e, 0xa9, 0xf9, 0x51, 0x09, 0x8b, 0x9c, 0xb8, 0xd0, 0x29, 0x1b, 0x59, 0x72, 0xb4, + 0x08, 0x2f, 0x7b, 0x0a, 0xe6, 0xa7, 0xff, 0xf3, 0x15, 0x39, 0xb9, 0x80, 0xf6, 0xfa, 0x00, 0x12, + 0x43, 0x1e, 0x29, 0x19, 0x68, 0xf3, 0x93, 0xff, 0xf8, 0x82, 0x7c, 0xa4, 0xff, 0xdc, 0xec, 0x8b, + 0x7f, 0x54, 0x27, 0x21, 0xb2, 0x5f, 0xea, 0xf2, 0xef, 0xd2, 0x37, 0xff, 0x06, 0x00, 0x00, 0xff, + 0xff, 0x01, 0x7d, 0x7b, 0xe8, 0x67, 0x09, 0x00, 0x00, } diff --git a/pkg/proto/msg/msg.proto b/pkg/proto/msg/msg.proto index 657e1cf28..1557f38b5 100644 --- a/pkg/proto/msg/msg.proto +++ b/pkg/proto/msg/msg.proto @@ -3,8 +3,6 @@ import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./msg;msg"; package msg; - - message MsgDataToMQ{ string token =1; string operationID = 2; @@ -104,6 +102,25 @@ message SetMsgMinSeqResp{ string errMsg = 2; } +message SetSendMsgFailedFlagReq{ + string operationID = 1; +} + +message SetSendMsgFailedFlagResp{ + int32 errCode = 1; + string errMsg = 2; +} + +message GetSendMsgStatusReq{ + string operationID = 1; +} + +message GetSendMsgStatusResp{ + int32 errCode = 1; + string errMsg = 2; + int32 status = 3; +} + service msg { rpc GetMaxAndMinSeq(server_api_params.GetMaxAndMinSeqReq) returns(server_api_params.GetMaxAndMinSeqResp); rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp); @@ -111,4 +128,6 @@ service msg { rpc DelMsgList(server_api_params.DelMsgListReq) returns(server_api_params.DelMsgListResp); rpc ClearMsg(ClearMsgReq) returns(ClearMsgResp); rpc SetMsgMinSeq(SetMsgMinSeqReq) returns(SetMsgMinSeqResp); + rpc SetSendMsgFailedFlag(SetSendMsgFailedFlagReq) returns(SetSendMsgFailedFlagResp); + rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp); } diff --git a/test/mysql/cmd/main.go b/test/mysql/cmd/main.go deleted file mode 100644 index 8bf97b919..000000000 --- a/test/mysql/cmd/main.go +++ /dev/null @@ -1,9 +0,0 @@ -package main - -import ( - "Open_IM/test/mysql" -) - -func main() { - mysql.ImportUserToSuperGroup() -} diff --git a/test/mysql/importuser.go b/test/mysql/importuser.go deleted file mode 100644 index 09e535914..000000000 --- a/test/mysql/importuser.go +++ /dev/null @@ -1,56 +0,0 @@ -package mysql - -import ( - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "strconv" - "time" -) - -func ImportUserToSuperGroup() { - for i := 18000000700; i <= 18000000800; i++ { - user := db.User{ - UserID: strconv.Itoa(i), - Nickname: strconv.Itoa(i), - FaceURL: "", - Gender: 0, - PhoneNumber: strconv.Itoa(i), - Birth: time.Time{}, - Email: "", - Ex: "", - CreateTime: time.Time{}, - AppMangerLevel: 0, - GlobalRecvMsgOpt: 0, - } - err := im_mysql_model.UserRegister(user) - if err != nil { - log.NewError("", err.Error(), user) - continue - } - - groupMember := db.GroupMember{ - GroupID: "3907826375", - UserID: strconv.Itoa(i), - Nickname: strconv.Itoa(i), - FaceURL: "", - RoleLevel: 0, - JoinTime: time.Time{}, - JoinSource: 0, - InviterUserID: "openIMAdmin", - OperatorUserID: "openIMAdmin", - MuteEndTime: time.Time{}, - Ex: "", - } - - err = im_mysql_model.InsertIntoGroupMember(groupMember) - if err != nil { - log.NewError("", err.Error(), user) - continue - } - - log.NewInfo("success", i) - - } - -}