From 9f15f50f9d2cd6ce12fd191d4796041942e27e1b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 15:42:05 +0800 Subject: [PATCH 01/56] fix conversation --- pkg/common/db/mysql_model/im_mysql_model/conversation_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go index 0f1b7374a..2a645d54f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/conversation_model.go @@ -99,6 +99,6 @@ func UpdateColumnsConversations(ownerUserIDList []string, conversationID string, func GetConversationIDListByUserID(userID string) ([]string, error) { var IDList []string - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("user_id=?", userID).Pluck("conversation_id", &IDList).Error + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Conversation{}).Where("owner_user_id=?", userID).Pluck("conversation_id", &IDList).Error return IDList, err } From 1d0d063a6c66d7d5f903e162ae2e09b82faf1a7c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 15:46:10 +0800 Subject: [PATCH 02/56] add --- internal/rpc/user/user.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 4c86c36f8..800965e57 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -266,7 +266,7 @@ func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConvers return resp, nil } if isUpdate { - err = rocksCache.DelConversationFromCache(req.Conversation.OwnerUserID ,req.Conversation.ConversationID) + err = rocksCache.DelConversationFromCache(req.Conversation.OwnerUserID, req.Conversation.ConversationID) } else { err = rocksCache.DelUserConversationIDListFromCache(req.Conversation.OwnerUserID) } @@ -318,6 +318,7 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg} return resp, nil + } if err = rocksCache.DelConversationFromCache(conversation.OwnerUserID, conversation.ConversationID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), conversation.ConversationID, err.Error()) } From d542cdd898af9b5e77f30b56fa239bcb20f697a8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 17:32:21 +0800 Subject: [PATCH 03/56] conversation --- internal/api/conversation/conversation.go | 2 +- internal/rpc/conversation/conversaion.go | 6 + internal/rpc/user/user.go | 11 +- pkg/common/db/model_struct.go | 29 +- pkg/proto/conversation/conversation.pb.go | 117 +- pkg/proto/conversation/conversation.proto | 2 + pkg/proto/user/user.pb.go | 7243 ++++++++------------- pkg/proto/user/user.proto | 42 +- 8 files changed, 2852 insertions(+), 4600 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index e150a20e1..cfda0abb8 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -26,7 +26,7 @@ func SetConversation(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.Conversation = &pbUser.Conversation{} + reqPb.Conversation = &pbConversation.Conversation{} err := utils.CopyStructFields(&reqPb, req) err = utils.CopyStructFields(reqPb.Conversation, req.Conversation) if err != nil { diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index 5fcab9eb4..6fb04dfd4 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -74,6 +74,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"attached_info": conversation.AttachedInfo}) case constant.FieldUnread: isSyncConversation = false + err = imdb.UpdateColumnsConversations(haveUserID, req.Conversation.ConversationID, map[string]interface{}{"update_unread_count_time": utils.GetCurrentTimestampByMill()}) } if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateColumnsConversations error", err.Error()) @@ -82,6 +83,11 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo } for _, v := range utils.DifferenceString(haveUserID, req.UserIDList) { conversation.OwnerUserID = v + conversation.UpdateUnreadCountTime = utils.GetCurrentTimestampByMill() + err = rocksCache.DelUserConversationIDListFromCache(v) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), v, req.Conversation.ConversationID, err.Error()) + } err := imdb.SetOneConversation(conversation) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation error", err.Error()) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 800965e57..e303816d8 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbConversation "Open_IM/pkg/proto/conversation" pbFriend "Open_IM/pkg/proto/friend" sdkws "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" @@ -83,7 +84,7 @@ func (s *userServer) Run() { log.NewInfo("0", "rpc user success") } -func syncPeerUserConversation(conversation *pbUser.Conversation, operationID string) error { +func syncPeerUserConversation(conversation *pbConversation.Conversation, operationID string) error { peerUserConversation := db.Conversation{ OwnerUserID: conversation.UserID, ConversationID: utils.GetConversationIDBySessionType(conversation.OwnerUserID, constant.SingleChatType), @@ -178,7 +179,7 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAllConversationsReq) (*pbUser.GetAllConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetAllConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetAllConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetUserAllConversationList(req.OwnerUserID) log.NewDebug(req.OperationID, "conversations: ", conversations) if err != nil { @@ -196,7 +197,7 @@ func (s *userServer) GetAllConversations(ctx context.Context, req *pbUser.GetAll func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConversationReq) (*pbUser.GetConversationResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationResp{Conversation: &pbUser.Conversation{}} + resp := &pbUser.GetConversationResp{Conversation: &pbConversation.Conversation{}} conversation, err := rocksCache.GetConversationFromCache(req.OwnerUserID, req.ConversationID) log.NewDebug("", utils.GetSelfFuncName(), "conversation", conversation) if err != nil { @@ -214,7 +215,7 @@ func (s *userServer) GetConversation(ctx context.Context, req *pbUser.GetConvers func (s *userServer) GetConversations(ctx context.Context, req *pbUser.GetConversationsReq) (*pbUser.GetConversationsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetConversationsResp{Conversations: []*pbUser.Conversation{}} + resp := &pbUser.GetConversationsResp{Conversations: []*pbConversation.Conversation{}} conversations, err := rocksCache.GetConversationsFromCache(req.OwnerUserID, req.ConversationIDs) log.NewDebug("", utils.GetSelfFuncName(), "conversations", conversations) if err != nil { @@ -683,7 +684,7 @@ func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (* log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.AlterUserResp{} user := db.User{ - PhoneNumber: strconv.FormatInt(req.PhoneNumber, 10), + PhoneNumber: req.PhoneNumber, Nickname: req.Nickname, Email: req.Email, UserID: req.UserId, diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index ea2c0734d..e29c8ba35 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -243,20 +243,21 @@ type BlackList struct { EndDisableTime time.Time `gorm:"column:end_disable_time"` } type Conversation struct { - OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` - ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` - ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` - UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` - GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` - RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` - UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` - DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` - IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` - IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` - GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"` - IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"` - AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` - Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` + OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` + ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` + ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` + UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` + GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` + RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` + UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` + DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` + IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` + IsPrivateChat bool `gorm:"column:is_private_chat" json:"isPrivateChat"` + GroupAtType int32 `gorm:"column:group_at_type" json:"groupAtType"` + IsNotInGroup bool `gorm:"column:is_not_in_group" json:"isNotInGroup"` + UpdateUnreadCountTime int64 `gorm:"column:update_unread_count_time" json:"updateUnreadCountTime"` + AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` + Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } func (Conversation) TableName() string { diff --git a/pkg/proto/conversation/conversation.pb.go b/pkg/proto/conversation/conversation.pb.go index bf76bfe67..de4d4a793 100644 --- a/pkg/proto/conversation/conversation.pb.go +++ b/pkg/proto/conversation/conversation.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{0} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -70,30 +70,31 @@ func (m *CommonResp) GetErrMsg() string { } type Conversation struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=conversationID" json:"conversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=recvMsgOpt" json:"recvMsgOpt,omitempty"` + ConversationType int32 `protobuf:"varint,4,opt,name=conversationType" json:"conversationType,omitempty"` + UserID string `protobuf:"bytes,5,opt,name=userID" json:"userID,omitempty"` + GroupID string `protobuf:"bytes,6,opt,name=groupID" json:"groupID,omitempty"` + UnreadCount int32 `protobuf:"varint,7,opt,name=unreadCount" json:"unreadCount,omitempty"` + DraftTextTime int64 `protobuf:"varint,8,opt,name=draftTextTime" json:"draftTextTime,omitempty"` + IsPinned bool `protobuf:"varint,9,opt,name=isPinned" json:"isPinned,omitempty"` + AttachedInfo string `protobuf:"bytes,10,opt,name=attachedInfo" json:"attachedInfo,omitempty"` + IsPrivateChat bool `protobuf:"varint,11,opt,name=isPrivateChat" json:"isPrivateChat,omitempty"` + GroupAtType int32 `protobuf:"varint,12,opt,name=groupAtType" json:"groupAtType,omitempty"` + IsNotInGroup bool `protobuf:"varint,13,opt,name=isNotInGroup" json:"isNotInGroup,omitempty"` + Ex string `protobuf:"bytes,14,opt,name=ex" json:"ex,omitempty"` + UpdateUnreadCountTime int64 `protobuf:"varint,15,opt,name=updateUnreadCountTime" json:"updateUnreadCountTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *Conversation) Reset() { *m = Conversation{} } func (m *Conversation) String() string { return proto.CompactTextString(m) } func (*Conversation) ProtoMessage() {} func (*Conversation) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{1} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{1} } func (m *Conversation) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Conversation.Unmarshal(m, b) @@ -211,6 +212,13 @@ func (m *Conversation) GetEx() string { return "" } +func (m *Conversation) GetUpdateUnreadCountTime() int64 { + if m != nil { + return m.UpdateUnreadCountTime + } + return 0 +} + type ModifyConversationFieldReq struct { Conversation *Conversation `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"` FieldType int32 `protobuf:"varint,2,opt,name=fieldType" json:"fieldType,omitempty"` @@ -225,7 +233,7 @@ func (m *ModifyConversationFieldReq) Reset() { *m = ModifyConversationFi func (m *ModifyConversationFieldReq) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldReq) ProtoMessage() {} func (*ModifyConversationFieldReq) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{2} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{2} } func (m *ModifyConversationFieldReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldReq.Unmarshal(m, b) @@ -284,7 +292,7 @@ func (m *ModifyConversationFieldResp) Reset() { *m = ModifyConversationF func (m *ModifyConversationFieldResp) String() string { return proto.CompactTextString(m) } func (*ModifyConversationFieldResp) ProtoMessage() {} func (*ModifyConversationFieldResp) Descriptor() ([]byte, []int) { - return fileDescriptor_conversation_e6bf38f800b9bed2, []int{3} + return fileDescriptor_conversation_ac55165355a1b6e6, []int{3} } func (m *ModifyConversationFieldResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyConversationFieldResp.Unmarshal(m, b) @@ -391,39 +399,40 @@ var _Conversation_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_e6bf38f800b9bed2) + proto.RegisterFile("conversation/conversation.proto", fileDescriptor_conversation_ac55165355a1b6e6) } -var fileDescriptor_conversation_e6bf38f800b9bed2 = []byte{ - // 475 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40, - 0x14, 0x87, 0x49, 0xbb, 0xdb, 0x6d, 0x4e, 0xbb, 0x45, 0xe6, 0x42, 0x87, 0xae, 0x7f, 0x42, 0x10, - 0x89, 0x5e, 0x54, 0x58, 0x6f, 0x04, 0x61, 0x41, 0x53, 0x94, 0x80, 0xd5, 0x65, 0xa8, 0x08, 0xde, - 0xc5, 0xe6, 0xb4, 0x3b, 0x60, 0x67, 0xe2, 0xcc, 0xb4, 0x76, 0x6f, 0x7c, 0x32, 0x9f, 0xc4, 0xa7, - 0x91, 0x99, 0xb4, 0xbb, 0x33, 0x95, 0xc2, 0x5e, 0x9e, 0x2f, 0x27, 0xbf, 0xf9, 0x26, 0xe7, 0x04, - 0x9e, 0xcc, 0xa4, 0x58, 0xa3, 0xd2, 0xa5, 0xe1, 0x52, 0xbc, 0xf4, 0x8b, 0x51, 0xad, 0xa4, 0x91, - 0xa4, 0xef, 0xb3, 0xf4, 0x02, 0x20, 0x97, 0xcb, 0xa5, 0x14, 0x0c, 0x75, 0x4d, 0x28, 0x9c, 0xa0, - 0x52, 0xb9, 0xac, 0x90, 0x46, 0x49, 0x94, 0x1d, 0xb3, 0x5d, 0x49, 0xee, 0x43, 0x07, 0x95, 0x9a, - 0xe8, 0x05, 0x6d, 0x25, 0x51, 0x16, 0xb3, 0x6d, 0x95, 0xfe, 0x6d, 0x43, 0x3f, 0xf7, 0x02, 0x49, - 0x02, 0x3d, 0xf9, 0x4b, 0xa0, 0xfa, 0xa2, 0x51, 0x15, 0x63, 0x17, 0x13, 0x33, 0x1f, 0x91, 0x67, - 0x30, 0xf0, 0x15, 0x8a, 0xf1, 0x36, 0x72, 0x8f, 0x92, 0xc7, 0x00, 0x0a, 0x67, 0xeb, 0x89, 0x5e, - 0x7c, 0xae, 0x0d, 0x6d, 0x3b, 0x1f, 0x8f, 0x90, 0x17, 0x70, 0xcf, 0x7f, 0x63, 0x7a, 0x5d, 0x23, - 0x3d, 0x72, 0x5d, 0xff, 0x71, 0xab, 0xbf, 0x6a, 0x84, 0x8e, 0x1b, 0xfd, 0xa6, 0xb2, 0x17, 0x5e, - 0x28, 0xb9, 0xaa, 0x8b, 0x31, 0xed, 0xb8, 0x07, 0xbb, 0xd2, 0xde, 0x63, 0x25, 0x14, 0x96, 0x55, - 0x2e, 0x57, 0xc2, 0xd0, 0x13, 0x17, 0xec, 0x23, 0xf2, 0x14, 0x4e, 0x2b, 0x55, 0xce, 0xcd, 0x14, - 0x37, 0x66, 0xca, 0x97, 0x48, 0xbb, 0x49, 0x94, 0xb5, 0x59, 0x08, 0xc9, 0x10, 0xba, 0x5c, 0x5f, - 0x72, 0x21, 0xb0, 0xa2, 0x71, 0x12, 0x65, 0x5d, 0x76, 0x53, 0x93, 0x14, 0xfa, 0xa5, 0x31, 0xe5, - 0xec, 0x0a, 0xab, 0x42, 0xcc, 0x25, 0x05, 0xa7, 0x10, 0x30, 0x7b, 0x0a, 0xd7, 0x97, 0x8a, 0xaf, - 0x4b, 0x83, 0xf9, 0x55, 0x69, 0x68, 0xcf, 0x85, 0x84, 0xd0, 0xda, 0x3a, 0xf1, 0xb7, 0xc6, 0x7d, - 0x86, 0x7e, 0x63, 0xeb, 0x21, 0x7b, 0x16, 0xd7, 0x9f, 0xa4, 0x29, 0xc4, 0x07, 0x4b, 0xe9, 0xa9, - 0x8b, 0x09, 0x18, 0x19, 0x40, 0x0b, 0x37, 0x74, 0xe0, 0x2c, 0x5a, 0xb8, 0x49, 0xff, 0x44, 0x30, - 0x9c, 0xc8, 0x8a, 0xcf, 0xaf, 0xfd, 0x11, 0xbf, 0xe7, 0xf8, 0xa3, 0x62, 0xf8, 0x93, 0x5c, 0x40, - 0xb0, 0x4b, 0x6e, 0xd6, 0xbd, 0xf3, 0xe1, 0x28, 0x58, 0x3a, 0xff, 0x4d, 0x16, 0xf4, 0x93, 0x87, - 0x10, 0xcf, 0x6d, 0x96, 0x53, 0x6e, 0x39, 0xe5, 0x5b, 0x60, 0xc7, 0xdf, 0x0c, 0xe9, 0x23, 0xd7, - 0x76, 0xfc, 0xed, 0x2c, 0x66, 0x1e, 0x71, 0x8b, 0x56, 0xa3, 0xda, 0xed, 0xd0, 0xd1, 0x76, 0xd1, - 0x6e, 0x51, 0xfa, 0x15, 0xce, 0x0e, 0xda, 0xeb, 0x9a, 0xbc, 0x06, 0x98, 0xdd, 0xac, 0xfe, 0x56, - 0x9e, 0xee, 0xcb, 0xef, 0x9e, 0x33, 0xaf, 0xf7, 0xfc, 0x77, 0x78, 0x71, 0x22, 0xe0, 0xc1, 0x81, - 0x83, 0x48, 0x16, 0x06, 0x1e, 0xfe, 0x9a, 0xc3, 0xe7, 0x77, 0xec, 0xd4, 0xf5, 0xbb, 0x47, 0xdf, - 0xce, 0x46, 0xc1, 0xaf, 0xfd, 0xc6, 0x2f, 0xbe, 0x77, 0xdc, 0x8f, 0xfe, 0xea, 0x5f, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x8d, 0x8a, 0xf6, 0x60, 0x0b, 0x04, 0x00, 0x00, +var fileDescriptor_conversation_ac55165355a1b6e6 = []byte{ + // 494 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0x5f, 0x8b, 0x13, 0x31, + 0x14, 0xc5, 0x99, 0x6e, 0xb7, 0xdb, 0xde, 0x76, 0xab, 0x04, 0xd4, 0xd0, 0xf5, 0x4f, 0x19, 0x44, + 0x46, 0x1f, 0x2a, 0xac, 0x3e, 0x08, 0xc2, 0x82, 0x4e, 0x51, 0x06, 0xac, 0x2e, 0xa1, 0x8b, 0xe0, + 0xdb, 0xd8, 0xb9, 0xed, 0x06, 0x6c, 0x32, 0x26, 0x99, 0xda, 0x7d, 0xf1, 0x33, 0xf8, 0x81, 0xfc, + 0x70, 0x92, 0x4c, 0xbb, 0x4d, 0x56, 0x0b, 0x3e, 0xde, 0x5f, 0xee, 0x9c, 0x9c, 0x33, 0x3d, 0x1d, + 0x78, 0x34, 0x93, 0x62, 0x85, 0x4a, 0xe7, 0x86, 0x4b, 0xf1, 0xdc, 0x1f, 0x46, 0xa5, 0x92, 0x46, + 0x92, 0x9e, 0xcf, 0xe2, 0x33, 0x80, 0x54, 0x2e, 0x97, 0x52, 0x30, 0xd4, 0x25, 0xa1, 0x70, 0x84, + 0x4a, 0xa5, 0xb2, 0x40, 0x1a, 0x0d, 0xa3, 0xe4, 0x90, 0x6d, 0x47, 0x72, 0x17, 0x5a, 0xa8, 0xd4, + 0x44, 0x2f, 0x68, 0x63, 0x18, 0x25, 0x1d, 0xb6, 0x99, 0xe2, 0x5f, 0x4d, 0xe8, 0xa5, 0x9e, 0x20, + 0x19, 0x42, 0x57, 0xfe, 0x10, 0xa8, 0x2e, 0x34, 0xaa, 0x6c, 0xec, 0x64, 0x3a, 0xcc, 0x47, 0xe4, + 0x09, 0xf4, 0x7d, 0x0b, 0xd9, 0x78, 0x23, 0x79, 0x83, 0x92, 0x87, 0x00, 0x0a, 0x67, 0xab, 0x89, + 0x5e, 0x7c, 0x2a, 0x0d, 0x3d, 0x70, 0x7e, 0x3c, 0x42, 0x9e, 0xc1, 0x6d, 0xff, 0x89, 0xe9, 0x55, + 0x89, 0xb4, 0xe9, 0xb6, 0xfe, 0xe2, 0xd6, 0x7e, 0x55, 0x1b, 0x3a, 0xac, 0xed, 0xd7, 0x93, 0x0d, + 0xbc, 0x50, 0xb2, 0x2a, 0xb3, 0x31, 0x6d, 0xb9, 0x83, 0xed, 0x68, 0x73, 0x54, 0x42, 0x61, 0x5e, + 0xa4, 0xb2, 0x12, 0x86, 0x1e, 0x39, 0x61, 0x1f, 0x91, 0xc7, 0x70, 0x5c, 0xa8, 0x7c, 0x6e, 0xa6, + 0xb8, 0x36, 0x53, 0xbe, 0x44, 0xda, 0x1e, 0x46, 0xc9, 0x01, 0x0b, 0x21, 0x19, 0x40, 0x9b, 0xeb, + 0x73, 0x2e, 0x04, 0x16, 0xb4, 0x33, 0x8c, 0x92, 0x36, 0xbb, 0x9e, 0x49, 0x0c, 0xbd, 0xdc, 0x98, + 0x7c, 0x76, 0x89, 0x45, 0x26, 0xe6, 0x92, 0x82, 0xb3, 0x10, 0x30, 0x7b, 0x0b, 0xd7, 0xe7, 0x8a, + 0xaf, 0x72, 0x83, 0xe9, 0x65, 0x6e, 0x68, 0xd7, 0x89, 0x84, 0xd0, 0xba, 0x75, 0xc6, 0xdf, 0x18, + 0xf7, 0x1a, 0x7a, 0xb5, 0x5b, 0x0f, 0xd9, 0xbb, 0xb8, 0xfe, 0x28, 0x4d, 0x26, 0xde, 0x5b, 0x4a, + 0x8f, 0x9d, 0x4c, 0xc0, 0x48, 0x1f, 0x1a, 0xb8, 0xa6, 0x7d, 0xe7, 0xa2, 0x81, 0x6b, 0xf2, 0x12, + 0xee, 0x54, 0x65, 0x91, 0x1b, 0xbc, 0xd8, 0xc5, 0x76, 0x49, 0x6f, 0xb9, 0xa4, 0xff, 0x3e, 0x8c, + 0x7f, 0x47, 0x30, 0x98, 0xc8, 0x82, 0xcf, 0xaf, 0xfc, 0x62, 0xbc, 0xe3, 0xf8, 0xad, 0x60, 0xf8, + 0x9d, 0x9c, 0x41, 0xd0, 0x40, 0xd7, 0x90, 0xee, 0xe9, 0x60, 0x14, 0x54, 0xd5, 0x7f, 0x92, 0x05, + 0xfb, 0xe4, 0x3e, 0x74, 0xe6, 0x56, 0xcb, 0x05, 0x6d, 0xb8, 0xa0, 0x3b, 0x60, 0x4b, 0x53, 0xff, + 0xb4, 0x1f, 0xb8, 0xb6, 0xa5, 0x39, 0x48, 0x3a, 0xcc, 0x23, 0xae, 0x9e, 0x25, 0xaa, 0x6d, 0xf3, + 0x9a, 0x9b, 0x7a, 0xee, 0x50, 0xfc, 0x19, 0x4e, 0xf6, 0xba, 0xd7, 0x25, 0x79, 0x05, 0x30, 0xbb, + 0xfe, 0xc3, 0x6c, 0xcc, 0xd3, 0x9b, 0xe6, 0xb7, 0xe7, 0xcc, 0xdb, 0x3d, 0xfd, 0x19, 0x06, 0x27, + 0x02, 0xee, 0xed, 0xb9, 0x88, 0x24, 0xa1, 0xe0, 0xfe, 0xb7, 0x39, 0x78, 0xfa, 0x9f, 0x9b, 0xba, + 0x7c, 0xfb, 0xe0, 0xcb, 0xc9, 0x28, 0xf8, 0x20, 0xbc, 0xf6, 0x87, 0xaf, 0x2d, 0xf7, 0x79, 0x78, + 0xf1, 0x27, 0x00, 0x00, 0xff, 0xff, 0x12, 0x56, 0xaa, 0x7b, 0x41, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/conversation/conversation.proto b/pkg/proto/conversation/conversation.proto index 5ae5f1142..48973fdc1 100644 --- a/pkg/proto/conversation/conversation.proto +++ b/pkg/proto/conversation/conversation.proto @@ -21,6 +21,8 @@ message Conversation{ int32 groupAtType = 12; bool isNotInGroup = 13; string ex = 14; + int64 updateUnreadCountTime = 15; + } message ModifyConversationFieldReq{ Conversation conversation = 1; diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index c77d3e4af..dc064a136 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,4548 +1,2737 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc v3.15.5 // source: user/user.proto -package user +package user // import "./user" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" +import conversation "Open_IM/pkg/proto/conversation" +import sdk_ws "Open_IM/pkg/proto/sdk_ws" import ( - sdk_ws "Open_IM/pkg/proto/sdk_ws" - context "context" + context "golang.org/x/net/context" grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" ) -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` + 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 (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{0} + return fileDescriptor_user_862a17c60dc96c16, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) } -func (x *CommonResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *CommonResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } type DeleteUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList,proto3" json:"DeleteUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteUsersReq) Reset() { - *x = DeleteUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUsersReq) ProtoMessage() {} - -func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUsersReq.ProtoReflect.Descriptor instead. +func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } +func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{1} + return fileDescriptor_user_862a17c60dc96c16, []int{1} +} +func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) +} +func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) +} +func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersReq.Merge(dst, src) +} +func (m *DeleteUsersReq) XXX_Size() int { + return xxx_messageInfo_DeleteUsersReq.Size(m) +} +func (m *DeleteUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) } -func (x *DeleteUsersReq) GetDeleteUserIDList() []string { - if x != nil { - return x.DeleteUserIDList +var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo + +func (m *DeleteUsersReq) GetDeleteUserIDList() []string { + if m != nil { + return m.DeleteUserIDList } return nil } -func (x *DeleteUsersReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *DeleteUsersReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *DeleteUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *DeleteUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type DeleteUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList,proto3" json:"FailedUserIDList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteUsersResp) Reset() { - *x = DeleteUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUsersResp) ProtoMessage() {} - -func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUsersResp.ProtoReflect.Descriptor instead. +func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } +func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{2} + return fileDescriptor_user_862a17c60dc96c16, []int{2} +} +func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) +} +func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) +} +func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersResp.Merge(dst, src) +} +func (m *DeleteUsersResp) XXX_Size() int { + return xxx_messageInfo_DeleteUsersResp.Size(m) +} +func (m *DeleteUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) } -func (x *DeleteUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo + +func (m *DeleteUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *DeleteUsersResp) GetFailedUserIDList() []string { - if x != nil { - return x.FailedUserIDList +func (m *DeleteUsersResp) GetFailedUserIDList() []string { + if m != nil { + return m.FailedUserIDList } return nil } type GetAllUserIDReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetAllUserIDReq) Reset() { - *x = GetAllUserIDReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllUserIDReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllUserIDReq) ProtoMessage() {} - -func (x *GetAllUserIDReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllUserIDReq.ProtoReflect.Descriptor instead. +func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } +func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{3} + return fileDescriptor_user_862a17c60dc96c16, []int{3} +} +func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) +} +func (m *GetAllUserIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDReq.Marshal(b, m, deterministic) +} +func (dst *GetAllUserIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDReq.Merge(dst, src) +} +func (m *GetAllUserIDReq) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDReq.Size(m) +} +func (m *GetAllUserIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDReq.DiscardUnknown(m) } -func (x *GetAllUserIDReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +var xxx_messageInfo_GetAllUserIDReq proto.InternalMessageInfo + +func (m *GetAllUserIDReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *GetAllUserIDReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetAllUserIDReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetAllUserIDResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList,proto3" json:"UserIDList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetAllUserIDResp) Reset() { - *x = GetAllUserIDResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllUserIDResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllUserIDResp) ProtoMessage() {} - -func (x *GetAllUserIDResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllUserIDResp.ProtoReflect.Descriptor instead. +func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } +func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{4} + return fileDescriptor_user_862a17c60dc96c16, []int{4} +} +func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) +} +func (m *GetAllUserIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDResp.Marshal(b, m, deterministic) +} +func (dst *GetAllUserIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDResp.Merge(dst, src) +} +func (m *GetAllUserIDResp) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDResp.Size(m) +} +func (m *GetAllUserIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDResp.DiscardUnknown(m) } -func (x *GetAllUserIDResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_GetAllUserIDResp proto.InternalMessageInfo + +func (m *GetAllUserIDResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *GetAllUserIDResp) GetUserIDList() []string { - if x != nil { - return x.UserIDList +func (m *GetAllUserIDResp) GetUserIDList() []string { + if m != nil { + return m.UserIDList } return nil } type AccountCheckReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList,proto3" json:"CheckUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList" json:"CheckUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckReq) Reset() { - *x = AccountCheckReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckReq) ProtoMessage() {} - -func (x *AccountCheckReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AccountCheckReq.ProtoReflect.Descriptor instead. +func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } +func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } +func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{5} + return fileDescriptor_user_862a17c60dc96c16, []int{5} +} +func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) +} +func (m *AccountCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckReq.Marshal(b, m, deterministic) +} +func (dst *AccountCheckReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckReq.Merge(dst, src) +} +func (m *AccountCheckReq) XXX_Size() int { + return xxx_messageInfo_AccountCheckReq.Size(m) +} +func (m *AccountCheckReq) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckReq.DiscardUnknown(m) } -func (x *AccountCheckReq) GetCheckUserIDList() []string { - if x != nil { - return x.CheckUserIDList +var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo + +func (m *AccountCheckReq) GetCheckUserIDList() []string { + if m != nil { + return m.CheckUserIDList } return nil } -func (x *AccountCheckReq) GetOpUserID() string { - if x != nil { - return x.OpUserID +func (m *AccountCheckReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } return "" } -func (x *AccountCheckReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *AccountCheckReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type AccountCheckResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList,proto3" json:"ResultList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList" json:"ResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckResp) Reset() { - *x = AccountCheckResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckResp) ProtoMessage() {} - -func (x *AccountCheckResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AccountCheckResp.ProtoReflect.Descriptor instead. +func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } +func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{6} + return fileDescriptor_user_862a17c60dc96c16, []int{6} +} +func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) +} +func (m *AccountCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp.Merge(dst, src) +} +func (m *AccountCheckResp) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp.Size(m) +} +func (m *AccountCheckResp) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp.DiscardUnknown(m) } -func (x *AccountCheckResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_AccountCheckResp proto.InternalMessageInfo + +func (m *AccountCheckResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { - if x != nil { - return x.ResultList - } - return nil -} - -type GetUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUserInfoReq) Reset() { - *x = GetUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserInfoReq) ProtoMessage() {} - -func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. -func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{7} -} - -func (x *GetUserInfoReq) GetUserIDList() []string { - if x != nil { - return x.UserIDList - } - return nil -} - -func (x *GetUserInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *GetUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetUserInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList,proto3" json:"UserInfoList,omitempty"` -} - -func (x *GetUserInfoResp) Reset() { - *x = GetUserInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserInfoResp) ProtoMessage() {} - -func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. -func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{8} -} - -func (x *GetUserInfoResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { - if x != nil { - return x.UserInfoList - } - return nil -} - -type UpdateUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo,proto3" json:"UserInfo,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` -} - -func (x *UpdateUserInfoReq) Reset() { - *x = UpdateUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserInfoReq) ProtoMessage() {} - -func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateUserInfoReq.ProtoReflect.Descriptor instead. -func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{9} -} - -func (x *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { - if x != nil { - return x.UserInfo - } - return nil -} - -func (x *UpdateUserInfoReq) GetOpUserID() string { - if x != nil { - return x.OpUserID - } - return "" -} - -func (x *UpdateUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type UpdateUserInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *UpdateUserInfoResp) Reset() { - *x = UpdateUserInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateUserInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateUserInfoResp) ProtoMessage() {} - -func (x *UpdateUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateUserInfoResp.ProtoReflect.Descriptor instead. -func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{10} -} - -func (x *UpdateUserInfoResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type SetGlobalRecvMessageOptReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"` -} - -func (x *SetGlobalRecvMessageOptReq) Reset() { - *x = SetGlobalRecvMessageOptReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGlobalRecvMessageOptReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} - -func (x *SetGlobalRecvMessageOptReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetGlobalRecvMessageOptReq.ProtoReflect.Descriptor instead. -func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{11} -} - -func (x *SetGlobalRecvMessageOptReq) GetUserID() string { - if x != nil { - return x.UserID - } - return "" -} - -func (x *SetGlobalRecvMessageOptReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { - if x != nil { - return x.GlobalRecvMsgOpt - } - return 0 -} - -type SetGlobalRecvMessageOptResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetGlobalRecvMessageOptResp) Reset() { - *x = SetGlobalRecvMessageOptResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGlobalRecvMessageOptResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} - -func (x *SetGlobalRecvMessageOptResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetGlobalRecvMessageOptResp.ProtoReflect.Descriptor instead. -func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{12} -} - -func (x *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type Conversation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` - ConversationType int32 `protobuf:"varint,4,opt,name=ConversationType,proto3" json:"ConversationType,omitempty"` - UserID string `protobuf:"bytes,5,opt,name=UserID,proto3" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,6,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - UnreadCount int32 `protobuf:"varint,7,opt,name=UnreadCount,proto3" json:"UnreadCount,omitempty"` - DraftTextTime int64 `protobuf:"varint,8,opt,name=DraftTextTime,proto3" json:"DraftTextTime,omitempty"` - IsPinned bool `protobuf:"varint,9,opt,name=IsPinned,proto3" json:"IsPinned,omitempty"` - AttachedInfo string `protobuf:"bytes,10,opt,name=AttachedInfo,proto3" json:"AttachedInfo,omitempty"` - IsPrivateChat bool `protobuf:"varint,11,opt,name=IsPrivateChat,proto3" json:"IsPrivateChat,omitempty"` - GroupAtType int32 `protobuf:"varint,12,opt,name=GroupAtType,proto3" json:"GroupAtType,omitempty"` - IsNotInGroup bool `protobuf:"varint,13,opt,name=IsNotInGroup,proto3" json:"IsNotInGroup,omitempty"` - Ex string `protobuf:"bytes,14,opt,name=Ex,proto3" json:"Ex,omitempty"` -} - -func (x *Conversation) Reset() { - *x = Conversation{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Conversation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Conversation) ProtoMessage() {} - -func (x *Conversation) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Conversation.ProtoReflect.Descriptor instead. -func (*Conversation) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{13} -} - -func (x *Conversation) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *Conversation) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *Conversation) GetRecvMsgOpt() int32 { - if x != nil { - return x.RecvMsgOpt - } - return 0 -} - -func (x *Conversation) GetConversationType() int32 { - if x != nil { - return x.ConversationType - } - return 0 -} - -func (x *Conversation) GetUserID() string { - if x != nil { - return x.UserID - } - return "" -} - -func (x *Conversation) GetGroupID() string { - if x != nil { - return x.GroupID - } - return "" -} - -func (x *Conversation) GetUnreadCount() int32 { - if x != nil { - return x.UnreadCount - } - return 0 -} - -func (x *Conversation) GetDraftTextTime() int64 { - if x != nil { - return x.DraftTextTime - } - return 0 -} - -func (x *Conversation) GetIsPinned() bool { - if x != nil { - return x.IsPinned - } - return false -} - -func (x *Conversation) GetAttachedInfo() string { - if x != nil { - return x.AttachedInfo - } - return "" -} - -func (x *Conversation) GetIsPrivateChat() bool { - if x != nil { - return x.IsPrivateChat - } - return false -} - -func (x *Conversation) GetGroupAtType() int32 { - if x != nil { - return x.GroupAtType - } - return 0 -} - -func (x *Conversation) GetIsNotInGroup() bool { - if x != nil { - return x.IsNotInGroup - } - return false -} - -func (x *Conversation) GetEx() string { - if x != nil { - return x.Ex - } - return "" -} - -type SetConversationReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Conversation *Conversation `protobuf:"bytes,1,opt,name=Conversation,proto3" json:"Conversation,omitempty"` - NotificationType int32 `protobuf:"varint,2,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *SetConversationReq) Reset() { - *x = SetConversationReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetConversationReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetConversationReq) ProtoMessage() {} - -func (x *SetConversationReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetConversationReq.ProtoReflect.Descriptor instead. -func (*SetConversationReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{14} -} - -func (x *SetConversationReq) GetConversation() *Conversation { - if x != nil { - return x.Conversation - } - return nil -} - -func (x *SetConversationReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *SetConversationReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type SetConversationResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetConversationResp) Reset() { - *x = SetConversationResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetConversationResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetConversationResp) ProtoMessage() {} - -func (x *SetConversationResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetConversationResp.ProtoReflect.Descriptor instead. -func (*SetConversationResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{15} -} - -func (x *SetConversationResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type SetRecvMsgOptReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationID string `protobuf:"bytes,2,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt,proto3" json:"RecvMsgOpt,omitempty"` - NotificationType int32 `protobuf:"varint,4,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *SetRecvMsgOptReq) Reset() { - *x = SetRecvMsgOptReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetRecvMsgOptReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetRecvMsgOptReq) ProtoMessage() {} - -func (x *SetRecvMsgOptReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetRecvMsgOptReq.ProtoReflect.Descriptor instead. -func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{16} -} - -func (x *SetRecvMsgOptReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *SetRecvMsgOptReq) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { - if x != nil { - return x.RecvMsgOpt - } - return 0 -} - -func (x *SetRecvMsgOptReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *SetRecvMsgOptReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type SetRecvMsgOptResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *SetRecvMsgOptResp) Reset() { - *x = SetRecvMsgOptResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetRecvMsgOptResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetRecvMsgOptResp) ProtoMessage() {} - -func (x *SetRecvMsgOptResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetRecvMsgOptResp.ProtoReflect.Descriptor instead. -func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{17} -} - -func (x *SetRecvMsgOptResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetConversationReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ConversationID string `protobuf:"bytes,1,opt,name=ConversationID,proto3" json:"ConversationID,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetConversationReq) Reset() { - *x = GetConversationReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationReq) ProtoMessage() {} - -func (x *GetConversationReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetConversationReq.ProtoReflect.Descriptor instead. -func (*GetConversationReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{18} -} - -func (x *GetConversationReq) GetConversationID() string { - if x != nil { - return x.ConversationID - } - return "" -} - -func (x *GetConversationReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetConversationReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetConversationResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversation *Conversation `protobuf:"bytes,2,opt,name=Conversation,proto3" json:"Conversation,omitempty"` -} - -func (x *GetConversationResp) Reset() { - *x = GetConversationResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationResp) ProtoMessage() {} - -func (x *GetConversationResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetConversationResp.ProtoReflect.Descriptor instead. -func (*GetConversationResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{19} -} - -func (x *GetConversationResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetConversationResp) GetConversation() *Conversation { - if x != nil { - return x.Conversation - } - return nil -} - -type GetConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs,proto3" json:"ConversationIDs,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetConversationsReq) Reset() { - *x = GetConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationsReq) ProtoMessage() {} - -func (x *GetConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetConversationsReq.ProtoReflect.Descriptor instead. -func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{20} -} - -func (x *GetConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetConversationsReq) GetConversationIDs() []string { - if x != nil { - return x.ConversationIDs - } - return nil -} - -func (x *GetConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` -} - -func (x *GetConversationsResp) Reset() { - *x = GetConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetConversationsResp) ProtoMessage() {} - -func (x *GetConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetConversationsResp.ProtoReflect.Descriptor instead. -func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{21} -} - -func (x *GetConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetConversationsResp) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -type GetAllConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetAllConversationsReq) Reset() { - *x = GetAllConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllConversationsReq) ProtoMessage() {} - -func (x *GetAllConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllConversationsReq.ProtoReflect.Descriptor instead. -func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{22} -} - -func (x *GetAllConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *GetAllConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetAllConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Conversations []*Conversation `protobuf:"bytes,2,rep,name=Conversations,proto3" json:"Conversations,omitempty"` -} - -func (x *GetAllConversationsResp) Reset() { - *x = GetAllConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAllConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAllConversationsResp) ProtoMessage() {} - -func (x *GetAllConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetAllConversationsResp.ProtoReflect.Descriptor instead. -func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{23} -} - -func (x *GetAllConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetAllConversationsResp) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -type BatchSetConversationsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Conversations []*Conversation `protobuf:"bytes,1,rep,name=Conversations,proto3" json:"Conversations,omitempty"` - OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` - NotificationType int32 `protobuf:"varint,3,opt,name=notificationType,proto3" json:"notificationType,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *BatchSetConversationsReq) Reset() { - *x = BatchSetConversationsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchSetConversationsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchSetConversationsReq) ProtoMessage() {} - -func (x *BatchSetConversationsReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchSetConversationsReq.ProtoReflect.Descriptor instead. -func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{24} -} - -func (x *BatchSetConversationsReq) GetConversations() []*Conversation { - if x != nil { - return x.Conversations - } - return nil -} - -func (x *BatchSetConversationsReq) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID - } - return "" -} - -func (x *BatchSetConversationsReq) GetNotificationType() int32 { - if x != nil { - return x.NotificationType - } - return 0 -} - -func (x *BatchSetConversationsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type BatchSetConversationsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - Success []string `protobuf:"bytes,2,rep,name=Success,proto3" json:"Success,omitempty"` - Failed []string `protobuf:"bytes,3,rep,name=Failed,proto3" json:"Failed,omitempty"` -} - -func (x *BatchSetConversationsResp) Reset() { - *x = BatchSetConversationsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BatchSetConversationsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BatchSetConversationsResp) ProtoMessage() {} - -func (x *BatchSetConversationsResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BatchSetConversationsResp.ProtoReflect.Descriptor instead. -func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{25} -} - -func (x *BatchSetConversationsResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *BatchSetConversationsResp) GetSuccess() []string { - if x != nil { - return x.Success - } - return nil -} - -func (x *BatchSetConversationsResp) GetFailed() []string { - if x != nil { - return x.Failed - } - return nil -} - -type ResignUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *ResignUserReq) Reset() { - *x = ResignUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResignUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResignUserReq) ProtoMessage() {} - -func (x *ResignUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResignUserReq.ProtoReflect.Descriptor instead. -func (*ResignUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{26} -} - -func (x *ResignUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *ResignUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type ResignUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` -} - -func (x *ResignUserResp) Reset() { - *x = ResignUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResignUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResignUserResp) ProtoMessage() {} - -func (x *ResignUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResignUserResp.ProtoReflect.Descriptor instead. -func (*ResignUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{27} -} - -func (x *ResignUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetUserByIdReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUserByIdReq) Reset() { - *x = GetUserByIdReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserByIdReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserByIdReq) ProtoMessage() {} - -func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserByIdReq.ProtoReflect.Descriptor instead. -func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{28} -} - -func (x *GetUserByIdReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *GetUserByIdReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type User struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto,proto3" json:"ProfilePhoto,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - Email string `protobuf:"bytes,6,opt,name=Email,proto3" json:"Email,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth,proto3" json:"Birth,omitempty"` - CreateIp string `protobuf:"bytes,8,opt,name=CreateIp,proto3" json:"CreateIp,omitempty"` - LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime,proto3" json:"LastLoginTime,omitempty"` - LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp,proto3" json:"LastLoginIp,omitempty"` - LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes,proto3" json:"LoginTimes,omitempty"` - Gender int32 `protobuf:"varint,12,opt,name=Gender,proto3" json:"Gender,omitempty"` - LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit,proto3" json:"LoginLimit,omitempty"` - IsBlock bool `protobuf:"varint,14,opt,name=IsBlock,proto3" json:"IsBlock,omitempty"` -} - -func (x *User) Reset() { - *x = User{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *User) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*User) ProtoMessage() {} - -func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use User.ProtoReflect.Descriptor instead. -func (*User) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{29} -} - -func (x *User) GetProfilePhoto() string { - if x != nil { - return x.ProfilePhoto - } - return "" -} - -func (x *User) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *User) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *User) GetCreateTime() string { - if x != nil { - return x.CreateTime - } - return "" -} - -func (x *User) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *User) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *User) GetBirth() string { - if x != nil { - return x.Birth - } - return "" -} - -func (x *User) GetCreateIp() string { - if x != nil { - return x.CreateIp - } - return "" -} - -func (x *User) GetLastLoginTime() string { - if x != nil { - return x.LastLoginTime - } - return "" -} - -func (x *User) GetLastLoginIp() string { - if x != nil { - return x.LastLoginIp - } - return "" -} - -func (x *User) GetLoginTimes() int32 { - if x != nil { - return x.LoginTimes - } - return 0 -} - -func (x *User) GetGender() int32 { - if x != nil { - return x.Gender - } - return 0 -} - -func (x *User) GetLoginLimit() int32 { - if x != nil { - return x.LoginLimit - } - return 0 -} - -func (x *User) GetIsBlock() bool { - if x != nil { - return x.IsBlock - } - return false -} - -type GetUserByIdResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` -} - -func (x *GetUserByIdResp) Reset() { - *x = GetUserByIdResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserByIdResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserByIdResp) ProtoMessage() {} - -func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserByIdResp.ProtoReflect.Descriptor instead. -func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{30} -} - -func (x *GetUserByIdResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUserByIdResp) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -type GetUsersByNameReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUsersByNameReq) Reset() { - *x = GetUsersByNameReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersByNameReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersByNameReq) ProtoMessage() {} - -func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersByNameReq.ProtoReflect.Descriptor instead. -func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{31} -} - -func (x *GetUsersByNameReq) GetUserName() string { - if x != nil { - return x.UserName - } - return "" -} - -func (x *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersByNameReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetUsersByNameResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,3,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetUsersByNameResp) Reset() { - *x = GetUsersByNameResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersByNameResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersByNameResp) ProtoMessage() {} - -func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersByNameResp.ProtoReflect.Descriptor instead. -func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{32} -} - -func (x *GetUsersByNameResp) GetUsers() []*User { - if x != nil { - return x.Users - } - return nil -} - -func (x *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersByNameResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type AlterUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` - OpUserId string `protobuf:"bytes,6,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *AlterUserReq) Reset() { - *x = AlterUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AlterUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AlterUserReq) ProtoMessage() {} - -func (x *AlterUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. -func (*AlterUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{33} -} - -func (x *AlterUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *AlterUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *AlterUserReq) GetPhoneNumber() int64 { - if x != nil { - return x.PhoneNumber - } - return 0 -} - -func (x *AlterUserReq) GetNickname() string { - if x != nil { - return x.Nickname - } - return "" -} - -func (x *AlterUserReq) GetEmail() string { - if x != nil { - return x.Email - } - return "" -} - -func (x *AlterUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type AlterUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *AlterUserResp) Reset() { - *x = AlterUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AlterUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AlterUserResp) ProtoMessage() {} - -func (x *AlterUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. -func (*AlterUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} -} - -func (x *AlterUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` -} - -func (x *GetUsersReq) Reset() { - *x = GetUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersReq) ProtoMessage() {} - -func (x *GetUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. -func (*GetUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{35} -} - -func (x *GetUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersReq) GetUserName() string { - if x != nil { - return x.UserName - } - return "" -} - -type GetUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetUsersResp) Reset() { - *x = GetUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUsersResp) ProtoMessage() {} - -func (x *GetUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. -func (*GetUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{36} -} - -func (x *GetUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetUsersResp) GetUser() []*User { - if x != nil { - return x.User - } - return nil -} - -func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetUsersResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type AddUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - OpUserId string `protobuf:"bytes,5,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *AddUserReq) Reset() { - *x = AddUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddUserReq) ProtoMessage() {} - -func (x *AddUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. -func (*AddUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{37} -} - -func (x *AddUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *AddUserReq) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber - } - return "" -} - -func (x *AddUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *AddUserReq) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *AddUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type AddUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *AddUserResp) Reset() { - *x = AddUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AddUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddUserResp) ProtoMessage() {} - -func (x *AddUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. -func (*AddUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{38} -} - -func (x *AddUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type BlockUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *BlockUserReq) Reset() { - *x = BlockUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUserReq) ProtoMessage() {} - -func (x *BlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. -func (*BlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{39} -} - -func (x *BlockUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *BlockUserReq) GetEndDisableTime() string { - if x != nil { - return x.EndDisableTime - } - return "" -} - -func (x *BlockUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *BlockUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type BlockUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *BlockUserResp) Reset() { - *x = BlockUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUserResp) ProtoMessage() {} - -func (x *BlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. -func (*BlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{40} -} - -func (x *BlockUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type UnBlockUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *UnBlockUserReq) Reset() { - *x = UnBlockUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnBlockUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnBlockUserReq) ProtoMessage() {} - -func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. -func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{41} -} - -func (x *UnBlockUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *UnBlockUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *UnBlockUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type UnBlockUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *UnBlockUserResp) Reset() { - *x = UnBlockUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnBlockUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnBlockUserResp) ProtoMessage() {} - -func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. -func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{42} -} - -func (x *UnBlockUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -type GetBlockUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` -} - -func (x *GetBlockUsersReq) Reset() { - *x = GetBlockUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUsersReq) ProtoMessage() {} - -func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. -func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{43} -} - -func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetBlockUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *GetBlockUsersReq) GetBlockUserNum() int32 { - if x != nil { - return x.BlockUserNum - } - return 0 -} - -type BlockUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User *User `protobuf:"bytes,1,opt,name=User,proto3" json:"User,omitempty"` - BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime,proto3" json:"BeginDisableTime,omitempty"` - EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` -} - -func (x *BlockUser) Reset() { - *x = BlockUser{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BlockUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BlockUser) ProtoMessage() {} - -func (x *BlockUser) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. -func (*BlockUser) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{44} -} - -func (x *BlockUser) GetUser() *User { - if x != nil { - return x.User - } - return nil -} - -func (x *BlockUser) GetBeginDisableTime() string { - if x != nil { - return x.BeginDisableTime - } - return "" -} - -func (x *BlockUser) GetEndDisableTime() string { - if x != nil { - return x.EndDisableTime - } - return "" -} - -type GetBlockUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` -} - -func (x *GetBlockUsersResp) Reset() { - *x = GetBlockUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUsersResp) ProtoMessage() {} - -func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. -func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{45} -} - -func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp - } - return nil -} - -func (x *GetBlockUsersResp) GetBlockUsers() []*BlockUser { - if x != nil { - return x.BlockUsers - } - return nil -} - -func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetBlockUsersResp) GetUserNums() int32 { - if x != nil { - return x.UserNums - } - return 0 -} - -type GetBlockUserByIdReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetBlockUserByIdReq) Reset() { - *x = GetBlockUserByIdReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUserByIdReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUserByIdReq) ProtoMessage() {} - -func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. -func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{46} -} - -func (x *GetBlockUserByIdReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *GetBlockUserByIdReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetBlockUserByIdResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` -} - -func (x *GetBlockUserByIdResp) Reset() { - *x = GetBlockUserByIdResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetBlockUserByIdResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetBlockUserByIdResp) ProtoMessage() {} - -func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetBlockUserByIdResp.ProtoReflect.Descriptor instead. -func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{47} -} - -func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { - if x != nil { - return x.BlockUser - } - return nil -} - -type DeleteUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` -} - -func (x *DeleteUserReq) Reset() { - *x = DeleteUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserReq) ProtoMessage() {} - -func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUserReq.ProtoReflect.Descriptor instead. -func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{48} -} - -func (x *DeleteUserReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *DeleteUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *DeleteUserReq) GetOpUserId() string { - if x != nil { - return x.OpUserId - } - return "" -} - -type DeleteUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` -} - -func (x *DeleteUserResp) Reset() { - *x = DeleteUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DeleteUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeleteUserResp) ProtoMessage() {} - -func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DeleteUserResp.ProtoReflect.Descriptor instead. -func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{49} -} - -func (x *DeleteUserResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +func (m *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { + if m != nil { + return m.ResultList } return nil } type AccountCheckResp_SingleUserStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus,proto3" json:"accountStatus,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus" json:"accountStatus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *AccountCheckResp_SingleUserStatus) Reset() { - *x = AccountCheckResp_SingleUserStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AccountCheckResp_SingleUserStatus) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} - -func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use AccountCheckResp_SingleUserStatus.ProtoReflect.Descriptor instead. +func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckResp_SingleUserStatus{} } +func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{6, 0} + return fileDescriptor_user_862a17c60dc96c16, []int{6, 0} +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp_SingleUserStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.Merge(dst, src) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Size(m) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.DiscardUnknown(m) } -func (x *AccountCheckResp_SingleUserStatus) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_AccountCheckResp_SingleUserStatus proto.InternalMessageInfo + +func (m *AccountCheckResp_SingleUserStatus) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { - if x != nil { - return x.AccountStatus +func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { + if m != nil { + return m.AccountStatus } return "" } -var File_user_user_proto protoreflect.FileDescriptor - -var file_user_user_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, - 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, - 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x0e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x64, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, - 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, - 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, - 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x47, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x50, 0x0a, 0x10, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x82, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, - 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x22, 0x4f, 0x0a, 0x1b, - 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xda, 0x03, - 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, - 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, - 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x64, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x55, 0x6e, 0x72, - 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x72, 0x61, 0x66, - 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x44, 0x72, 0x61, 0x66, 0x74, 0x54, 0x65, 0x78, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x49, 0x73, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, - 0x0a, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x4e, 0x6f, 0x74, 0x49, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x73, - 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x45, 0x78, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x22, 0x9a, 0x01, 0x0a, 0x12, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x47, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0xca, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, - 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, - 0x11, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x80, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x82, - 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x7f, 0x0a, 0x19, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0e, - 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa2, 0x03, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x99, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xb8, 0x01, 0x0a, - 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, - 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, - 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, - 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x66, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, - 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x32, 0xf7, 0x0b, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x17, - 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x20, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, - 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, - 0x15, 0x42, 0x61, 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x40, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, - 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, - 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, - 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, - 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, +type GetUserInfoReq struct { + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -var ( - file_user_user_proto_rawDescOnce sync.Once - file_user_user_proto_rawDescData = file_user_user_proto_rawDesc -) - -func file_user_user_proto_rawDescGZIP() []byte { - file_user_user_proto_rawDescOnce.Do(func() { - file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) - }) - return file_user_user_proto_rawDescData +func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } +func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoReq) ProtoMessage() {} +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{7} +} +func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) +} +func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoReq.Merge(dst, src) +} +func (m *GetUserInfoReq) XXX_Size() int { + return xxx_messageInfo_GetUserInfoReq.Size(m) +} +func (m *GetUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 51) -var file_user_user_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: user.CommonResp - (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq - (*DeleteUsersResp)(nil), // 2: user.DeleteUsersResp - (*GetAllUserIDReq)(nil), // 3: user.GetAllUserIDReq - (*GetAllUserIDResp)(nil), // 4: user.GetAllUserIDResp - (*AccountCheckReq)(nil), // 5: user.AccountCheckReq - (*AccountCheckResp)(nil), // 6: user.AccountCheckResp - (*GetUserInfoReq)(nil), // 7: user.GetUserInfoReq - (*GetUserInfoResp)(nil), // 8: user.GetUserInfoResp - (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq - (*UpdateUserInfoResp)(nil), // 10: user.UpdateUserInfoResp - (*SetGlobalRecvMessageOptReq)(nil), // 11: user.SetGlobalRecvMessageOptReq - (*SetGlobalRecvMessageOptResp)(nil), // 12: user.SetGlobalRecvMessageOptResp - (*Conversation)(nil), // 13: user.Conversation - (*SetConversationReq)(nil), // 14: user.SetConversationReq - (*SetConversationResp)(nil), // 15: user.SetConversationResp - (*SetRecvMsgOptReq)(nil), // 16: user.SetRecvMsgOptReq - (*SetRecvMsgOptResp)(nil), // 17: user.SetRecvMsgOptResp - (*GetConversationReq)(nil), // 18: user.GetConversationReq - (*GetConversationResp)(nil), // 19: user.GetConversationResp - (*GetConversationsReq)(nil), // 20: user.GetConversationsReq - (*GetConversationsResp)(nil), // 21: user.GetConversationsResp - (*GetAllConversationsReq)(nil), // 22: user.GetAllConversationsReq - (*GetAllConversationsResp)(nil), // 23: user.GetAllConversationsResp - (*BatchSetConversationsReq)(nil), // 24: user.BatchSetConversationsReq - (*BatchSetConversationsResp)(nil), // 25: user.BatchSetConversationsResp - (*ResignUserReq)(nil), // 26: user.ResignUserReq - (*ResignUserResp)(nil), // 27: user.ResignUserResp - (*GetUserByIdReq)(nil), // 28: user.GetUserByIdReq - (*User)(nil), // 29: user.User - (*GetUserByIdResp)(nil), // 30: user.GetUserByIdResp - (*GetUsersByNameReq)(nil), // 31: user.GetUsersByNameReq - (*GetUsersByNameResp)(nil), // 32: user.GetUsersByNameResp - (*AlterUserReq)(nil), // 33: user.AlterUserReq - (*AlterUserResp)(nil), // 34: user.AlterUserResp - (*GetUsersReq)(nil), // 35: user.GetUsersReq - (*GetUsersResp)(nil), // 36: user.GetUsersResp - (*AddUserReq)(nil), // 37: user.AddUserReq - (*AddUserResp)(nil), // 38: user.AddUserResp - (*BlockUserReq)(nil), // 39: user.BlockUserReq - (*BlockUserResp)(nil), // 40: user.BlockUserResp - (*UnBlockUserReq)(nil), // 41: user.UnBlockUserReq - (*UnBlockUserResp)(nil), // 42: user.UnBlockUserResp - (*GetBlockUsersReq)(nil), // 43: user.GetBlockUsersReq - (*BlockUser)(nil), // 44: user.BlockUser - (*GetBlockUsersResp)(nil), // 45: user.GetBlockUsersResp - (*GetBlockUserByIdReq)(nil), // 46: user.GetBlockUserByIdReq - (*GetBlockUserByIdResp)(nil), // 47: user.GetBlockUserByIdResp - (*DeleteUserReq)(nil), // 48: user.DeleteUserReq - (*DeleteUserResp)(nil), // 49: user.DeleteUserResp - (*AccountCheckResp_SingleUserStatus)(nil), // 50: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 51: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 52: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 53: server_api_params.ResponsePagination -} -var file_user_user_proto_depIdxs = []int32{ - 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp - 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp - 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 50, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus - 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 51, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 51, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo - 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp - 0, // 8: user.SetGlobalRecvMessageOptResp.commonResp:type_name -> user.CommonResp - 13, // 9: user.SetConversationReq.Conversation:type_name -> user.Conversation - 0, // 10: user.SetConversationResp.commonResp:type_name -> user.CommonResp - 0, // 11: user.SetRecvMsgOptResp.commonResp:type_name -> user.CommonResp - 0, // 12: user.GetConversationResp.commonResp:type_name -> user.CommonResp - 13, // 13: user.GetConversationResp.Conversation:type_name -> user.Conversation - 0, // 14: user.GetConversationsResp.commonResp:type_name -> user.CommonResp - 13, // 15: user.GetConversationsResp.Conversations:type_name -> user.Conversation - 0, // 16: user.GetAllConversationsResp.commonResp:type_name -> user.CommonResp - 13, // 17: user.GetAllConversationsResp.Conversations:type_name -> user.Conversation - 13, // 18: user.BatchSetConversationsReq.Conversations:type_name -> user.Conversation - 0, // 19: user.BatchSetConversationsResp.commonResp:type_name -> user.CommonResp - 0, // 20: user.ResignUserResp.commonResp:type_name -> user.CommonResp - 0, // 21: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp - 29, // 22: user.GetUserByIdResp.user:type_name -> user.User - 52, // 23: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination - 29, // 24: user.GetUsersByNameResp.users:type_name -> user.User - 53, // 25: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 26: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 52, // 27: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 28: user.GetUsersResp.CommonResp:type_name -> user.CommonResp - 29, // 29: user.GetUsersResp.user:type_name -> user.User - 53, // 30: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 31: user.AddUserResp.CommonResp:type_name -> user.CommonResp - 0, // 32: user.BlockUserResp.CommonResp:type_name -> user.CommonResp - 0, // 33: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 52, // 34: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 29, // 35: user.BlockUser.User:type_name -> user.User - 0, // 36: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 44, // 37: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser - 53, // 38: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 44, // 39: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser - 0, // 40: user.DeleteUserResp.CommonResp:type_name -> user.CommonResp - 7, // 41: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 42: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 11, // 43: user.user.SetGlobalRecvMessageOpt:input_type -> user.SetGlobalRecvMessageOptReq - 1, // 44: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 45: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 5, // 46: user.user.AccountCheck:input_type -> user.AccountCheckReq - 18, // 47: user.user.GetConversation:input_type -> user.GetConversationReq - 22, // 48: user.user.GetAllConversations:input_type -> user.GetAllConversationsReq - 20, // 49: user.user.GetConversations:input_type -> user.GetConversationsReq - 24, // 50: user.user.BatchSetConversations:input_type -> user.BatchSetConversationsReq - 14, // 51: user.user.SetConversation:input_type -> user.SetConversationReq - 16, // 52: user.user.SetRecvMsgOpt:input_type -> user.SetRecvMsgOptReq - 28, // 53: user.user.GetUserById:input_type -> user.GetUserByIdReq - 31, // 54: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq - 26, // 55: user.user.ResignUser:input_type -> user.ResignUserReq - 33, // 56: user.user.AlterUser:input_type -> user.AlterUserReq - 35, // 57: user.user.GetUsers:input_type -> user.GetUsersReq - 37, // 58: user.user.AddUser:input_type -> user.AddUserReq - 39, // 59: user.user.BlockUser:input_type -> user.BlockUserReq - 41, // 60: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 43, // 61: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 46, // 62: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq - 48, // 63: user.user.DeleteUser:input_type -> user.DeleteUserReq - 8, // 64: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 65: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 12, // 66: user.user.SetGlobalRecvMessageOpt:output_type -> user.SetGlobalRecvMessageOptResp - 2, // 67: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 68: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 6, // 69: user.user.AccountCheck:output_type -> user.AccountCheckResp - 19, // 70: user.user.GetConversation:output_type -> user.GetConversationResp - 23, // 71: user.user.GetAllConversations:output_type -> user.GetAllConversationsResp - 21, // 72: user.user.GetConversations:output_type -> user.GetConversationsResp - 25, // 73: user.user.BatchSetConversations:output_type -> user.BatchSetConversationsResp - 15, // 74: user.user.SetConversation:output_type -> user.SetConversationResp - 17, // 75: user.user.SetRecvMsgOpt:output_type -> user.SetRecvMsgOptResp - 30, // 76: user.user.GetUserById:output_type -> user.GetUserByIdResp - 32, // 77: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp - 27, // 78: user.user.ResignUser:output_type -> user.ResignUserResp - 34, // 79: user.user.AlterUser:output_type -> user.AlterUserResp - 36, // 80: user.user.GetUsers:output_type -> user.GetUsersResp - 38, // 81: user.user.AddUser:output_type -> user.AddUserResp - 40, // 82: user.user.BlockUser:output_type -> user.BlockUserResp - 42, // 83: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 45, // 84: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 47, // 85: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp - 49, // 86: user.user.DeleteUser:output_type -> user.DeleteUserResp - 64, // [64:87] is the sub-list for method output_type - 41, // [41:64] is the sub-list for method input_type - 41, // [41:41] is the sub-list for extension type_name - 41, // [41:41] is the sub-list for extension extendee - 0, // [0:41] is the sub-list for field type_name -} +var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo -func init() { file_user_user_proto_init() } -func file_user_user_proto_init() { - if File_user_user_proto != nil { - return +func (m *GetUserInfoReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList } - if !protoimpl.UnsafeEnabled { - file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUserIDReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUserIDResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalRecvMessageOptReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGlobalRecvMessageOptResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Conversation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConversationReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConversationResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRecvMsgOptReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRecvMsgOptResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchSetConversationsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BatchSetConversationsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResignUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*User); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserByIdResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersByNameResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountCheckResp_SingleUserStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } + return nil +} + +func (m *GetUserInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_user_user_proto_rawDesc, - NumEnums: 0, - NumMessages: 51, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_user_user_proto_goTypes, - DependencyIndexes: file_user_user_proto_depIdxs, - MessageInfos: file_user_user_proto_msgTypes, - }.Build() - File_user_user_proto = out.File - file_user_user_proto_rawDesc = nil - file_user_user_proto_goTypes = nil - file_user_user_proto_depIdxs = nil + return "" +} + +func (m *GetUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList" json:"UserInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } +func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetUserInfoResp) ProtoMessage() {} +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{8} +} +func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) +} +func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserInfoResp.Merge(dst, src) +} +func (m *GetUserInfoResp) XXX_Size() int { + return xxx_messageInfo_GetUserInfoResp.Size(m) +} +func (m *GetUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo + +func (m *GetUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { + if m != nil { + return m.UserInfoList + } + return nil +} + +type UpdateUserInfoReq struct { + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } +func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoReq) ProtoMessage() {} +func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{9} +} +func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) +} +func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) +} +func (m *UpdateUserInfoReq) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoReq.Size(m) +} +func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo + +func (m *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { + if m != nil { + return m.UserInfo + } + return nil +} + +func (m *UpdateUserInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *UpdateUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type UpdateUserInfoResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } +func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } +func (*UpdateUserInfoResp) ProtoMessage() {} +func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{10} +} +func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) +} +func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) +} +func (dst *UpdateUserInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoResp.Merge(dst, src) +} +func (m *UpdateUserInfoResp) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoResp.Size(m) +} +func (m *UpdateUserInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo + +func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetGlobalRecvMessageOptReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,3,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessageOptReq{} } +func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } +func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} +func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{11} +} +func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) +} +func (m *SetGlobalRecvMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Marshal(b, m, deterministic) +} +func (dst *SetGlobalRecvMessageOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGlobalRecvMessageOptReq.Merge(dst, src) +} +func (m *SetGlobalRecvMessageOptReq) XXX_Size() int { + return xxx_messageInfo_SetGlobalRecvMessageOptReq.Size(m) +} +func (m *SetGlobalRecvMessageOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetGlobalRecvMessageOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetGlobalRecvMessageOptReq proto.InternalMessageInfo + +func (m *SetGlobalRecvMessageOptReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *SetGlobalRecvMessageOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *SetGlobalRecvMessageOptReq) GetGlobalRecvMsgOpt() int32 { + if m != nil { + return m.GlobalRecvMsgOpt + } + return 0 +} + +type SetGlobalRecvMessageOptResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessageOptResp{} } +func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } +func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} +func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{12} +} +func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) +} +func (m *SetGlobalRecvMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Marshal(b, m, deterministic) +} +func (dst *SetGlobalRecvMessageOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGlobalRecvMessageOptResp.Merge(dst, src) +} +func (m *SetGlobalRecvMessageOptResp) XXX_Size() int { + return xxx_messageInfo_SetGlobalRecvMessageOptResp.Size(m) +} +func (m *SetGlobalRecvMessageOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetGlobalRecvMessageOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetGlobalRecvMessageOptResp proto.InternalMessageInfo + +func (m *SetGlobalRecvMessageOptResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetConversationReq struct { + Conversation *conversation.Conversation `protobuf:"bytes,1,opt,name=Conversation" json:"Conversation,omitempty"` + NotificationType int32 `protobuf:"varint,2,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } +func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } +func (*SetConversationReq) ProtoMessage() {} +func (*SetConversationReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{13} +} +func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) +} +func (m *SetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetConversationReq.Marshal(b, m, deterministic) +} +func (dst *SetConversationReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetConversationReq.Merge(dst, src) +} +func (m *SetConversationReq) XXX_Size() int { + return xxx_messageInfo_SetConversationReq.Size(m) +} +func (m *SetConversationReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetConversationReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetConversationReq proto.InternalMessageInfo + +func (m *SetConversationReq) GetConversation() *conversation.Conversation { + if m != nil { + return m.Conversation + } + return nil +} + +func (m *SetConversationReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *SetConversationReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetConversationResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } +func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } +func (*SetConversationResp) ProtoMessage() {} +func (*SetConversationResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{14} +} +func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) +} +func (m *SetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetConversationResp.Marshal(b, m, deterministic) +} +func (dst *SetConversationResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetConversationResp.Merge(dst, src) +} +func (m *SetConversationResp) XXX_Size() int { + return xxx_messageInfo_SetConversationResp.Size(m) +} +func (m *SetConversationResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetConversationResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetConversationResp proto.InternalMessageInfo + +func (m *SetConversationResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetRecvMsgOptReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + ConversationID string `protobuf:"bytes,2,opt,name=ConversationID" json:"ConversationID,omitempty"` + RecvMsgOpt int32 `protobuf:"varint,3,opt,name=RecvMsgOpt" json:"RecvMsgOpt,omitempty"` + NotificationType int32 `protobuf:"varint,4,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } +func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } +func (*SetRecvMsgOptReq) ProtoMessage() {} +func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{15} +} +func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) +} +func (m *SetRecvMsgOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetRecvMsgOptReq.Marshal(b, m, deterministic) +} +func (dst *SetRecvMsgOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetRecvMsgOptReq.Merge(dst, src) +} +func (m *SetRecvMsgOptReq) XXX_Size() int { + return xxx_messageInfo_SetRecvMsgOptReq.Size(m) +} +func (m *SetRecvMsgOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetRecvMsgOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetRecvMsgOptReq proto.InternalMessageInfo + +func (m *SetRecvMsgOptReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *SetRecvMsgOptReq) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *SetRecvMsgOptReq) GetRecvMsgOpt() int32 { + if m != nil { + return m.RecvMsgOpt + } + return 0 +} + +func (m *SetRecvMsgOptReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *SetRecvMsgOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetRecvMsgOptResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } +func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } +func (*SetRecvMsgOptResp) ProtoMessage() {} +func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{16} +} +func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) +} +func (m *SetRecvMsgOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetRecvMsgOptResp.Marshal(b, m, deterministic) +} +func (dst *SetRecvMsgOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetRecvMsgOptResp.Merge(dst, src) +} +func (m *SetRecvMsgOptResp) XXX_Size() int { + return xxx_messageInfo_SetRecvMsgOptResp.Size(m) +} +func (m *SetRecvMsgOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetRecvMsgOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetRecvMsgOptResp proto.InternalMessageInfo + +func (m *SetRecvMsgOptResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetConversationReq struct { + ConversationID string `protobuf:"bytes,1,opt,name=ConversationID" json:"ConversationID,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } +func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } +func (*GetConversationReq) ProtoMessage() {} +func (*GetConversationReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{17} +} +func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) +} +func (m *GetConversationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationReq.Marshal(b, m, deterministic) +} +func (dst *GetConversationReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationReq.Merge(dst, src) +} +func (m *GetConversationReq) XXX_Size() int { + return xxx_messageInfo_GetConversationReq.Size(m) +} +func (m *GetConversationReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationReq proto.InternalMessageInfo + +func (m *GetConversationReq) GetConversationID() string { + if m != nil { + return m.ConversationID + } + return "" +} + +func (m *GetConversationReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetConversationReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetConversationResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversation *conversation.Conversation `protobuf:"bytes,2,opt,name=Conversation" json:"Conversation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } +func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } +func (*GetConversationResp) ProtoMessage() {} +func (*GetConversationResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{18} +} +func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) +} +func (m *GetConversationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationResp.Marshal(b, m, deterministic) +} +func (dst *GetConversationResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationResp.Merge(dst, src) +} +func (m *GetConversationResp) XXX_Size() int { + return xxx_messageInfo_GetConversationResp.Size(m) +} +func (m *GetConversationResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationResp proto.InternalMessageInfo + +func (m *GetConversationResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetConversationResp) GetConversation() *conversation.Conversation { + if m != nil { + return m.Conversation + } + return nil +} + +type GetConversationsReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + ConversationIDs []string `protobuf:"bytes,2,rep,name=ConversationIDs" json:"ConversationIDs,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } +func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } +func (*GetConversationsReq) ProtoMessage() {} +func (*GetConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{19} +} +func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) +} +func (m *GetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationsReq.Marshal(b, m, deterministic) +} +func (dst *GetConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationsReq.Merge(dst, src) +} +func (m *GetConversationsReq) XXX_Size() int { + return xxx_messageInfo_GetConversationsReq.Size(m) +} +func (m *GetConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationsReq proto.InternalMessageInfo + +func (m *GetConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetConversationsReq) GetConversationIDs() []string { + if m != nil { + return m.ConversationIDs + } + return nil +} + +func (m *GetConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } +func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } +func (*GetConversationsResp) ProtoMessage() {} +func (*GetConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{20} +} +func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) +} +func (m *GetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetConversationsResp.Marshal(b, m, deterministic) +} +func (dst *GetConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetConversationsResp.Merge(dst, src) +} +func (m *GetConversationsResp) XXX_Size() int { + return xxx_messageInfo_GetConversationsResp.Size(m) +} +func (m *GetConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetConversationsResp proto.InternalMessageInfo + +func (m *GetConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetConversationsResp) GetConversations() []*conversation.Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +type GetAllConversationsReq struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} } +func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationsReq) ProtoMessage() {} +func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{21} +} +func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) +} +func (m *GetAllConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationsReq.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationsReq.Merge(dst, src) +} +func (m *GetAllConversationsReq) XXX_Size() int { + return xxx_messageInfo_GetAllConversationsReq.Size(m) +} +func (m *GetAllConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationsReq proto.InternalMessageInfo + +func (m *GetAllConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *GetAllConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetAllConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Conversations []*conversation.Conversation `protobuf:"bytes,2,rep,name=Conversations" json:"Conversations,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp{} } +func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationsResp) ProtoMessage() {} +func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{22} +} +func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) +} +func (m *GetAllConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationsResp.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationsResp.Merge(dst, src) +} +func (m *GetAllConversationsResp) XXX_Size() int { + return xxx_messageInfo_GetAllConversationsResp.Size(m) +} +func (m *GetAllConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationsResp proto.InternalMessageInfo + +func (m *GetAllConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetAllConversationsResp) GetConversations() []*conversation.Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +type BatchSetConversationsReq struct { + Conversations []*conversation.Conversation `protobuf:"bytes,1,rep,name=Conversations" json:"Conversations,omitempty"` + OwnerUserID string `protobuf:"bytes,2,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + NotificationType int32 `protobuf:"varint,3,opt,name=notificationType" json:"notificationType,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsReq{} } +func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } +func (*BatchSetConversationsReq) ProtoMessage() {} +func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{23} +} +func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) +} +func (m *BatchSetConversationsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchSetConversationsReq.Marshal(b, m, deterministic) +} +func (dst *BatchSetConversationsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchSetConversationsReq.Merge(dst, src) +} +func (m *BatchSetConversationsReq) XXX_Size() int { + return xxx_messageInfo_BatchSetConversationsReq.Size(m) +} +func (m *BatchSetConversationsReq) XXX_DiscardUnknown() { + xxx_messageInfo_BatchSetConversationsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchSetConversationsReq proto.InternalMessageInfo + +func (m *BatchSetConversationsReq) GetConversations() []*conversation.Conversation { + if m != nil { + return m.Conversations + } + return nil +} + +func (m *BatchSetConversationsReq) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *BatchSetConversationsReq) GetNotificationType() int32 { + if m != nil { + return m.NotificationType + } + return 0 +} + +func (m *BatchSetConversationsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type BatchSetConversationsResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Success []string `protobuf:"bytes,2,rep,name=Success" json:"Success,omitempty"` + Failed []string `protobuf:"bytes,3,rep,name=Failed" json:"Failed,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversationsResp{} } +func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } +func (*BatchSetConversationsResp) ProtoMessage() {} +func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{24} +} +func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) +} +func (m *BatchSetConversationsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BatchSetConversationsResp.Marshal(b, m, deterministic) +} +func (dst *BatchSetConversationsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_BatchSetConversationsResp.Merge(dst, src) +} +func (m *BatchSetConversationsResp) XXX_Size() int { + return xxx_messageInfo_BatchSetConversationsResp.Size(m) +} +func (m *BatchSetConversationsResp) XXX_DiscardUnknown() { + xxx_messageInfo_BatchSetConversationsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_BatchSetConversationsResp proto.InternalMessageInfo + +func (m *BatchSetConversationsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *BatchSetConversationsResp) GetSuccess() []string { + if m != nil { + return m.Success + } + return nil +} + +func (m *BatchSetConversationsResp) GetFailed() []string { + if m != nil { + return m.Failed + } + return nil +} + +type ResignUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } +func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } +func (*ResignUserReq) ProtoMessage() {} +func (*ResignUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{25} +} +func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) +} +func (m *ResignUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResignUserReq.Marshal(b, m, deterministic) +} +func (dst *ResignUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResignUserReq.Merge(dst, src) +} +func (m *ResignUserReq) XXX_Size() int { + return xxx_messageInfo_ResignUserReq.Size(m) +} +func (m *ResignUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_ResignUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_ResignUserReq proto.InternalMessageInfo + +func (m *ResignUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *ResignUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type ResignUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } +func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } +func (*ResignUserResp) ProtoMessage() {} +func (*ResignUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{26} +} +func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) +} +func (m *ResignUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResignUserResp.Marshal(b, m, deterministic) +} +func (dst *ResignUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResignUserResp.Merge(dst, src) +} +func (m *ResignUserResp) XXX_Size() int { + return xxx_messageInfo_ResignUserResp.Size(m) +} +func (m *ResignUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_ResignUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_ResignUserResp proto.InternalMessageInfo + +func (m *ResignUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUserByIdReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } +func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } +func (*GetUserByIdReq) ProtoMessage() {} +func (*GetUserByIdReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{27} +} +func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) +} +func (m *GetUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserByIdReq.Marshal(b, m, deterministic) +} +func (dst *GetUserByIdReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserByIdReq.Merge(dst, src) +} +func (m *GetUserByIdReq) XXX_Size() int { + return xxx_messageInfo_GetUserByIdReq.Size(m) +} +func (m *GetUserByIdReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserByIdReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserByIdReq proto.InternalMessageInfo + +func (m *GetUserByIdReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *GetUserByIdReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type User struct { + ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto" json:"ProfilePhoto,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` + CreateTime string `protobuf:"bytes,4,opt,name=CreateTime" json:"CreateTime,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + Email string `protobuf:"bytes,6,opt,name=Email" json:"Email,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + CreateIp string `protobuf:"bytes,8,opt,name=CreateIp" json:"CreateIp,omitempty"` + LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime" json:"LastLoginTime,omitempty"` + LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp" json:"LastLoginIp,omitempty"` + LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes" json:"LoginTimes,omitempty"` + Gender int32 `protobuf:"varint,12,opt,name=Gender" json:"Gender,omitempty"` + LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit" json:"LoginLimit,omitempty"` + IsBlock bool `protobuf:"varint,14,opt,name=IsBlock" json:"IsBlock,omitempty"` + RegisterIp string `protobuf:"bytes,15,opt,name=RegisterIp" json:"RegisterIp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *User) Reset() { *m = User{} } +func (m *User) String() string { return proto.CompactTextString(m) } +func (*User) ProtoMessage() {} +func (*User) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{28} +} +func (m *User) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_User.Unmarshal(m, b) +} +func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_User.Marshal(b, m, deterministic) +} +func (dst *User) XXX_Merge(src proto.Message) { + xxx_messageInfo_User.Merge(dst, src) +} +func (m *User) XXX_Size() int { + return xxx_messageInfo_User.Size(m) +} +func (m *User) XXX_DiscardUnknown() { + xxx_messageInfo_User.DiscardUnknown(m) +} + +var xxx_messageInfo_User proto.InternalMessageInfo + +func (m *User) GetProfilePhoto() string { + if m != nil { + return m.ProfilePhoto + } + return "" +} + +func (m *User) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" +} + +func (m *User) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *User) GetCreateTime() string { + if m != nil { + return m.CreateTime + } + return "" +} + +func (m *User) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *User) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *User) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *User) GetCreateIp() string { + if m != nil { + return m.CreateIp + } + return "" +} + +func (m *User) GetLastLoginTime() string { + if m != nil { + return m.LastLoginTime + } + return "" +} + +func (m *User) GetLastLoginIp() string { + if m != nil { + return m.LastLoginIp + } + return "" +} + +func (m *User) GetLoginTimes() int32 { + if m != nil { + return m.LoginTimes + } + return 0 +} + +func (m *User) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} + +func (m *User) GetLoginLimit() int32 { + if m != nil { + return m.LoginLimit + } + return 0 +} + +func (m *User) GetIsBlock() bool { + if m != nil { + return m.IsBlock + } + return false +} + +func (m *User) GetRegisterIp() string { + if m != nil { + return m.RegisterIp + } + return "" +} + +type GetUserByIdResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } +func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } +func (*GetUserByIdResp) ProtoMessage() {} +func (*GetUserByIdResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{29} +} +func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) +} +func (m *GetUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserByIdResp.Marshal(b, m, deterministic) +} +func (dst *GetUserByIdResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserByIdResp.Merge(dst, src) +} +func (m *GetUserByIdResp) XXX_Size() int { + return xxx_messageInfo_GetUserByIdResp.Size(m) +} +func (m *GetUserByIdResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserByIdResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserByIdResp proto.InternalMessageInfo + +func (m *GetUserByIdResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUserByIdResp) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +type GetUsersByNameReq struct { + UserName string `protobuf:"bytes,1,opt,name=UserName" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } +func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersByNameReq) ProtoMessage() {} +func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{30} +} +func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) +} +func (m *GetUsersByNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersByNameReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersByNameReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersByNameReq.Merge(dst, src) +} +func (m *GetUsersByNameReq) XXX_Size() int { + return xxx_messageInfo_GetUsersByNameReq.Size(m) +} +func (m *GetUsersByNameReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersByNameReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersByNameReq proto.InternalMessageInfo + +func (m *GetUsersByNameReq) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersByNameReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUsersByNameResp struct { + Users []*User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,3,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } +func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersByNameResp) ProtoMessage() {} +func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{31} +} +func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) +} +func (m *GetUsersByNameResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersByNameResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersByNameResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersByNameResp.Merge(dst, src) +} +func (m *GetUsersByNameResp) XXX_Size() int { + return xxx_messageInfo_GetUsersByNameResp.Size(m) +} +func (m *GetUsersByNameResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersByNameResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersByNameResp proto.InternalMessageInfo + +func (m *GetUsersByNameResp) GetUsers() []*User { + if m != nil { + return m.Users + } + return nil +} + +func (m *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersByNameResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type AlterUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,3,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + Nickname string `protobuf:"bytes,4,opt,name=Nickname" json:"Nickname,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } +func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } +func (*AlterUserReq) ProtoMessage() {} +func (*AlterUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{32} +} +func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) +} +func (m *AlterUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AlterUserReq.Marshal(b, m, deterministic) +} +func (dst *AlterUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AlterUserReq.Merge(dst, src) +} +func (m *AlterUserReq) XXX_Size() int { + return xxx_messageInfo_AlterUserReq.Size(m) +} +func (m *AlterUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_AlterUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AlterUserReq proto.InternalMessageInfo + +func (m *AlterUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *AlterUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AlterUserReq) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *AlterUserReq) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" +} + +func (m *AlterUserReq) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *AlterUserReq) GetGender() string { + if m != nil { + return m.Gender + } + return "" +} + +func (m *AlterUserReq) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *AlterUserReq) GetPhoto() string { + if m != nil { + return m.Photo + } + return "" +} + +func (m *AlterUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type AlterUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } +func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } +func (*AlterUserResp) ProtoMessage() {} +func (*AlterUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{33} +} +func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) +} +func (m *AlterUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AlterUserResp.Marshal(b, m, deterministic) +} +func (dst *AlterUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AlterUserResp.Merge(dst, src) +} +func (m *AlterUserResp) XXX_Size() int { + return xxx_messageInfo_AlterUserResp.Size(m) +} +func (m *AlterUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_AlterUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AlterUserResp proto.InternalMessageInfo + +func (m *AlterUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUsersReq struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName" json:"UserName,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } +func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersReq) ProtoMessage() {} +func (*GetUsersReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{34} +} +func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) +} +func (m *GetUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersReq.Merge(dst, src) +} +func (m *GetUsersReq) XXX_Size() int { + return xxx_messageInfo_GetUsersReq.Size(m) +} +func (m *GetUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersReq proto.InternalMessageInfo + +func (m *GetUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersReq) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +type GetUsersResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } +func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersResp) ProtoMessage() {} +func (*GetUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{35} +} +func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) +} +func (m *GetUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersResp.Merge(dst, src) +} +func (m *GetUsersResp) XXX_Size() int { + return xxx_messageInfo_GetUsersResp.Size(m) +} +func (m *GetUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersResp proto.InternalMessageInfo + +func (m *GetUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUsersResp) GetUser() []*User { + if m != nil { + return m.User + } + return nil +} + +func (m *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUsersResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type AddUserReq struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` + Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` + Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` + Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` + OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserReq) Reset() { *m = AddUserReq{} } +func (m *AddUserReq) String() string { return proto.CompactTextString(m) } +func (*AddUserReq) ProtoMessage() {} +func (*AddUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{36} +} +func (m *AddUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserReq.Unmarshal(m, b) +} +func (m *AddUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserReq.Marshal(b, m, deterministic) +} +func (dst *AddUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserReq.Merge(dst, src) +} +func (m *AddUserReq) XXX_Size() int { + return xxx_messageInfo_AddUserReq.Size(m) +} +func (m *AddUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserReq proto.InternalMessageInfo + +func (m *AddUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AddUserReq) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} + +func (m *AddUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *AddUserReq) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *AddUserReq) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *AddUserReq) GetGender() string { + if m != nil { + return m.Gender + } + return "" +} + +func (m *AddUserReq) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *AddUserReq) GetPhoto() string { + if m != nil { + return m.Photo + } + return "" +} + +func (m *AddUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type AddUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserResp) Reset() { *m = AddUserResp{} } +func (m *AddUserResp) String() string { return proto.CompactTextString(m) } +func (*AddUserResp) ProtoMessage() {} +func (*AddUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{37} +} +func (m *AddUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserResp.Unmarshal(m, b) +} +func (m *AddUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserResp.Marshal(b, m, deterministic) +} +func (dst *AddUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserResp.Merge(dst, src) +} +func (m *AddUserResp) XXX_Size() int { + return xxx_messageInfo_AddUserResp.Size(m) +} +func (m *AddUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserResp proto.InternalMessageInfo + +func (m *AddUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type BlockUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } +func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } +func (*BlockUserReq) ProtoMessage() {} +func (*BlockUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{38} +} +func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) +} +func (m *BlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUserReq.Marshal(b, m, deterministic) +} +func (dst *BlockUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUserReq.Merge(dst, src) +} +func (m *BlockUserReq) XXX_Size() int { + return xxx_messageInfo_BlockUserReq.Size(m) +} +func (m *BlockUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUserReq proto.InternalMessageInfo + +func (m *BlockUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *BlockUserReq) GetEndDisableTime() string { + if m != nil { + return m.EndDisableTime + } + return "" +} + +func (m *BlockUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *BlockUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type BlockUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } +func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } +func (*BlockUserResp) ProtoMessage() {} +func (*BlockUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{39} +} +func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) +} +func (m *BlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUserResp.Marshal(b, m, deterministic) +} +func (dst *BlockUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUserResp.Merge(dst, src) +} +func (m *BlockUserResp) XXX_Size() int { + return xxx_messageInfo_BlockUserResp.Size(m) +} +func (m *BlockUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUserResp proto.InternalMessageInfo + +func (m *BlockUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type UnBlockUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } +func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } +func (*UnBlockUserReq) ProtoMessage() {} +func (*UnBlockUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{40} +} +func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) +} +func (m *UnBlockUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UnBlockUserReq.Marshal(b, m, deterministic) +} +func (dst *UnBlockUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnBlockUserReq.Merge(dst, src) +} +func (m *UnBlockUserReq) XXX_Size() int { + return xxx_messageInfo_UnBlockUserReq.Size(m) +} +func (m *UnBlockUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_UnBlockUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UnBlockUserReq proto.InternalMessageInfo + +func (m *UnBlockUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *UnBlockUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *UnBlockUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type UnBlockUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } +func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } +func (*UnBlockUserResp) ProtoMessage() {} +func (*UnBlockUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{41} +} +func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) +} +func (m *UnBlockUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UnBlockUserResp.Marshal(b, m, deterministic) +} +func (dst *UnBlockUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnBlockUserResp.Merge(dst, src) +} +func (m *UnBlockUserResp) XXX_Size() int { + return xxx_messageInfo_UnBlockUserResp.Size(m) +} +func (m *UnBlockUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_UnBlockUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UnBlockUserResp proto.InternalMessageInfo + +func (m *UnBlockUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetBlockUsersReq struct { + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum" json:"BlockUserNum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } +func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } +func (*GetBlockUsersReq) ProtoMessage() {} +func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{42} +} +func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) +} +func (m *GetBlockUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUsersReq.Marshal(b, m, deterministic) +} +func (dst *GetBlockUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUsersReq.Merge(dst, src) +} +func (m *GetBlockUsersReq) XXX_Size() int { + return xxx_messageInfo_GetBlockUsersReq.Size(m) +} +func (m *GetBlockUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUsersReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUsersReq proto.InternalMessageInfo + +func (m *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetBlockUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetBlockUsersReq) GetBlockUserNum() int32 { + if m != nil { + return m.BlockUserNum + } + return 0 +} + +type BlockUser struct { + User *User `protobuf:"bytes,1,opt,name=User" json:"User,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlockUser) Reset() { *m = BlockUser{} } +func (m *BlockUser) String() string { return proto.CompactTextString(m) } +func (*BlockUser) ProtoMessage() {} +func (*BlockUser) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{43} +} +func (m *BlockUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlockUser.Unmarshal(m, b) +} +func (m *BlockUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlockUser.Marshal(b, m, deterministic) +} +func (dst *BlockUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlockUser.Merge(dst, src) +} +func (m *BlockUser) XXX_Size() int { + return xxx_messageInfo_BlockUser.Size(m) +} +func (m *BlockUser) XXX_DiscardUnknown() { + xxx_messageInfo_BlockUser.DiscardUnknown(m) +} + +var xxx_messageInfo_BlockUser proto.InternalMessageInfo + +func (m *BlockUser) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +func (m *BlockUser) GetBeginDisableTime() string { + if m != nil { + return m.BeginDisableTime + } + return "" +} + +func (m *BlockUser) GetEndDisableTime() string { + if m != nil { + return m.EndDisableTime + } + return "" +} + +type GetBlockUsersResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers" json:"BlockUsers,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } +func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } +func (*GetBlockUsersResp) ProtoMessage() {} +func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{44} +} +func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) +} +func (m *GetBlockUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUsersResp.Marshal(b, m, deterministic) +} +func (dst *GetBlockUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUsersResp.Merge(dst, src) +} +func (m *GetBlockUsersResp) XXX_Size() int { + return xxx_messageInfo_GetBlockUsersResp.Size(m) +} +func (m *GetBlockUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUsersResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUsersResp proto.InternalMessageInfo + +func (m *GetBlockUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetBlockUsersResp) GetBlockUsers() []*BlockUser { + if m != nil { + return m.BlockUsers + } + return nil +} + +func (m *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetBlockUsersResp) GetUserNums() int32 { + if m != nil { + return m.UserNums + } + return 0 +} + +type GetBlockUserByIdReq struct { + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } +func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } +func (*GetBlockUserByIdReq) ProtoMessage() {} +func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{45} +} +func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) +} +func (m *GetBlockUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUserByIdReq.Marshal(b, m, deterministic) +} +func (dst *GetBlockUserByIdReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUserByIdReq.Merge(dst, src) +} +func (m *GetBlockUserByIdReq) XXX_Size() int { + return xxx_messageInfo_GetBlockUserByIdReq.Size(m) +} +func (m *GetBlockUserByIdReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUserByIdReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUserByIdReq proto.InternalMessageInfo + +func (m *GetBlockUserByIdReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *GetBlockUserByIdReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetBlockUserByIdResp struct { + BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser" json:"BlockUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } +func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } +func (*GetBlockUserByIdResp) ProtoMessage() {} +func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{46} +} +func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) +} +func (m *GetBlockUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlockUserByIdResp.Marshal(b, m, deterministic) +} +func (dst *GetBlockUserByIdResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlockUserByIdResp.Merge(dst, src) +} +func (m *GetBlockUserByIdResp) XXX_Size() int { + return xxx_messageInfo_GetBlockUserByIdResp.Size(m) +} +func (m *GetBlockUserByIdResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlockUserByIdResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlockUserByIdResp proto.InternalMessageInfo + +func (m *GetBlockUserByIdResp) GetBlockUser() *BlockUser { + if m != nil { + return m.BlockUser + } + return nil +} + +type DeleteUserReq struct { + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } +func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } +func (*DeleteUserReq) ProtoMessage() {} +func (*DeleteUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{47} +} +func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) +} +func (m *DeleteUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUserReq.Marshal(b, m, deterministic) +} +func (dst *DeleteUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUserReq.Merge(dst, src) +} +func (m *DeleteUserReq) XXX_Size() int { + return xxx_messageInfo_DeleteUserReq.Size(m) +} +func (m *DeleteUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUserReq proto.InternalMessageInfo + +func (m *DeleteUserReq) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *DeleteUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *DeleteUserReq) GetOpUserId() string { + if m != nil { + return m.OpUserId + } + return "" +} + +type DeleteUserResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } +func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUserResp) ProtoMessage() {} +func (*DeleteUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_862a17c60dc96c16, []int{48} +} +func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) +} +func (m *DeleteUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUserResp.Marshal(b, m, deterministic) +} +func (dst *DeleteUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUserResp.Merge(dst, src) +} +func (m *DeleteUserResp) XXX_Size() int { + return xxx_messageInfo_DeleteUserResp.Size(m) +} +func (m *DeleteUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUserResp proto.InternalMessageInfo + +func (m *DeleteUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "user.CommonResp") + proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") + proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") + proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") + proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") + proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") + proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") + proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") + proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") + proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") + proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") + proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") + proto.RegisterType((*SetGlobalRecvMessageOptReq)(nil), "user.SetGlobalRecvMessageOptReq") + proto.RegisterType((*SetGlobalRecvMessageOptResp)(nil), "user.SetGlobalRecvMessageOptResp") + proto.RegisterType((*SetConversationReq)(nil), "user.SetConversationReq") + proto.RegisterType((*SetConversationResp)(nil), "user.SetConversationResp") + proto.RegisterType((*SetRecvMsgOptReq)(nil), "user.SetRecvMsgOptReq") + proto.RegisterType((*SetRecvMsgOptResp)(nil), "user.SetRecvMsgOptResp") + proto.RegisterType((*GetConversationReq)(nil), "user.GetConversationReq") + proto.RegisterType((*GetConversationResp)(nil), "user.GetConversationResp") + proto.RegisterType((*GetConversationsReq)(nil), "user.GetConversationsReq") + proto.RegisterType((*GetConversationsResp)(nil), "user.GetConversationsResp") + proto.RegisterType((*GetAllConversationsReq)(nil), "user.GetAllConversationsReq") + proto.RegisterType((*GetAllConversationsResp)(nil), "user.GetAllConversationsResp") + proto.RegisterType((*BatchSetConversationsReq)(nil), "user.BatchSetConversationsReq") + proto.RegisterType((*BatchSetConversationsResp)(nil), "user.BatchSetConversationsResp") + proto.RegisterType((*ResignUserReq)(nil), "user.ResignUserReq") + proto.RegisterType((*ResignUserResp)(nil), "user.ResignUserResp") + proto.RegisterType((*GetUserByIdReq)(nil), "user.GetUserByIdReq") + proto.RegisterType((*User)(nil), "user.User") + proto.RegisterType((*GetUserByIdResp)(nil), "user.GetUserByIdResp") + proto.RegisterType((*GetUsersByNameReq)(nil), "user.GetUsersByNameReq") + proto.RegisterType((*GetUsersByNameResp)(nil), "user.GetUsersByNameResp") + proto.RegisterType((*AlterUserReq)(nil), "user.AlterUserReq") + proto.RegisterType((*AlterUserResp)(nil), "user.AlterUserResp") + proto.RegisterType((*GetUsersReq)(nil), "user.GetUsersReq") + proto.RegisterType((*GetUsersResp)(nil), "user.GetUsersResp") + proto.RegisterType((*AddUserReq)(nil), "user.AddUserReq") + proto.RegisterType((*AddUserResp)(nil), "user.AddUserResp") + proto.RegisterType((*BlockUserReq)(nil), "user.BlockUserReq") + proto.RegisterType((*BlockUserResp)(nil), "user.BlockUserResp") + proto.RegisterType((*UnBlockUserReq)(nil), "user.UnBlockUserReq") + proto.RegisterType((*UnBlockUserResp)(nil), "user.UnBlockUserResp") + proto.RegisterType((*GetBlockUsersReq)(nil), "user.GetBlockUsersReq") + proto.RegisterType((*BlockUser)(nil), "user.BlockUser") + proto.RegisterType((*GetBlockUsersResp)(nil), "user.GetBlockUsersResp") + proto.RegisterType((*GetBlockUserByIdReq)(nil), "user.GetBlockUserByIdReq") + proto.RegisterType((*GetBlockUserByIdResp)(nil), "user.GetBlockUserByIdResp") + proto.RegisterType((*DeleteUserReq)(nil), "user.DeleteUserReq") + proto.RegisterType((*DeleteUserResp)(nil), "user.DeleteUserResp") } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConnInterface +var _ grpc.ClientConn // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 +const _ = grpc.SupportPackageIsVersion4 + +// Client API for User service -// UserClient is the client API for User service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) @@ -4570,16 +2759,16 @@ type UserClient interface { } type userClient struct { - cc grpc.ClientConnInterface + cc *grpc.ClientConn } -func NewUserClient(cc grpc.ClientConnInterface) UserClient { +func NewUserClient(cc *grpc.ClientConn) UserClient { return &userClient{cc} } func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := c.cc.Invoke(ctx, "/user.user/GetUserInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4588,7 +2777,7 @@ func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts . func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { out := new(UpdateUserInfoResp) - err := c.cc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4597,7 +2786,7 @@ func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalRecvMessageOptReq, opts ...grpc.CallOption) (*SetGlobalRecvMessageOptResp, error) { out := new(SetGlobalRecvMessageOptResp) - err := c.cc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetGlobalRecvMessageOpt", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4606,7 +2795,7 @@ func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalR func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { out := new(DeleteUsersResp) - err := c.cc.Invoke(ctx, "/user.user/DeleteUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4615,7 +2804,7 @@ func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts . func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { out := new(GetAllUserIDResp) - err := c.cc.Invoke(ctx, "/user.user/GetAllUserID", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4624,7 +2813,7 @@ func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { out := new(AccountCheckResp) - err := c.cc.Invoke(ctx, "/user.user/AccountCheck", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AccountCheck", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4633,7 +2822,7 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) { out := new(GetConversationResp) - err := c.cc.Invoke(ctx, "/user.user/GetConversation", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetConversation", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4642,7 +2831,7 @@ func (c *userClient) GetConversation(ctx context.Context, in *GetConversationReq func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversationsReq, opts ...grpc.CallOption) (*GetAllConversationsResp, error) { out := new(GetAllConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/GetAllConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetAllConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4651,7 +2840,7 @@ func (c *userClient) GetAllConversations(ctx context.Context, in *GetAllConversa func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsReq, opts ...grpc.CallOption) (*GetConversationsResp, error) { out := new(GetConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/GetConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4660,7 +2849,7 @@ func (c *userClient) GetConversations(ctx context.Context, in *GetConversationsR func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) { out := new(BatchSetConversationsResp) - err := c.cc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/BatchSetConversations", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4669,7 +2858,7 @@ func (c *userClient) BatchSetConversations(ctx context.Context, in *BatchSetConv func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) { out := new(SetConversationResp) - err := c.cc.Invoke(ctx, "/user.user/SetConversation", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetConversation", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4678,7 +2867,7 @@ func (c *userClient) SetConversation(ctx context.Context, in *SetConversationReq func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) { out := new(SetRecvMsgOptResp) - err := c.cc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/SetRecvMsgOpt", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4687,7 +2876,7 @@ func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, op func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { out := new(GetUserByIdResp) - err := c.cc.Invoke(ctx, "/user.user/GetUserById", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUserById", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4696,7 +2885,7 @@ func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts . func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) { out := new(GetUsersByNameResp) - err := c.cc.Invoke(ctx, "/user.user/GetUsersByName", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUsersByName", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4705,7 +2894,7 @@ func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { out := new(ResignUserResp) - err := c.cc.Invoke(ctx, "/user.user/ResignUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/ResignUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4714,7 +2903,7 @@ func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ... func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) { out := new(AlterUserResp) - err := c.cc.Invoke(ctx, "/user.user/AlterUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AlterUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4723,7 +2912,7 @@ func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...gr func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { out := new(GetUsersResp) - err := c.cc.Invoke(ctx, "/user.user/GetUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4732,7 +2921,7 @@ func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) { out := new(AddUserResp) - err := c.cc.Invoke(ctx, "/user.user/AddUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/AddUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4741,7 +2930,7 @@ func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.C func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) { out := new(BlockUserResp) - err := c.cc.Invoke(ctx, "/user.user/BlockUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/BlockUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4750,7 +2939,7 @@ func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...gr func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) { out := new(UnBlockUserResp) - err := c.cc.Invoke(ctx, "/user.user/UnBlockUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/UnBlockUser", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4759,7 +2948,7 @@ func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts . func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) { out := new(GetBlockUsersResp) - err := c.cc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4768,7 +2957,7 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) { out := new(GetBlockUserByIdResp) - err := c.cc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4777,14 +2966,15 @@ func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdR func (c *userClient) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) { out := new(DeleteUserResp) - err := c.cc.Invoke(ctx, "/user.user/DeleteUser", in, out, opts...) + err := grpc.Invoke(ctx, "/user.user/DeleteUser", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -// UserServer is the server API for User service. +// Server API for User service + type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) @@ -4811,80 +3001,6 @@ type UserServer interface { DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) } -// UnimplementedUserServer can be embedded to have forward compatible implementations. -type UnimplementedUserServer struct { -} - -func (*UnimplementedUserServer) GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") -} -func (*UnimplementedUserServer) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpdateUserInfo not implemented") -} -func (*UnimplementedUserServer) SetGlobalRecvMessageOpt(context.Context, *SetGlobalRecvMessageOptReq) (*SetGlobalRecvMessageOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetGlobalRecvMessageOpt not implemented") -} -func (*UnimplementedUserServer) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteUsers not implemented") -} -func (*UnimplementedUserServer) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAllUserID not implemented") -} -func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") -} -func (*UnimplementedUserServer) GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetConversation not implemented") -} -func (*UnimplementedUserServer) GetAllConversations(context.Context, *GetAllConversationsReq) (*GetAllConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAllConversations not implemented") -} -func (*UnimplementedUserServer) GetConversations(context.Context, *GetConversationsReq) (*GetConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetConversations not implemented") -} -func (*UnimplementedUserServer) BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BatchSetConversations not implemented") -} -func (*UnimplementedUserServer) SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetConversation not implemented") -} -func (*UnimplementedUserServer) SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetRecvMsgOpt not implemented") -} -func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") -} -func (*UnimplementedUserServer) GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsersByName not implemented") -} -func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") -} -func (*UnimplementedUserServer) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AlterUser not implemented") -} -func (*UnimplementedUserServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") -} -func (*UnimplementedUserServer) AddUser(context.Context, *AddUserReq) (*AddUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method AddUser not implemented") -} -func (*UnimplementedUserServer) BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BlockUser not implemented") -} -func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method UnBlockUser not implemented") -} -func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") -} -func (*UnimplementedUserServer) GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBlockUserById not implemented") -} -func (*UnimplementedUserServer) DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") -} - func RegisterUserServer(s *grpc.Server, srv UserServer) { s.RegisterService(&_User_serviceDesc, srv) } @@ -5403,3 +3519,128 @@ var _User_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } + +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_862a17c60dc96c16) } + +var fileDescriptor_user_862a17c60dc96c16 = []byte{ + // 1900 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x23, 0x49, + 0x19, 0x57, 0xc7, 0xf6, 0x24, 0xf9, 0x1c, 0x3f, 0x52, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, + 0x2d, 0x4b, 0x34, 0x12, 0x0e, 0x3b, 0x20, 0x8d, 0xb4, 0x88, 0xdd, 0x89, 0x9d, 0x8c, 0x65, 0x34, + 0x33, 0x89, 0xda, 0x3b, 0x12, 0x42, 0x88, 0xa8, 0x63, 0x57, 0x9c, 0x56, 0xec, 0xee, 0xde, 0xae, + 0xf6, 0x8c, 0xc2, 0x65, 0x11, 0x20, 0x21, 0xad, 0xe0, 0xc0, 0x09, 0x71, 0xe1, 0xc0, 0x9f, 0x02, + 0x37, 0xc4, 0x3f, 0xc0, 0x89, 0xff, 0x81, 0x0b, 0x17, 0x0e, 0xa8, 0x1e, 0xdd, 0x5d, 0xd5, 0xd5, + 0x8e, 0x3d, 0x9d, 0x88, 0xb9, 0x24, 0xfe, 0x7e, 0xf5, 0xe8, 0xef, 0xf7, 0xd5, 0xf7, 0xa8, 0x07, + 0xb4, 0xe6, 0x04, 0x47, 0x07, 0xf4, 0x4f, 0x27, 0x8c, 0x82, 0x38, 0x40, 0x55, 0xfa, 0xdb, 0xfa, + 0xf0, 0x24, 0xc4, 0xfe, 0xd9, 0xe0, 0xc5, 0x41, 0x78, 0x35, 0x39, 0x60, 0x0d, 0x07, 0x64, 0x7c, + 0x75, 0xf6, 0x86, 0x1c, 0xbc, 0x21, 0xbc, 0xa3, 0xf5, 0x89, 0xde, 0x65, 0x14, 0xf8, 0xaf, 0x71, + 0x44, 0xdc, 0xd8, 0x0b, 0x7c, 0x45, 0xe0, 0x43, 0xec, 0xcf, 0x00, 0x7a, 0xc1, 0x6c, 0x16, 0xf8, + 0x0e, 0x26, 0x21, 0x32, 0x61, 0x1d, 0x47, 0x51, 0x2f, 0x18, 0x63, 0xd3, 0xd8, 0x33, 0xf6, 0x6b, + 0x4e, 0x22, 0xa2, 0x07, 0x70, 0x0f, 0x47, 0xd1, 0x0b, 0x32, 0x31, 0xd7, 0xf6, 0x8c, 0xfd, 0x4d, + 0x47, 0x48, 0xf6, 0x2f, 0xa0, 0x79, 0x84, 0xa7, 0x38, 0xc6, 0xaf, 0x08, 0x8e, 0x88, 0x83, 0xbf, + 0x44, 0x8f, 0xa0, 0x9d, 0x21, 0x83, 0xa3, 0xe7, 0x1e, 0x89, 0xcd, 0xb5, 0xbd, 0xca, 0xfe, 0xa6, + 0xa3, 0xe1, 0xc8, 0x82, 0x8d, 0x93, 0x90, 0xcb, 0x66, 0x85, 0xcd, 0x9b, 0xca, 0x68, 0x0f, 0xea, + 0x27, 0x21, 0x8e, 0x98, 0xb2, 0x83, 0x23, 0xb3, 0xca, 0x9a, 0x65, 0xc8, 0x0e, 0xa0, 0xa5, 0x7c, + 0x9b, 0x84, 0xe8, 0x7b, 0x32, 0x1d, 0xc6, 0xa1, 0xfe, 0xb8, 0xdd, 0x61, 0xb6, 0xcc, 0x70, 0x47, + 0xa6, 0xfc, 0x08, 0xda, 0xcf, 0x5c, 0x6f, 0x8a, 0xc7, 0xba, 0xba, 0x79, 0xdc, 0x3e, 0x81, 0x56, + 0x1f, 0xc7, 0x87, 0xd3, 0x29, 0xc7, 0x28, 0x5b, 0x0b, 0x36, 0x82, 0x84, 0x81, 0xc1, 0x19, 0x04, + 0x12, 0x83, 0x40, 0x62, 0xc0, 0x0d, 0x27, 0x43, 0xf6, 0x18, 0xda, 0xea, 0x84, 0xa5, 0x28, 0x3c, + 0x04, 0xd0, 0x94, 0x97, 0x10, 0xfb, 0x1a, 0x5a, 0x87, 0xa3, 0x51, 0x30, 0xf7, 0xe3, 0xde, 0x25, + 0x1e, 0x5d, 0x51, 0xb5, 0xf7, 0xa1, 0xc5, 0x7e, 0x4b, 0xe3, 0x0c, 0x36, 0x2e, 0x0f, 0x2b, 0x4b, + 0xb4, 0x76, 0xf3, 0x12, 0x55, 0xf4, 0x25, 0xfa, 0x97, 0x01, 0x6d, 0xf5, 0xdb, 0x9c, 0xe1, 0x68, + 0x05, 0x86, 0x59, 0x1f, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0xe3, 0x94, 0x61, 0xfd, 0xf1, 0x77, + 0xf8, 0x88, 0xfc, 0xec, 0x9d, 0xa1, 0xe7, 0x4f, 0xa6, 0xcc, 0x25, 0x86, 0xb1, 0x1b, 0xcf, 0x89, + 0x23, 0x0d, 0xb5, 0x4e, 0xa1, 0x9d, 0x6f, 0xa7, 0xae, 0x3d, 0x97, 0x17, 0x50, 0x48, 0xe8, 0x23, + 0x68, 0xb8, 0x7c, 0x72, 0xde, 0x51, 0xd0, 0x57, 0x41, 0xdb, 0x87, 0x66, 0x1f, 0xc7, 0xcc, 0x20, + 0xfe, 0x45, 0x40, 0x6d, 0xfb, 0x10, 0x60, 0x9e, 0x37, 0xab, 0x84, 0xdc, 0xd2, 0xa2, 0xbf, 0x31, + 0x98, 0x13, 0x66, 0x1f, 0x2c, 0x65, 0xd0, 0xcf, 0x61, 0x2b, 0x99, 0x81, 0x69, 0x59, 0x61, 0x26, + 0xfd, 0xa0, 0x43, 0x70, 0xf4, 0x1a, 0x47, 0x67, 0x6e, 0xe8, 0x9d, 0x85, 0x6e, 0xe4, 0xce, 0x48, + 0x27, 0xfd, 0x90, 0x32, 0xc0, 0xfe, 0xda, 0x80, 0xed, 0x57, 0xe1, 0xd8, 0x15, 0xe1, 0x2c, 0xa8, + 0x3f, 0x81, 0x8d, 0x44, 0x14, 0x6a, 0xdc, 0x38, 0x65, 0xda, 0x79, 0x99, 0x4d, 0x02, 0xdd, 0x26, + 0x72, 0x18, 0x3d, 0x03, 0x94, 0xd7, 0xa5, 0x8c, 0x55, 0xec, 0x5f, 0x19, 0x60, 0x0d, 0x71, 0xdc, + 0x9f, 0x06, 0xe7, 0xee, 0xd4, 0xc1, 0xa3, 0xd7, 0x2f, 0x30, 0x21, 0xee, 0x04, 0x9f, 0x84, 0x31, + 0x65, 0xb7, 0xc8, 0x51, 0x96, 0xc6, 0x39, 0x4d, 0x32, 0x93, 0x6c, 0x52, 0x32, 0x39, 0x09, 0x63, + 0xc6, 0xa3, 0xe6, 0x68, 0xb8, 0x7d, 0x02, 0x1f, 0x2c, 0xd4, 0xa1, 0x14, 0xab, 0xbf, 0x18, 0x80, + 0x86, 0x38, 0xee, 0x49, 0xc9, 0x9f, 0xb2, 0xf9, 0x0c, 0xb6, 0x64, 0x48, 0x4c, 0x65, 0x75, 0x94, + 0x22, 0xa1, 0x0c, 0x52, 0xfa, 0x53, 0x4e, 0x7e, 0x10, 0x7b, 0x17, 0xde, 0x88, 0xc9, 0x5f, 0x5c, + 0x87, 0x98, 0x51, 0xaf, 0x39, 0x1a, 0xbe, 0x82, 0x5b, 0xf7, 0xe1, 0xbe, 0xa6, 0x63, 0x29, 0xb6, + 0x7f, 0x37, 0xa0, 0x3d, 0xc4, 0x71, 0x66, 0x50, 0xca, 0x95, 0x7e, 0xff, 0x8d, 0x8f, 0x23, 0x25, + 0x51, 0xcb, 0x10, 0xfa, 0x18, 0x9a, 0xf2, 0xc7, 0xd3, 0x65, 0xcc, 0xa1, 0x34, 0xb8, 0xb5, 0x35, + 0x94, 0x90, 0x42, 0xab, 0x54, 0x57, 0xb3, 0x4a, 0x4d, 0xb7, 0xca, 0x31, 0x6c, 0xe7, 0xb8, 0x94, + 0xb2, 0xc9, 0x2f, 0x0d, 0x40, 0x7d, 0xdd, 0x03, 0x74, 0xce, 0x46, 0x21, 0xe7, 0x9c, 0xf5, 0xd6, + 0x74, 0xeb, 0x2d, 0x5f, 0xdf, 0xdf, 0x1a, 0x70, 0xbf, 0x7f, 0x17, 0x0b, 0xac, 0xf9, 0xed, 0xda, + 0xdb, 0xf9, 0xad, 0xfd, 0x6b, 0x5d, 0x13, 0xb2, 0x9a, 0x8f, 0xd0, 0xa2, 0xa9, 0x58, 0x86, 0x88, + 0x62, 0x9b, 0x87, 0x57, 0xb0, 0xc7, 0xd7, 0x06, 0xec, 0xe8, 0x5a, 0x94, 0x32, 0xc8, 0x53, 0x68, + 0x28, 0xd3, 0x88, 0xfa, 0x78, 0x93, 0x45, 0xd4, 0x01, 0xf6, 0xcf, 0xe0, 0x01, 0xdf, 0x86, 0x94, + 0x30, 0x4a, 0x8e, 0xea, 0x9a, 0x4e, 0xf5, 0xf7, 0x06, 0xec, 0x16, 0x4e, 0xff, 0x8e, 0xd8, 0xfe, + 0xc3, 0x00, 0xb3, 0xeb, 0xc6, 0xa3, 0xcb, 0x61, 0x81, 0x17, 0x68, 0xd3, 0x1b, 0x6f, 0x39, 0xfd, + 0x0a, 0xd1, 0x52, 0x94, 0x23, 0x2a, 0xab, 0xe5, 0x88, 0x82, 0x5d, 0xf0, 0x57, 0xf0, 0xfe, 0x02, + 0x36, 0xa5, 0xec, 0x6b, 0xc2, 0xfa, 0x70, 0x3e, 0x1a, 0x61, 0x92, 0x38, 0x77, 0x22, 0xd2, 0xf2, + 0xc7, 0x77, 0xc4, 0x6c, 0xb7, 0xb0, 0xe9, 0x08, 0xc9, 0x1e, 0x40, 0xc3, 0xc1, 0xc4, 0x9b, 0xf8, + 0x94, 0x9e, 0xa8, 0x93, 0x8c, 0xe9, 0x38, 0xa9, 0x93, 0x5c, 0x5a, 0xc1, 0x55, 0xba, 0xd0, 0x94, + 0xa7, 0x2a, 0x95, 0xec, 0x7e, 0x9c, 0x6e, 0xc8, 0xba, 0xd7, 0x83, 0xf1, 0xed, 0xf4, 0xf9, 0x6b, + 0x05, 0xaa, 0xb4, 0x33, 0xb2, 0x61, 0xeb, 0x34, 0x0a, 0x2e, 0xbc, 0x29, 0x3e, 0xbd, 0x0c, 0xe2, + 0x40, 0x4c, 0xa4, 0x60, 0x74, 0x0f, 0xf3, 0xd2, 0x1b, 0x5d, 0xf9, 0xee, 0x0c, 0x27, 0x7b, 0x98, + 0x44, 0x96, 0x54, 0xa8, 0x28, 0x2a, 0x3c, 0x04, 0xe8, 0x45, 0xd8, 0x8d, 0xf1, 0x17, 0xde, 0x0c, + 0x8b, 0xd5, 0x95, 0x10, 0xaa, 0xe2, 0xe9, 0x65, 0xe0, 0xe3, 0x97, 0xf3, 0xd9, 0x39, 0x8e, 0x92, + 0x12, 0x21, 0x41, 0x68, 0x07, 0x6a, 0xc7, 0x33, 0xd7, 0x9b, 0x9a, 0xf7, 0x58, 0x1b, 0x17, 0x28, + 0xda, 0xf5, 0xa2, 0xf8, 0xd2, 0x5c, 0xe7, 0x28, 0x13, 0xa8, 0x86, 0x7c, 0xee, 0x41, 0x68, 0x6e, + 0x70, 0x0d, 0x13, 0x99, 0xee, 0x76, 0x9f, 0xbb, 0x24, 0x7e, 0x1e, 0x4c, 0x3c, 0x9f, 0x29, 0xb3, + 0xc9, 0x77, 0xbb, 0x0a, 0x48, 0xf5, 0x49, 0x81, 0x41, 0x68, 0x02, 0xd7, 0x47, 0x82, 0x28, 0xa3, + 0xb4, 0x3b, 0x31, 0xeb, 0xbc, 0x40, 0x66, 0x08, 0xb5, 0x44, 0x1f, 0xfb, 0x63, 0x1c, 0x99, 0x5b, + 0xac, 0x4d, 0x48, 0xe9, 0xb8, 0xe7, 0xde, 0xcc, 0x8b, 0xcd, 0x86, 0x34, 0x8e, 0x21, 0xd4, 0x2f, + 0x07, 0xa4, 0x3b, 0x0d, 0x46, 0x57, 0x66, 0x73, 0xcf, 0xd8, 0xdf, 0x70, 0x12, 0x91, 0x97, 0xe4, + 0x89, 0x47, 0x62, 0x1c, 0x0d, 0x42, 0xb3, 0xc5, 0x6d, 0x98, 0x21, 0xf6, 0x28, 0xdd, 0x30, 0x73, + 0x87, 0x28, 0x79, 0xc6, 0x62, 0xa7, 0x70, 0x51, 0x6d, 0x80, 0xf7, 0x65, 0x5e, 0xca, 0x70, 0xfb, + 0x8f, 0x06, 0x6c, 0x8b, 0xaf, 0x90, 0xee, 0xf5, 0x4b, 0x77, 0x86, 0xc5, 0xe9, 0x90, 0x22, 0x54, + 0x4c, 0x4e, 0x87, 0x89, 0x8c, 0x8e, 0x00, 0x4e, 0xdd, 0x89, 0xe7, 0xcb, 0x55, 0xec, 0xa3, 0x82, + 0xdd, 0xb2, 0x83, 0xbf, 0x9c, 0x63, 0x12, 0x67, 0x7d, 0x1d, 0x69, 0xdc, 0x0a, 0x95, 0xe6, 0x4f, + 0xbc, 0xf8, 0x2b, 0x9a, 0x91, 0x10, 0xed, 0x41, 0x8d, 0x2a, 0x9e, 0x24, 0x38, 0x99, 0x11, 0x6f, + 0x40, 0xc7, 0x05, 0x0a, 0x7e, 0xbb, 0x50, 0x41, 0x12, 0x06, 0x3e, 0xc1, 0x0b, 0x34, 0x4c, 0x6c, + 0x30, 0x9f, 0x11, 0x91, 0xe5, 0x52, 0xd9, 0xfe, 0xaf, 0x01, 0x5b, 0x87, 0xd3, 0x98, 0x67, 0xc6, + 0x5b, 0x85, 0x6a, 0x3e, 0x52, 0x2a, 0x7a, 0xa4, 0xc8, 0xf1, 0x59, 0xcd, 0xc5, 0x67, 0x1a, 0x45, + 0x35, 0x39, 0x8a, 0x32, 0x5f, 0xe5, 0xc1, 0x95, 0xf8, 0x6a, 0x71, 0x74, 0xed, 0x40, 0x8d, 0x27, + 0x07, 0x1e, 0x5a, 0xb5, 0x34, 0x2b, 0x88, 0x93, 0xcc, 0x58, 0x84, 0x54, 0x2a, 0xdb, 0x87, 0xd0, + 0x90, 0xd8, 0x97, 0xf1, 0x4b, 0xfb, 0x0f, 0x06, 0xd4, 0x93, 0xd5, 0x4d, 0x0a, 0xb6, 0x64, 0x28, + 0x43, 0x37, 0xd4, 0xdd, 0xf8, 0x9d, 0xec, 0xd9, 0x15, 0xd5, 0xb3, 0xed, 0xbf, 0x19, 0xb0, 0x95, + 0xe9, 0x74, 0xcb, 0x70, 0xab, 0x14, 0x85, 0x5b, 0xce, 0x37, 0x2b, 0x77, 0xe1, 0x9b, 0xd5, 0x9c, + 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x13, 0xcf, 0x5c, 0x6e, 0xd8, 0x9c, 0x07, 0xae, 0xe9, + 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x4a, 0x5e, 0x59, 0x7d, 0x87, 0x1e, 0xf9, 0x39, 0xd4, 0x53, + 0xce, 0xa5, 0xfc, 0xf1, 0x77, 0x06, 0x6c, 0xb1, 0xb4, 0xbc, 0x2c, 0xa2, 0x3f, 0x86, 0xe6, 0xb1, + 0x3f, 0x3e, 0xf2, 0x88, 0x7b, 0x3e, 0xe5, 0xd5, 0x4f, 0x1c, 0xb8, 0x54, 0x74, 0x79, 0x82, 0x53, + 0xf8, 0x54, 0xf5, 0x08, 0x93, 0xb4, 0x29, 0xc5, 0xe8, 0x02, 0x9a, 0xaf, 0xfc, 0x95, 0x28, 0x2d, + 0x4f, 0x52, 0xb2, 0xaa, 0x95, 0x9c, 0xaa, 0x3d, 0x68, 0x29, 0xdf, 0x29, 0xa5, 0xec, 0x9f, 0x0d, + 0x76, 0xa3, 0x98, 0x4e, 0xc3, 0x72, 0x82, 0x1a, 0xf1, 0xc6, 0xdd, 0x54, 0x9a, 0x02, 0x76, 0xb6, + 0xb4, 0xf4, 0x2f, 0xe7, 0x33, 0x91, 0xed, 0x15, 0xcc, 0xfe, 0x0a, 0x36, 0x53, 0x99, 0x46, 0x39, + 0xfd, 0x2f, 0x54, 0x52, 0xa2, 0x9c, 0xb5, 0x3f, 0x82, 0x76, 0x17, 0x4f, 0x3c, 0x5f, 0xf7, 0x12, + 0x0d, 0x2f, 0xf0, 0xa7, 0x4a, 0x91, 0x3f, 0xd9, 0xff, 0xe4, 0x85, 0x5a, 0xb6, 0x50, 0xa9, 0x0c, + 0x75, 0x00, 0x90, 0xcd, 0x21, 0xf2, 0x54, 0x8b, 0x8f, 0xc8, 0x16, 0x51, 0xea, 0xf2, 0xff, 0x48, + 0x59, 0xa7, 0xec, 0x64, 0x9b, 0x7e, 0x33, 0xd9, 0xff, 0xee, 0xc2, 0x3a, 0x15, 0xcf, 0xbc, 0xb7, + 0xdf, 0x00, 0x1f, 0xb3, 0x53, 0x6a, 0x6e, 0x46, 0x12, 0xa2, 0xef, 0x4a, 0xcb, 0x28, 0x6a, 0x88, + 0x46, 0x3e, 0xeb, 0x61, 0x5f, 0x40, 0x23, 0xbb, 0xa9, 0xbf, 0x9d, 0x4a, 0x37, 0xc6, 0x50, 0x57, + 0x7e, 0x8d, 0x28, 0xb7, 0xb0, 0x8f, 0xff, 0x53, 0xe7, 0xb5, 0x07, 0x7d, 0x9a, 0x56, 0x56, 0x76, + 0x45, 0xb9, 0xc3, 0x47, 0xa9, 0x97, 0xbd, 0xd6, 0x7b, 0x05, 0x28, 0x09, 0x51, 0x0f, 0x9a, 0xea, + 0x8d, 0x24, 0xda, 0x15, 0xde, 0x9d, 0xbf, 0x33, 0xb5, 0xcc, 0xe2, 0x06, 0x12, 0xa2, 0x9f, 0xc3, + 0xee, 0x82, 0x9b, 0x40, 0xb4, 0xc7, 0x07, 0x2d, 0xbe, 0xac, 0xb4, 0x3e, 0x5c, 0xd2, 0x83, 0x84, + 0x94, 0xa0, 0xf4, 0x7e, 0x92, 0x10, 0x54, 0x9f, 0x73, 0x12, 0x82, 0xf9, 0x87, 0x96, 0x1f, 0xb1, + 0x12, 0x9f, 0xbe, 0x5c, 0xa0, 0xcc, 0x0e, 0xf2, 0xf3, 0x88, 0xf5, 0xa0, 0x08, 0xe6, 0xc3, 0xe5, + 0x8b, 0xfb, 0x64, 0x78, 0xee, 0x99, 0x22, 0x19, 0xae, 0xbd, 0x20, 0x3c, 0x63, 0x5b, 0x7a, 0xe5, + 0x3a, 0xd2, 0x4c, 0xbf, 0x94, 0xbb, 0xe6, 0xb2, 0xde, 0x5f, 0xd0, 0x42, 0x42, 0xe4, 0xb0, 0x80, + 0xc9, 0xdf, 0x4c, 0xa0, 0x6f, 0xc8, 0x5a, 0xe7, 0xaf, 0x08, 0xac, 0x6f, 0xde, 0xd0, 0x4a, 0x42, + 0x34, 0x60, 0x19, 0x58, 0x9d, 0xb0, 0x58, 0x05, 0x36, 0x9b, 0xb5, 0xa8, 0x89, 0x84, 0xe8, 0x27, + 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0x3d, 0x14, 0xb1, 0xb6, 0xe0, 0x16, 0xc3, 0xfa, 0xd6, 0x8d, 0xed, + 0xdc, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0x7e, 0xf6, 0x29, 0x34, 0x94, 0x0b, + 0x4a, 0xf4, 0x20, 0xed, 0xab, 0xdc, 0xc0, 0x5a, 0xbb, 0x85, 0x38, 0x77, 0x42, 0xe9, 0x74, 0x96, + 0x8b, 0x32, 0x91, 0xc1, 0x72, 0x51, 0x96, 0x66, 0xa1, 0x5e, 0x7a, 0xd4, 0x17, 0x27, 0x9b, 0x24, + 0xca, 0xb4, 0x93, 0x98, 0x65, 0x16, 0x37, 0x90, 0x10, 0x3d, 0x61, 0x6f, 0x4b, 0xe2, 0xce, 0x01, + 0xdd, 0xe7, 0xfd, 0x94, 0x0b, 0x0d, 0x6b, 0x47, 0x07, 0x49, 0x88, 0x7e, 0x00, 0x9b, 0xe9, 0xee, + 0x1d, 0x21, 0xe1, 0xa9, 0xd2, 0x61, 0xc6, 0xba, 0xaf, 0x61, 0x24, 0x44, 0x9f, 0xc0, 0x46, 0xa2, + 0x04, 0xda, 0x56, 0x95, 0xa2, 0x63, 0x50, 0x1e, 0x22, 0x21, 0xea, 0xc0, 0xba, 0xd8, 0x94, 0x21, + 0x91, 0xba, 0xb2, 0x7d, 0xa9, 0xb5, 0x9d, 0x43, 0xb8, 0x62, 0x59, 0x8d, 0x45, 0xf9, 0xb4, 0x9c, + 0x29, 0xa6, 0x6e, 0x36, 0x3e, 0x85, 0xba, 0xb4, 0xff, 0x48, 0x16, 0x42, 0xdd, 0xfa, 0x24, 0x0b, + 0x91, 0xdf, 0xa8, 0x3c, 0x85, 0x86, 0x52, 0x53, 0x51, 0x16, 0xf7, 0xca, 0x56, 0xc4, 0xda, 0x2d, + 0xc4, 0xd3, 0xa8, 0x51, 0x0a, 0x8d, 0x14, 0x35, 0xf9, 0x92, 0x26, 0x45, 0x8d, 0x5e, 0x9b, 0x9e, + 0x00, 0x64, 0xd9, 0x2a, 0x59, 0x50, 0xa5, 0xfc, 0x58, 0x3b, 0x3a, 0x48, 0xc2, 0x6e, 0xe3, 0xa7, + 0xf5, 0x0e, 0x7b, 0x77, 0xff, 0x21, 0xfd, 0x73, 0x7e, 0x8f, 0xbd, 0x90, 0x7f, 0xff, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0xba, 0x11, 0x76, 0x90, 0x1f, 0x00, 0x00, +} diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index de5367105..a404a0c9e 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -1,5 +1,6 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +import "Open_IM/pkg/proto/conversation/conversation.proto"; option go_package = "./user;user"; package user; @@ -75,25 +76,8 @@ message SetGlobalRecvMessageOptResp{ CommonResp commonResp = 1; } -message Conversation{ - string OwnerUserID = 1; - string ConversationID = 2; - int32 RecvMsgOpt = 3; - int32 ConversationType = 4; - string UserID = 5; - string GroupID = 6; - int32 UnreadCount = 7; - int64 DraftTextTime = 8; - bool IsPinned = 9; - string AttachedInfo = 10; - bool IsPrivateChat = 11; - int32 GroupAtType = 12; - bool IsNotInGroup = 13; - string Ex = 14; -} - message SetConversationReq{ - Conversation Conversation = 1; + conversation.Conversation Conversation = 1; int32 notificationType = 2; string OperationID = 3; } @@ -122,7 +106,7 @@ message GetConversationReq{ message GetConversationResp{ CommonResp commonResp = 1; - Conversation Conversation = 2; + conversation.Conversation Conversation = 2; } message GetConversationsReq{ @@ -133,7 +117,7 @@ message GetConversationsReq{ message GetConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message GetAllConversationsReq{ @@ -143,11 +127,11 @@ message GetAllConversationsReq{ message GetAllConversationsResp{ CommonResp commonResp = 1; - repeated Conversation Conversations = 2; + repeated conversation.Conversation Conversations = 2; } message BatchSetConversationsReq{ - repeated Conversation Conversations = 1; + repeated conversation.Conversation Conversations = 1; string OwnerUserID = 2; int32 notificationType = 3; string OperationID = 4; @@ -188,6 +172,7 @@ message User{ int32 Gender = 12; int32 LoginLimit = 13; bool IsBlock = 14; + string RegisterIp = 15; } message GetUserByIdResp{ @@ -210,10 +195,13 @@ message GetUsersByNameResp { message AlterUserReq{ string UserId = 1; string OperationID = 2; - int64 PhoneNumber = 3; + string PhoneNumber = 3; string Nickname = 4; string Email = 5; - string OpUserId = 6; + string Gender = 6; + string Birth =7; + string Photo = 8; + string OpUserId = 9; } message AlterUserResp{ @@ -238,7 +226,11 @@ message AddUserReq{ string PhoneNumber = 2; string UserId = 3; string name = 4; - string OpUserId = 5; + string Email = 5; + string Gender = 6; + string Birth =7; + string Photo = 8; + string OpUserId = 9; } message AddUserResp{ From 9590d2865ad4cd2a61b7002efc03a092d9050e8d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 19:08:20 +0800 Subject: [PATCH 04/56] conversation --- internal/push/getui/push.go | 10 +++++++++- internal/rpc/group/group.go | 17 +++++++++-------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/internal/push/getui/push.go b/internal/push/getui/push.go index 93a55b084..7f7012bb2 100644 --- a/internal/push/getui/push.go +++ b/internal/push/getui/push.go @@ -102,7 +102,10 @@ type Options struct { } `json:"HW"` XM struct { ChannelID string `json:"/extra.channel_id"` - } `json:""` + } `json:"XM"` + VV struct { + Classification int `json:"/classification"` + } `json:"VV"` } type PushResp struct { @@ -156,6 +159,11 @@ func (g *Getui) Push(userIDList []string, alert, detailContent, operationID stri XM: struct { ChannelID string `json:"/extra.channel_id"` }{ChannelID: "high_system"}, + VV: struct { + Classification int "json:\"/classification\"" + }{ + Classification: 1, + }, } pushResp := PushResp{} err = g.request(PushURL, pushReq, token, &pushResp, operationID) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b93720f32..f8e953c68 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/db/rocks_cache" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" @@ -19,12 +19,13 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "math/big" "net" "strconv" "strings" "time" + + "google.golang.org/grpc" ) type groupServer struct { @@ -381,7 +382,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite haveConUserID = append(haveConUserID, v.OwnerUserID) } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range conversations { reqPb.OperationID = req.OperationID c.OwnerUserID = v.OwnerUserID @@ -634,7 +635,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range okUserIDList { reqPb.OperationID = req.OperationID c.OwnerUserID = v @@ -867,7 +868,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } var reqPb pbUser.SetConversationReq reqPb.OperationID = req.OperationID - var c pbUser.Conversation + var c pbConversation.Conversation conversation, err := imdb.GetConversation(req.FromUserID, utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType)) if err != nil { c.OwnerUserID = req.FromUserID @@ -1061,7 +1062,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } //modify quitter conversation info var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation reqPb.OperationID = req.OperationID c.OwnerUserID = req.OpUserID c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) @@ -1515,7 +1516,7 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo OpUserID: req.OpUserID, } var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range resp.Success { reqPb.OperationID = req.OperationID c.OwnerUserID = v @@ -1700,7 +1701,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou } //modify quitter conversation info var reqPb pbUser.SetConversationReq - var c pbUser.Conversation + var c pbConversation.Conversation for _, v := range memberList { reqPb.OperationID = req.OperationID c.OwnerUserID = v.UserID From 3739127044e98388ffeec26ff7b2731a4092fdf2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 23 Aug 2022 19:17:52 +0800 Subject: [PATCH 05/56] conversation --- pkg/base_info/conversation_api_struct.go | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 30890f7eb..e1307bb16 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -33,20 +33,21 @@ type SetReceiveMessageOptResp struct { } type Conversation struct { - OwnerUserID string `json:"ownerUserID" binding:"required"` - ConversationID string `json:"conversationID" binding:"required"` - ConversationType int32 `json:"conversationType" binding:"required"` - UserID string `json:"userID"` - GroupID string `json:"groupID"` - RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` - UnreadCount int32 `json:"unreadCount" binding:"omitempty"` - DraftTextTime int64 `json:"draftTextTime"` - IsPinned bool `json:"isPinned" binding:"omitempty"` - IsPrivateChat bool `json:"isPrivateChat"` - GroupAtType int32 `json:"groupAtType"` - IsNotInGroup bool `json:"isNotInGroup"` - AttachedInfo string `json:"attachedInfo"` - Ex string `json:"ex"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + ConversationID string `json:"conversationID" binding:"required"` + ConversationType int32 `json:"conversationType" binding:"required"` + UserID string `json:"userID"` + GroupID string `json:"groupID"` + RecvMsgOpt int32 `json:"recvMsgOpt" binding:"omitempty,oneof=0 1 2"` + UnreadCount int32 `json:"unreadCount" binding:"omitempty"` + DraftTextTime int64 `json:"draftTextTime"` + IsPinned bool `json:"isPinned" binding:"omitempty"` + IsPrivateChat bool `json:"isPrivateChat"` + GroupAtType int32 `json:"groupAtType"` + UpdateUnreadCountTime int64 `json:"updateUnreadCountTime"` + IsNotInGroup bool `json:"isNotInGroup"` + AttachedInfo string `json:"attachedInfo"` + Ex string `json:"ex"` } type SetConversationReq struct { From 3886d49b0a745910974df8aa1f9728739cf6b9ea Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 26 Aug 2022 17:51:01 +0800 Subject: [PATCH 06/56] admin cms --- cmd/open_im_api/main.go | 1 + cmd/rpc/open_im_message_cms/Makefile | 23 - cmd/rpc/open_im_message_cms/main.go | 17 - cmd/rpc/open_im_statistics/Makefile | 23 - cmd/rpc/open_im_statistics/main.go | 17 - internal/api/user/user.go | 54 + internal/cms_api/message_cms/message.go | 95 +- internal/cms_api/router.go | 24 - internal/cms_api/user/user.go | 205 --- internal/rpc/admin_cms/admin_cms.go | 423 ++++- internal/rpc/message_cms/message_cms.go | 182 -- internal/rpc/statistics/statistics.go | 399 ---- internal/rpc/user/user.go | 323 +--- pkg/base_info/common.go | 11 + pkg/base_info/manage_api_struct.go | 21 + pkg/cms_api_struct/common.go | 9 +- pkg/cms_api_struct/message_cms.go | 56 +- pkg/common/db/model_struct.go | 14 +- .../mysql_model/im_mysql_model/user_model.go | 65 +- pkg/common/db/rocks_cache/rocks_cache.go | 65 +- pkg/proto/admin_cms/admin_cms.pb.go | 1521 +++++++++++++++- pkg/proto/admin_cms/admin_cms.proto | 154 +- pkg/proto/base/base.proto | 5 - pkg/proto/message_cms/message_cms.pb.go | 1083 ----------- pkg/proto/message_cms/message_cms.proto | 71 - pkg/proto/statistics/statistics.pb.go | 1498 --------------- pkg/proto/statistics/statistics.proto | 93 - pkg/proto/user/user.pb.go | 1598 +++-------------- pkg/proto/user/user.proto | 155 +- script/check_all.sh | 2 - script/path_info.cfg | 4 - script/start_rpc_service.sh | 4 - 32 files changed, 2590 insertions(+), 5625 deletions(-) delete mode 100644 cmd/rpc/open_im_message_cms/Makefile delete mode 100644 cmd/rpc/open_im_message_cms/main.go delete mode 100644 cmd/rpc/open_im_statistics/Makefile delete mode 100644 cmd/rpc/open_im_statistics/main.go delete mode 100644 internal/rpc/message_cms/message_cms.go delete mode 100644 internal/rpc/statistics/statistics.go create mode 100644 pkg/base_info/common.go delete mode 100644 pkg/proto/base/base.proto delete mode 100644 pkg/proto/message_cms/message_cms.pb.go delete mode 100644 pkg/proto/message_cms/message_cms.proto delete mode 100644 pkg/proto/statistics/statistics.pb.go delete mode 100644 pkg/proto/statistics/statistics.proto diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6b9b5894b..5154841c2 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -64,6 +64,7 @@ func main() { userRouterGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) //1 userRouterGroup.POST("/account_check", manage.AccountCheck) //1 // userRouterGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) //1 + userRouterGroup.POST("/get_users", user.GetUsers) } //friend routing group friendRouterGroup := r.Group("/friend") diff --git a/cmd/rpc/open_im_message_cms/Makefile b/cmd/rpc/open_im_message_cms/Makefile deleted file mode 100644 index 4ac4cba3a..000000000 --- a/cmd/rpc/open_im_message_cms/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -.PHONY: all build run gotool install clean help - -BINARY_NAME=open_im_message_cms -BIN_DIR=../../../bin/ - -all: gotool build - -build: - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" - -run: - @go run ./ - -gotool: - go fmt ./ - go vet ./ - -install: - make build - mv ${BINARY_NAME} ${BIN_DIR} - -clean: - @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi diff --git a/cmd/rpc/open_im_message_cms/main.go b/cmd/rpc/open_im_message_cms/main.go deleted file mode 100644 index 9c39a99e4..000000000 --- a/cmd/rpc/open_im_message_cms/main.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import ( - rpcMessageCMS "Open_IM/internal/rpc/message_cms" - "Open_IM/pkg/common/config" - "flag" - "fmt" -) - -func main() { - defaultPorts := config.Config.RpcPort.OpenImMessageCmsPort[0] - rpcPort := flag.Int("port", defaultPorts, "rpc listening port") - flag.Parse() - fmt.Println("start msg cms rpc server, port: ", *rpcPort) - rpcServer := rpcMessageCMS.NewMessageCMSServer(*rpcPort) - rpcServer.Run() -} diff --git a/cmd/rpc/open_im_statistics/Makefile b/cmd/rpc/open_im_statistics/Makefile deleted file mode 100644 index 37dbb3efe..000000000 --- a/cmd/rpc/open_im_statistics/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -.PHONY: all build run gotool install clean help - -BINARY_NAME=open_im_statistics -BIN_DIR=../../../bin/ - -all: gotool build - -build: - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" - -run: - @go run ./ - -gotool: - go fmt ./ - go vet ./ - -install: - make build - mv ${BINARY_NAME} ${BIN_DIR} - -clean: - @if [ -f ${BINARY_NAME} ] ; then rm ${BINARY_NAME} ; fi diff --git a/cmd/rpc/open_im_statistics/main.go b/cmd/rpc/open_im_statistics/main.go deleted file mode 100644 index f9b0e8539..000000000 --- a/cmd/rpc/open_im_statistics/main.go +++ /dev/null @@ -1,17 +0,0 @@ -package main - -import ( - "Open_IM/internal/rpc/statistics" - "Open_IM/pkg/common/config" - "flag" - "fmt" -) - -func main() { - defaultPorts := config.Config.RpcPort.OpenImStatisticsPort - rpcPort := flag.Int("port", defaultPorts[0], "rpc listening port") - flag.Parse() - fmt.Println("start statistics rpc server, port: ", *rpcPort) - rpcServer := statistics.NewStatisticsServer(*rpcPort) - rpcServer.Run() -} diff --git a/internal/api/user/user.go b/internal/api/user/user.go index bef11c3a9..f39419f28 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -456,3 +456,57 @@ func GetUsersOnlineStatus(c *gin.Context) { log.NewInfo(req.OperationID, "GetUsersOnlineStatus api return", resp) c.JSON(http.StatusOK, resp) } + +func GetUsers(c *gin.Context) { + var ( + req api.GetUsersReq + resp api.GetUsersResp + reqPb rpc.GetUsersReq + ) + + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, "Bind failed ", err.Error(), req) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + + var ok bool + var errInfo string + ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) + if !ok { + errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + + log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) + + reqPb.OperationID = req.OperationID + reqPb.UserID = req.UserID + reqPb.UserName = req.UserName + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) + if etcdConn == nil { + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" + log.NewError(reqPb.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + client := rpc.NewUserClient(etcdConn) + respPb, err := client.GetUsers(context.Background(), &reqPb) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), reqPb.String()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + utils.CopyStructFields(&resp.Data.UserList, respPb.UserList) + resp.CommResp.ErrCode = respPb.CommonResp.ErrCode + resp.CommResp.ErrMsg = respPb.CommonResp.ErrMsg + resp.Data.TotalNum = respPb.TotalNums + resp.Data.CurrentPage = respPb.Pagination.CurrentPage + resp.Data.ShowNumber = respPb.Pagination.ShowNumber + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) + c.JSON(http.StatusOK, resp) + return +} diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index 6cfda0ebc..d5dfadc92 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -6,7 +6,7 @@ import ( openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbMessage "Open_IM/pkg/proto/message_cms" + pbAdminCMS "Open_IM/pkg/proto/admin_cms" pbCommon "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" @@ -18,77 +18,11 @@ import ( "github.com/gin-gonic/gin" ) -func BroadcastMessage(c *gin.Context) { - var ( - reqPb pbMessage.BoradcastMessageReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbMessage.NewMessageCMSClient(etcdConn) - _, err := client.BoradcastMessage(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func MassSendMassage(c *gin.Context) { - var ( - reqPb pbMessage.MassSendMessageReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbMessage.NewMessageCMSClient(etcdConn) - _, err := client.MassSendMessage(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func WithdrawMessage(c *gin.Context) { - var ( - reqPb pbMessage.WithdrawMessageReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbMessage.NewMessageCMSClient(etcdConn) - _, err := client.WithdrawMessage(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - func GetChatLogs(c *gin.Context) { var ( - req cms_api_struct.GetChatLogsRequest - resp cms_api_struct.GetChatLogsResponse - reqPb pbMessage.GetChatLogsReq + req cms_api_struct.GetChatLogsReq + resp cms_api_struct.GetChatLogsResp + reqPb pbAdminCMS.GetChatLogsReq ) if err := c.ShouldBindQuery(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) @@ -108,28 +42,17 @@ func GetChatLogs(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pbMessage.NewMessageCMSClient(etcdConn) + client := pbAdminCMS.NewAdminCMSClient(etcdConn) respPb, err := client.GetChatLogs(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) openIMHttp.RespHttp200(c, err, resp) return } - //utils.CopyStructFields(&resp, &respPb) - for _, chatLog := range respPb.ChatLogs { - resp.ChatLogs = append(resp.ChatLogs, cms_api_struct.ChatLog{ - SessionType: int(chatLog.SessionType), - ContentType: int(chatLog.ContentType), - SenderNickName: chatLog.SenderNickName, - SenderId: chatLog.SenderId, - SearchContent: chatLog.SearchContent, - WholeContent: chatLog.WholeContent, - ReceiverNickName: chatLog.ReciverNickName, - ReceiverID: chatLog.ReciverId, - GroupName: chatLog.GroupName, - GroupId: chatLog.GroupId, - Date: chatLog.Date, - }) + for _, v := range respPb.ChatLogs { + chatLog := pbCommon.MsgData{} + utils.CopyStructFields(&chatLog, v) + resp.ChatLogs = append(resp.ChatLogs, &chatLog) } resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index b21e4a2a0..9a8cdfc0c 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -5,7 +5,6 @@ import ( "Open_IM/internal/cms_api/group" messageCMS "Open_IM/internal/cms_api/message_cms" "Open_IM/internal/cms_api/middleware" - "Open_IM/internal/cms_api/organization" "Open_IM/internal/cms_api/statistics" "Open_IM/internal/cms_api/user" @@ -35,20 +34,6 @@ func NewGinRouter() *gin.Engine { statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) } - organizationRouterGroup := r2.Group("/organization") - { - organizationRouterGroup.GET("/get_staffs", organization.GetStaffs) - organizationRouterGroup.GET("/get_organizations", organization.GetOrganizations) - organizationRouterGroup.GET("/get_squad", organization.GetSquads) - organizationRouterGroup.POST("/add_organization", organization.AddOrganization) - organizationRouterGroup.POST("/alter_staff", organization.AlterStaff) - organizationRouterGroup.GET("/inquire_organization", organization.InquireOrganization) - organizationRouterGroup.POST("/alter_organization", organization.AlterOrganization) - organizationRouterGroup.POST("/delete_organization", organization.DeleteOrganization) - organizationRouterGroup.POST("/get_organization_squad", organization.GetOrganizationSquads) - organizationRouterGroup.PATCH("/alter_corps_info", organization.AlterStaffsInfo) - organizationRouterGroup.POST("/add_child_org", organization.AddChildOrganization) - } groupRouterGroup := r2.Group("/group") { groupRouterGroup.GET("/get_group_by_id", group.GetGroupByID) @@ -65,24 +50,15 @@ func NewGinRouter() *gin.Engine { } userRouterGroup := r2.Group("/user") { - userRouterGroup.POST("/resign", user.ResignUser) - userRouterGroup.GET("/get_user", user.GetUserById) - userRouterGroup.POST("/alter_user", user.AlterUser) - userRouterGroup.GET("/get_users", user.GetUsers) userRouterGroup.POST("/add_user", user.AddUser) userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) userRouterGroup.GET("/get_block_user", user.GetBlockUserById) - userRouterGroup.POST("/delete_user", user.DeleteUser) - userRouterGroup.GET("/get_users_by_name", user.GetUsersByName) } messageCMSRouterGroup := r2.Group("/message") { messageCMSRouterGroup.GET("/get_chat_logs", messageCMS.GetChatLogs) - messageCMSRouterGroup.POST("/broadcast_message", messageCMS.BroadcastMessage) - messageCMSRouterGroup.POST("/mass_send_message", messageCMS.MassSendMassage) - messageCMSRouterGroup.POST("/withdraw_message", messageCMS.WithdrawMessage) } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index f6d2071ad..73ed0edd5 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -18,181 +18,6 @@ import ( "github.com/gin-gonic/gin" ) -func GetUserById(c *gin.Context) { - var ( - req cms_api_struct.GetUserRequest - resp cms_api_struct.GetUserResponse - reqPb pb.GetUserByIdReq - ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - client := pb.NewUserClient(etcdConn) - respPb, err := client.GetUserById(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - if respPb.User.UserId == "" { - openIMHttp.RespHttp200(c, constant.OK, nil) - return - } - utils.CopyStructFields(&resp, respPb.User) - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func GetUsersByName(c *gin.Context) { - var ( - req cms_api_struct.GetUsersByNameRequest - resp cms_api_struct.GetUsersByNameResponse - reqPb pb.GetUsersByNameReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.UserName = req.UserName - reqPb.Pagination = &commonPb.RequestPagination{ - PageNumber: int32(req.PageNumber), - ShowNumber: int32(req.ShowNumber), - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - respPb, err := client.GetUsersByName(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - utils.CopyStructFields(&resp.Users, respPb.Users) - resp.ShowNumber = int(respPb.Pagination.ShowNumber) - resp.CurrentPage = int(respPb.Pagination.CurrentPage) - resp.UserNums = respPb.UserNums - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func GetUsers(c *gin.Context) { - var ( - req cms_api_struct.GetUsersRequest - resp cms_api_struct.GetUsersResponse - reqPb pb.GetUsersReq - ) - reqPb.Pagination = &commonPb.RequestPagination{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - utils.CopyStructFields(&reqPb.Pagination, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - respPb, err := client.GetUsers(context.Background(), &reqPb) - if err != nil { - openIMHttp.RespHttp200(c, err, resp) - return - } - utils.CopyStructFields(&resp.Users, respPb.User) - resp.ShowNumber = int(respPb.Pagination.ShowNumber) - resp.CurrentPage = int(respPb.Pagination.CurrentPage) - resp.UserNums = respPb.UserNums - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) - -} - -func ResignUser(c *gin.Context) { - var ( - req cms_api_struct.ResignUserRequest - resp cms_api_struct.ResignUserResponse - reqPb pb.ResignUserReq - ) - if err := c.ShouldBind(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - _, err := client.ResignUser(context.Background(), &reqPb) - if err != nil { - openIMHttp.RespHttp200(c, err, resp) - } - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func AlterUser(c *gin.Context) { - var ( - req cms_api_struct.AlterUserRequest - resp cms_api_struct.AlterUserResponse - reqPb pb.AlterUserReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, resp) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - _, err := client.AlterUser(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, "microserver failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - func AddUser(c *gin.Context) { var ( req cms_api_struct.AddUserRequest @@ -374,33 +199,3 @@ func GetBlockUserById(c *gin.Context) { log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } - -func DeleteUser(c *gin.Context) { - var ( - req cms_api_struct.DeleteUserRequest - reqPb pb.DeleteUserReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.UserId = req.UserId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - _, err := client.DeleteUser(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, "DeleteUser rpc failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 19e2dc46b..34871c135 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -3,8 +3,8 @@ package admin_cms import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -15,6 +15,8 @@ import ( "net" "strconv" "strings" + "sync" + "time" "google.golang.org/grpc" ) @@ -81,23 +83,26 @@ func (s *adminCMSServer) Run() { func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLoginReq) (*pbAdminCMS.AdminLoginResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.AdminLoginResp{} + resp := &pbAdminCMS.AdminLoginResp{CommonResp: &pbAdminCMS.CommonResp{}} for i, adminID := range config.Config.Manager.AppManagerUid { if adminID == req.AdminID && config.Config.Manager.Secrets[i] == req.Secret { token, expTime, err := token_verify.CreateToken(adminID, constant.SingleChatType) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) - return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) + resp.CommonResp.ErrCode = constant.ErrTokenUnknown.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) resp.Token = token break } } - if resp.Token == "" { log.NewError(req.OperationID, utils.GetSelfFuncName(), "failed") - return resp, openIMHttp.WrapError(constant.ErrTokenMalformed) + resp.CommonResp.ErrCode = constant.ErrTokenUnknown.ErrCode + resp.CommonResp.ErrMsg = constant.ErrTokenMalformed.ErrMsg + return resp, nil } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil @@ -108,7 +113,9 @@ func (s *adminCMSServer) AddUserRegisterAddFriendIDList(_ context.Context, req * resp := &pbAdminCMS.AddUserRegisterAddFriendIDListResp{} if err := imdb.AddUserRegisterAddFriendIDList(req.UserIDList...); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) - return resp, openIMHttp.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) return resp, nil @@ -120,12 +127,16 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re if req.Operation == 0 { if err := imdb.ReduceUserRegisterAddFriendIDList(req.UserIDList...); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) - return resp, openIMHttp.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } } else { if err := imdb.DeleteAllRegisterAddFriendIDList(); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) - return resp, openIMHttp.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) @@ -138,12 +149,15 @@ func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req * userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, openIMHttp.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } userList, err := imdb.GetUsersByUserIDList(userIDList) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userIDList) - return resp, openIMHttp.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), userList, userIDList) resp.Pagination = &server_api_params.ResponsePagination{ @@ -154,3 +168,388 @@ func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req * log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) return resp, nil } + +func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatLogsReq) (*pbAdminCMS.GetChatLogsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) + resp := &pbAdminCMS.GetChatLogsResp{CommonResp: &pbAdminCMS.CommonResp{}} + time, err := utils.TimeStringToTime(req.SendTime) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) + resp.CommonResp.ErrCode = constant.ErrArgs.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + chatLog := db.ChatLog{ + Content: req.Content, + SendTime: time, + ContentType: req.ContentType, + SessionType: req.SessionType, + RecvID: req.RecvID, + SendID: req.SendID, + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "chat_log: ", chatLog) + nums, err := imdb.GetChatLogCount(chatLog) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLogCount", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.ChatLogsNum = int32(nums) + chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) + return resp, nil + } + for _, chatLog := range chatLogs { + pbChatLog := &pbAdminCMS.ChatLog{} + utils.CopyStructFields(pbChatLog, chatLog) + pbChatLog.SendTime = chatLog.SendTime.Unix() + pbChatLog.CreateTime = chatLog.CreateTime.Unix() + if chatLog.SenderNickname == "" { + sendUser, err := imdb.GetUserByUserID(chatLog.SendID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) + continue + } + pbChatLog.SenderNickname = sendUser.Nickname + } + switch chatLog.SessionType { + case constant.SingleChatType: + recvUser, err := imdb.GetUserByUserID(chatLog.RecvID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) + continue + } + pbChatLog.SenderNickname = recvUser.Nickname + + case constant.GroupChatType: + group, err := imdb.GetGroupInfoByGroupID(chatLog.RecvID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") + continue + } + pbChatLog.RecvID = group.GroupID + pbChatLog.gr = group.GroupName + } + resp.ChatLogs = append(resp.ChatLogs, pbChatLog) + } + resp.Pagination = &open_im_sdk.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } + + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp output: ", resp.String()) + return resp, nil +} + +func (s *adminCMSServer) GetActiveGroup(_ context.Context, req *pbAdminCMS.GetActiveGroupReq) (*pbAdminCMS.GetActiveGroupResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req", req.String()) + resp := &pbAdminCMS.GetActiveGroupResp{CommonResp: &pbAdminCMS.CommonResp{}} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) + activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + for _, activeGroup := range activeGroups { + resp.Groups = append(resp.Groups, + &pbAdminCMS.GroupResp{ + GroupName: activeGroup.Name, + GroupId: activeGroup.Id, + MessageNum: int32(activeGroup.MessageNum), + }) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) + return resp, nil +} + +func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetActiveUserReq) (*pbAdminCMS.GetActiveUserResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + resp := &pbAdminCMS.GetActiveUserResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) + activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + for _, activeUser := range activeUsers { + resp.Users = append(resp.Users, + &pbAdminCMS.UserResp{ + UserId: activeUser.Id, + NickName: activeUser.Name, + MessageNum: int32(activeUser.MessageNum), + }, + ) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) + return resp, nil +} + +func ParseTimeFromTo(from, to string) (time.Time, time.Time, error) { + var fromTime time.Time + var toTime time.Time + fromTime, err := utils.TimeStringToTime(from) + if err != nil { + return fromTime, toTime, err + } + toTime, err = utils.TimeStringToTime(to) + if err != nil { + return fromTime, toTime, err + } + return fromTime, toTime, nil +} + +func isInOneMonth(from, to time.Time) bool { + return from.Month() == to.Month() && from.Year() == to.Year() +} + +func GetRangeDate(from, to time.Time) [][2]time.Time { + interval := to.Sub(from) + var times [][2]time.Time + switch { + // today + case interval == 0: + times = append(times, [2]time.Time{ + from, from.Add(time.Hour * 24), + }) + // days + case isInOneMonth(from, to): + for i := 0; ; i++ { + fromTime := from.Add(time.Hour * 24 * time.Duration(i)) + toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) + if toTime.After(to.Add(time.Hour * 24)) { + break + } + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } + // month + case !isInOneMonth(from, to): + if to.Sub(from) < time.Hour*24*30 { + for i := 0; ; i++ { + fromTime := from.Add(time.Hour * 24 * time.Duration(i)) + toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) + if toTime.After(to.Add(time.Hour * 24)) { + break + } + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } + } else { + for i := 0; ; i++ { + if i == 0 { + fromTime := from + toTime := getFirstDateOfNextNMonth(fromTime, 1) + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } else { + fromTime := getFirstDateOfNextNMonth(from, i) + toTime := getFirstDateOfNextNMonth(fromTime, 1) + if toTime.After(to) { + toTime = to + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + break + } + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } + + } + } + } + return times +} + +func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { + lastOfMonth := time.Date(currentTime.Year(), currentTime.Month(), 1, 0, 0, 0, 0, currentTime.Location()).AddDate(0, n, 0) + return lastOfMonth +} + +func (s *adminCMSServer) GetGroupStatistics(_ context.Context, req *pbAdminCMS.GetGroupStatisticsReq) (*pbAdminCMS.GetGroupStatisticsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + resp := &pbAdminCMS.GetGroupStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) + } + increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) + return resp, errors.WrapError(constant.ErrDB) + } + totalGroupNum, err := imdb.GetTotalGroupNum() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + resp.IncreaseGroupNum = increaseGroupNum + resp.TotalGroupNum = totalGroupNum + times := GetRangeDate(fromTime, toTime) + log.NewDebug(req.OperationID, "times:", times) + wg := &sync.WaitGroup{} + resp.IncreaseGroupNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + resp.TotalGroupNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.IncreaseGroupNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetGroupNum(v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.TotalGroupNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) + } + wg.Wait() + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + return resp, nil +} + +func (s *adminCMSServer) GetMessageStatistics(_ context.Context, req *pbAdminCMS.GetMessageStatisticsReq) (*pbAdminCMS.GetMessageStatisticsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + resp := &pbAdminCMS.GetMessageStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) + } + privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) + resp.PrivateMessageNum = privateMessageNum + resp.GroupMessageNum = groupMessageNum + times := GetRangeDate(fromTime, toTime) + resp.GroupMessageNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + resp.PrivateMessageNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + wg := &sync.WaitGroup{} + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + + num, err := imdb.GetPrivateMessageNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.PrivateMessageNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetGroupMessageNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.GroupMessageNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) + } + wg.Wait() + return resp, nil +} + +func (s *adminCMSServer) GetUserStatistics(_ context.Context, req *pbAdminCMS.GetUserStatisticsReq) (*pbAdminCMS.GetUserStatisticsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.GetUserStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) + } + activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + totalUserNum, err := imdb.GetTotalUserNum() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) + } + resp.ActiveUserNum = activeUserNum + resp.TotalUserNum = totalUserNum + resp.IncreaseUserNum = increaseUserNum + times := GetRangeDate(fromTime, toTime) + resp.TotalUserNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + resp.ActiveUserNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + resp.IncreaseUserNumList = make([]*pbAdminCMS.DateNumList, len(times), len(times)) + wg := &sync.WaitGroup{} + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + num, err := imdb.GetActiveUserNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.ActiveUserNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + + num, err = imdb.GetTotalUserNumByDate(v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) + } + resp.TotalUserNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetIncreaseUserNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) + } + resp.IncreaseUserNumList[index] = &pbAdminCMS.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) + } + wg.Wait() + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + return resp, nil +} diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go deleted file mode 100644 index f0757e421..000000000 --- a/internal/rpc/message_cms/message_cms.go +++ /dev/null @@ -1,182 +0,0 @@ -package messageCMS - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - errors "Open_IM/pkg/common/http" - "context" - "strconv" - - "Open_IM/pkg/common/log" - - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbMessageCMS "Open_IM/pkg/proto/message_cms" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" - - "Open_IM/pkg/utils" - - "net" - "strings" - - "google.golang.org/grpc" -) - -type messageCMSServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewMessageCMSServer(port int) *messageCMSServer { - log.NewPrivateLog(constant.LogFileName) - return &messageCMSServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImMessageCMSName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *messageCMSServer) Run() { - log.NewInfo("0", "messageCMS rpc start ") - - listenIP := "" - if config.Config.ListenIP == "" { - listenIP = "0.0.0.0" - } else { - listenIP = config.Config.ListenIP - } - address := listenIP + ":" + strconv.Itoa(s.rpcPort) - - //listener network - listener, err := net.Listen("tcp", address) - if err != nil { - panic("listening err:" + err.Error() + s.rpcRegisterName) - } - log.NewInfo("0", "listen network success, ", address, listener) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbMessageCMS.RegisterMessageCMSServer(srv, s) - rpcRegisterIP := config.Config.RpcRegisterIP - if config.Config.RpcRegisterIP == "" { - rpcRegisterIP, err = utils.GetLocalIP() - if err != nil { - log.Error("", "GetLocalIP failed ", err.Error()) - } - } - log.NewInfo("", "rpcRegisterIP", rpcRegisterIP) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.NewError("0", "Serve failed ", err.Error()) - return - } - log.NewInfo("0", "message cms rpc success") -} - -func (s *messageCMSServer) BoradcastMessage(_ context.Context, req *pbMessageCMS.BoradcastMessageReq) (*pbMessageCMS.BoradcastMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "BoradcastMessage", req.String()) - resp := &pbMessageCMS.BoradcastMessageResp{} - return resp, errors.WrapError(constant.ErrDB) -} - -func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetChatLogsReq) (*pbMessageCMS.GetChatLogsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) - resp := &pbMessageCMS.GetChatLogsResp{} - time, err := utils.TimeStringToTime(req.Date) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) - } - chatLog := db.ChatLog{ - Content: req.Content, - SendTime: time, - ContentType: req.ContentType, - SessionType: req.SessionType, - } - switch chatLog.SessionType { - case constant.SingleChatType: - chatLog.SendID = req.UserId - case constant.GroupChatType: - chatLog.RecvID = req.GroupId - chatLog.SendID = req.UserId - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "chat_log: ", chatLog) - nums, err := imdb.GetChatLogCount(chatLog) - resp.ChatLogsNum = int32(nums) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLogCount", err.Error()) - } - chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, chatLog := range chatLogs { - pbChatLog := &pbMessageCMS.ChatLogs{ - SessionType: chatLog.SessionType, - ContentType: chatLog.ContentType, - SearchContent: req.Content, - WholeContent: chatLog.Content, - Date: chatLog.CreateTime.String(), - SenderNickName: chatLog.SenderNickname, - SenderId: chatLog.SendID, - } - if chatLog.SenderNickname == "" { - sendUser, err := imdb.GetUserByUserID(chatLog.SendID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) - continue - } - pbChatLog.SenderNickName = sendUser.Nickname - } - switch chatLog.SessionType { - case constant.SingleChatType: - recvUser, err := imdb.GetUserByUserID(chatLog.RecvID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) - continue - } - pbChatLog.ReciverId = recvUser.UserID - pbChatLog.ReciverNickName = recvUser.Nickname - - case constant.GroupChatType: - group, err := imdb.GetGroupInfoByGroupID(chatLog.RecvID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") - continue - } - pbChatLog.GroupId = group.GroupID - pbChatLog.GroupName = group.GroupName - } - resp.ChatLogs = append(resp.ChatLogs, pbChatLog) - } - resp.Pagination = &open_im_sdk.ResponsePagination{ - CurrentPage: req.Pagination.PageNumber, - ShowNumber: req.Pagination.ShowNumber, - } - - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp output: ", resp.String()) - return resp, nil -} - -func (s *messageCMSServer) MassSendMessage(_ context.Context, req *pbMessageCMS.MassSendMessageReq) (*pbMessageCMS.MassSendMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "MassSendMessage", req.String()) - resp := &pbMessageCMS.MassSendMessageResp{} - return resp, nil -} - -func (s *messageCMSServer) WithdrawMessage(_ context.Context, req *pbMessageCMS.WithdrawMessageReq) (*pbMessageCMS.WithdrawMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "WithdrawMessage", req.String()) - resp := &pbMessageCMS.WithdrawMessageResp{} - return resp, nil -} diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go deleted file mode 100644 index 920fc9d73..000000000 --- a/internal/rpc/statistics/statistics.go +++ /dev/null @@ -1,399 +0,0 @@ -package statistics - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "context" - "strconv" - "sync" - "time" - - //"Open_IM/pkg/common/constant" - //"Open_IM/pkg/common/db" - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - - //cp "Open_IM/pkg/common/utils" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbStatistics "Open_IM/pkg/proto/statistics" - - //open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" - //"context" - errors "Open_IM/pkg/common/http" - "net" - "strings" - - "google.golang.org/grpc" -) - -type statisticsServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewStatisticsServer(port int) *statisticsServer { - log.NewPrivateLog(constant.LogFileName) - return &statisticsServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *statisticsServer) Run() { - log.NewInfo("0", "Statistics rpc start ") - - listenIP := "" - if config.Config.ListenIP == "" { - listenIP = "0.0.0.0" - } else { - listenIP = config.Config.ListenIP - } - address := listenIP + ":" + strconv.Itoa(s.rpcPort) - - //listener network - listener, err := net.Listen("tcp", address) - if err != nil { - panic("listening err:" + err.Error() + s.rpcRegisterName) - } - log.NewInfo("0", "listen network success, ", address, listener) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbStatistics.RegisterUserServer(srv, s) - rpcRegisterIP := config.Config.RpcRegisterIP - if config.Config.RpcRegisterIP == "" { - rpcRegisterIP, err = utils.GetLocalIP() - if err != nil { - log.Error("", "GetLocalIP failed ", err.Error()) - } - } - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.NewError("0", "Serve failed ", err.Error()) - return - } - log.NewInfo("0", "statistics rpc success") -} - -func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.GetActiveGroupReq) (*pbStatistics.GetActiveGroupResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req", req.String()) - resp := &pbStatistics.GetActiveGroupResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) - activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, activeGroup := range activeGroups { - resp.Groups = append(resp.Groups, - &pbStatistics.GroupResp{ - GroupName: activeGroup.Name, - GroupId: activeGroup.Id, - MessageNum: int32(activeGroup.MessageNum), - }) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) - return resp, nil -} - -func (s *statisticsServer) GetActiveUser(_ context.Context, req *pbStatistics.GetActiveUserReq) (*pbStatistics.GetActiveUserResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetActiveUserResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) - activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, activeUser := range activeUsers { - resp.Users = append(resp.Users, - &pbStatistics.UserResp{ - UserId: activeUser.Id, - NickName: activeUser.Name, - MessageNum: int32(activeUser.MessageNum), - }, - ) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) - return resp, nil -} - -func ParseTimeFromTo(from, to string) (time.Time, time.Time, error) { - var fromTime time.Time - var toTime time.Time - fromTime, err := utils.TimeStringToTime(from) - if err != nil { - return fromTime, toTime, err - } - toTime, err = utils.TimeStringToTime(to) - if err != nil { - return fromTime, toTime, err - } - return fromTime, toTime, nil -} - -func isInOneMonth(from, to time.Time) bool { - return from.Month() == to.Month() && from.Year() == to.Year() -} - -func GetRangeDate(from, to time.Time) [][2]time.Time { - interval := to.Sub(from) - var times [][2]time.Time - switch { - // today - case interval == 0: - times = append(times, [2]time.Time{ - from, from.Add(time.Hour * 24), - }) - // days - case isInOneMonth(from, to): - for i := 0; ; i++ { - fromTime := from.Add(time.Hour * 24 * time.Duration(i)) - toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) - if toTime.After(to.Add(time.Hour * 24)) { - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - // month - case !isInOneMonth(from, to): - if to.Sub(from) < time.Hour*24*30 { - for i := 0; ; i++ { - fromTime := from.Add(time.Hour * 24 * time.Duration(i)) - toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) - if toTime.After(to.Add(time.Hour * 24)) { - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - } else { - for i := 0; ; i++ { - if i == 0 { - fromTime := from - toTime := getFirstDateOfNextNMonth(fromTime, 1) - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } else { - fromTime := getFirstDateOfNextNMonth(from, i) - toTime := getFirstDateOfNextNMonth(fromTime, 1) - if toTime.After(to) { - toTime = to - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - - } - } - } - return times -} - -func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { - lastOfMonth := time.Date(currentTime.Year(), currentTime.Month(), 1, 0, 0, 0, 0, currentTime.Location()).AddDate(0, n, 0) - return lastOfMonth -} - -func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatistics.GetGroupStatisticsReq) (*pbStatistics.GetGroupStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetGroupStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) - return resp, errors.WrapError(constant.ErrDB) - } - totalGroupNum, err := imdb.GetTotalGroupNum() - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.IncreaseGroupNum = increaseGroupNum - resp.TotalGroupNum = totalGroupNum - times := GetRangeDate(fromTime, toTime) - log.NewDebug(req.OperationID, "times:", times) - wg := &sync.WaitGroup{} - resp.IncreaseGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.TotalGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.IncreaseGroupNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetGroupNum(v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.TotalGroupNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} - -func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatistics.GetMessageStatisticsReq) (*pbStatistics.GetMessageStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetMessageStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) - resp.PrivateMessageNum = privateMessageNum - resp.GroupMessageNum = groupMessageNum - times := GetRangeDate(fromTime, toTime) - resp.GroupMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.PrivateMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg := &sync.WaitGroup{} - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - - num, err := imdb.GetPrivateMessageNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.PrivateMessageNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetGroupMessageNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.GroupMessageNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - return resp, nil -} - -func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistics.GetUserStatisticsReq) (*pbStatistics.GetUserStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbStatistics.GetUserStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - totalUserNum, err := imdb.GetTotalUserNum() - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.ActiveUserNum = activeUserNum - resp.TotalUserNum = totalUserNum - resp.IncreaseUserNum = increaseUserNum - times := GetRangeDate(fromTime, toTime) - resp.TotalUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.ActiveUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.IncreaseUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg := &sync.WaitGroup{} - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - num, err := imdb.GetActiveUserNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.ActiveUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - - num, err = imdb.GetTotalUserNumByDate(v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) - } - resp.TotalUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetIncreaseUserNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) - } - resp.IncreaseUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 9bf06b8fc..10078a170 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -21,8 +21,8 @@ import ( "net" "strconv" "strings" - "time" + "github.com/jinzhu/gorm" "google.golang.org/grpc" ) @@ -331,27 +331,6 @@ func (s *userServer) SetRecvMsgOpt(ctx context.Context, req *pbUser.SetRecvMsgOp return resp, nil } -func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { - log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) - if !token_verify.IsManagerUserID(req.OpUserID) { - log.NewError(req.OperationID, "IsManagerUserID false ", req.OpUserID) - return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, FailedUserIDList: req.DeleteUserIDList}, nil - } - var common pbUser.CommonResp - resp := pbUser.DeleteUsersResp{CommonResp: &common} - for _, userID := range req.DeleteUserIDList { - i := imdb.DeleteUser(userID) - if i == 0 { - log.NewError(req.OperationID, "delete user error", userID) - common.ErrCode = 201 - common.ErrMsg = "some uid deleted failed" - resp.FailedUserIDList = append(resp.FailedUserIDList, userID) - } - } - log.NewInfo(req.OperationID, "DeleteUsers rpc return ", resp.String()) - return &resp, nil -} - func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq) (*pbUser.GetAllUserIDResp, error) { log.NewInfo(req.OperationID, "GetAllUserID args ", req.String()) if !token_verify.IsManagerUserID(req.OpUserID) { @@ -564,164 +543,80 @@ func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, o } } -func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByNameReq) (*pbUser.GetUsersByNameResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) - resp := &pbUser.GetUsersByNameResp{} - users, err := imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByName failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, user := range users { - isBlock, err := imdb.UserIsBlock(user.UserID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - continue - } - resp.Users = append(resp.Users, &pbUser.User{ - ProfilePhoto: user.FaceURL, - Nickname: user.Nickname, - UserId: user.UserID, - CreateTime: user.CreateTime.Format("2006-01-02 15:04:05"), - CreateIp: user.CreateIp, - IsBlock: isBlock, - Birth: user.Birth.Format("2006-01-02"), - PhoneNumber: user.PhoneNumber, - Email: user.Email, - LastLoginIp: user.LastLoginIp, - LastLoginTime: user.LastLoginTime.Format("2006-01-02 15:04:05"), - LoginTimes: user.LoginTimes, - Gender: user.Gender, - LoginLimit: user.LoginLimit, - }) - } - user := db.User{Nickname: req.UserName} - userNums, err := imdb.GetUsersCount(user) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.UserNums = userNums - resp.Pagination = &sdkws.ResponsePagination{ - CurrentPage: req.Pagination.PageNumber, - ShowNumber: req.Pagination.ShowNumber, - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} - -func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq) (*pbUser.GetUserByIdResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) - resp := &pbUser.GetUserByIdResp{User: &pbUser.User{}} - user, err := imdb.GetUserByUserID(req.UserId) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - return resp, errors.WrapError(constant.ErrDB) - } - isBlock, err := imdb.UserIsBlock(req.UserId) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.User = &pbUser.User{ - ProfilePhoto: user.FaceURL, - Nickname: user.Nickname, - UserId: user.UserID, - CreateTime: user.CreateTime.Format("2006-01-02 15:04:05"), - CreateIp: user.CreateIp, - IsBlock: isBlock, - Birth: user.Birth.Format("2006-01-02"), - PhoneNumber: user.PhoneNumber, - Email: user.Email, - LastLoginIp: user.LastLoginIp, - LastLoginTime: user.LastLoginTime.Format("2006-01-02 15:04:05"), - LoginTimes: user.LoginTimes, - Gender: user.Gender, - LoginLimit: user.LoginLimit, - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return resp, nil -} - func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetUsersResp{User: []*pbUser.User{}} - users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsers failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - - for _, v := range users { - isBlock, err := imdb.UserIsBlock(v.UserID) - if err == nil { - registerIP := "" - registerInfo, err := imdb.GetRegisterInfo(v.UserID) - if registerInfo != nil && err == nil { - registerIP = registerInfo.RegisterIP - } - - user := &pbUser.User{ - ProfilePhoto: v.FaceURL, - UserId: v.UserID, - CreateTime: v.CreateTime.Format("2006-01-02 15:04:05"), - CreateIp: v.CreateIp, - Nickname: v.Nickname, - Birth: v.Birth.Format("2006-01-02"), - PhoneNumber: v.PhoneNumber, - Email: v.Email, - IsBlock: isBlock, - LastLoginIp: v.LastLoginIp, - LastLoginTime: v.LastLoginTime.Format("2006-01-02 15:04:05"), - LoginTimes: v.LoginTimes, - Gender: v.Gender, - LoginLimit: v.LoginLimit, - RegisterIp: registerIP, - } - resp.User = append(resp.User, user) - } else { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "UserIsBlock failed", err.Error()) + resp := &pbUser.GetUsersResp{CommonResp: &pbUser.CommonResp{}} + if req.UserID != "" { + userDB, err := imdb.GetUserByUserID(req.UserID) + if err != nil && !gorm.IsRecordNotFoundError(err) { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserID, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + return resp, nil + } + user := pbUser.CmsUser{User: &sdkws.UserInfo{}} + utils.CopyStructFields(&user.User, userDB) + resp.UserList = append(resp.UserList, &user) + resp.TotalNums = 1 + } else if req.UserName != "" { + usersDB, err := imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg + return resp, nil + } + resp.TotalNums, err = imdb.GetUsersCount(req.UserName) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserName, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + for _, userDB := range usersDB { + var user sdkws.UserInfo + utils.CopyStructFields(&user, userDB) + resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) + } + } else { + usersDB, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsers failed", req.Pagination.ShowNumber, req.Pagination.PageNumber, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.TotalNums, err = imdb.GetTotalUserNum() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + for _, userDB := range usersDB { + var user sdkws.UserInfo + utils.CopyStructFields(&user, userDB) + resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) } } - user := db.User{} - nums, err := imdb.GetUsersCount(user) + var userIDList []string + for _, v := range resp.UserList { + userIDList = append(userIDList, v.User.UserID) + } + isBlockUser, err := imdb.UsersIsBlock(userIDList) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsersCount failed", err.Error(), user) - return resp, errors.WrapError(constant.ErrDB) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), userIDList) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } - resp.UserNums = nums - resp.Pagination = &sdkws.ResponsePagination{ShowNumber: req.Pagination.ShowNumber, CurrentPage: req.Pagination.PageNumber} - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return resp, nil -} -func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) (*pbUser.ResignUserResp, error) { - log.NewInfo(req.OperationID, "ResignUser args ", req.String()) - return &pbUser.ResignUserResp{}, nil -} - -func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.AlterUserResp{} - birth, _ := time.ParseInLocation("2006-01-02", req.Birth, time.Local) - gender, gendererr := strconv.Atoi(req.Gender) - if gendererr != nil { - gender = 0 + for _, v := range resp.UserList { + if utils.IsContain(v.User.UserID, isBlockUser) { + v.IsBlock = true + } } - user := db.User{ - PhoneNumber: req.PhoneNumber, - Nickname: req.Nickname, - Email: req.Email, - UserID: req.UserId, - Gender: int32(gender), - FaceURL: req.Photo, - Birth: birth, - } - if err := imdb.UpdateUserInfo(user); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateUserInfo", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - chat.UserInfoUpdatedNotification(req.OperationID, req.UserId, req.OpUserId) + resp.Pagination = &sdkws.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -729,33 +624,41 @@ func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (* func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.AddUserResp{} - err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name, req.Email, req.Gender, req.Photo, req.Birth) + err := imdb.AddUser(req.UserInfo.UserID, req.UserInfo.PhoneNumber, req.UserInfo.Nickname, req.UserInfo.Email, req.UserInfo.Gender, req.UserInfo.FaceURL, req.UserInfo.Birth) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "AddUser", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "AddUser", err.Error(), req.String()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } return resp, nil } func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (*pbUser.BlockUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.BlockUserResp{} - err := imdb.BlockUser(req.UserId, req.EndDisableTime) + resp := &pbUser.BlockUserResp{CommonResp: &pbUser.CommonResp{}} + err := imdb.BlockUser(req.UserID, req.EndDisableTime) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "BlockUser", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BlockUser", err.Error(), req.UserID, req.EndDisableTime) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.UnBlockUserResp{} - err := imdb.UnBlockUser(req.UserId) + err := imdb.UnBlockUser(req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "unBlockUser", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -764,20 +667,20 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser resp := &pbUser.GetBlockUsersResp{} blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - log.Error(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsers", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + log.Error(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsers", err.Error(), req.Pagination.ShowNumber, req.Pagination.PageNumber) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } for _, v := range blockUsers { resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ - User: &pbUser.User{ - ProfilePhoto: v.User.FaceURL, - Nickname: v.User.Nickname, - UserId: v.User.UserID, - IsBlock: true, - Birth: v.User.Birth.Format("2006-01-02"), - PhoneNumber: v.User.PhoneNumber, - Email: v.User.Email, - Gender: v.User.Gender, + UserInfo: &sdkws.UserInfo{ + FaceURL: v.User.FaceURL, + Nickname: v.User.Nickname, + UserID: v.User.UserID, + PhoneNumber: v.User.PhoneNumber, + Email: v.User.Email, + Gender: v.User.Gender, }, BeginDisableTime: (v.BeginDisableTime).String(), EndDisableTime: (v.EndDisableTime).String(), @@ -795,39 +698,3 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) return resp, nil } - -func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUserByIdReq) (*pbUser.GetBlockUserByIdResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetBlockUserByIdResp{} - user, err := imdb.GetBlockUserById(req.UserId) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUserById", err) - return resp, errors.WrapError(constant.ErrDB) - } - resp.BlockUser = &pbUser.BlockUser{ - User: &pbUser.User{ - ProfilePhoto: user.User.FaceURL, - Nickname: user.User.Nickname, - UserId: user.User.UserID, - IsBlock: true, - Birth: user.User.Birth.Format("2006-01-02"), - PhoneNumber: user.User.PhoneNumber, - Email: user.User.Email, - Gender: user.User.Gender, - }, - BeginDisableTime: (user.BeginDisableTime).String(), - EndDisableTime: (user.EndDisableTime).String(), - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) - return resp, nil -} - -func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (*pbUser.DeleteUserResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbUser.DeleteUserResp{} - if row := imdb.DeleteUser(req.UserId); row == 0 { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete failed", "delete rows:", row) - return resp, errors.WrapError(constant.ErrDB) - } - return resp, nil -} diff --git a/pkg/base_info/common.go b/pkg/base_info/common.go new file mode 100644 index 000000000..a90a845a3 --- /dev/null +++ b/pkg/base_info/common.go @@ -0,0 +1,11 @@ +package base_info + +type RequestPagination struct { + PageNumber int `json:"pageNumber" binding:"required"` + ShowNumber int `json:"showNumber" binding:"required"` +} + +type ResponsePagination struct { + CurrentPage int `json:"currentPage"` + ShowNumber int `json:"showNumber"` +} diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index cc7ba5129..47cd20ba2 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -93,3 +93,24 @@ type CheckMsgIsSendSuccessResp struct { CommResp Status int32 `json:"status"` } + +type GetUsersReq struct { + OperationID string `json:"operationID" binding:"required"` + UserName string `json:"userName"` + UserID string `json:"userID"` + PageNumber int32 `json:"pageNumber" binding:"required"` + ShowNumber int32 `json:"showNumber" binding:"required"` +} + +type GetUsersResp struct { + CommResp + Data struct { + UserList []*struct { + server_api_params.UserInfo + IsBlock bool `json:"isBlock"` + } `json:"userList"` + TotalNum int32 `json:"totalNum"` + CurrentPage int32 `json:"currentPage"` + ShowNumber int32 `json:"showNumber"` + } `json:"data"` +} diff --git a/pkg/cms_api_struct/common.go b/pkg/cms_api_struct/common.go index 812e212ab..cbce2dfa3 100644 --- a/pkg/cms_api_struct/common.go +++ b/pkg/cms_api_struct/common.go @@ -1,16 +1,11 @@ package cms_api_struct type RequestPagination struct { - PageNumber int `form:"page_number" binding:"required"` - ShowNumber int `form:"show_number" binding:"required"` -} - -type RequestPaginationBody struct { PageNumber int `json:"pageNumber" binding:"required"` ShowNumber int `json:"showNumber" binding:"required"` } type ResponsePagination struct { - CurrentPage int `json:"current_number" binding:"required"` - ShowNumber int `json:"show_number" binding:"required"` + CurrentPage int `json:"currentPage"` + ShowNumber int `json:"showNumber"` } diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 164c75011..81778a8c8 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -1,50 +1,22 @@ package cms_api_struct -type BroadcastRequest struct { - Message string `json:"message"` -} - -type BroadcastResponse struct { -} - -type MassSendMassageRequest struct { - Message string `json:"message"` - Users []string `json:"users"` -} - -type MassSendMassageResponse struct { -} - -type GetChatLogsRequest struct { - SessionType int `form:"session_type"` - ContentType int `form:"content_type"` - Content string `form:"content"` - UserId string `form:"user_id"` - GroupId string `form:"group_id"` - Date string `form:"date"` +import ( + pbCommon "Open_IM/pkg/proto/sdk_ws" +) +type GetChatLogsReq struct { + SessionType int `json:"sessionType"` + ContentType int `json:"contentType"` + Content string `json:"content"` + SendID string `json:"userID"` + RecvID string `json:"recvID"` + GroupID string `json:"groupID"` + SendTime string `json:"sendTime"` RequestPagination } -type ChatLog struct { - SessionType int `json:"session_type"` - ContentType int `json:"content_type"` - SenderNickName string `json:"sender_nick_name"` - SenderId string `json:"sender_id"` - SearchContent string `json:"search_content"` - WholeContent string `json:"whole_content"` - - ReceiverNickName string `json:"receiver_nick_name,omitempty"` - ReceiverID string `json:"receiver_id,omitempty"` - - GroupName string `json:"group_name,omitempty"` - GroupId string `json:"group_id,omitempty"` - - Date string `json:"date"` -} - -type GetChatLogsResponse struct { - ChatLogs []ChatLog `json:"chat_logs"` - ChatLogsNum int `json:"log_nums"` +type GetChatLogsResp struct { + ChatLogs []*pbCommon.MsgData `json:"chat_logs"` + ChatLogsNum int `json:"log_nums"` ResponsePagination } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index a58899607..489c27c47 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -177,17 +177,21 @@ type User struct { Email string `gorm:"column:email;size:64"` Ex string `gorm:"column:ex;size:1024"` CreateTime time.Time `gorm:"column:create_time"` - CreateIp string `gorm:"column:create_ip;size:15"` - LastLoginTime time.Time `gorm:"column:last_login_time"` - LastLoginIp string `gorm:"column:last_login_ip;size:15"` - LoginTimes int32 `gorm:"column:login_times"` - LoginLimit int32 `gorm:"column:login_limit"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` InvitationCode string `gorm:"column:invitation_code"` status int32 `gorm:"column:status"` } +type UserIpRecord struct { + UserID string `gorm:"column:user_id;primary_key;size:64"` + CreateIp string `gorm:"column:create_ip;size:15"` + LastLoginTime time.Time `gorm:"column:last_login_time"` + LastLoginIp string `gorm:"column:last_login_ip;size:15"` + LoginTimes int32 `gorm:"column:login_times"` + LoginLimit int32 `gorm:"column:login_limit"` +} + type IpLimit struct { Ip string `gorm:"column:ip;primary_key;size:15"` LimitRegister int32 `gorm:"column:limit_register;size:1"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 9e132ad03..d328e311e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -43,9 +43,9 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } - user.LastLoginTime = time.Now() - user.LoginTimes = 0 - user.LastLoginIp = user.CreateIp + // user.LastLoginTime = time.Now() + // user.LoginTimes = 0 + // user.LastLoginIp = user.CreateIp err := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user).Error if err != nil { return err @@ -124,47 +124,34 @@ func GetUsers(showNumber, pageNumber int32) ([]db.User, error) { return users, err } -func AddUser(userId string, phoneNumber string, name string, email string, gender string, photo string, birth string) error { - _gender, _err := strconv.Atoi(gender) - if _err != nil { - _gender = 0 - } - _birth, _err := time.ParseInLocation("2006-01-02", birth, time.Local) +func AddUser(userID string, phoneNumber string, name string, email string, gender int32, faceURL string, birth uint32) error { + _birth, _err := time.ParseInLocation("2006-01-02", strconv.Itoa(int(birth)), time.Local) if _err != nil { _birth = time.Now() } user := db.User{ - UserID: userId, + UserID: userID, Nickname: name, - FaceURL: photo, - Gender: int32(_gender), + FaceURL: faceURL, + Gender: gender, PhoneNumber: phoneNumber, Birth: _birth, Email: email, Ex: "", CreateTime: time.Now(), - CreateIp: "", - LastLoginTime: time.Now(), - LastLoginIp: "", - LoginTimes: 0, - LoginLimit: 0, InvitationCode: "", } result := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user) return result.Error } -func UserIsBlock(userId string) (bool, error) { - var user db.BlackList - rows := db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userId).First(&user).RowsAffected - if rows >= 1 { - return user.EndDisableTime.After(time.Now()), nil - } - return false, nil +func UsersIsBlock(userIDList []string) (inBlockUserIDList []string, err error) { + err = db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid in (?) and end_disable_time > now()", userIDList).Pluck("uid", &inBlockUserIDList).Error + return inBlockUserIDList, err } -func BlockUser(userId, endDisableTime string) error { - user, err := GetUserByUserID(userId) +func BlockUser(userID, endDisableTime string) error { + user, err := GetUserByUserID(userID) if err != nil || user.UserID == "" { return err } @@ -176,34 +163,34 @@ func BlockUser(userId, endDisableTime string) error { return constant.ErrDB } var blockUser db.BlackList - db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userId).First(&blockUser) + db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userID).First(&blockUser) if blockUser.UserId != "" { db.DB.MysqlDB.DefaultGormDB().Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) - if user.LoginLimit != 2 { - db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) - } + // if user.LoginLimit != 2 { + // db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) + // } return nil } blockUser = db.BlackList{ - UserId: userId, + UserId: userID, BeginDisableTime: time.Now(), EndDisableTime: end, } result := db.DB.MysqlDB.DefaultGormDB().Create(&blockUser) if result.Error == nil { - if user.LoginLimit != 2 { - db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) - } + // if user.LoginLimit != 2 { + // db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) + // } } return result.Error } -func UnBlockUser(userId string) error { - err := db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userId).Delete(&db.BlackList{}).Error +func UnBlockUser(userID string) error { + err := db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userID).Delete(&db.BlackList{}).Error if err != nil { return err } - return db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", userId).Update("login_limit", 0).Error + return db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", userID).Update("login_limit", 0).Error } type BlockUserInfo struct { @@ -271,9 +258,9 @@ func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, er return users, err } -func GetUsersCount(user db.User) (int32, error) { +func GetUsersCount(nickname string) (int32, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", user.Nickname)).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", nickname)).Count(&count).Error; err != nil { return 0, err } return int32(count), nil diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 0cb41a8b5..8ebfbc23a 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -75,7 +75,10 @@ func GetFriendIDListFromCache(userID string) ([]string, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(friendIDList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } friendIDListStr, err := db.DB.Rc.Fetch(friendRelationCache+userID, time.Second*30*60, getFriendIDList) if err != nil { @@ -98,7 +101,10 @@ func GetBlackListFromCache(userID string) ([]string, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(blackIDList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } blackIDListStr, err := db.DB.Rc.Fetch(blackListCache+userID, time.Second*30*60, getBlackIDList) if err != nil { @@ -120,7 +126,10 @@ func GetJoinedGroupIDListFromCache(userID string) ([]string, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(joinedGroupList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } joinedGroupIDListStr, err := db.DB.Rc.Fetch(joinedGroupListCache+userID, time.Second*30*60, getJoinedGroupIDList) if err != nil { @@ -155,7 +164,10 @@ func GetGroupMemberIDListFromCache(groupID string) ([]string, error) { } } bytes, err := json.Marshal(groupMemberIDList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } groupIDListStr, err := db.DB.Rc.Fetch(groupCache+groupID, time.Second*30*60, f) if err != nil { @@ -178,7 +190,10 @@ func GetUserInfoFromCache(userID string) (*db.User, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(userInfo) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } userInfoStr, err := db.DB.Rc.Fetch(userInfoCache+userID, time.Second*30*60, getUserInfo) if err != nil { @@ -200,7 +215,10 @@ func GetGroupMemberInfoFromCache(groupID, userID string) (*db.GroupMember, error return "", utils.Wrap(err, "") } bytes, err := json.Marshal(groupMemberInfo) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } groupMemberInfoStr, err := db.DB.Rc.Fetch(groupMemberInfoCache+groupID+"-"+userID, time.Second*30*60, getGroupMemberInfo) if err != nil { @@ -266,7 +284,10 @@ func GetAllGroupMembersInfoFromCache(groupID string) ([]*db.GroupMember, error) return "", utils.Wrap(err, "") } bytes, err := json.Marshal(groupMembers) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } groupMembersStr, err := db.DB.Rc.Fetch(groupAllMemberInfoCache+groupID, time.Second*30*60, getGroupMemberInfo) if err != nil { @@ -288,7 +309,10 @@ func GetGroupInfoFromCache(groupID string) (*db.Group, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(groupInfo) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } groupInfoStr, err := db.DB.Rc.Fetch(groupInfoCache+groupID, time.Second*30*60, getGroupInfo) if err != nil { @@ -310,7 +334,10 @@ func GetAllFriendsInfoFromCache(userID string) ([]*db.Friend, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(friendInfoList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } allFriendInfoStr, err := db.DB.Rc.Fetch(allFriendInfoCache+userID, time.Second*30*60, getAllFriendInfo) if err != nil { @@ -332,7 +359,10 @@ func GetAllDepartmentsFromCache() ([]db.Department, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(departmentList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } allDepartmentsStr, err := db.DB.Rc.Fetch(allDepartmentCache, time.Second*30*60, getAllDepartments) if err != nil { @@ -354,7 +384,10 @@ func GetAllDepartmentMembersFromCache() ([]db.DepartmentMember, error) { return "", utils.Wrap(err, "") } bytes, err := json.Marshal(departmentMembers) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } allDepartmentMembersStr, err := db.DB.Rc.Fetch(allDepartmentMemberCache, time.Second*30*60, getAllDepartmentMembers) if err != nil { @@ -379,7 +412,10 @@ func GetJoinedSuperGroupListFromCache(userID string) ([]string, error) { return "", errors.New("GroupIDList == 0") } bytes, err := json.Marshal(userToSuperGroup.GroupIDList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } joinedSuperGroupListStr, err := db.DB.Rc.Fetch(joinedSuperGroupListCache+userID, time.Second*30*60, getJoinedSuperGroupIDList) var joinedSuperGroupList []string @@ -442,7 +478,10 @@ func GetUserConversationIDListFromCache(userID string) ([]string, error) { } log.NewDebug("", utils.GetSelfFuncName(), conversationIDList) bytes, err := json.Marshal(conversationIDList) - return string(bytes), utils.Wrap(err, "") + if err != nil { + return "", utils.Wrap(err, "") + } + return string(bytes), nil } conversationIDListStr, err := db.DB.Rc.Fetch(conversationIDListCache+userID, time.Second*30*60, getConversationIDList) var conversationIDList []string diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 06522567a..0ab31b3d1 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -24,6 +24,52 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +type CommonResp 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 *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{0} +} +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) +} +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) +} +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) +} +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) +} +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *CommonResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + type AdminLoginReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` AdminID string `protobuf:"bytes,2,opt,name=AdminID" json:"AdminID,omitempty"` @@ -37,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{0} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -79,17 +125,18 @@ func (m *AdminLoginReq) GetSecret() string { } type AdminLoginResp struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{1} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -116,6 +163,13 @@ func (m *AdminLoginResp) GetToken() string { return "" } +func (m *AdminLoginResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type AddUserRegisterAddFriendIDListReq struct { OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` UserIDList []string `protobuf:"bytes,2,rep,name=userIDList" json:"userIDList,omitempty"` @@ -128,7 +182,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{2} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -163,16 +217,17 @@ func (m *AddUserRegisterAddFriendIDListReq) GetUserIDList() []string { } type AddUserRegisterAddFriendIDListResp struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegisterAddFriendIDListResp{} } func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{3} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -192,6 +247,13 @@ func (m *AddUserRegisterAddFriendIDListResp) XXX_DiscardUnknown() { var xxx_messageInfo_AddUserRegisterAddFriendIDListResp proto.InternalMessageInfo +func (m *AddUserRegisterAddFriendIDListResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type ReduceUserRegisterAddFriendIDListReq struct { OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` Operation int32 `protobuf:"varint,2,opt,name=operation" json:"operation,omitempty"` @@ -205,7 +267,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{4} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -247,16 +309,17 @@ func (m *ReduceUserRegisterAddFriendIDListReq) GetUserIDList() []string { } type ReduceUserRegisterAddFriendIDListResp struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUserRegisterAddFriendIDListResp{} } func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{5} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -276,9 +339,16 @@ func (m *ReduceUserRegisterAddFriendIDListResp) XXX_DiscardUnknown() { var xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp proto.InternalMessageInfo +func (m *ReduceUserRegisterAddFriendIDListResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GetUserRegisterAddFriendIDListReq struct { OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=pagination" json:"pagination,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -288,7 +358,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{6} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -323,8 +393,9 @@ func (m *GetUserRegisterAddFriendIDListReq) GetPagination() *sdk_ws.RequestPagin } type GetUserRegisterAddFriendIDListResp struct { - UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,1,rep,name=UserInfoList" json:"UserInfoList,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,1,rep,name=userInfoList" json:"userInfoList,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=pagination" json:"pagination,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,3,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -334,7 +405,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_e0cc6ee28c5c634b, []int{7} + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -368,7 +439,1077 @@ func (m *GetUserRegisterAddFriendIDListResp) GetPagination() *sdk_ws.ResponsePag return nil } +func (m *GetUserRegisterAddFriendIDListResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetChatLogsReq struct { + Content string `protobuf:"bytes,1,opt,name=Content" json:"Content,omitempty"` + SendID string `protobuf:"bytes,2,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,3,opt,name=RecvID" json:"RecvID,omitempty"` + SendTime string `protobuf:"bytes,4,opt,name=SendTime" json:"SendTime,omitempty"` + SessionType int32 `protobuf:"varint,5,opt,name=SessionType" json:"SessionType,omitempty"` + ContentType int32 `protobuf:"varint,6,opt,name=ContentType" json:"ContentType,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,7,opt,name=Pagination" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,8,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } +func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } +func (*GetChatLogsReq) ProtoMessage() {} +func (*GetChatLogsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{9} +} +func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) +} +func (m *GetChatLogsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetChatLogsReq.Marshal(b, m, deterministic) +} +func (dst *GetChatLogsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetChatLogsReq.Merge(dst, src) +} +func (m *GetChatLogsReq) XXX_Size() int { + return xxx_messageInfo_GetChatLogsReq.Size(m) +} +func (m *GetChatLogsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetChatLogsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetChatLogsReq proto.InternalMessageInfo + +func (m *GetChatLogsReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *GetChatLogsReq) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *GetChatLogsReq) GetRecvID() string { + if m != nil { + return m.RecvID + } + return "" +} + +func (m *GetChatLogsReq) GetSendTime() string { + if m != nil { + return m.SendTime + } + return "" +} + +func (m *GetChatLogsReq) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *GetChatLogsReq) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *GetChatLogsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetChatLogsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type ChatLog struct { + ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + StringClientMsgID string `protobuf:"bytes,2,opt,name=stringClientMsgID" json:"stringClientMsgID,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,4,opt,name=RecvID" json:"RecvID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,5,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,6,opt,name=SenderNickname" json:"SenderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` + Content string `protobuf:"bytes,11,opt,name=Content" json:"Content,omitempty"` + Status int32 `protobuf:"varint,12,opt,name=Status" json:"Status,omitempty"` + SendTime int64 `protobuf:"varint,13,opt,name=SendTime" json:"SendTime,omitempty"` + CreateTime int64 `protobuf:"varint,14,opt,name=CreateTime" json:"CreateTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChatLog) Reset() { *m = ChatLog{} } +func (m *ChatLog) String() string { return proto.CompactTextString(m) } +func (*ChatLog) ProtoMessage() {} +func (*ChatLog) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{10} +} +func (m *ChatLog) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChatLog.Unmarshal(m, b) +} +func (m *ChatLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChatLog.Marshal(b, m, deterministic) +} +func (dst *ChatLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChatLog.Merge(dst, src) +} +func (m *ChatLog) XXX_Size() int { + return xxx_messageInfo_ChatLog.Size(m) +} +func (m *ChatLog) XXX_DiscardUnknown() { + xxx_messageInfo_ChatLog.DiscardUnknown(m) +} + +var xxx_messageInfo_ChatLog proto.InternalMessageInfo + +func (m *ChatLog) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *ChatLog) GetStringClientMsgID() string { + if m != nil { + return m.StringClientMsgID + } + return "" +} + +func (m *ChatLog) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *ChatLog) GetRecvID() string { + if m != nil { + return m.RecvID + } + return "" +} + +func (m *ChatLog) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *ChatLog) GetSenderNickname() string { + if m != nil { + return m.SenderNickname + } + return "" +} + +func (m *ChatLog) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL + } + return "" +} + +func (m *ChatLog) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *ChatLog) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom + } + return 0 +} + +func (m *ChatLog) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *ChatLog) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *ChatLog) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *ChatLog) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +func (m *ChatLog) GetCreateTime() int64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *ChatLog) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +type GetChatLogsResp struct { + ChatLogs []*ChatLog `protobuf:"bytes,1,rep,name=ChatLogs" json:"ChatLogs,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + ChatLogsNum int32 `protobuf:"varint,3,opt,name=ChatLogsNum" json:"ChatLogsNum,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } +func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } +func (*GetChatLogsResp) ProtoMessage() {} +func (*GetChatLogsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{11} +} +func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) +} +func (m *GetChatLogsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetChatLogsResp.Marshal(b, m, deterministic) +} +func (dst *GetChatLogsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetChatLogsResp.Merge(dst, src) +} +func (m *GetChatLogsResp) XXX_Size() int { + return xxx_messageInfo_GetChatLogsResp.Size(m) +} +func (m *GetChatLogsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetChatLogsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetChatLogsResp proto.InternalMessageInfo + +func (m *GetChatLogsResp) GetChatLogs() []*ChatLog { + if m != nil { + return m.ChatLogs + } + return nil +} + +func (m *GetChatLogsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetChatLogsResp) GetChatLogsNum() int32 { + if m != nil { + return m.ChatLogsNum + } + return 0 +} + +func (m *GetChatLogsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type StatisticsReq struct { + From string `protobuf:"bytes,1,opt,name=from" json:"from,omitempty"` + To string `protobuf:"bytes,2,opt,name=to" json:"to,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } +func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } +func (*StatisticsReq) ProtoMessage() {} +func (*StatisticsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{12} +} +func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) +} +func (m *StatisticsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_StatisticsReq.Marshal(b, m, deterministic) +} +func (dst *StatisticsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_StatisticsReq.Merge(dst, src) +} +func (m *StatisticsReq) XXX_Size() int { + return xxx_messageInfo_StatisticsReq.Size(m) +} +func (m *StatisticsReq) XXX_DiscardUnknown() { + xxx_messageInfo_StatisticsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_StatisticsReq proto.InternalMessageInfo + +func (m *StatisticsReq) GetFrom() string { + if m != nil { + return m.From + } + return "" +} + +func (m *StatisticsReq) GetTo() string { + if m != nil { + return m.To + } + return "" +} + +type GetActiveUserReq struct { + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } +func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } +func (*GetActiveUserReq) ProtoMessage() {} +func (*GetActiveUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{13} +} +func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) +} +func (m *GetActiveUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetActiveUserReq.Marshal(b, m, deterministic) +} +func (dst *GetActiveUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetActiveUserReq.Merge(dst, src) +} +func (m *GetActiveUserReq) XXX_Size() int { + return xxx_messageInfo_GetActiveUserReq.Size(m) +} +func (m *GetActiveUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetActiveUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetActiveUserReq proto.InternalMessageInfo + +func (m *GetActiveUserReq) GetStatisticsReq() *StatisticsReq { + if m != nil { + return m.StatisticsReq + } + return nil +} + +func (m *GetActiveUserReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type UserResp struct { + NickName string `protobuf:"bytes,1,opt,name=NickName" json:"NickName,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` + MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum" json:"MessageNum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserResp) Reset() { *m = UserResp{} } +func (m *UserResp) String() string { return proto.CompactTextString(m) } +func (*UserResp) ProtoMessage() {} +func (*UserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{14} +} +func (m *UserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserResp.Unmarshal(m, b) +} +func (m *UserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserResp.Marshal(b, m, deterministic) +} +func (dst *UserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserResp.Merge(dst, src) +} +func (m *UserResp) XXX_Size() int { + return xxx_messageInfo_UserResp.Size(m) +} +func (m *UserResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UserResp proto.InternalMessageInfo + +func (m *UserResp) GetNickName() string { + if m != nil { + return m.NickName + } + return "" +} + +func (m *UserResp) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *UserResp) GetMessageNum() int32 { + if m != nil { + return m.MessageNum + } + return 0 +} + +type GetActiveUserResp struct { + Users []*UserResp `protobuf:"bytes,1,rep,name=Users" json:"Users,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } +func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } +func (*GetActiveUserResp) ProtoMessage() {} +func (*GetActiveUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{15} +} +func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) +} +func (m *GetActiveUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetActiveUserResp.Marshal(b, m, deterministic) +} +func (dst *GetActiveUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetActiveUserResp.Merge(dst, src) +} +func (m *GetActiveUserResp) XXX_Size() int { + return xxx_messageInfo_GetActiveUserResp.Size(m) +} +func (m *GetActiveUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetActiveUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetActiveUserResp proto.InternalMessageInfo + +func (m *GetActiveUserResp) GetUsers() []*UserResp { + if m != nil { + return m.Users + } + return nil +} + +func (m *GetActiveUserResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetActiveGroupReq struct { + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } +func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } +func (*GetActiveGroupReq) ProtoMessage() {} +func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{16} +} +func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) +} +func (m *GetActiveGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetActiveGroupReq.Marshal(b, m, deterministic) +} +func (dst *GetActiveGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetActiveGroupReq.Merge(dst, src) +} +func (m *GetActiveGroupReq) XXX_Size() int { + return xxx_messageInfo_GetActiveGroupReq.Size(m) +} +func (m *GetActiveGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetActiveGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetActiveGroupReq proto.InternalMessageInfo + +func (m *GetActiveGroupReq) GetStatisticsReq() *StatisticsReq { + if m != nil { + return m.StatisticsReq + } + return nil +} + +func (m *GetActiveGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GroupResp struct { + GroupName string `protobuf:"bytes,1,opt,name=GroupName" json:"GroupName,omitempty"` + GroupId string `protobuf:"bytes,2,opt,name=GroupId" json:"GroupId,omitempty"` + MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum" json:"MessageNum,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupResp) Reset() { *m = GroupResp{} } +func (m *GroupResp) String() string { return proto.CompactTextString(m) } +func (*GroupResp) ProtoMessage() {} +func (*GroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{17} +} +func (m *GroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupResp.Unmarshal(m, b) +} +func (m *GroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupResp.Marshal(b, m, deterministic) +} +func (dst *GroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupResp.Merge(dst, src) +} +func (m *GroupResp) XXX_Size() int { + return xxx_messageInfo_GroupResp.Size(m) +} +func (m *GroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_GroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupResp proto.InternalMessageInfo + +func (m *GroupResp) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *GroupResp) GetGroupId() string { + if m != nil { + return m.GroupId + } + return "" +} + +func (m *GroupResp) GetMessageNum() int32 { + if m != nil { + return m.MessageNum + } + return 0 +} + +func (m *GroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetActiveGroupResp struct { + Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups" json:"Groups,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } +func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } +func (*GetActiveGroupResp) ProtoMessage() {} +func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{18} +} +func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) +} +func (m *GetActiveGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetActiveGroupResp.Marshal(b, m, deterministic) +} +func (dst *GetActiveGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetActiveGroupResp.Merge(dst, src) +} +func (m *GetActiveGroupResp) XXX_Size() int { + return xxx_messageInfo_GetActiveGroupResp.Size(m) +} +func (m *GetActiveGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetActiveGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetActiveGroupResp proto.InternalMessageInfo + +func (m *GetActiveGroupResp) GetGroups() []*GroupResp { + if m != nil { + return m.Groups + } + return nil +} + +func (m *GetActiveGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type DateNumList struct { + Date string `protobuf:"bytes,1,opt,name=Date" json:"Date,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=Num" json:"Num,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DateNumList) Reset() { *m = DateNumList{} } +func (m *DateNumList) String() string { return proto.CompactTextString(m) } +func (*DateNumList) ProtoMessage() {} +func (*DateNumList) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{19} +} +func (m *DateNumList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DateNumList.Unmarshal(m, b) +} +func (m *DateNumList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DateNumList.Marshal(b, m, deterministic) +} +func (dst *DateNumList) XXX_Merge(src proto.Message) { + xxx_messageInfo_DateNumList.Merge(dst, src) +} +func (m *DateNumList) XXX_Size() int { + return xxx_messageInfo_DateNumList.Size(m) +} +func (m *DateNumList) XXX_DiscardUnknown() { + xxx_messageInfo_DateNumList.DiscardUnknown(m) +} + +var xxx_messageInfo_DateNumList proto.InternalMessageInfo + +func (m *DateNumList) GetDate() string { + if m != nil { + return m.Date + } + return "" +} + +func (m *DateNumList) GetNum() int32 { + if m != nil { + return m.Num + } + return 0 +} + +type GetMessageStatisticsReq struct { + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq{} } +func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } +func (*GetMessageStatisticsReq) ProtoMessage() {} +func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{20} +} +func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) +} +func (m *GetMessageStatisticsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMessageStatisticsReq.Marshal(b, m, deterministic) +} +func (dst *GetMessageStatisticsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMessageStatisticsReq.Merge(dst, src) +} +func (m *GetMessageStatisticsReq) XXX_Size() int { + return xxx_messageInfo_GetMessageStatisticsReq.Size(m) +} +func (m *GetMessageStatisticsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMessageStatisticsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMessageStatisticsReq proto.InternalMessageInfo + +func (m *GetMessageStatisticsReq) GetStatisticsReq() *StatisticsReq { + if m != nil { + return m.StatisticsReq + } + return nil +} + +func (m *GetMessageStatisticsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetMessageStatisticsResp struct { + PrivateMessageNum int32 `protobuf:"varint,1,opt,name=PrivateMessageNum" json:"PrivateMessageNum,omitempty"` + GroupMessageNum int32 `protobuf:"varint,2,opt,name=GroupMessageNum" json:"GroupMessageNum,omitempty"` + PrivateMessageNumList []*DateNumList `protobuf:"bytes,3,rep,name=PrivateMessageNumList" json:"PrivateMessageNumList,omitempty"` + GroupMessageNumList []*DateNumList `protobuf:"bytes,4,rep,name=GroupMessageNumList" json:"GroupMessageNumList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,5,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsResp{} } +func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } +func (*GetMessageStatisticsResp) ProtoMessage() {} +func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{21} +} +func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) +} +func (m *GetMessageStatisticsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMessageStatisticsResp.Marshal(b, m, deterministic) +} +func (dst *GetMessageStatisticsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMessageStatisticsResp.Merge(dst, src) +} +func (m *GetMessageStatisticsResp) XXX_Size() int { + return xxx_messageInfo_GetMessageStatisticsResp.Size(m) +} +func (m *GetMessageStatisticsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMessageStatisticsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMessageStatisticsResp proto.InternalMessageInfo + +func (m *GetMessageStatisticsResp) GetPrivateMessageNum() int32 { + if m != nil { + return m.PrivateMessageNum + } + return 0 +} + +func (m *GetMessageStatisticsResp) GetGroupMessageNum() int32 { + if m != nil { + return m.GroupMessageNum + } + return 0 +} + +func (m *GetMessageStatisticsResp) GetPrivateMessageNumList() []*DateNumList { + if m != nil { + return m.PrivateMessageNumList + } + return nil +} + +func (m *GetMessageStatisticsResp) GetGroupMessageNumList() []*DateNumList { + if m != nil { + return m.GroupMessageNumList + } + return nil +} + +func (m *GetMessageStatisticsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetGroupStatisticsReq struct { + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } +func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupStatisticsReq) ProtoMessage() {} +func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{22} +} +func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) +} +func (m *GetGroupStatisticsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupStatisticsReq.Marshal(b, m, deterministic) +} +func (dst *GetGroupStatisticsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupStatisticsReq.Merge(dst, src) +} +func (m *GetGroupStatisticsReq) XXX_Size() int { + return xxx_messageInfo_GetGroupStatisticsReq.Size(m) +} +func (m *GetGroupStatisticsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupStatisticsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupStatisticsReq proto.InternalMessageInfo + +func (m *GetGroupStatisticsReq) GetStatisticsReq() *StatisticsReq { + if m != nil { + return m.StatisticsReq + } + return nil +} + +func (m *GetGroupStatisticsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetGroupStatisticsResp struct { + IncreaseGroupNum int32 `protobuf:"varint,1,opt,name=IncreaseGroupNum" json:"IncreaseGroupNum,omitempty"` + TotalGroupNum int32 `protobuf:"varint,2,opt,name=TotalGroupNum" json:"TotalGroupNum,omitempty"` + IncreaseGroupNumList []*DateNumList `protobuf:"bytes,3,rep,name=IncreaseGroupNumList" json:"IncreaseGroupNumList,omitempty"` + TotalGroupNumList []*DateNumList `protobuf:"bytes,4,rep,name=TotalGroupNumList" json:"TotalGroupNumList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,5,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} } +func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupStatisticsResp) ProtoMessage() {} +func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{23} +} +func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) +} +func (m *GetGroupStatisticsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupStatisticsResp.Marshal(b, m, deterministic) +} +func (dst *GetGroupStatisticsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupStatisticsResp.Merge(dst, src) +} +func (m *GetGroupStatisticsResp) XXX_Size() int { + return xxx_messageInfo_GetGroupStatisticsResp.Size(m) +} +func (m *GetGroupStatisticsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupStatisticsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupStatisticsResp proto.InternalMessageInfo + +func (m *GetGroupStatisticsResp) GetIncreaseGroupNum() int32 { + if m != nil { + return m.IncreaseGroupNum + } + return 0 +} + +func (m *GetGroupStatisticsResp) GetTotalGroupNum() int32 { + if m != nil { + return m.TotalGroupNum + } + return 0 +} + +func (m *GetGroupStatisticsResp) GetIncreaseGroupNumList() []*DateNumList { + if m != nil { + return m.IncreaseGroupNumList + } + return nil +} + +func (m *GetGroupStatisticsResp) GetTotalGroupNumList() []*DateNumList { + if m != nil { + return m.TotalGroupNumList + } + return nil +} + +func (m *GetGroupStatisticsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUserStatisticsReq struct { + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } +func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserStatisticsReq) ProtoMessage() {} +func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{24} +} +func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) +} +func (m *GetUserStatisticsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserStatisticsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserStatisticsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserStatisticsReq.Merge(dst, src) +} +func (m *GetUserStatisticsReq) XXX_Size() int { + return xxx_messageInfo_GetUserStatisticsReq.Size(m) +} +func (m *GetUserStatisticsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserStatisticsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserStatisticsReq proto.InternalMessageInfo + +func (m *GetUserStatisticsReq) GetStatisticsReq() *StatisticsReq { + if m != nil { + return m.StatisticsReq + } + return nil +} + +func (m *GetUserStatisticsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUserStatisticsResp struct { + IncreaseUserNum int32 `protobuf:"varint,1,opt,name=IncreaseUserNum" json:"IncreaseUserNum,omitempty"` + ActiveUserNum int32 `protobuf:"varint,2,opt,name=ActiveUserNum" json:"ActiveUserNum,omitempty"` + TotalUserNum int32 `protobuf:"varint,3,opt,name=TotalUserNum" json:"TotalUserNum,omitempty"` + IncreaseUserNumList []*DateNumList `protobuf:"bytes,4,rep,name=IncreaseUserNumList" json:"IncreaseUserNumList,omitempty"` + ActiveUserNumList []*DateNumList `protobuf:"bytes,5,rep,name=ActiveUserNumList" json:"ActiveUserNumList,omitempty"` + TotalUserNumList []*DateNumList `protobuf:"bytes,6,rep,name=TotalUserNumList" json:"TotalUserNumList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,7,opt,name=CommonResp" json:"CommonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } +func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserStatisticsResp) ProtoMessage() {} +func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{25} +} +func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) +} +func (m *GetUserStatisticsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserStatisticsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserStatisticsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserStatisticsResp.Merge(dst, src) +} +func (m *GetUserStatisticsResp) XXX_Size() int { + return xxx_messageInfo_GetUserStatisticsResp.Size(m) +} +func (m *GetUserStatisticsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserStatisticsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserStatisticsResp proto.InternalMessageInfo + +func (m *GetUserStatisticsResp) GetIncreaseUserNum() int32 { + if m != nil { + return m.IncreaseUserNum + } + return 0 +} + +func (m *GetUserStatisticsResp) GetActiveUserNum() int32 { + if m != nil { + return m.ActiveUserNum + } + return 0 +} + +func (m *GetUserStatisticsResp) GetTotalUserNum() int32 { + if m != nil { + return m.TotalUserNum + } + return 0 +} + +func (m *GetUserStatisticsResp) GetIncreaseUserNumList() []*DateNumList { + if m != nil { + return m.IncreaseUserNumList + } + return nil +} + +func (m *GetUserStatisticsResp) GetActiveUserNumList() []*DateNumList { + if m != nil { + return m.ActiveUserNumList + } + return nil +} + +func (m *GetUserStatisticsResp) GetTotalUserNumList() []*DateNumList { + if m != nil { + return m.TotalUserNumList + } + return nil +} + +func (m *GetUserStatisticsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + func init() { + proto.RegisterType((*CommonResp)(nil), "admin_cms.CommonResp") proto.RegisterType((*AdminLoginReq)(nil), "admin_cms.AdminLoginReq") proto.RegisterType((*AdminLoginResp)(nil), "admin_cms.AdminLoginResp") proto.RegisterType((*AddUserRegisterAddFriendIDListReq)(nil), "admin_cms.AddUserRegisterAddFriendIDListReq") @@ -377,6 +1518,23 @@ func init() { proto.RegisterType((*ReduceUserRegisterAddFriendIDListResp)(nil), "admin_cms.ReduceUserRegisterAddFriendIDListResp") proto.RegisterType((*GetUserRegisterAddFriendIDListReq)(nil), "admin_cms.GetUserRegisterAddFriendIDListReq") proto.RegisterType((*GetUserRegisterAddFriendIDListResp)(nil), "admin_cms.GetUserRegisterAddFriendIDListResp") + proto.RegisterType((*GetChatLogsReq)(nil), "admin_cms.GetChatLogsReq") + proto.RegisterType((*ChatLog)(nil), "admin_cms.ChatLog") + proto.RegisterType((*GetChatLogsResp)(nil), "admin_cms.GetChatLogsResp") + proto.RegisterType((*StatisticsReq)(nil), "admin_cms.StatisticsReq") + proto.RegisterType((*GetActiveUserReq)(nil), "admin_cms.GetActiveUserReq") + proto.RegisterType((*UserResp)(nil), "admin_cms.UserResp") + proto.RegisterType((*GetActiveUserResp)(nil), "admin_cms.GetActiveUserResp") + proto.RegisterType((*GetActiveGroupReq)(nil), "admin_cms.GetActiveGroupReq") + proto.RegisterType((*GroupResp)(nil), "admin_cms.GroupResp") + proto.RegisterType((*GetActiveGroupResp)(nil), "admin_cms.GetActiveGroupResp") + proto.RegisterType((*DateNumList)(nil), "admin_cms.DateNumList") + proto.RegisterType((*GetMessageStatisticsReq)(nil), "admin_cms.GetMessageStatisticsReq") + proto.RegisterType((*GetMessageStatisticsResp)(nil), "admin_cms.GetMessageStatisticsResp") + proto.RegisterType((*GetGroupStatisticsReq)(nil), "admin_cms.GetGroupStatisticsReq") + proto.RegisterType((*GetGroupStatisticsResp)(nil), "admin_cms.GetGroupStatisticsResp") + proto.RegisterType((*GetUserStatisticsReq)(nil), "admin_cms.GetUserStatisticsReq") + proto.RegisterType((*GetUserStatisticsResp)(nil), "admin_cms.GetUserStatisticsResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -394,6 +1552,12 @@ type AdminCMSClient interface { AddUserRegisterAddFriendIDList(ctx context.Context, in *AddUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*AddUserRegisterAddFriendIDListResp, error) ReduceUserRegisterAddFriendIDList(ctx context.Context, in *ReduceUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*ReduceUserRegisterAddFriendIDListResp, error) GetUserRegisterAddFriendIDList(ctx context.Context, in *GetUserRegisterAddFriendIDListReq, opts ...grpc.CallOption) (*GetUserRegisterAddFriendIDListResp, error) + GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) + GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) + GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) + GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) + GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) + GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) } type adminCMSClient struct { @@ -440,6 +1604,60 @@ func (c *adminCMSClient) GetUserRegisterAddFriendIDList(ctx context.Context, in return out, nil } +func (c *adminCMSClient) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) { + out := new(GetChatLogsResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetChatLogs", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) { + out := new(GetActiveUserResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetActiveUser", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) { + out := new(GetActiveGroupResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetActiveGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) { + out := new(GetMessageStatisticsResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetMessageStatistics", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) { + out := new(GetGroupStatisticsResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetGroupStatistics", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) { + out := new(GetUserStatisticsResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetUserStatistics", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for AdminCMS service type AdminCMSServer interface { @@ -447,6 +1665,12 @@ type AdminCMSServer interface { AddUserRegisterAddFriendIDList(context.Context, *AddUserRegisterAddFriendIDListReq) (*AddUserRegisterAddFriendIDListResp, error) ReduceUserRegisterAddFriendIDList(context.Context, *ReduceUserRegisterAddFriendIDListReq) (*ReduceUserRegisterAddFriendIDListResp, error) GetUserRegisterAddFriendIDList(context.Context, *GetUserRegisterAddFriendIDListReq) (*GetUserRegisterAddFriendIDListResp, error) + GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) + GetActiveUser(context.Context, *GetActiveUserReq) (*GetActiveUserResp, error) + GetActiveGroup(context.Context, *GetActiveGroupReq) (*GetActiveGroupResp, error) + GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) + GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) + GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) } func RegisterAdminCMSServer(s *grpc.Server, srv AdminCMSServer) { @@ -525,6 +1749,114 @@ func _AdminCMS_GetUserRegisterAddFriendIDList_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _AdminCMS_GetChatLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetChatLogsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetChatLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetChatLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetChatLogs(ctx, req.(*GetChatLogsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetActiveUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetActiveUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetActiveUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetActiveUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetActiveUser(ctx, req.(*GetActiveUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetActiveGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetActiveGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetActiveGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetActiveGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetActiveGroup(ctx, req.(*GetActiveGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetMessageStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMessageStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetMessageStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetMessageStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetMessageStatistics(ctx, req.(*GetMessageStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetGroupStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetGroupStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetGroupStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetGroupStatistics(ctx, req.(*GetGroupStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetUserStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetUserStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetUserStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetUserStatistics(ctx, req.(*GetUserStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + var _AdminCMS_serviceDesc = grpc.ServiceDesc{ ServiceName: "admin_cms.adminCMS", HandlerType: (*AdminCMSServer)(nil), @@ -545,44 +1877,127 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ MethodName: "GetUserRegisterAddFriendIDList", Handler: _AdminCMS_GetUserRegisterAddFriendIDList_Handler, }, + { + MethodName: "GetChatLogs", + Handler: _AdminCMS_GetChatLogs_Handler, + }, + { + MethodName: "GetActiveUser", + Handler: _AdminCMS_GetActiveUser_Handler, + }, + { + MethodName: "GetActiveGroup", + Handler: _AdminCMS_GetActiveGroup_Handler, + }, + { + MethodName: "GetMessageStatistics", + Handler: _AdminCMS_GetMessageStatistics_Handler, + }, + { + MethodName: "GetGroupStatistics", + Handler: _AdminCMS_GetGroupStatistics_Handler, + }, + { + MethodName: "GetUserStatistics", + Handler: _AdminCMS_GetUserStatistics_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin_cms/admin_cms.proto", } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_e0cc6ee28c5c634b) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_1a9119d2c1ff8ffc) } -var fileDescriptor_admin_cms_e0cc6ee28c5c634b = []byte{ - // 460 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xe5, 0x5a, 0x2d, 0x64, 0x02, 0x1c, 0x56, 0x7c, 0xb8, 0x01, 0x55, 0xc9, 0x2a, 0x85, - 0x1c, 0xc0, 0x46, 0xe1, 0xc8, 0x01, 0x05, 0x02, 0xc8, 0x52, 0xab, 0xa2, 0xad, 0xb8, 0x70, 0xb1, - 0x4c, 0x3c, 0x44, 0x56, 0x94, 0xdd, 0xed, 0xce, 0x86, 0x9e, 0xb8, 0xf6, 0xc2, 0xab, 0xf0, 0x38, - 0x3c, 0x10, 0xea, 0x26, 0x8d, 0x6d, 0xea, 0xd6, 0xad, 0x72, 0xf3, 0x7c, 0xfc, 0x77, 0x7f, 0x1e, - 0xfd, 0x67, 0x61, 0x37, 0xcd, 0xe6, 0xb9, 0x4c, 0x26, 0x73, 0x8a, 0xd6, 0x5f, 0xa1, 0x36, 0xca, - 0x2a, 0xd6, 0x5a, 0x27, 0x3a, 0xbd, 0x23, 0x8d, 0x32, 0x89, 0x0f, 0x23, 0x3d, 0x9b, 0x46, 0xae, - 0x1a, 0x51, 0x36, 0x4b, 0x4e, 0x29, 0x3a, 0x5d, 0x75, 0xf3, 0x09, 0xdc, 0x1f, 0x9d, 0xf7, 0x1f, - 0xa8, 0x69, 0x2e, 0x05, 0x9e, 0xb0, 0x2e, 0xb4, 0x8f, 0x34, 0x9a, 0xd4, 0xe6, 0x4a, 0xc6, 0xe3, - 0xc0, 0xeb, 0x7a, 0x83, 0x96, 0x28, 0xa7, 0x58, 0x00, 0x77, 0x9c, 0x24, 0x1e, 0x07, 0x5b, 0xae, - 0x7a, 0x11, 0xb2, 0xc7, 0xb0, 0x73, 0x8c, 0x13, 0x83, 0x36, 0xf0, 0x5d, 0x61, 0x15, 0xf1, 0xe7, - 0xf0, 0xa0, 0x7c, 0x09, 0x69, 0xf6, 0x10, 0xb6, 0xad, 0x9a, 0xa1, 0x5c, 0x9d, 0xbf, 0x0c, 0x38, - 0x42, 0x6f, 0x94, 0x65, 0x5f, 0x09, 0x8d, 0xc0, 0x69, 0x4e, 0x16, 0xcd, 0x28, 0xcb, 0x3e, 0x99, - 0x1c, 0x65, 0x16, 0x8f, 0x0f, 0x72, 0xb2, 0x2b, 0x40, 0x75, 0x19, 0xb0, 0x94, 0x62, 0x7b, 0x00, - 0x0b, 0x42, 0xb3, 0x94, 0x04, 0x5b, 0x5d, 0x7f, 0xd0, 0x12, 0xa5, 0x0c, 0xef, 0x03, 0x6f, 0xba, - 0x86, 0x34, 0x3f, 0xf3, 0xa0, 0x2f, 0x30, 0x5b, 0x4c, 0x70, 0x63, 0xa0, 0x67, 0xd0, 0x5a, 0x87, - 0x6e, 0x66, 0xdb, 0xa2, 0x48, 0xfc, 0x87, 0xeb, 0x5f, 0xc2, 0x7d, 0x01, 0xfb, 0x37, 0xe0, 0x20, - 0xcd, 0x7f, 0x7b, 0xd0, 0xfb, 0x8c, 0x76, 0x63, 0xdc, 0x31, 0xc0, 0x97, 0x74, 0x9a, 0xcb, 0x82, - 0xb7, 0x3d, 0xec, 0x87, 0x84, 0xe6, 0x27, 0x9a, 0x24, 0xd5, 0x79, 0xa2, 0x53, 0x93, 0xce, 0x29, - 0x14, 0x78, 0xb2, 0x40, 0xb2, 0x45, 0xaf, 0x28, 0xe9, 0xf8, 0x1f, 0x0f, 0x78, 0x13, 0x0d, 0x69, - 0xf6, 0x0e, 0xee, 0x9d, 0xb7, 0xc4, 0xf2, 0x87, 0x72, 0xff, 0xef, 0x75, 0xfd, 0x41, 0x7b, 0xf8, - 0xb4, 0xe6, 0xba, 0x8b, 0x36, 0x51, 0x11, 0xb0, 0x8f, 0x35, 0xb4, 0xfb, 0xb5, 0xb4, 0xa4, 0x95, - 0x24, 0xac, 0xc7, 0x1d, 0xfe, 0xf5, 0xe1, 0xae, 0xdb, 0x9c, 0x0f, 0x87, 0xc7, 0x6c, 0x04, 0x50, - 0x18, 0x96, 0x05, 0x61, 0xb1, 0x63, 0x95, 0x65, 0xe9, 0xec, 0x5e, 0x51, 0x21, 0xcd, 0x7e, 0xc1, - 0xde, 0xf5, 0x26, 0x63, 0x2f, 0x2b, 0xe2, 0x06, 0xdb, 0x77, 0x5e, 0xdd, 0xa2, 0x9b, 0x34, 0x3b, - 0xf3, 0xa0, 0xd7, 0xe8, 0x1a, 0x16, 0x95, 0x0e, 0xbd, 0x89, 0xd7, 0x3b, 0xaf, 0x6f, 0x27, 0x58, - 0xce, 0xe1, 0x7a, 0x17, 0x54, 0xe6, 0xd0, 0x68, 0xdf, 0xca, 0x1c, 0x9a, 0xed, 0xf5, 0xfe, 0xc9, - 0xb7, 0x47, 0x61, 0xf1, 0x44, 0xbe, 0x5d, 0x7f, 0x7d, 0xdf, 0x71, 0xef, 0xdf, 0x9b, 0x7f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x99, 0xbe, 0x8e, 0x2a, 0x4a, 0x05, 0x00, 0x00, +var fileDescriptor_admin_cms_1a9119d2c1ff8ffc = []byte{ + // 1408 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, + 0x13, 0x07, 0x25, 0xcb, 0x92, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, + 0x93, 0x42, 0x2d, 0x52, 0xa9, 0x70, 0xd0, 0x53, 0x81, 0x14, 0x8e, 0x94, 0xa8, 0x0a, 0xac, 0xc4, + 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x51, 0x09, 0x47, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, + 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x29, 0x8a, 0xa2, + 0x2f, 0x52, 0xec, 0x2e, 0x3f, 0x76, 0x49, 0x5a, 0x92, 0x1d, 0xd4, 0x37, 0xce, 0xec, 0x7c, 0xec, + 0xfc, 0x7e, 0x33, 0xcb, 0x25, 0xe1, 0xba, 0x33, 0x9e, 0xba, 0xde, 0x70, 0x34, 0xa5, 0xed, 0xf8, + 0xa9, 0x45, 0x02, 0x9f, 0xf9, 0xa8, 0x1a, 0x2b, 0xea, 0x3b, 0x4f, 0x09, 0xf6, 0x86, 0xfd, 0x41, + 0x9b, 0x1c, 0x4e, 0xda, 0x62, 0xb5, 0x4d, 0xc7, 0x87, 0xc3, 0x37, 0xb4, 0xfd, 0x26, 0xb4, 0xb6, + 0xee, 0x03, 0x74, 0xfc, 0xe9, 0xd4, 0xf7, 0x6c, 0x4c, 0x09, 0x32, 0xa1, 0x8c, 0x83, 0xa0, 0xe3, + 0x8f, 0xb1, 0x69, 0x34, 0x8c, 0x66, 0xc9, 0x8e, 0x44, 0x74, 0x15, 0x56, 0x71, 0x10, 0x0c, 0xe8, + 0xc4, 0x2c, 0x34, 0x8c, 0x66, 0xd5, 0x0e, 0x25, 0x6b, 0x04, 0x6b, 0x7b, 0x3c, 0xdf, 0xbe, 0x3f, + 0x71, 0x3d, 0x1b, 0x1f, 0xa1, 0x06, 0xd4, 0x9e, 0x12, 0x1c, 0x38, 0xcc, 0xf5, 0xbd, 0x7e, 0x57, + 0x84, 0xa9, 0xda, 0xaa, 0x8a, 0x27, 0x11, 0x2e, 0xfd, 0x6e, 0x18, 0x2b, 0x12, 0x79, 0x92, 0x67, + 0x78, 0x14, 0x60, 0x66, 0x16, 0x65, 0x12, 0x29, 0x59, 0xdf, 0xc1, 0xba, 0x9a, 0x84, 0x12, 0xb4, + 0x05, 0x25, 0xe6, 0x1f, 0x62, 0x2f, 0x8c, 0x2f, 0x05, 0xf4, 0x19, 0xc0, 0x28, 0x2e, 0x46, 0x04, + 0xaf, 0xed, 0x6e, 0xb7, 0x12, 0x80, 0x92, 0x4a, 0x6d, 0xc5, 0xd0, 0xc2, 0xb0, 0xb3, 0x37, 0x1e, + 0xbf, 0xa0, 0x38, 0xb0, 0xf1, 0xc4, 0xa5, 0x0c, 0x07, 0x7b, 0xe3, 0xf1, 0xa3, 0xc0, 0xc5, 0xde, + 0xb8, 0xdf, 0xdd, 0x77, 0x29, 0x0b, 0xeb, 0xf2, 0xb3, 0x75, 0x29, 0x2a, 0x74, 0x0b, 0x60, 0x46, + 0x71, 0x20, 0x5d, 0xcc, 0x42, 0xa3, 0xd8, 0xac, 0xda, 0x8a, 0xc6, 0xfa, 0x16, 0xac, 0x45, 0x69, + 0x28, 0x49, 0xd5, 0x60, 0x2c, 0x5b, 0xc3, 0x3b, 0x03, 0x6e, 0xdb, 0x78, 0x3c, 0x1b, 0xe1, 0xf7, + 0xae, 0xe3, 0x26, 0x54, 0x63, 0x51, 0x80, 0x58, 0xb2, 0x13, 0x45, 0xaa, 0xca, 0x62, 0xa6, 0xca, + 0x97, 0x70, 0x67, 0x89, 0x7d, 0x9c, 0xbf, 0xd0, 0x9f, 0x0d, 0xd8, 0xe9, 0x61, 0xf6, 0xde, 0x55, + 0x76, 0x01, 0x88, 0x33, 0x71, 0xbd, 0xa4, 0xcc, 0xda, 0xee, 0xed, 0x16, 0xc5, 0xc1, 0x31, 0x0e, + 0x86, 0x0e, 0x71, 0x87, 0xc4, 0x09, 0x9c, 0x29, 0x6d, 0xd9, 0xf8, 0x68, 0x86, 0x29, 0x3b, 0x88, + 0x6d, 0x6d, 0xc5, 0xcf, 0xfa, 0xc7, 0x00, 0x6b, 0xd1, 0x6e, 0x28, 0x41, 0x5f, 0xc0, 0x25, 0x01, + 0x91, 0xf7, 0xca, 0x17, 0xb0, 0x19, 0x8d, 0x62, 0xb3, 0xb6, 0x7b, 0x23, 0x27, 0xdd, 0x8b, 0xd0, + 0xcc, 0xd6, 0x1c, 0xd0, 0xc3, 0x9c, 0xdd, 0xde, 0xc9, 0xdd, 0x2d, 0x25, 0xbe, 0x47, 0x71, 0xfe, + 0x76, 0x53, 0x98, 0x17, 0x97, 0xc5, 0xfc, 0xb7, 0x02, 0xac, 0xf7, 0x30, 0xeb, 0xfc, 0xe0, 0xb0, + 0x7d, 0x7f, 0x42, 0x39, 0xc0, 0x26, 0x94, 0x3b, 0xbe, 0xc7, 0xb0, 0xc7, 0x42, 0x70, 0x23, 0x51, + 0x0e, 0x31, 0xaf, 0x3e, 0x3a, 0x29, 0xa4, 0xc4, 0xf5, 0x36, 0x1e, 0x1d, 0xf7, 0xbb, 0xd1, 0x70, + 0x4b, 0x09, 0xd5, 0xa1, 0xc2, 0x2d, 0x9e, 0xbb, 0x53, 0x6c, 0xae, 0x88, 0x95, 0x58, 0xe6, 0x34, + 0x3e, 0xc3, 0x94, 0xba, 0xbe, 0xf7, 0xfc, 0x2d, 0xc1, 0x66, 0x49, 0x34, 0xa3, 0xaa, 0xe2, 0x16, + 0x61, 0x62, 0x61, 0xb1, 0x2a, 0x2d, 0x14, 0x15, 0x27, 0x3a, 0x41, 0xc3, 0x2c, 0x9f, 0x85, 0xe8, + 0xe4, 0x39, 0x7d, 0xac, 0x55, 0x32, 0xc7, 0x9a, 0xf5, 0x57, 0x11, 0xca, 0x21, 0x42, 0x72, 0xdf, + 0x3c, 0xc1, 0x80, 0x4e, 0x92, 0xf6, 0x53, 0x54, 0xe8, 0x2e, 0x6c, 0x52, 0x16, 0xb8, 0xde, 0xa4, + 0xf3, 0xda, 0xc5, 0x1e, 0x93, 0x76, 0x12, 0xb0, 0xec, 0x82, 0x82, 0x69, 0xf1, 0x14, 0x4c, 0x57, + 0x34, 0x4c, 0x3f, 0x86, 0x0d, 0x6e, 0x81, 0x83, 0x83, 0xd7, 0x0e, 0x7b, 0xe5, 0x07, 0xd3, 0x7e, + 0x37, 0x04, 0x2f, 0xa3, 0x47, 0x1f, 0xc2, 0xba, 0xd4, 0x3d, 0x71, 0x47, 0x87, 0x9e, 0x33, 0x95, + 0x20, 0x56, 0xed, 0x94, 0x16, 0xdd, 0x86, 0x35, 0xa9, 0x79, 0xe4, 0x8c, 0xf0, 0x0b, 0x7b, 0x5f, + 0x40, 0x59, 0xb5, 0x75, 0x65, 0x9a, 0xb1, 0x4a, 0x96, 0x31, 0x13, 0xca, 0x03, 0x3a, 0x79, 0x14, + 0xf8, 0x53, 0xb3, 0x2a, 0xdf, 0x31, 0xa1, 0x98, 0xe6, 0x12, 0xb2, 0x5c, 0x2a, 0x5d, 0x57, 0xcb, + 0x76, 0x1d, 0x73, 0xd8, 0x8c, 0x9a, 0x97, 0x84, 0x5b, 0x28, 0x69, 0xdd, 0xb5, 0xd6, 0x30, 0x9a, + 0x45, 0xa5, 0xbb, 0x6e, 0x01, 0x74, 0x02, 0xec, 0x30, 0x2c, 0x56, 0xd7, 0xc5, 0xaa, 0xa2, 0x41, + 0xeb, 0x50, 0x78, 0x78, 0x62, 0x5e, 0x16, 0x89, 0x0a, 0x0f, 0x4f, 0xac, 0xbf, 0x0d, 0xb8, 0xac, + 0x8d, 0x01, 0x25, 0xa8, 0x05, 0x95, 0x48, 0x0e, 0xa7, 0x1a, 0xa9, 0xf3, 0x24, 0x97, 0xec, 0xd8, + 0x86, 0x0f, 0xf2, 0xc1, 0x79, 0x07, 0x59, 0x6f, 0xc7, 0x28, 0xe4, 0x93, 0xd9, 0x54, 0x74, 0x05, + 0x87, 0x2a, 0x51, 0xf1, 0x51, 0x4f, 0xa6, 0x59, 0xb4, 0xc7, 0xe9, 0xa3, 0x9e, 0x3c, 0x5b, 0xf7, + 0x60, 0x8d, 0x23, 0xe7, 0x52, 0xe6, 0x8e, 0xc4, 0xa0, 0x23, 0x58, 0x79, 0xc5, 0xb9, 0x92, 0x3d, + 0x2c, 0x9e, 0x39, 0x30, 0xcc, 0x0f, 0xbb, 0xb5, 0xc0, 0x7c, 0x8b, 0xc1, 0x46, 0x0f, 0xb3, 0xbd, + 0x11, 0x73, 0x8f, 0xc3, 0x63, 0xff, 0x08, 0xdd, 0x4f, 0x05, 0x0a, 0x4f, 0x78, 0x53, 0xd9, 0x82, + 0xb6, 0x6e, 0xa7, 0xf2, 0xa6, 0x06, 0xae, 0x90, 0x1d, 0xb8, 0x97, 0x50, 0x91, 0xc9, 0x28, 0xe1, + 0x34, 0xf3, 0x46, 0x7d, 0xc2, 0xdb, 0x57, 0xee, 0x34, 0x96, 0x79, 0x6b, 0x88, 0x53, 0x75, 0x1c, + 0x1d, 0x48, 0x52, 0xe2, 0xf4, 0x0f, 0x30, 0xa5, 0xce, 0x04, 0x27, 0x10, 0x2a, 0x1a, 0x6b, 0x06, + 0x9b, 0xa9, 0xaa, 0x28, 0x41, 0x1f, 0x41, 0x89, 0x3f, 0x47, 0x64, 0x5f, 0x51, 0xca, 0x89, 0x6c, + 0x6c, 0x69, 0x91, 0x62, 0xa0, 0xb0, 0x2c, 0x03, 0x6a, 0xda, 0x5e, 0xe0, 0xcf, 0xc8, 0xc5, 0xa0, + 0xf9, 0xab, 0x01, 0xd5, 0x30, 0x1d, 0x25, 0xfc, 0x0e, 0x20, 0x04, 0x05, 0xd0, 0x44, 0xc1, 0xc7, + 0x50, 0x08, 0x31, 0xa4, 0x91, 0xb8, 0x08, 0xd3, 0xf3, 0x76, 0xe5, 0x5b, 0x40, 0x69, 0x4c, 0x28, + 0x41, 0x77, 0x61, 0x55, 0x08, 0x11, 0x19, 0x5b, 0x4a, 0xa0, 0xd8, 0xca, 0x0e, 0x6d, 0xce, 0x4b, + 0xc7, 0x3d, 0xa8, 0x75, 0x1d, 0xc6, 0x37, 0x2f, 0x5e, 0xc4, 0x08, 0x56, 0xb8, 0x18, 0x8d, 0x03, + 0x7f, 0x46, 0x1b, 0x50, 0xe4, 0xd5, 0xca, 0xab, 0x12, 0x7f, 0xb4, 0x7e, 0x84, 0x6b, 0x3d, 0xcc, + 0xc2, 0xba, 0x75, 0x26, 0xfe, 0x7b, 0x26, 0xff, 0x28, 0x80, 0x99, 0x9f, 0x5d, 0x60, 0xb6, 0x79, + 0x10, 0xb8, 0xc7, 0x0e, 0xc3, 0x0a, 0x4f, 0xf2, 0xae, 0x9f, 0x5d, 0x40, 0x4d, 0xb8, 0x2c, 0xd0, + 0x53, 0x6c, 0x65, 0x95, 0x69, 0x35, 0xda, 0x87, 0xed, 0x8c, 0x7b, 0x7c, 0x43, 0xac, 0xed, 0x5e, + 0x55, 0xca, 0x53, 0xe0, 0xb4, 0xf3, 0x9d, 0xd0, 0x97, 0x70, 0x25, 0x95, 0x40, 0xc4, 0x5a, 0x99, + 0x1b, 0x2b, 0xcf, 0x25, 0xc5, 0x7a, 0x69, 0xf9, 0x86, 0xdb, 0xee, 0x61, 0x26, 0x02, 0x5e, 0x34, + 0x7d, 0xbf, 0x17, 0xe0, 0x6a, 0x5e, 0x6e, 0x4a, 0xf8, 0x6b, 0xbd, 0xef, 0x8d, 0x02, 0xec, 0x50, + 0x39, 0x05, 0x09, 0x77, 0x19, 0x3d, 0x7f, 0x5d, 0x3f, 0xf7, 0x99, 0xf3, 0x3a, 0x36, 0x94, 0xc4, + 0xe9, 0x4a, 0xf4, 0x18, 0xb6, 0xd2, 0x9e, 0x4b, 0xb0, 0x96, 0xeb, 0x83, 0xba, 0xb0, 0xa9, 0x05, + 0x5f, 0x82, 0xb2, 0xac, 0xc3, 0x79, 0x09, 0x3b, 0x81, 0xad, 0xf0, 0x1e, 0x7e, 0xd1, 0x7c, 0xfd, + 0x52, 0x14, 0xbd, 0x92, 0x4e, 0x4d, 0x09, 0x9f, 0x9e, 0x08, 0x28, 0xbe, 0x9a, 0xb0, 0x95, 0x56, + 0x73, 0xb2, 0x92, 0xf7, 0x8c, 0x42, 0x96, 0xa6, 0x44, 0x16, 0x5c, 0x12, 0x78, 0x45, 0x46, 0xf2, + 0x78, 0xd5, 0x74, 0x7c, 0x72, 0x52, 0xc1, 0x97, 0x99, 0x9c, 0x1c, 0x17, 0x4e, 0xa7, 0x96, 0x5e, + 0xc4, 0x29, 0xcd, 0xa7, 0x33, 0xe3, 0x80, 0x1e, 0xc0, 0x86, 0xba, 0x3f, 0x11, 0x64, 0x75, 0x6e, + 0x90, 0x8c, 0x7d, 0xaa, 0x25, 0xca, 0x4b, 0xb6, 0xc4, 0xee, 0x9f, 0x65, 0xa8, 0x08, 0xa3, 0xce, + 0xe0, 0x19, 0xda, 0x03, 0x48, 0x7e, 0x21, 0x20, 0x95, 0x7e, 0xed, 0xf7, 0x45, 0xfd, 0xfa, 0x29, + 0x2b, 0x94, 0xa0, 0x9f, 0xe0, 0xd6, 0xfc, 0xef, 0x77, 0x74, 0x57, 0x73, 0x5e, 0xf0, 0x47, 0xa1, + 0xfe, 0xc9, 0x19, 0xac, 0x29, 0x41, 0xef, 0x0c, 0xd8, 0x59, 0xf8, 0x65, 0x8d, 0xda, 0x4a, 0xd0, + 0x65, 0xfe, 0x07, 0xd4, 0x3f, 0x3d, 0x9b, 0x83, 0xc4, 0x61, 0xfe, 0x27, 0xaf, 0x86, 0xc3, 0xc2, + 0x6f, 0x75, 0x0d, 0x87, 0x25, 0xbe, 0xa5, 0xbb, 0x50, 0x53, 0x2e, 0xe1, 0xe8, 0xba, 0xee, 0xad, + 0x7c, 0xa3, 0xd6, 0xeb, 0xa7, 0x2d, 0x51, 0x82, 0x1e, 0xc3, 0x9a, 0x76, 0xb9, 0x43, 0x37, 0x74, + 0x63, 0xed, 0x32, 0x5b, 0xbf, 0x79, 0xfa, 0x22, 0x25, 0x68, 0x20, 0xbe, 0x8e, 0x95, 0xdb, 0x09, + 0xca, 0xb5, 0x8f, 0x2e, 0x73, 0xf5, 0xff, 0xcd, 0x59, 0xa5, 0x04, 0x0d, 0xc5, 0x51, 0x96, 0x79, + 0x7d, 0x23, 0x4b, 0x77, 0xcb, 0xbb, 0x5d, 0xd4, 0x3f, 0x58, 0x68, 0x43, 0x09, 0xfa, 0x5a, 0xdc, + 0xa6, 0x52, 0x2f, 0x18, 0xd4, 0xd0, 0x5d, 0xb3, 0xef, 0xbe, 0xfa, 0xce, 0x02, 0x0b, 0x4a, 0xd0, + 0x57, 0xe2, 0xf2, 0xaa, 0x9f, 0x85, 0xe8, 0xff, 0x59, 0x82, 0xf5, 0xc0, 0x8d, 0xf9, 0x06, 0x94, + 0x3c, 0xb8, 0xf6, 0xcd, 0x76, 0x2b, 0xf9, 0xd3, 0xf9, 0x79, 0xfc, 0xf4, 0xfd, 0xaa, 0xf8, 0x8d, + 0x79, 0xef, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x6a, 0x73, 0x53, 0x11, 0x15, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index acee32324..6dcd64628 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -3,15 +3,22 @@ option go_package = "./admin_cms;admin_cms"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package admin_cms; + +message CommonResp { + int32 errCode = 1; + string errMsg = 2; +} + message AdminLoginReq { string OperationID = 1; string AdminID = 2; string Secret = 3; } - + message AdminLoginResp { string token = 1; + CommonResp commonResp = 2; } message AddUserRegisterAddFriendIDListReq { @@ -20,7 +27,7 @@ message AddUserRegisterAddFriendIDListReq { } message AddUserRegisterAddFriendIDListResp { - + CommonResp commonResp = 1; } message ReduceUserRegisterAddFriendIDListReq { @@ -30,17 +37,143 @@ message ReduceUserRegisterAddFriendIDListReq { } message ReduceUserRegisterAddFriendIDListResp { - + CommonResp commonResp = 1; } message GetUserRegisterAddFriendIDListReq { string operationID = 1; - server_api_params.RequestPagination Pagination = 2; + server_api_params.RequestPagination pagination = 2; } message GetUserRegisterAddFriendIDListResp { - repeated server_api_params.UserInfo UserInfoList = 1; + repeated server_api_params.UserInfo userInfoList = 1; + server_api_params.ResponsePagination pagination = 2; + CommonResp commonResp = 3; +} + +message GetChatLogsReq { + string Content = 1; + string SendID = 2; + string RecvID = 3; + string SendTime = 4; + int32 SessionType = 5; + int32 ContentType = 6; + server_api_params.RequestPagination Pagination = 7; + string OperationID = 8; + +} + +message ChatLog { + string ServerMsgID = 1; + string stringClientMsgID = 2; + string SendID = 3; + string RecvID = 4; + int32 SenderPlatformID = 5; + string SenderNickname = 6; + string SenderFaceURL = 7; + int32 SessionType = 8; + int32 MsgFrom = 9; + int32 ContentType = 10; + string Content = 11; + int32 Status = 12; + int64 SendTime = 13; + int64 CreateTime = 14; + string Ex = 15; +} + +message GetChatLogsResp { + repeated ChatLog ChatLogs = 1; server_api_params.ResponsePagination Pagination = 2; + int32 ChatLogsNum = 3; + CommonResp CommonResp = 4; +} + + +message StatisticsReq { + string from = 1; + string to = 2; +} + +message GetActiveUserReq{ + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + +message UserResp{ + string NickName = 1; + string UserId = 2; + int32 MessageNum = 3; +} + +message GetActiveUserResp { + repeated UserResp Users = 1; + CommonResp CommonResp = 2; +} + +message GetActiveGroupReq{ + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + +message GroupResp { + string GroupName = 1; + string GroupId = 2; + int32 MessageNum = 3; + CommonResp CommonResp = 4; +} + +message GetActiveGroupResp { + repeated GroupResp Groups = 1; + CommonResp CommonResp = 2; +} + +message DateNumList { + string Date = 1; + int32 Num = 2; +} + + +message GetMessageStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + + +message GetMessageStatisticsResp { + int32 PrivateMessageNum = 1; + int32 GroupMessageNum = 2; + repeated DateNumList PrivateMessageNumList = 3; + repeated DateNumList GroupMessageNumList = 4; + CommonResp CommonResp = 5; +} + +message GetGroupStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + + +message GetGroupStatisticsResp { + int32 IncreaseGroupNum = 1; + int32 TotalGroupNum = 2; + repeated DateNumList IncreaseGroupNumList = 3; + repeated DateNumList TotalGroupNumList = 4; + CommonResp CommonResp = 5; +} + +message GetUserStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + +message GetUserStatisticsResp { + int32 IncreaseUserNum = 1; + int32 ActiveUserNum = 2; + int32 TotalUserNum = 3; + repeated DateNumList IncreaseUserNumList = 4; + repeated DateNumList ActiveUserNumList = 5; + repeated DateNumList TotalUserNumList = 6; + CommonResp CommonResp = 7; } service adminCMS { @@ -48,4 +181,13 @@ service adminCMS { rpc AddUserRegisterAddFriendIDList(AddUserRegisterAddFriendIDListReq) returns(AddUserRegisterAddFriendIDListResp); rpc ReduceUserRegisterAddFriendIDList(ReduceUserRegisterAddFriendIDListReq) returns(ReduceUserRegisterAddFriendIDListResp); rpc GetUserRegisterAddFriendIDList(GetUserRegisterAddFriendIDListReq) returns(GetUserRegisterAddFriendIDListResp); -} \ No newline at end of file + + + rpc GetChatLogs(GetChatLogsReq) returns(GetChatLogsResp); + + rpc GetActiveUser(GetActiveUserReq) returns(GetActiveUserResp); + rpc GetActiveGroup(GetActiveGroupReq) returns(GetActiveGroupResp); + rpc GetMessageStatistics(GetMessageStatisticsReq) returns(GetMessageStatisticsResp); + rpc GetGroupStatistics(GetGroupStatisticsReq) returns(GetGroupStatisticsResp); + rpc GetUserStatistics(GetUserStatisticsReq) returns(GetUserStatisticsResp); +} diff --git a/pkg/proto/base/base.proto b/pkg/proto/base/base.proto deleted file mode 100644 index 6d5144f0b..000000000 --- a/pkg/proto/base/base.proto +++ /dev/null @@ -1,5 +0,0 @@ -syntax = "proto3"; -package base; - - - diff --git a/pkg/proto/message_cms/message_cms.pb.go b/pkg/proto/message_cms/message_cms.pb.go deleted file mode 100644 index 317439903..000000000 --- a/pkg/proto/message_cms/message_cms.pb.go +++ /dev/null @@ -1,1083 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 -// source: message_cms/message_cms.proto - -package message_cms - -import ( - sdk_ws "Open_IM/pkg/proto/sdk_ws" - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type BoradcastMessageReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *BoradcastMessageReq) Reset() { - *x = BoradcastMessageReq{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BoradcastMessageReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BoradcastMessageReq) ProtoMessage() {} - -func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BoradcastMessageReq.ProtoReflect.Descriptor instead. -func (*BoradcastMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{0} -} - -func (x *BoradcastMessageReq) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *BoradcastMessageReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type BoradcastMessageResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *BoradcastMessageResp) Reset() { - *x = BoradcastMessageResp{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BoradcastMessageResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BoradcastMessageResp) ProtoMessage() {} - -func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use BoradcastMessageResp.ProtoReflect.Descriptor instead. -func (*BoradcastMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{1} -} - -type MassSendMessageReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` - UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *MassSendMessageReq) Reset() { - *x = MassSendMessageReq{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MassSendMessageReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MassSendMessageReq) ProtoMessage() {} - -func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MassSendMessageReq.ProtoReflect.Descriptor instead. -func (*MassSendMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{2} -} - -func (x *MassSendMessageReq) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *MassSendMessageReq) GetUserIds() []string { - if x != nil { - return x.UserIds - } - return nil -} - -func (x *MassSendMessageReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type MassSendMessageResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MassSendMessageResp) Reset() { - *x = MassSendMessageResp{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MassSendMessageResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MassSendMessageResp) ProtoMessage() {} - -func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MassSendMessageResp.ProtoReflect.Descriptor instead. -func (*MassSendMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{3} -} - -type GetChatLogsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Content string `protobuf:"bytes,1,opt,name=Content,proto3" json:"Content,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - GroupId string `protobuf:"bytes,3,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - Date string `protobuf:"bytes,4,opt,name=Date,proto3" json:"Date,omitempty"` - SessionType int32 `protobuf:"varint,5,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - ContentType int32 `protobuf:"varint,6,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,7,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,8,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetChatLogsReq) Reset() { - *x = GetChatLogsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetChatLogsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetChatLogsReq) ProtoMessage() {} - -func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetChatLogsReq.ProtoReflect.Descriptor instead. -func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{4} -} - -func (x *GetChatLogsReq) GetContent() string { - if x != nil { - return x.Content - } - return "" -} - -func (x *GetChatLogsReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *GetChatLogsReq) GetGroupId() string { - if x != nil { - return x.GroupId - } - return "" -} - -func (x *GetChatLogsReq) GetDate() string { - if x != nil { - return x.Date - } - return "" -} - -func (x *GetChatLogsReq) GetSessionType() int32 { - if x != nil { - return x.SessionType - } - return 0 -} - -func (x *GetChatLogsReq) GetContentType() int32 { - if x != nil { - return x.ContentType - } - return 0 -} - -func (x *GetChatLogsReq) GetPagination() *sdk_ws.RequestPagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetChatLogsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type ChatLogs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SessionType int32 `protobuf:"varint,1,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - ContentType int32 `protobuf:"varint,2,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - SenderNickName string `protobuf:"bytes,3,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderId string `protobuf:"bytes,4,opt,name=SenderId,proto3" json:"SenderId,omitempty"` - ReciverNickName string `protobuf:"bytes,5,opt,name=ReciverNickName,proto3" json:"ReciverNickName,omitempty"` - ReciverId string `protobuf:"bytes,6,opt,name=ReciverId,proto3" json:"ReciverId,omitempty"` - SearchContent string `protobuf:"bytes,7,opt,name=SearchContent,proto3" json:"SearchContent,omitempty"` - WholeContent string `protobuf:"bytes,8,opt,name=WholeContent,proto3" json:"WholeContent,omitempty"` - GroupId string `protobuf:"bytes,9,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - GroupName string `protobuf:"bytes,10,opt,name=GroupName,proto3" json:"GroupName,omitempty"` - Date string `protobuf:"bytes,11,opt,name=Date,proto3" json:"Date,omitempty"` -} - -func (x *ChatLogs) Reset() { - *x = ChatLogs{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ChatLogs) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ChatLogs) ProtoMessage() {} - -func (x *ChatLogs) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ChatLogs.ProtoReflect.Descriptor instead. -func (*ChatLogs) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{5} -} - -func (x *ChatLogs) GetSessionType() int32 { - if x != nil { - return x.SessionType - } - return 0 -} - -func (x *ChatLogs) GetContentType() int32 { - if x != nil { - return x.ContentType - } - return 0 -} - -func (x *ChatLogs) GetSenderNickName() string { - if x != nil { - return x.SenderNickName - } - return "" -} - -func (x *ChatLogs) GetSenderId() string { - if x != nil { - return x.SenderId - } - return "" -} - -func (x *ChatLogs) GetReciverNickName() string { - if x != nil { - return x.ReciverNickName - } - return "" -} - -func (x *ChatLogs) GetReciverId() string { - if x != nil { - return x.ReciverId - } - return "" -} - -func (x *ChatLogs) GetSearchContent() string { - if x != nil { - return x.SearchContent - } - return "" -} - -func (x *ChatLogs) GetWholeContent() string { - if x != nil { - return x.WholeContent - } - return "" -} - -func (x *ChatLogs) GetGroupId() string { - if x != nil { - return x.GroupId - } - return "" -} - -func (x *ChatLogs) GetGroupName() string { - if x != nil { - return x.GroupName - } - return "" -} - -func (x *ChatLogs) GetDate() string { - if x != nil { - return x.Date - } - return "" -} - -type GetChatLogsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChatLogs []*ChatLogs `protobuf:"bytes,1,rep,name=ChatLogs,proto3" json:"ChatLogs,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - ChatLogsNum int32 `protobuf:"varint,3,opt,name=ChatLogsNum,proto3" json:"ChatLogsNum,omitempty"` -} - -func (x *GetChatLogsResp) Reset() { - *x = GetChatLogsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetChatLogsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetChatLogsResp) ProtoMessage() {} - -func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetChatLogsResp.ProtoReflect.Descriptor instead. -func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{6} -} - -func (x *GetChatLogsResp) GetChatLogs() []*ChatLogs { - if x != nil { - return x.ChatLogs - } - return nil -} - -func (x *GetChatLogsResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - -func (x *GetChatLogsResp) GetChatLogsNum() int32 { - if x != nil { - return x.ChatLogsNum - } - return 0 -} - -type WithdrawMessageReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServerMsgId string `protobuf:"bytes,1,opt,name=ServerMsgId,proto3" json:"ServerMsgId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *WithdrawMessageReq) Reset() { - *x = WithdrawMessageReq{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WithdrawMessageReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WithdrawMessageReq) ProtoMessage() {} - -func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WithdrawMessageReq.ProtoReflect.Descriptor instead. -func (*WithdrawMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{7} -} - -func (x *WithdrawMessageReq) GetServerMsgId() string { - if x != nil { - return x.ServerMsgId - } - return "" -} - -func (x *WithdrawMessageReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type WithdrawMessageResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *WithdrawMessageResp) Reset() { - *x = WithdrawMessageResp{} - if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_cms_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WithdrawMessageResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WithdrawMessageResp) ProtoMessage() {} - -func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_cms_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WithdrawMessageResp.ProtoReflect.Descriptor instead. -func (*WithdrawMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_cms_proto_rawDescGZIP(), []int{8} -} - -var File_message_cms_message_cms_proto protoreflect.FileDescriptor - -var file_message_cms_message_cms_proto_rawDesc = []byte{ - 0x0a, 0x1d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x1a, 0x21, 0x4f, 0x70, - 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, - 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, 0x61, - 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x02, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xf0, 0x02, 0x0a, - 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, - 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, - 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, - 0x22, 0x0a, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, - 0xad, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x6d, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x08, 0x43, 0x68, - 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, - 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x4e, 0x75, 0x6d, 0x22, - 0x58, 0x0a, 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x32, 0xdb, 0x02, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x12, - 0x57, 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, - 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x63, 0x6d, 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, - 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, - 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x2e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1b, - 0x5a, 0x19, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var ( - file_message_cms_message_cms_proto_rawDescOnce sync.Once - file_message_cms_message_cms_proto_rawDescData = file_message_cms_message_cms_proto_rawDesc -) - -func file_message_cms_message_cms_proto_rawDescGZIP() []byte { - file_message_cms_message_cms_proto_rawDescOnce.Do(func() { - file_message_cms_message_cms_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_cms_message_cms_proto_rawDescData) - }) - return file_message_cms_message_cms_proto_rawDescData -} - -var file_message_cms_message_cms_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_message_cms_message_cms_proto_goTypes = []interface{}{ - (*BoradcastMessageReq)(nil), // 0: message_cms.BoradcastMessageReq - (*BoradcastMessageResp)(nil), // 1: message_cms.BoradcastMessageResp - (*MassSendMessageReq)(nil), // 2: message_cms.MassSendMessageReq - (*MassSendMessageResp)(nil), // 3: message_cms.MassSendMessageResp - (*GetChatLogsReq)(nil), // 4: message_cms.GetChatLogsReq - (*ChatLogs)(nil), // 5: message_cms.ChatLogs - (*GetChatLogsResp)(nil), // 6: message_cms.GetChatLogsResp - (*WithdrawMessageReq)(nil), // 7: message_cms.WithdrawMessageReq - (*WithdrawMessageResp)(nil), // 8: message_cms.WithdrawMessageResp - (*sdk_ws.RequestPagination)(nil), // 9: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 10: server_api_params.ResponsePagination -} -var file_message_cms_message_cms_proto_depIdxs = []int32{ - 9, // 0: message_cms.GetChatLogsReq.Pagination:type_name -> server_api_params.RequestPagination - 5, // 1: message_cms.GetChatLogsResp.ChatLogs:type_name -> message_cms.ChatLogs - 10, // 2: message_cms.GetChatLogsResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 3: message_cms.messageCMS.BoradcastMessage:input_type -> message_cms.BoradcastMessageReq - 2, // 4: message_cms.messageCMS.MassSendMessage:input_type -> message_cms.MassSendMessageReq - 4, // 5: message_cms.messageCMS.GetChatLogs:input_type -> message_cms.GetChatLogsReq - 7, // 6: message_cms.messageCMS.WithdrawMessage:input_type -> message_cms.WithdrawMessageReq - 1, // 7: message_cms.messageCMS.BoradcastMessage:output_type -> message_cms.BoradcastMessageResp - 3, // 8: message_cms.messageCMS.MassSendMessage:output_type -> message_cms.MassSendMessageResp - 6, // 9: message_cms.messageCMS.GetChatLogs:output_type -> message_cms.GetChatLogsResp - 8, // 10: message_cms.messageCMS.WithdrawMessage:output_type -> message_cms.WithdrawMessageResp - 7, // [7:11] is the sub-list for method output_type - 3, // [3:7] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_message_cms_message_cms_proto_init() } -func file_message_cms_message_cms_proto_init() { - if File_message_cms_message_cms_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_message_cms_message_cms_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BoradcastMessageReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BoradcastMessageResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MassSendMessageReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MassSendMessageResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChatLogsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChatLogs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChatLogsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WithdrawMessageReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_message_cms_message_cms_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WithdrawMessageResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_message_cms_message_cms_proto_rawDesc, - NumEnums: 0, - NumMessages: 9, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_message_cms_message_cms_proto_goTypes, - DependencyIndexes: file_message_cms_message_cms_proto_depIdxs, - MessageInfos: file_message_cms_message_cms_proto_msgTypes, - }.Build() - File_message_cms_message_cms_proto = out.File - file_message_cms_message_cms_proto_rawDesc = nil - file_message_cms_message_cms_proto_goTypes = nil - file_message_cms_message_cms_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// MessageCMSClient is the client API for MessageCMS service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type MessageCMSClient interface { - BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) - MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) - GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) - WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) -} - -type messageCMSClient struct { - cc grpc.ClientConnInterface -} - -func NewMessageCMSClient(cc grpc.ClientConnInterface) MessageCMSClient { - return &messageCMSClient{cc} -} - -func (c *messageCMSClient) BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) { - out := new(BoradcastMessageResp) - err := c.cc.Invoke(ctx, "/message_cms.messageCMS/BoradcastMessage", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *messageCMSClient) MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) { - out := new(MassSendMessageResp) - err := c.cc.Invoke(ctx, "/message_cms.messageCMS/MassSendMessage", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *messageCMSClient) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) { - out := new(GetChatLogsResp) - err := c.cc.Invoke(ctx, "/message_cms.messageCMS/GetChatLogs", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *messageCMSClient) WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) { - out := new(WithdrawMessageResp) - err := c.cc.Invoke(ctx, "/message_cms.messageCMS/WithdrawMessage", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// MessageCMSServer is the server API for MessageCMS service. -type MessageCMSServer interface { - BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) - MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) - GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) - WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) -} - -// UnimplementedMessageCMSServer can be embedded to have forward compatible implementations. -type UnimplementedMessageCMSServer struct { -} - -func (*UnimplementedMessageCMSServer) BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BoradcastMessage not implemented") -} -func (*UnimplementedMessageCMSServer) MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method MassSendMessage not implemented") -} -func (*UnimplementedMessageCMSServer) GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetChatLogs not implemented") -} -func (*UnimplementedMessageCMSServer) WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method WithdrawMessage not implemented") -} - -func RegisterMessageCMSServer(s *grpc.Server, srv MessageCMSServer) { - s.RegisterService(&_MessageCMS_serviceDesc, srv) -} - -func _MessageCMS_BoradcastMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BoradcastMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MessageCMSServer).BoradcastMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/message_cms.messageCMS/BoradcastMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageCMSServer).BoradcastMessage(ctx, req.(*BoradcastMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MessageCMS_MassSendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MassSendMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MessageCMSServer).MassSendMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/message_cms.messageCMS/MassSendMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageCMSServer).MassSendMessage(ctx, req.(*MassSendMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MessageCMS_GetChatLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetChatLogsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MessageCMSServer).GetChatLogs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/message_cms.messageCMS/GetChatLogs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageCMSServer).GetChatLogs(ctx, req.(*GetChatLogsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _MessageCMS_WithdrawMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(WithdrawMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MessageCMSServer).WithdrawMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/message_cms.messageCMS/WithdrawMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageCMSServer).WithdrawMessage(ctx, req.(*WithdrawMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _MessageCMS_serviceDesc = grpc.ServiceDesc{ - ServiceName: "message_cms.messageCMS", - HandlerType: (*MessageCMSServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "BoradcastMessage", - Handler: _MessageCMS_BoradcastMessage_Handler, - }, - { - MethodName: "MassSendMessage", - Handler: _MessageCMS_MassSendMessage_Handler, - }, - { - MethodName: "GetChatLogs", - Handler: _MessageCMS_GetChatLogs_Handler, - }, - { - MethodName: "WithdrawMessage", - Handler: _MessageCMS_WithdrawMessage_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "message_cms/message_cms.proto", -} diff --git a/pkg/proto/message_cms/message_cms.proto b/pkg/proto/message_cms/message_cms.proto deleted file mode 100644 index 2a9647bb7..000000000 --- a/pkg/proto/message_cms/message_cms.proto +++ /dev/null @@ -1,71 +0,0 @@ -syntax = "proto3"; -import "Open_IM/pkg/proto/sdk_ws/ws.proto"; -option go_package = "./message_cms;message_cms"; -package message_cms; - -message BoradcastMessageReq { - string Message = 1; - string OperationID = 2; -} - -message BoradcastMessageResp { - -} - -message MassSendMessageReq { - string Message = 1; - repeated string UserIds = 2; - string OperationID = 3; -} - -message MassSendMessageResp { - -} - -message GetChatLogsReq { - string Content = 1; - string UserId = 2; - string GroupId = 3; - string Date = 4; - int32 SessionType = 5; - int32 ContentType = 6; - server_api_params.RequestPagination Pagination = 7; - string OperationID = 8; - -} - -message ChatLogs { - int32 SessionType = 1; - int32 ContentType = 2; - string SenderNickName = 3; - string SenderId = 4; - string ReciverNickName = 5; - string ReciverId = 6; - string SearchContent = 7; - string WholeContent = 8; - string GroupId = 9; - string GroupName = 10; - string Date = 11; -} - -message GetChatLogsResp { - repeated ChatLogs ChatLogs = 1; - server_api_params.ResponsePagination Pagination = 2; - int32 ChatLogsNum = 3; -} - -message WithdrawMessageReq { - string ServerMsgId = 1; - string OperationID = 2; -} - -message WithdrawMessageResp { - -} - -service messageCMS { - rpc BoradcastMessage(BoradcastMessageReq) returns(BoradcastMessageResp); - rpc MassSendMessage(MassSendMessageReq) returns(MassSendMessageResp); - rpc GetChatLogs(GetChatLogsReq) returns(GetChatLogsResp); - rpc WithdrawMessage(WithdrawMessageReq) returns(WithdrawMessageResp); -} \ No newline at end of file diff --git a/pkg/proto/statistics/statistics.pb.go b/pkg/proto/statistics/statistics.pb.go deleted file mode 100644 index 5fd528d97..000000000 --- a/pkg/proto/statistics/statistics.pb.go +++ /dev/null @@ -1,1498 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 -// source: statistics/statistics.proto - -package statistics - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type StatisticsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` - To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` -} - -func (x *StatisticsReq) Reset() { - *x = StatisticsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *StatisticsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*StatisticsReq) ProtoMessage() {} - -func (x *StatisticsReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use StatisticsReq.ProtoReflect.Descriptor instead. -func (*StatisticsReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{0} -} - -func (x *StatisticsReq) GetFrom() string { - if x != nil { - return x.From - } - return "" -} - -func (x *StatisticsReq) GetTo() string { - if x != nil { - return x.To - } - return "" -} - -type GetActiveUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetActiveUserReq) Reset() { - *x = GetActiveUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetActiveUserReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetActiveUserReq) ProtoMessage() {} - -func (x *GetActiveUserReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetActiveUserReq.ProtoReflect.Descriptor instead. -func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{1} -} - -func (x *GetActiveUserReq) GetStatisticsReq() *StatisticsReq { - if x != nil { - return x.StatisticsReq - } - return nil -} - -func (x *GetActiveUserReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type UserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NickName string `protobuf:"bytes,1,opt,name=NickName,proto3" json:"NickName,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` -} - -func (x *UserResp) Reset() { - *x = UserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserResp) ProtoMessage() {} - -func (x *UserResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UserResp.ProtoReflect.Descriptor instead. -func (*UserResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{2} -} - -func (x *UserResp) GetNickName() string { - if x != nil { - return x.NickName - } - return "" -} - -func (x *UserResp) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *UserResp) GetMessageNum() int32 { - if x != nil { - return x.MessageNum - } - return 0 -} - -type GetActiveUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Users []*UserResp `protobuf:"bytes,1,rep,name=Users,proto3" json:"Users,omitempty"` -} - -func (x *GetActiveUserResp) Reset() { - *x = GetActiveUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetActiveUserResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetActiveUserResp) ProtoMessage() {} - -func (x *GetActiveUserResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetActiveUserResp.ProtoReflect.Descriptor instead. -func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{3} -} - -func (x *GetActiveUserResp) GetUsers() []*UserResp { - if x != nil { - return x.Users - } - return nil -} - -type GetActiveGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetActiveGroupReq) Reset() { - *x = GetActiveGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetActiveGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetActiveGroupReq) ProtoMessage() {} - -func (x *GetActiveGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetActiveGroupReq.ProtoReflect.Descriptor instead. -func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{4} -} - -func (x *GetActiveGroupReq) GetStatisticsReq() *StatisticsReq { - if x != nil { - return x.StatisticsReq - } - return nil -} - -func (x *GetActiveGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` - GroupId string `protobuf:"bytes,2,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` -} - -func (x *GroupResp) Reset() { - *x = GroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GroupResp) ProtoMessage() {} - -func (x *GroupResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GroupResp.ProtoReflect.Descriptor instead. -func (*GroupResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{5} -} - -func (x *GroupResp) GetGroupName() string { - if x != nil { - return x.GroupName - } - return "" -} - -func (x *GroupResp) GetGroupId() string { - if x != nil { - return x.GroupId - } - return "" -} - -func (x *GroupResp) GetMessageNum() int32 { - if x != nil { - return x.MessageNum - } - return 0 -} - -type GetActiveGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups,proto3" json:"Groups,omitempty"` -} - -func (x *GetActiveGroupResp) Reset() { - *x = GetActiveGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetActiveGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetActiveGroupResp) ProtoMessage() {} - -func (x *GetActiveGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetActiveGroupResp.ProtoReflect.Descriptor instead. -func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{6} -} - -func (x *GetActiveGroupResp) GetGroups() []*GroupResp { - if x != nil { - return x.Groups - } - return nil -} - -type DateNumList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Date string `protobuf:"bytes,1,opt,name=Date,proto3" json:"Date,omitempty"` - Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` -} - -func (x *DateNumList) Reset() { - *x = DateNumList{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DateNumList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DateNumList) ProtoMessage() {} - -func (x *DateNumList) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DateNumList.ProtoReflect.Descriptor instead. -func (*DateNumList) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{7} -} - -func (x *DateNumList) GetDate() string { - if x != nil { - return x.Date - } - return "" -} - -func (x *DateNumList) GetNum() int32 { - if x != nil { - return x.Num - } - return 0 -} - -type GetMessageStatisticsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetMessageStatisticsReq) Reset() { - *x = GetMessageStatisticsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetMessageStatisticsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetMessageStatisticsReq) ProtoMessage() {} - -func (x *GetMessageStatisticsReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetMessageStatisticsReq.ProtoReflect.Descriptor instead. -func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{8} -} - -func (x *GetMessageStatisticsReq) GetStatisticsReq() *StatisticsReq { - if x != nil { - return x.StatisticsReq - } - return nil -} - -func (x *GetMessageStatisticsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetMessageStatisticsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PrivateMessageNum int32 `protobuf:"varint,1,opt,name=PrivateMessageNum,proto3" json:"PrivateMessageNum,omitempty"` - GroupMessageNum int32 `protobuf:"varint,2,opt,name=GroupMessageNum,proto3" json:"GroupMessageNum,omitempty"` - PrivateMessageNumList []*DateNumList `protobuf:"bytes,3,rep,name=PrivateMessageNumList,proto3" json:"PrivateMessageNumList,omitempty"` - GroupMessageNumList []*DateNumList `protobuf:"bytes,4,rep,name=GroupMessageNumList,proto3" json:"GroupMessageNumList,omitempty"` -} - -func (x *GetMessageStatisticsResp) Reset() { - *x = GetMessageStatisticsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetMessageStatisticsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetMessageStatisticsResp) ProtoMessage() {} - -func (x *GetMessageStatisticsResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetMessageStatisticsResp.ProtoReflect.Descriptor instead. -func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{9} -} - -func (x *GetMessageStatisticsResp) GetPrivateMessageNum() int32 { - if x != nil { - return x.PrivateMessageNum - } - return 0 -} - -func (x *GetMessageStatisticsResp) GetGroupMessageNum() int32 { - if x != nil { - return x.GroupMessageNum - } - return 0 -} - -func (x *GetMessageStatisticsResp) GetPrivateMessageNumList() []*DateNumList { - if x != nil { - return x.PrivateMessageNumList - } - return nil -} - -func (x *GetMessageStatisticsResp) GetGroupMessageNumList() []*DateNumList { - if x != nil { - return x.GroupMessageNumList - } - return nil -} - -type GetGroupStatisticsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetGroupStatisticsReq) Reset() { - *x = GetGroupStatisticsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupStatisticsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupStatisticsReq) ProtoMessage() {} - -func (x *GetGroupStatisticsReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetGroupStatisticsReq.ProtoReflect.Descriptor instead. -func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{10} -} - -func (x *GetGroupStatisticsReq) GetStatisticsReq() *StatisticsReq { - if x != nil { - return x.StatisticsReq - } - return nil -} - -func (x *GetGroupStatisticsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetGroupStatisticsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IncreaseGroupNum int32 `protobuf:"varint,1,opt,name=IncreaseGroupNum,proto3" json:"IncreaseGroupNum,omitempty"` - TotalGroupNum int32 `protobuf:"varint,2,opt,name=TotalGroupNum,proto3" json:"TotalGroupNum,omitempty"` - IncreaseGroupNumList []*DateNumList `protobuf:"bytes,3,rep,name=IncreaseGroupNumList,proto3" json:"IncreaseGroupNumList,omitempty"` - TotalGroupNumList []*DateNumList `protobuf:"bytes,4,rep,name=TotalGroupNumList,proto3" json:"TotalGroupNumList,omitempty"` -} - -func (x *GetGroupStatisticsResp) Reset() { - *x = GetGroupStatisticsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetGroupStatisticsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetGroupStatisticsResp) ProtoMessage() {} - -func (x *GetGroupStatisticsResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetGroupStatisticsResp.ProtoReflect.Descriptor instead. -func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{11} -} - -func (x *GetGroupStatisticsResp) GetIncreaseGroupNum() int32 { - if x != nil { - return x.IncreaseGroupNum - } - return 0 -} - -func (x *GetGroupStatisticsResp) GetTotalGroupNum() int32 { - if x != nil { - return x.TotalGroupNum - } - return 0 -} - -func (x *GetGroupStatisticsResp) GetIncreaseGroupNumList() []*DateNumList { - if x != nil { - return x.IncreaseGroupNumList - } - return nil -} - -func (x *GetGroupStatisticsResp) GetTotalGroupNumList() []*DateNumList { - if x != nil { - return x.TotalGroupNumList - } - return nil -} - -type GetUserStatisticsReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` -} - -func (x *GetUserStatisticsReq) Reset() { - *x = GetUserStatisticsReq{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserStatisticsReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserStatisticsReq) ProtoMessage() {} - -func (x *GetUserStatisticsReq) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserStatisticsReq.ProtoReflect.Descriptor instead. -func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{12} -} - -func (x *GetUserStatisticsReq) GetStatisticsReq() *StatisticsReq { - if x != nil { - return x.StatisticsReq - } - return nil -} - -func (x *GetUserStatisticsReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -type GetUserStatisticsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - IncreaseUserNum int32 `protobuf:"varint,1,opt,name=IncreaseUserNum,proto3" json:"IncreaseUserNum,omitempty"` - ActiveUserNum int32 `protobuf:"varint,2,opt,name=ActiveUserNum,proto3" json:"ActiveUserNum,omitempty"` - TotalUserNum int32 `protobuf:"varint,3,opt,name=TotalUserNum,proto3" json:"TotalUserNum,omitempty"` - IncreaseUserNumList []*DateNumList `protobuf:"bytes,4,rep,name=IncreaseUserNumList,proto3" json:"IncreaseUserNumList,omitempty"` - ActiveUserNumList []*DateNumList `protobuf:"bytes,5,rep,name=ActiveUserNumList,proto3" json:"ActiveUserNumList,omitempty"` - TotalUserNumList []*DateNumList `protobuf:"bytes,6,rep,name=TotalUserNumList,proto3" json:"TotalUserNumList,omitempty"` -} - -func (x *GetUserStatisticsResp) Reset() { - *x = GetUserStatisticsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_statistics_statistics_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetUserStatisticsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetUserStatisticsResp) ProtoMessage() {} - -func (x *GetUserStatisticsResp) ProtoReflect() protoreflect.Message { - mi := &file_statistics_statistics_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetUserStatisticsResp.ProtoReflect.Descriptor instead. -func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return file_statistics_statistics_proto_rawDescGZIP(), []int{13} -} - -func (x *GetUserStatisticsResp) GetIncreaseUserNum() int32 { - if x != nil { - return x.IncreaseUserNum - } - return 0 -} - -func (x *GetUserStatisticsResp) GetActiveUserNum() int32 { - if x != nil { - return x.ActiveUserNum - } - return 0 -} - -func (x *GetUserStatisticsResp) GetTotalUserNum() int32 { - if x != nil { - return x.TotalUserNum - } - return 0 -} - -func (x *GetUserStatisticsResp) GetIncreaseUserNumList() []*DateNumList { - if x != nil { - return x.IncreaseUserNumList - } - return nil -} - -func (x *GetUserStatisticsResp) GetActiveUserNumList() []*DateNumList { - if x != nil { - return x.ActiveUserNumList - } - return nil -} - -func (x *GetUserStatisticsResp) GetTotalUserNumList() []*DateNumList { - if x != nil { - return x.TotalUserNumList - } - return nil -} - -var File_statistics_statistics_proto protoreflect.FileDescriptor - -var file_statistics_statistics_proto_rawDesc = []byte{ - 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x33, 0x0a, 0x0d, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, - 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x22, 0x75, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x5e, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x3f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x76, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x63, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4e, 0x75, 0x6d, 0x22, 0x43, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x52, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x33, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x65, - 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x7c, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8c, 0x02, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x12, 0x4d, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, - 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x49, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x49, 0x6e, 0x63, - 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, - 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4e, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, - 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x45, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, - 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0xe2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x0f, - 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x12, 0x49, 0x0a, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x43, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xbf, 0x03, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_statistics_statistics_proto_rawDescOnce sync.Once - file_statistics_statistics_proto_rawDescData = file_statistics_statistics_proto_rawDesc -) - -func file_statistics_statistics_proto_rawDescGZIP() []byte { - file_statistics_statistics_proto_rawDescOnce.Do(func() { - file_statistics_statistics_proto_rawDescData = protoimpl.X.CompressGZIP(file_statistics_statistics_proto_rawDescData) - }) - return file_statistics_statistics_proto_rawDescData -} - -var file_statistics_statistics_proto_msgTypes = make([]protoimpl.MessageInfo, 14) -var file_statistics_statistics_proto_goTypes = []interface{}{ - (*StatisticsReq)(nil), // 0: statistics.StatisticsReq - (*GetActiveUserReq)(nil), // 1: statistics.GetActiveUserReq - (*UserResp)(nil), // 2: statistics.UserResp - (*GetActiveUserResp)(nil), // 3: statistics.GetActiveUserResp - (*GetActiveGroupReq)(nil), // 4: statistics.GetActiveGroupReq - (*GroupResp)(nil), // 5: statistics.GroupResp - (*GetActiveGroupResp)(nil), // 6: statistics.GetActiveGroupResp - (*DateNumList)(nil), // 7: statistics.DateNumList - (*GetMessageStatisticsReq)(nil), // 8: statistics.GetMessageStatisticsReq - (*GetMessageStatisticsResp)(nil), // 9: statistics.GetMessageStatisticsResp - (*GetGroupStatisticsReq)(nil), // 10: statistics.GetGroupStatisticsReq - (*GetGroupStatisticsResp)(nil), // 11: statistics.GetGroupStatisticsResp - (*GetUserStatisticsReq)(nil), // 12: statistics.GetUserStatisticsReq - (*GetUserStatisticsResp)(nil), // 13: statistics.GetUserStatisticsResp -} -var file_statistics_statistics_proto_depIdxs = []int32{ - 0, // 0: statistics.GetActiveUserReq.StatisticsReq:type_name -> statistics.StatisticsReq - 2, // 1: statistics.GetActiveUserResp.Users:type_name -> statistics.UserResp - 0, // 2: statistics.GetActiveGroupReq.StatisticsReq:type_name -> statistics.StatisticsReq - 5, // 3: statistics.GetActiveGroupResp.Groups:type_name -> statistics.GroupResp - 0, // 4: statistics.GetMessageStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 5: statistics.GetMessageStatisticsResp.PrivateMessageNumList:type_name -> statistics.DateNumList - 7, // 6: statistics.GetMessageStatisticsResp.GroupMessageNumList:type_name -> statistics.DateNumList - 0, // 7: statistics.GetGroupStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 8: statistics.GetGroupStatisticsResp.IncreaseGroupNumList:type_name -> statistics.DateNumList - 7, // 9: statistics.GetGroupStatisticsResp.TotalGroupNumList:type_name -> statistics.DateNumList - 0, // 10: statistics.GetUserStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 11: statistics.GetUserStatisticsResp.IncreaseUserNumList:type_name -> statistics.DateNumList - 7, // 12: statistics.GetUserStatisticsResp.ActiveUserNumList:type_name -> statistics.DateNumList - 7, // 13: statistics.GetUserStatisticsResp.TotalUserNumList:type_name -> statistics.DateNumList - 1, // 14: statistics.user.GetActiveUser:input_type -> statistics.GetActiveUserReq - 4, // 15: statistics.user.GetActiveGroup:input_type -> statistics.GetActiveGroupReq - 8, // 16: statistics.user.GetMessageStatistics:input_type -> statistics.GetMessageStatisticsReq - 10, // 17: statistics.user.GetGroupStatistics:input_type -> statistics.GetGroupStatisticsReq - 12, // 18: statistics.user.GetUserStatistics:input_type -> statistics.GetUserStatisticsReq - 3, // 19: statistics.user.GetActiveUser:output_type -> statistics.GetActiveUserResp - 6, // 20: statistics.user.GetActiveGroup:output_type -> statistics.GetActiveGroupResp - 9, // 21: statistics.user.GetMessageStatistics:output_type -> statistics.GetMessageStatisticsResp - 11, // 22: statistics.user.GetGroupStatistics:output_type -> statistics.GetGroupStatisticsResp - 13, // 23: statistics.user.GetUserStatistics:output_type -> statistics.GetUserStatisticsResp - 19, // [19:24] is the sub-list for method output_type - 14, // [14:19] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name -} - -func init() { file_statistics_statistics_proto_init() } -func file_statistics_statistics_proto_init() { - if File_statistics_statistics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_statistics_statistics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatisticsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActiveUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActiveUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActiveGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetActiveGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DateNumList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMessageStatisticsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMessageStatisticsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupStatisticsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupStatisticsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserStatisticsReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_statistics_statistics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserStatisticsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_statistics_statistics_proto_rawDesc, - NumEnums: 0, - NumMessages: 14, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_statistics_statistics_proto_goTypes, - DependencyIndexes: file_statistics_statistics_proto_depIdxs, - MessageInfos: file_statistics_statistics_proto_msgTypes, - }.Build() - File_statistics_statistics_proto = out.File - file_statistics_statistics_proto_rawDesc = nil - file_statistics_statistics_proto_goTypes = nil - file_statistics_statistics_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// UserClient is the client API for User service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type UserClient interface { - GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) - GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) - GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) - GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) - GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) -} - -type userClient struct { - cc grpc.ClientConnInterface -} - -func NewUserClient(cc grpc.ClientConnInterface) UserClient { - return &userClient{cc} -} - -func (c *userClient) GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) { - out := new(GetActiveUserResp) - err := c.cc.Invoke(ctx, "/statistics.user/GetActiveUser", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) { - out := new(GetActiveGroupResp) - err := c.cc.Invoke(ctx, "/statistics.user/GetActiveGroup", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) { - out := new(GetMessageStatisticsResp) - err := c.cc.Invoke(ctx, "/statistics.user/GetMessageStatistics", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) { - out := new(GetGroupStatisticsResp) - err := c.cc.Invoke(ctx, "/statistics.user/GetGroupStatistics", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) { - out := new(GetUserStatisticsResp) - err := c.cc.Invoke(ctx, "/statistics.user/GetUserStatistics", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// UserServer is the server API for User service. -type UserServer interface { - GetActiveUser(context.Context, *GetActiveUserReq) (*GetActiveUserResp, error) - GetActiveGroup(context.Context, *GetActiveGroupReq) (*GetActiveGroupResp, error) - GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) - GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) - GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) -} - -// UnimplementedUserServer can be embedded to have forward compatible implementations. -type UnimplementedUserServer struct { -} - -func (*UnimplementedUserServer) GetActiveUser(context.Context, *GetActiveUserReq) (*GetActiveUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetActiveUser not implemented") -} -func (*UnimplementedUserServer) GetActiveGroup(context.Context, *GetActiveGroupReq) (*GetActiveGroupResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetActiveGroup not implemented") -} -func (*UnimplementedUserServer) GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetMessageStatistics not implemented") -} -func (*UnimplementedUserServer) GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetGroupStatistics not implemented") -} -func (*UnimplementedUserServer) GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUserStatistics not implemented") -} - -func RegisterUserServer(s *grpc.Server, srv UserServer) { - s.RegisterService(&_User_serviceDesc, srv) -} - -func _User_GetActiveUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetActiveUserReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetActiveUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/statistics.user/GetActiveUser", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetActiveUser(ctx, req.(*GetActiveUserReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetActiveGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetActiveGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetActiveGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/statistics.user/GetActiveGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetActiveGroup(ctx, req.(*GetActiveGroupReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetMessageStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetMessageStatisticsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetMessageStatistics(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/statistics.user/GetMessageStatistics", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetMessageStatistics(ctx, req.(*GetMessageStatisticsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetGroupStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupStatisticsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetGroupStatistics(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/statistics.user/GetGroupStatistics", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetGroupStatistics(ctx, req.(*GetGroupStatisticsReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetUserStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserStatisticsReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetUserStatistics(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/statistics.user/GetUserStatistics", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUserStatistics(ctx, req.(*GetUserStatisticsReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _User_serviceDesc = grpc.ServiceDesc{ - ServiceName: "statistics.user", - HandlerType: (*UserServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetActiveUser", - Handler: _User_GetActiveUser_Handler, - }, - { - MethodName: "GetActiveGroup", - Handler: _User_GetActiveGroup_Handler, - }, - { - MethodName: "GetMessageStatistics", - Handler: _User_GetMessageStatistics_Handler, - }, - { - MethodName: "GetGroupStatistics", - Handler: _User_GetGroupStatistics_Handler, - }, - { - MethodName: "GetUserStatistics", - Handler: _User_GetUserStatistics_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "statistics/statistics.proto", -} diff --git a/pkg/proto/statistics/statistics.proto b/pkg/proto/statistics/statistics.proto deleted file mode 100644 index 3c72e4bc5..000000000 --- a/pkg/proto/statistics/statistics.proto +++ /dev/null @@ -1,93 +0,0 @@ -syntax = "proto3"; -// import "Open_IM/pkg/proto/sdk_ws/ws.proto"; -option go_package = "./statistics;statistics"; -package statistics; - -message StatisticsReq { - string from = 1; - string to = 2; -} - -message GetActiveUserReq{ - StatisticsReq StatisticsReq = 1; - string OperationID = 2; -} - -message UserResp{ - string NickName = 1; - string UserId = 2; - int32 MessageNum = 3; -} - -message GetActiveUserResp { - repeated UserResp Users = 1; -} - -message GetActiveGroupReq{ - StatisticsReq StatisticsReq = 1; - string OperationID = 2; -} - -message GroupResp { - string GroupName = 1; - string GroupId = 2; - int32 MessageNum = 3; -} - -message GetActiveGroupResp { - repeated GroupResp Groups = 1; -} - -message DateNumList { - string Date = 1; - int32 Num = 2; -} - - -message GetMessageStatisticsReq { - StatisticsReq StatisticsReq = 1; - string OperationID = 2; -} - - -message GetMessageStatisticsResp { - int32 PrivateMessageNum = 1; - int32 GroupMessageNum = 2; - repeated DateNumList PrivateMessageNumList = 3; - repeated DateNumList GroupMessageNumList = 4; -} - -message GetGroupStatisticsReq { - StatisticsReq StatisticsReq = 1; - string OperationID = 2; -} - - -message GetGroupStatisticsResp { - int32 IncreaseGroupNum = 1; - int32 TotalGroupNum = 2; - repeated DateNumList IncreaseGroupNumList = 3; - repeated DateNumList TotalGroupNumList = 4; -} - -message GetUserStatisticsReq { - StatisticsReq StatisticsReq = 1; - string OperationID = 2; -} - -message GetUserStatisticsResp { - int32 IncreaseUserNum = 1; - int32 ActiveUserNum = 2; - int32 TotalUserNum = 3; - repeated DateNumList IncreaseUserNumList = 4; - repeated DateNumList ActiveUserNumList = 5; - repeated DateNumList TotalUserNumList = 6; -} - -service user { - rpc GetActiveUser(GetActiveUserReq) returns(GetActiveUserResp); - rpc GetActiveGroup(GetActiveGroupReq) returns(GetActiveGroupResp); - rpc GetMessageStatistics(GetMessageStatisticsReq) returns(GetMessageStatisticsResp); - rpc GetGroupStatistics(GetGroupStatisticsReq) returns(GetGroupStatisticsResp); - rpc GetUserStatistics(GetUserStatisticsReq) returns(GetUserStatisticsResp); -} \ No newline at end of file diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index dc064a136..b8d82dc7d 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{0} + return fileDescriptor_user_d39769f8de9fc07e, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -71,106 +71,6 @@ func (m *CommonResp) GetErrMsg() string { return "" } -type DeleteUsersReq struct { - DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } -func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersReq) ProtoMessage() {} -func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{1} -} -func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) -} -func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersReq.Merge(dst, src) -} -func (m *DeleteUsersReq) XXX_Size() int { - return xxx_messageInfo_DeleteUsersReq.Size(m) -} -func (m *DeleteUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo - -func (m *DeleteUsersReq) GetDeleteUserIDList() []string { - if m != nil { - return m.DeleteUserIDList - } - return nil -} - -func (m *DeleteUsersReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -func (m *DeleteUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type DeleteUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } -func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersResp) ProtoMessage() {} -func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{2} -} -func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) -} -func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersResp.Merge(dst, src) -} -func (m *DeleteUsersResp) XXX_Size() int { - return xxx_messageInfo_DeleteUsersResp.Size(m) -} -func (m *DeleteUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo - -func (m *DeleteUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *DeleteUsersResp) GetFailedUserIDList() []string { - if m != nil { - return m.FailedUserIDList - } - return nil -} - type GetAllUserIDReq struct { OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` @@ -183,7 +83,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{3} + return fileDescriptor_user_d39769f8de9fc07e, []int{1} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -229,7 +129,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{4} + return fileDescriptor_user_d39769f8de9fc07e, []int{2} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -276,7 +176,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{5} + return fileDescriptor_user_d39769f8de9fc07e, []int{3} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -329,7 +229,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{6} + return fileDescriptor_user_d39769f8de9fc07e, []int{4} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -375,7 +275,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{6, 0} + return fileDescriptor_user_d39769f8de9fc07e, []int{4, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -422,7 +322,7 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } func (*GetUserInfoReq) ProtoMessage() {} func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{7} + return fileDescriptor_user_d39769f8de9fc07e, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -475,7 +375,7 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } func (*GetUserInfoResp) ProtoMessage() {} func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{8} + return fileDescriptor_user_d39769f8de9fc07e, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -522,7 +422,7 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoReq) ProtoMessage() {} func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{9} + return fileDescriptor_user_d39769f8de9fc07e, []int{7} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -574,7 +474,7 @@ func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoResp) ProtoMessage() {} func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{10} + return fileDescriptor_user_d39769f8de9fc07e, []int{8} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -614,7 +514,7 @@ func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessage func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{11} + return fileDescriptor_user_d39769f8de9fc07e, []int{9} } func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) @@ -666,7 +566,7 @@ func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessag func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{12} + return fileDescriptor_user_d39769f8de9fc07e, []int{10} } func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) @@ -706,7 +606,7 @@ func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } func (*SetConversationReq) ProtoMessage() {} func (*SetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{13} + return fileDescriptor_user_d39769f8de9fc07e, []int{11} } func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) @@ -758,7 +658,7 @@ func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } func (*SetConversationResp) ProtoMessage() {} func (*SetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{14} + return fileDescriptor_user_d39769f8de9fc07e, []int{12} } func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) @@ -800,7 +700,7 @@ func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptReq) ProtoMessage() {} func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{15} + return fileDescriptor_user_d39769f8de9fc07e, []int{13} } func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) @@ -866,7 +766,7 @@ func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptResp) ProtoMessage() {} func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{16} + return fileDescriptor_user_d39769f8de9fc07e, []int{14} } func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) @@ -906,7 +806,7 @@ func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } func (*GetConversationReq) ProtoMessage() {} func (*GetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{17} + return fileDescriptor_user_d39769f8de9fc07e, []int{15} } func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) @@ -959,7 +859,7 @@ func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } func (*GetConversationResp) ProtoMessage() {} func (*GetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{18} + return fileDescriptor_user_d39769f8de9fc07e, []int{16} } func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) @@ -1006,7 +906,7 @@ func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetConversationsReq) ProtoMessage() {} func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{19} + return fileDescriptor_user_d39769f8de9fc07e, []int{17} } func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) @@ -1059,7 +959,7 @@ func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetConversationsResp) ProtoMessage() {} func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{20} + return fileDescriptor_user_d39769f8de9fc07e, []int{18} } func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) @@ -1105,7 +1005,7 @@ func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsReq) ProtoMessage() {} func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{21} + return fileDescriptor_user_d39769f8de9fc07e, []int{19} } func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) @@ -1151,7 +1051,7 @@ func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsResp) ProtoMessage() {} func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{22} + return fileDescriptor_user_d39769f8de9fc07e, []int{20} } func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) @@ -1199,7 +1099,7 @@ func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsR func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsReq) ProtoMessage() {} func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{23} + return fileDescriptor_user_d39769f8de9fc07e, []int{21} } func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) @@ -1260,7 +1160,7 @@ func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversations func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsResp) ProtoMessage() {} func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{24} + return fileDescriptor_user_d39769f8de9fc07e, []int{22} } func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) @@ -1301,584 +1201,11 @@ func (m *BatchSetConversationsResp) GetFailed() []string { return nil } -type ResignUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ResignUserReq) Reset() { *m = ResignUserReq{} } -func (m *ResignUserReq) String() string { return proto.CompactTextString(m) } -func (*ResignUserReq) ProtoMessage() {} -func (*ResignUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{25} -} -func (m *ResignUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResignUserReq.Unmarshal(m, b) -} -func (m *ResignUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResignUserReq.Marshal(b, m, deterministic) -} -func (dst *ResignUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResignUserReq.Merge(dst, src) -} -func (m *ResignUserReq) XXX_Size() int { - return xxx_messageInfo_ResignUserReq.Size(m) -} -func (m *ResignUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_ResignUserReq.DiscardUnknown(m) -} - -var xxx_messageInfo_ResignUserReq proto.InternalMessageInfo - -func (m *ResignUserReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *ResignUserReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type ResignUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ResignUserResp) Reset() { *m = ResignUserResp{} } -func (m *ResignUserResp) String() string { return proto.CompactTextString(m) } -func (*ResignUserResp) ProtoMessage() {} -func (*ResignUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{26} -} -func (m *ResignUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ResignUserResp.Unmarshal(m, b) -} -func (m *ResignUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ResignUserResp.Marshal(b, m, deterministic) -} -func (dst *ResignUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_ResignUserResp.Merge(dst, src) -} -func (m *ResignUserResp) XXX_Size() int { - return xxx_messageInfo_ResignUserResp.Size(m) -} -func (m *ResignUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_ResignUserResp.DiscardUnknown(m) -} - -var xxx_messageInfo_ResignUserResp proto.InternalMessageInfo - -func (m *ResignUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type GetUserByIdReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserByIdReq) Reset() { *m = GetUserByIdReq{} } -func (m *GetUserByIdReq) String() string { return proto.CompactTextString(m) } -func (*GetUserByIdReq) ProtoMessage() {} -func (*GetUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{27} -} -func (m *GetUserByIdReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserByIdReq.Unmarshal(m, b) -} -func (m *GetUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserByIdReq.Marshal(b, m, deterministic) -} -func (dst *GetUserByIdReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserByIdReq.Merge(dst, src) -} -func (m *GetUserByIdReq) XXX_Size() int { - return xxx_messageInfo_GetUserByIdReq.Size(m) -} -func (m *GetUserByIdReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserByIdReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserByIdReq proto.InternalMessageInfo - -func (m *GetUserByIdReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *GetUserByIdReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type User struct { - ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto" json:"ProfilePhoto,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` - CreateTime string `protobuf:"bytes,4,opt,name=CreateTime" json:"CreateTime,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Email string `protobuf:"bytes,6,opt,name=Email" json:"Email,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` - CreateIp string `protobuf:"bytes,8,opt,name=CreateIp" json:"CreateIp,omitempty"` - LastLoginTime string `protobuf:"bytes,9,opt,name=LastLoginTime" json:"LastLoginTime,omitempty"` - LastLoginIp string `protobuf:"bytes,10,opt,name=LastLoginIp" json:"LastLoginIp,omitempty"` - LoginTimes int32 `protobuf:"varint,11,opt,name=LoginTimes" json:"LoginTimes,omitempty"` - Gender int32 `protobuf:"varint,12,opt,name=Gender" json:"Gender,omitempty"` - LoginLimit int32 `protobuf:"varint,13,opt,name=LoginLimit" json:"LoginLimit,omitempty"` - IsBlock bool `protobuf:"varint,14,opt,name=IsBlock" json:"IsBlock,omitempty"` - RegisterIp string `protobuf:"bytes,15,opt,name=RegisterIp" json:"RegisterIp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{28} -} -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (dst *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(dst, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetProfilePhoto() string { - if m != nil { - return m.ProfilePhoto - } - return "" -} - -func (m *User) GetNickname() string { - if m != nil { - return m.Nickname - } - return "" -} - -func (m *User) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *User) GetCreateTime() string { - if m != nil { - return m.CreateTime - } - return "" -} - -func (m *User) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber - } - return "" -} - -func (m *User) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *User) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *User) GetCreateIp() string { - if m != nil { - return m.CreateIp - } - return "" -} - -func (m *User) GetLastLoginTime() string { - if m != nil { - return m.LastLoginTime - } - return "" -} - -func (m *User) GetLastLoginIp() string { - if m != nil { - return m.LastLoginIp - } - return "" -} - -func (m *User) GetLoginTimes() int32 { - if m != nil { - return m.LoginTimes - } - return 0 -} - -func (m *User) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 -} - -func (m *User) GetLoginLimit() int32 { - if m != nil { - return m.LoginLimit - } - return 0 -} - -func (m *User) GetIsBlock() bool { - if m != nil { - return m.IsBlock - } - return false -} - -func (m *User) GetRegisterIp() string { - if m != nil { - return m.RegisterIp - } - return "" -} - -type GetUserByIdResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - User *User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUserByIdResp) Reset() { *m = GetUserByIdResp{} } -func (m *GetUserByIdResp) String() string { return proto.CompactTextString(m) } -func (*GetUserByIdResp) ProtoMessage() {} -func (*GetUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{29} -} -func (m *GetUserByIdResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserByIdResp.Unmarshal(m, b) -} -func (m *GetUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserByIdResp.Marshal(b, m, deterministic) -} -func (dst *GetUserByIdResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserByIdResp.Merge(dst, src) -} -func (m *GetUserByIdResp) XXX_Size() int { - return xxx_messageInfo_GetUserByIdResp.Size(m) -} -func (m *GetUserByIdResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserByIdResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUserByIdResp proto.InternalMessageInfo - -func (m *GetUserByIdResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUserByIdResp) GetUser() *User { - if m != nil { - return m.User - } - return nil -} - -type GetUsersByNameReq struct { - UserName string `protobuf:"bytes,1,opt,name=UserName" json:"UserName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersByNameReq) Reset() { *m = GetUsersByNameReq{} } -func (m *GetUsersByNameReq) String() string { return proto.CompactTextString(m) } -func (*GetUsersByNameReq) ProtoMessage() {} -func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{30} -} -func (m *GetUsersByNameReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersByNameReq.Unmarshal(m, b) -} -func (m *GetUsersByNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersByNameReq.Marshal(b, m, deterministic) -} -func (dst *GetUsersByNameReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersByNameReq.Merge(dst, src) -} -func (m *GetUsersByNameReq) XXX_Size() int { - return xxx_messageInfo_GetUsersByNameReq.Size(m) -} -func (m *GetUsersByNameReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersByNameReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersByNameReq proto.InternalMessageInfo - -func (m *GetUsersByNameReq) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -func (m *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetUsersByNameReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUsersByNameResp struct { - Users []*User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,3,opt,name=UserNums" json:"UserNums,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersByNameResp) Reset() { *m = GetUsersByNameResp{} } -func (m *GetUsersByNameResp) String() string { return proto.CompactTextString(m) } -func (*GetUsersByNameResp) ProtoMessage() {} -func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{31} -} -func (m *GetUsersByNameResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersByNameResp.Unmarshal(m, b) -} -func (m *GetUsersByNameResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersByNameResp.Marshal(b, m, deterministic) -} -func (dst *GetUsersByNameResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersByNameResp.Merge(dst, src) -} -func (m *GetUsersByNameResp) XXX_Size() int { - return xxx_messageInfo_GetUsersByNameResp.Size(m) -} -func (m *GetUsersByNameResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersByNameResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersByNameResp proto.InternalMessageInfo - -func (m *GetUsersByNameResp) GetUsers() []*User { - if m != nil { - return m.Users - } - return nil -} - -func (m *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetUsersByNameResp) GetUserNums() int32 { - if m != nil { - return m.UserNums - } - return 0 -} - -type AlterUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,3,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Nickname string `protobuf:"bytes,4,opt,name=Nickname" json:"Nickname,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` - Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` - Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` - OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AlterUserReq) Reset() { *m = AlterUserReq{} } -func (m *AlterUserReq) String() string { return proto.CompactTextString(m) } -func (*AlterUserReq) ProtoMessage() {} -func (*AlterUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{32} -} -func (m *AlterUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AlterUserReq.Unmarshal(m, b) -} -func (m *AlterUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AlterUserReq.Marshal(b, m, deterministic) -} -func (dst *AlterUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AlterUserReq.Merge(dst, src) -} -func (m *AlterUserReq) XXX_Size() int { - return xxx_messageInfo_AlterUserReq.Size(m) -} -func (m *AlterUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_AlterUserReq.DiscardUnknown(m) -} - -var xxx_messageInfo_AlterUserReq proto.InternalMessageInfo - -func (m *AlterUserReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *AlterUserReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *AlterUserReq) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber - } - return "" -} - -func (m *AlterUserReq) GetNickname() string { - if m != nil { - return m.Nickname - } - return "" -} - -func (m *AlterUserReq) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *AlterUserReq) GetGender() string { - if m != nil { - return m.Gender - } - return "" -} - -func (m *AlterUserReq) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *AlterUserReq) GetPhoto() string { - if m != nil { - return m.Photo - } - return "" -} - -func (m *AlterUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId - } - return "" -} - -type AlterUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AlterUserResp) Reset() { *m = AlterUserResp{} } -func (m *AlterUserResp) String() string { return proto.CompactTextString(m) } -func (*AlterUserResp) ProtoMessage() {} -func (*AlterUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{33} -} -func (m *AlterUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AlterUserResp.Unmarshal(m, b) -} -func (m *AlterUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AlterUserResp.Marshal(b, m, deterministic) -} -func (dst *AlterUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AlterUserResp.Merge(dst, src) -} -func (m *AlterUserResp) XXX_Size() int { - return xxx_messageInfo_AlterUserResp.Size(m) -} -func (m *AlterUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_AlterUserResp.DiscardUnknown(m) -} - -var xxx_messageInfo_AlterUserResp proto.InternalMessageInfo - -func (m *AlterUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - type GetUsersReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - UserName string `protobuf:"bytes,3,opt,name=UserName" json:"UserName,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=pagination" json:"pagination,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1888,7 +1215,7 @@ func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } func (*GetUsersReq) ProtoMessage() {} func (*GetUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{34} + return fileDescriptor_user_d39769f8de9fc07e, []int{23} } func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) @@ -1929,11 +1256,64 @@ func (m *GetUsersReq) GetUserName() string { return "" } +func (m *GetUsersReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +type CmsUser struct { + User *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` + IsBlock bool `protobuf:"varint,2,opt,name=isBlock" json:"isBlock,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CmsUser) Reset() { *m = CmsUser{} } +func (m *CmsUser) String() string { return proto.CompactTextString(m) } +func (*CmsUser) ProtoMessage() {} +func (*CmsUser) Descriptor() ([]byte, []int) { + return fileDescriptor_user_d39769f8de9fc07e, []int{24} +} +func (m *CmsUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CmsUser.Unmarshal(m, b) +} +func (m *CmsUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CmsUser.Marshal(b, m, deterministic) +} +func (dst *CmsUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_CmsUser.Merge(dst, src) +} +func (m *CmsUser) XXX_Size() int { + return xxx_messageInfo_CmsUser.Size(m) +} +func (m *CmsUser) XXX_DiscardUnknown() { + xxx_messageInfo_CmsUser.DiscardUnknown(m) +} + +var xxx_messageInfo_CmsUser proto.InternalMessageInfo + +func (m *CmsUser) GetUser() *sdk_ws.UserInfo { + if m != nil { + return m.User + } + return nil +} + +func (m *CmsUser) GetIsBlock() bool { + if m != nil { + return m.IsBlock + } + return false +} + type GetUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UserList []*CmsUser `protobuf:"bytes,2,rep,name=userList" json:"userList,omitempty"` Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination" json:"Pagination,omitempty"` - UserNums int32 `protobuf:"varint,4,opt,name=UserNums" json:"UserNums,omitempty"` + TotalNums int32 `protobuf:"varint,4,opt,name=totalNums" json:"totalNums,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1943,7 +1323,7 @@ func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } func (*GetUsersResp) ProtoMessage() {} func (*GetUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{35} + return fileDescriptor_user_d39769f8de9fc07e, []int{25} } func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) @@ -1970,9 +1350,9 @@ func (m *GetUsersResp) GetCommonResp() *CommonResp { return nil } -func (m *GetUsersResp) GetUser() []*User { +func (m *GetUsersResp) GetUserList() []*CmsUser { if m != nil { - return m.User + return m.UserList } return nil } @@ -1984,33 +1364,26 @@ func (m *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { return nil } -func (m *GetUsersResp) GetUserNums() int32 { +func (m *GetUsersResp) GetTotalNums() int32 { if m != nil { - return m.UserNums + return m.TotalNums } return 0 } type AddUserReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - UserId string `protobuf:"bytes,3,opt,name=UserId" json:"UserId,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name" json:"name,omitempty"` - Email string `protobuf:"bytes,5,opt,name=Email" json:"Email,omitempty"` - Gender string `protobuf:"bytes,6,opt,name=Gender" json:"Gender,omitempty"` - Birth string `protobuf:"bytes,7,opt,name=Birth" json:"Birth,omitempty"` - Photo string `protobuf:"bytes,8,opt,name=Photo" json:"Photo,omitempty"` - OpUserId string `protobuf:"bytes,9,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *AddUserReq) Reset() { *m = AddUserReq{} } func (m *AddUserReq) String() string { return proto.CompactTextString(m) } func (*AddUserReq) ProtoMessage() {} func (*AddUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{36} + return fileDescriptor_user_d39769f8de9fc07e, []int{26} } func (m *AddUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserReq.Unmarshal(m, b) @@ -2030,6 +1403,13 @@ func (m *AddUserReq) XXX_DiscardUnknown() { var xxx_messageInfo_AddUserReq proto.InternalMessageInfo +func (m *AddUserReq) GetUserInfo() *sdk_ws.UserInfo { + if m != nil { + return m.UserInfo + } + return nil +} + func (m *AddUserReq) GetOperationID() string { if m != nil { return m.OperationID @@ -2037,62 +1417,6 @@ func (m *AddUserReq) GetOperationID() string { return "" } -func (m *AddUserReq) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber - } - return "" -} - -func (m *AddUserReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *AddUserReq) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *AddUserReq) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *AddUserReq) GetGender() string { - if m != nil { - return m.Gender - } - return "" -} - -func (m *AddUserReq) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *AddUserReq) GetPhoto() string { - if m != nil { - return m.Photo - } - return "" -} - -func (m *AddUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId - } - return "" -} - type AddUserResp struct { CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2104,7 +1428,7 @@ func (m *AddUserResp) Reset() { *m = AddUserResp{} } func (m *AddUserResp) String() string { return proto.CompactTextString(m) } func (*AddUserResp) ProtoMessage() {} func (*AddUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{37} + return fileDescriptor_user_d39769f8de9fc07e, []int{27} } func (m *AddUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserResp.Unmarshal(m, b) @@ -2132,10 +1456,10 @@ func (m *AddUserResp) GetCommonResp() *CommonResp { } type BlockUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,4,opt,name=OpUserId" json:"OpUserId,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + EndDisableTime string `protobuf:"bytes,2,opt,name=endDisableTime" json:"endDisableTime,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=opUserID" json:"opUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2145,7 +1469,7 @@ func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } func (*BlockUserReq) ProtoMessage() {} func (*BlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{38} + return fileDescriptor_user_d39769f8de9fc07e, []int{28} } func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) @@ -2165,9 +1489,9 @@ func (m *BlockUserReq) XXX_DiscardUnknown() { var xxx_messageInfo_BlockUserReq proto.InternalMessageInfo -func (m *BlockUserReq) GetUserId() string { +func (m *BlockUserReq) GetUserID() string { if m != nil { - return m.UserId + return m.UserID } return "" } @@ -2186,9 +1510,9 @@ func (m *BlockUserReq) GetOperationID() string { return "" } -func (m *BlockUserReq) GetOpUserId() string { +func (m *BlockUserReq) GetOpUserID() string { if m != nil { - return m.OpUserId + return m.OpUserID } return "" } @@ -2204,7 +1528,7 @@ func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } func (*BlockUserResp) ProtoMessage() {} func (*BlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{39} + return fileDescriptor_user_d39769f8de9fc07e, []int{29} } func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) @@ -2232,9 +1556,9 @@ func (m *BlockUserResp) GetCommonResp() *CommonResp { } type UnBlockUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=UserId" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=opUserID" json:"opUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2244,7 +1568,7 @@ func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } func (*UnBlockUserReq) ProtoMessage() {} func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{40} + return fileDescriptor_user_d39769f8de9fc07e, []int{30} } func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) @@ -2264,9 +1588,9 @@ func (m *UnBlockUserReq) XXX_DiscardUnknown() { var xxx_messageInfo_UnBlockUserReq proto.InternalMessageInfo -func (m *UnBlockUserReq) GetUserId() string { +func (m *UnBlockUserReq) GetUserID() string { if m != nil { - return m.UserId + return m.UserID } return "" } @@ -2278,9 +1602,9 @@ func (m *UnBlockUserReq) GetOperationID() string { return "" } -func (m *UnBlockUserReq) GetOpUserId() string { +func (m *UnBlockUserReq) GetOpUserID() string { if m != nil { - return m.OpUserId + return m.OpUserID } return "" } @@ -2296,7 +1620,7 @@ func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } func (*UnBlockUserResp) ProtoMessage() {} func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{41} + return fileDescriptor_user_d39769f8de9fc07e, []int{31} } func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) @@ -2324,9 +1648,10 @@ func (m *UnBlockUserResp) GetCommonResp() *CommonResp { } type GetBlockUsersReq struct { - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum" json:"BlockUserNum,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=pagination" json:"pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + UserID string `protobuf:"bytes,3,opt,name=userID" json:"userID,omitempty"` + TotalBlockUserNum int32 `protobuf:"varint,4,opt,name=totalBlockUserNum" json:"totalBlockUserNum,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2336,7 +1661,7 @@ func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersReq) ProtoMessage() {} func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{42} + return fileDescriptor_user_d39769f8de9fc07e, []int{32} } func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) @@ -2370,27 +1695,34 @@ func (m *GetBlockUsersReq) GetOperationID() string { return "" } -func (m *GetBlockUsersReq) GetBlockUserNum() int32 { +func (m *GetBlockUsersReq) GetUserID() string { if m != nil { - return m.BlockUserNum + return m.UserID + } + return "" +} + +func (m *GetBlockUsersReq) GetTotalBlockUserNum() int32 { + if m != nil { + return m.TotalBlockUserNum } return 0 } type BlockUser struct { - User *User `protobuf:"bytes,1,opt,name=User" json:"User,omitempty"` - BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime" json:"BeginDisableTime,omitempty"` - EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime" json:"EndDisableTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *BlockUser) Reset() { *m = BlockUser{} } func (m *BlockUser) String() string { return proto.CompactTextString(m) } func (*BlockUser) ProtoMessage() {} func (*BlockUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{43} + return fileDescriptor_user_d39769f8de9fc07e, []int{33} } func (m *BlockUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUser.Unmarshal(m, b) @@ -2410,9 +1742,9 @@ func (m *BlockUser) XXX_DiscardUnknown() { var xxx_messageInfo_BlockUser proto.InternalMessageInfo -func (m *BlockUser) GetUser() *User { +func (m *BlockUser) GetUserInfo() *sdk_ws.UserInfo { if m != nil { - return m.User + return m.UserInfo } return nil } @@ -2445,7 +1777,7 @@ func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersResp) ProtoMessage() {} func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{44} + return fileDescriptor_user_d39769f8de9fc07e, []int{34} } func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) @@ -2493,186 +1825,8 @@ func (m *GetBlockUsersResp) GetUserNums() int32 { return 0 } -type GetBlockUserByIdReq struct { - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetBlockUserByIdReq) Reset() { *m = GetBlockUserByIdReq{} } -func (m *GetBlockUserByIdReq) String() string { return proto.CompactTextString(m) } -func (*GetBlockUserByIdReq) ProtoMessage() {} -func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{45} -} -func (m *GetBlockUserByIdReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUserByIdReq.Unmarshal(m, b) -} -func (m *GetBlockUserByIdReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUserByIdReq.Marshal(b, m, deterministic) -} -func (dst *GetBlockUserByIdReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUserByIdReq.Merge(dst, src) -} -func (m *GetBlockUserByIdReq) XXX_Size() int { - return xxx_messageInfo_GetBlockUserByIdReq.Size(m) -} -func (m *GetBlockUserByIdReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUserByIdReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetBlockUserByIdReq proto.InternalMessageInfo - -func (m *GetBlockUserByIdReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *GetBlockUserByIdReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetBlockUserByIdResp struct { - BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser" json:"BlockUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetBlockUserByIdResp) Reset() { *m = GetBlockUserByIdResp{} } -func (m *GetBlockUserByIdResp) String() string { return proto.CompactTextString(m) } -func (*GetBlockUserByIdResp) ProtoMessage() {} -func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{46} -} -func (m *GetBlockUserByIdResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlockUserByIdResp.Unmarshal(m, b) -} -func (m *GetBlockUserByIdResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlockUserByIdResp.Marshal(b, m, deterministic) -} -func (dst *GetBlockUserByIdResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlockUserByIdResp.Merge(dst, src) -} -func (m *GetBlockUserByIdResp) XXX_Size() int { - return xxx_messageInfo_GetBlockUserByIdResp.Size(m) -} -func (m *GetBlockUserByIdResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlockUserByIdResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetBlockUserByIdResp proto.InternalMessageInfo - -func (m *GetBlockUserByIdResp) GetBlockUser() *BlockUser { - if m != nil { - return m.BlockUser - } - return nil -} - -type DeleteUserReq struct { - UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId" json:"User_id,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserId string `protobuf:"bytes,3,opt,name=OpUserId" json:"OpUserId,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteUserReq) Reset() { *m = DeleteUserReq{} } -func (m *DeleteUserReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUserReq) ProtoMessage() {} -func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{47} -} -func (m *DeleteUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUserReq.Unmarshal(m, b) -} -func (m *DeleteUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUserReq.Marshal(b, m, deterministic) -} -func (dst *DeleteUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUserReq.Merge(dst, src) -} -func (m *DeleteUserReq) XXX_Size() int { - return xxx_messageInfo_DeleteUserReq.Size(m) -} -func (m *DeleteUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUserReq.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteUserReq proto.InternalMessageInfo - -func (m *DeleteUserReq) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *DeleteUserReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *DeleteUserReq) GetOpUserId() string { - if m != nil { - return m.OpUserId - } - return "" -} - -type DeleteUserResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteUserResp) Reset() { *m = DeleteUserResp{} } -func (m *DeleteUserResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUserResp) ProtoMessage() {} -func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_862a17c60dc96c16, []int{48} -} -func (m *DeleteUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUserResp.Unmarshal(m, b) -} -func (m *DeleteUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUserResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUserResp.Merge(dst, src) -} -func (m *DeleteUserResp) XXX_Size() int { - return xxx_messageInfo_DeleteUserResp.Size(m) -} -func (m *DeleteUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUserResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteUserResp proto.InternalMessageInfo - -func (m *DeleteUserResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - func init() { proto.RegisterType((*CommonResp)(nil), "user.CommonResp") - proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") - proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") @@ -2696,16 +1850,8 @@ func init() { proto.RegisterType((*GetAllConversationsResp)(nil), "user.GetAllConversationsResp") proto.RegisterType((*BatchSetConversationsReq)(nil), "user.BatchSetConversationsReq") proto.RegisterType((*BatchSetConversationsResp)(nil), "user.BatchSetConversationsResp") - proto.RegisterType((*ResignUserReq)(nil), "user.ResignUserReq") - proto.RegisterType((*ResignUserResp)(nil), "user.ResignUserResp") - proto.RegisterType((*GetUserByIdReq)(nil), "user.GetUserByIdReq") - proto.RegisterType((*User)(nil), "user.User") - proto.RegisterType((*GetUserByIdResp)(nil), "user.GetUserByIdResp") - proto.RegisterType((*GetUsersByNameReq)(nil), "user.GetUsersByNameReq") - proto.RegisterType((*GetUsersByNameResp)(nil), "user.GetUsersByNameResp") - proto.RegisterType((*AlterUserReq)(nil), "user.AlterUserReq") - proto.RegisterType((*AlterUserResp)(nil), "user.AlterUserResp") proto.RegisterType((*GetUsersReq)(nil), "user.GetUsersReq") + proto.RegisterType((*CmsUser)(nil), "user.CmsUser") proto.RegisterType((*GetUsersResp)(nil), "user.GetUsersResp") proto.RegisterType((*AddUserReq)(nil), "user.AddUserReq") proto.RegisterType((*AddUserResp)(nil), "user.AddUserResp") @@ -2716,10 +1862,6 @@ func init() { proto.RegisterType((*GetBlockUsersReq)(nil), "user.GetBlockUsersReq") proto.RegisterType((*BlockUser)(nil), "user.BlockUser") proto.RegisterType((*GetBlockUsersResp)(nil), "user.GetBlockUsersResp") - proto.RegisterType((*GetBlockUserByIdReq)(nil), "user.GetBlockUserByIdReq") - proto.RegisterType((*GetBlockUserByIdResp)(nil), "user.GetBlockUserByIdResp") - proto.RegisterType((*DeleteUserReq)(nil), "user.DeleteUserReq") - proto.RegisterType((*DeleteUserResp)(nil), "user.DeleteUserResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -2736,7 +1878,6 @@ type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalRecvMessageOptReq, opts ...grpc.CallOption) (*SetGlobalRecvMessageOptResp, error) - DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) GetConversation(ctx context.Context, in *GetConversationReq, opts ...grpc.CallOption) (*GetConversationResp, error) @@ -2745,17 +1886,11 @@ type UserClient interface { BatchSetConversations(ctx context.Context, in *BatchSetConversationsReq, opts ...grpc.CallOption) (*BatchSetConversationsResp, error) SetConversation(ctx context.Context, in *SetConversationReq, opts ...grpc.CallOption) (*SetConversationResp, error) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, opts ...grpc.CallOption) (*SetRecvMsgOptResp, error) - GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) - GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) - ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) - AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) - GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) - DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) } type userClient struct { @@ -2793,15 +1928,6 @@ func (c *userClient) SetGlobalRecvMessageOpt(ctx context.Context, in *SetGlobalR return out, nil } -func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { - out := new(DeleteUsersResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { out := new(GetAllUserIDResp) err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) @@ -2874,42 +2000,6 @@ func (c *userClient) SetRecvMsgOpt(ctx context.Context, in *SetRecvMsgOptReq, op return out, nil } -func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { - out := new(GetUserByIdResp) - err := grpc.Invoke(ctx, "/user.user/GetUserById", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) { - out := new(GetUsersByNameResp) - err := grpc.Invoke(ctx, "/user.user/GetUsersByName", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { - out := new(ResignUserResp) - err := grpc.Invoke(ctx, "/user.user/ResignUser", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) { - out := new(AlterUserResp) - err := grpc.Invoke(ctx, "/user.user/AlterUser", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { out := new(GetUsersResp) err := grpc.Invoke(ctx, "/user.user/GetUsers", in, out, c.cc, opts...) @@ -2955,31 +2045,12 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op return out, nil } -func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) { - out := new(GetBlockUserByIdResp) - err := grpc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *userClient) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) { - out := new(DeleteUserResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUser", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // Server API for User service type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) SetGlobalRecvMessageOpt(context.Context, *SetGlobalRecvMessageOptReq) (*SetGlobalRecvMessageOptResp, error) - DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) GetConversation(context.Context, *GetConversationReq) (*GetConversationResp, error) @@ -2988,17 +2059,11 @@ type UserServer interface { BatchSetConversations(context.Context, *BatchSetConversationsReq) (*BatchSetConversationsResp, error) SetConversation(context.Context, *SetConversationReq) (*SetConversationResp, error) SetRecvMsgOpt(context.Context, *SetRecvMsgOptReq) (*SetRecvMsgOptResp, error) - GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) - GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) - ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) - AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) AddUser(context.Context, *AddUserReq) (*AddUserResp, error) BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) - GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) - DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -3059,24 +2124,6 @@ func _User_SetGlobalRecvMessageOpt_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } -func _User_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteUsersReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).DeleteUsers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/DeleteUsers", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).DeleteUsers(ctx, req.(*DeleteUsersReq)) - } - return interceptor(ctx, in, info, handler) -} - func _User_GetAllUserID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetAllUserIDReq) if err := dec(in); err != nil { @@ -3221,78 +2268,6 @@ func _User_SetRecvMsgOpt_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _User_GetUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserByIdReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetUserById(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetUserById", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUserById(ctx, req.(*GetUserByIdReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_GetUsersByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUsersByNameReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetUsersByName(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetUsersByName", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUsersByName(ctx, req.(*GetUsersByNameReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_ResignUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResignUserReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).ResignUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/ResignUser", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).ResignUser(ctx, req.(*ResignUserReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_AlterUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AlterUserReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).AlterUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/AlterUser", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).AlterUser(ctx, req.(*AlterUserReq)) - } - return interceptor(ctx, in, info, handler) -} - func _User_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetUsersReq) if err := dec(in); err != nil { @@ -3383,42 +2358,6 @@ func _User_GetBlockUsers_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _User_GetBlockUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBlockUserByIdReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetBlockUserById(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetBlockUserById", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetBlockUserById(ctx, req.(*GetBlockUserByIdReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _User_DeleteUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteUserReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).DeleteUser(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/DeleteUser", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).DeleteUser(ctx, req.(*DeleteUserReq)) - } - return interceptor(ctx, in, info, handler) -} - var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -3435,10 +2374,6 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "SetGlobalRecvMessageOpt", Handler: _User_SetGlobalRecvMessageOpt_Handler, }, - { - MethodName: "DeleteUsers", - Handler: _User_DeleteUsers_Handler, - }, { MethodName: "GetAllUserID", Handler: _User_GetAllUserID_Handler, @@ -3471,22 +2406,6 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "SetRecvMsgOpt", Handler: _User_SetRecvMsgOpt_Handler, }, - { - MethodName: "GetUserById", - Handler: _User_GetUserById_Handler, - }, - { - MethodName: "GetUsersByName", - Handler: _User_GetUsersByName_Handler, - }, - { - MethodName: "ResignUser", - Handler: _User_ResignUser_Handler, - }, - { - MethodName: "AlterUser", - Handler: _User_AlterUser_Handler, - }, { MethodName: "GetUsers", Handler: _User_GetUsers_Handler, @@ -3507,140 +2426,101 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetBlockUsers", Handler: _User_GetBlockUsers_Handler, }, - { - MethodName: "GetBlockUserById", - Handler: _User_GetBlockUserById_Handler, - }, - { - MethodName: "DeleteUser", - Handler: _User_DeleteUser_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_862a17c60dc96c16) } +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_d39769f8de9fc07e) } -var fileDescriptor_user_862a17c60dc96c16 = []byte{ - // 1900 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcb, 0x6f, 0x23, 0x49, - 0x19, 0x57, 0xc7, 0xf6, 0x24, 0xf9, 0x1c, 0x3f, 0x52, 0x93, 0x9d, 0xf4, 0xf6, 0xc2, 0x90, 0x6d, - 0x2d, 0x4b, 0x34, 0x12, 0x0e, 0x3b, 0x20, 0x8d, 0xb4, 0x88, 0xdd, 0x89, 0x9d, 0x8c, 0x65, 0x34, - 0x33, 0x89, 0xda, 0x3b, 0x12, 0x42, 0x88, 0xa8, 0x63, 0x57, 0x9c, 0x56, 0xec, 0xee, 0xde, 0xae, - 0xf6, 0x8c, 0xc2, 0x65, 0x11, 0x20, 0x21, 0xad, 0xe0, 0xc0, 0x09, 0x71, 0xe1, 0xc0, 0x9f, 0x02, - 0x37, 0xc4, 0x3f, 0xc0, 0x89, 0xff, 0x81, 0x0b, 0x17, 0x0e, 0xa8, 0x1e, 0xdd, 0x5d, 0xd5, 0xd5, - 0x8e, 0x3d, 0x9d, 0x88, 0xb9, 0x24, 0xfe, 0x7e, 0xf5, 0xe8, 0xef, 0xf7, 0xd5, 0xf7, 0xa8, 0x07, - 0xb4, 0xe6, 0x04, 0x47, 0x07, 0xf4, 0x4f, 0x27, 0x8c, 0x82, 0x38, 0x40, 0x55, 0xfa, 0xdb, 0xfa, - 0xf0, 0x24, 0xc4, 0xfe, 0xd9, 0xe0, 0xc5, 0x41, 0x78, 0x35, 0x39, 0x60, 0x0d, 0x07, 0x64, 0x7c, - 0x75, 0xf6, 0x86, 0x1c, 0xbc, 0x21, 0xbc, 0xa3, 0xf5, 0x89, 0xde, 0x65, 0x14, 0xf8, 0xaf, 0x71, - 0x44, 0xdc, 0xd8, 0x0b, 0x7c, 0x45, 0xe0, 0x43, 0xec, 0xcf, 0x00, 0x7a, 0xc1, 0x6c, 0x16, 0xf8, - 0x0e, 0x26, 0x21, 0x32, 0x61, 0x1d, 0x47, 0x51, 0x2f, 0x18, 0x63, 0xd3, 0xd8, 0x33, 0xf6, 0x6b, - 0x4e, 0x22, 0xa2, 0x07, 0x70, 0x0f, 0x47, 0xd1, 0x0b, 0x32, 0x31, 0xd7, 0xf6, 0x8c, 0xfd, 0x4d, - 0x47, 0x48, 0xf6, 0x2f, 0xa0, 0x79, 0x84, 0xa7, 0x38, 0xc6, 0xaf, 0x08, 0x8e, 0x88, 0x83, 0xbf, - 0x44, 0x8f, 0xa0, 0x9d, 0x21, 0x83, 0xa3, 0xe7, 0x1e, 0x89, 0xcd, 0xb5, 0xbd, 0xca, 0xfe, 0xa6, - 0xa3, 0xe1, 0xc8, 0x82, 0x8d, 0x93, 0x90, 0xcb, 0x66, 0x85, 0xcd, 0x9b, 0xca, 0x68, 0x0f, 0xea, - 0x27, 0x21, 0x8e, 0x98, 0xb2, 0x83, 0x23, 0xb3, 0xca, 0x9a, 0x65, 0xc8, 0x0e, 0xa0, 0xa5, 0x7c, - 0x9b, 0x84, 0xe8, 0x7b, 0x32, 0x1d, 0xc6, 0xa1, 0xfe, 0xb8, 0xdd, 0x61, 0xb6, 0xcc, 0x70, 0x47, - 0xa6, 0xfc, 0x08, 0xda, 0xcf, 0x5c, 0x6f, 0x8a, 0xc7, 0xba, 0xba, 0x79, 0xdc, 0x3e, 0x81, 0x56, - 0x1f, 0xc7, 0x87, 0xd3, 0x29, 0xc7, 0x28, 0x5b, 0x0b, 0x36, 0x82, 0x84, 0x81, 0xc1, 0x19, 0x04, - 0x12, 0x83, 0x40, 0x62, 0xc0, 0x0d, 0x27, 0x43, 0xf6, 0x18, 0xda, 0xea, 0x84, 0xa5, 0x28, 0x3c, - 0x04, 0xd0, 0x94, 0x97, 0x10, 0xfb, 0x1a, 0x5a, 0x87, 0xa3, 0x51, 0x30, 0xf7, 0xe3, 0xde, 0x25, - 0x1e, 0x5d, 0x51, 0xb5, 0xf7, 0xa1, 0xc5, 0x7e, 0x4b, 0xe3, 0x0c, 0x36, 0x2e, 0x0f, 0x2b, 0x4b, - 0xb4, 0x76, 0xf3, 0x12, 0x55, 0xf4, 0x25, 0xfa, 0x97, 0x01, 0x6d, 0xf5, 0xdb, 0x9c, 0xe1, 0x68, - 0x05, 0x86, 0x59, 0x1f, 0xd4, 0x07, 0x70, 0x30, 0x99, 0x4f, 0xe3, 0x94, 0x61, 0xfd, 0xf1, 0x77, - 0xf8, 0x88, 0xfc, 0xec, 0x9d, 0xa1, 0xe7, 0x4f, 0xa6, 0xcc, 0x25, 0x86, 0xb1, 0x1b, 0xcf, 0x89, - 0x23, 0x0d, 0xb5, 0x4e, 0xa1, 0x9d, 0x6f, 0xa7, 0xae, 0x3d, 0x97, 0x17, 0x50, 0x48, 0xe8, 0x23, - 0x68, 0xb8, 0x7c, 0x72, 0xde, 0x51, 0xd0, 0x57, 0x41, 0xdb, 0x87, 0x66, 0x1f, 0xc7, 0xcc, 0x20, - 0xfe, 0x45, 0x40, 0x6d, 0xfb, 0x10, 0x60, 0x9e, 0x37, 0xab, 0x84, 0xdc, 0xd2, 0xa2, 0xbf, 0x31, - 0x98, 0x13, 0x66, 0x1f, 0x2c, 0x65, 0xd0, 0xcf, 0x61, 0x2b, 0x99, 0x81, 0x69, 0x59, 0x61, 0x26, - 0xfd, 0xa0, 0x43, 0x70, 0xf4, 0x1a, 0x47, 0x67, 0x6e, 0xe8, 0x9d, 0x85, 0x6e, 0xe4, 0xce, 0x48, - 0x27, 0xfd, 0x90, 0x32, 0xc0, 0xfe, 0xda, 0x80, 0xed, 0x57, 0xe1, 0xd8, 0x15, 0xe1, 0x2c, 0xa8, - 0x3f, 0x81, 0x8d, 0x44, 0x14, 0x6a, 0xdc, 0x38, 0x65, 0xda, 0x79, 0x99, 0x4d, 0x02, 0xdd, 0x26, - 0x72, 0x18, 0x3d, 0x03, 0x94, 0xd7, 0xa5, 0x8c, 0x55, 0xec, 0x5f, 0x19, 0x60, 0x0d, 0x71, 0xdc, - 0x9f, 0x06, 0xe7, 0xee, 0xd4, 0xc1, 0xa3, 0xd7, 0x2f, 0x30, 0x21, 0xee, 0x04, 0x9f, 0x84, 0x31, - 0x65, 0xb7, 0xc8, 0x51, 0x96, 0xc6, 0x39, 0x4d, 0x32, 0x93, 0x6c, 0x52, 0x32, 0x39, 0x09, 0x63, - 0xc6, 0xa3, 0xe6, 0x68, 0xb8, 0x7d, 0x02, 0x1f, 0x2c, 0xd4, 0xa1, 0x14, 0xab, 0xbf, 0x18, 0x80, - 0x86, 0x38, 0xee, 0x49, 0xc9, 0x9f, 0xb2, 0xf9, 0x0c, 0xb6, 0x64, 0x48, 0x4c, 0x65, 0x75, 0x94, - 0x22, 0xa1, 0x0c, 0x52, 0xfa, 0x53, 0x4e, 0x7e, 0x10, 0x7b, 0x17, 0xde, 0x88, 0xc9, 0x5f, 0x5c, - 0x87, 0x98, 0x51, 0xaf, 0x39, 0x1a, 0xbe, 0x82, 0x5b, 0xf7, 0xe1, 0xbe, 0xa6, 0x63, 0x29, 0xb6, - 0x7f, 0x37, 0xa0, 0x3d, 0xc4, 0x71, 0x66, 0x50, 0xca, 0x95, 0x7e, 0xff, 0x8d, 0x8f, 0x23, 0x25, - 0x51, 0xcb, 0x10, 0xfa, 0x18, 0x9a, 0xf2, 0xc7, 0xd3, 0x65, 0xcc, 0xa1, 0x34, 0xb8, 0xb5, 0x35, - 0x94, 0x90, 0x42, 0xab, 0x54, 0x57, 0xb3, 0x4a, 0x4d, 0xb7, 0xca, 0x31, 0x6c, 0xe7, 0xb8, 0x94, - 0xb2, 0xc9, 0x2f, 0x0d, 0x40, 0x7d, 0xdd, 0x03, 0x74, 0xce, 0x46, 0x21, 0xe7, 0x9c, 0xf5, 0xd6, - 0x74, 0xeb, 0x2d, 0x5f, 0xdf, 0xdf, 0x1a, 0x70, 0xbf, 0x7f, 0x17, 0x0b, 0xac, 0xf9, 0xed, 0xda, - 0xdb, 0xf9, 0xad, 0xfd, 0x6b, 0x5d, 0x13, 0xb2, 0x9a, 0x8f, 0xd0, 0xa2, 0xa9, 0x58, 0x86, 0x88, - 0x62, 0x9b, 0x87, 0x57, 0xb0, 0xc7, 0xd7, 0x06, 0xec, 0xe8, 0x5a, 0x94, 0x32, 0xc8, 0x53, 0x68, - 0x28, 0xd3, 0x88, 0xfa, 0x78, 0x93, 0x45, 0xd4, 0x01, 0xf6, 0xcf, 0xe0, 0x01, 0xdf, 0x86, 0x94, - 0x30, 0x4a, 0x8e, 0xea, 0x9a, 0x4e, 0xf5, 0xf7, 0x06, 0xec, 0x16, 0x4e, 0xff, 0x8e, 0xd8, 0xfe, - 0xc3, 0x00, 0xb3, 0xeb, 0xc6, 0xa3, 0xcb, 0x61, 0x81, 0x17, 0x68, 0xd3, 0x1b, 0x6f, 0x39, 0xfd, - 0x0a, 0xd1, 0x52, 0x94, 0x23, 0x2a, 0xab, 0xe5, 0x88, 0x82, 0x5d, 0xf0, 0x57, 0xf0, 0xfe, 0x02, - 0x36, 0xa5, 0xec, 0x6b, 0xc2, 0xfa, 0x70, 0x3e, 0x1a, 0x61, 0x92, 0x38, 0x77, 0x22, 0xd2, 0xf2, - 0xc7, 0x77, 0xc4, 0x6c, 0xb7, 0xb0, 0xe9, 0x08, 0xc9, 0x1e, 0x40, 0xc3, 0xc1, 0xc4, 0x9b, 0xf8, - 0x94, 0x9e, 0xa8, 0x93, 0x8c, 0xe9, 0x38, 0xa9, 0x93, 0x5c, 0x5a, 0xc1, 0x55, 0xba, 0xd0, 0x94, - 0xa7, 0x2a, 0x95, 0xec, 0x7e, 0x9c, 0x6e, 0xc8, 0xba, 0xd7, 0x83, 0xf1, 0xed, 0xf4, 0xf9, 0x6b, - 0x05, 0xaa, 0xb4, 0x33, 0xb2, 0x61, 0xeb, 0x34, 0x0a, 0x2e, 0xbc, 0x29, 0x3e, 0xbd, 0x0c, 0xe2, - 0x40, 0x4c, 0xa4, 0x60, 0x74, 0x0f, 0xf3, 0xd2, 0x1b, 0x5d, 0xf9, 0xee, 0x0c, 0x27, 0x7b, 0x98, - 0x44, 0x96, 0x54, 0xa8, 0x28, 0x2a, 0x3c, 0x04, 0xe8, 0x45, 0xd8, 0x8d, 0xf1, 0x17, 0xde, 0x0c, - 0x8b, 0xd5, 0x95, 0x10, 0xaa, 0xe2, 0xe9, 0x65, 0xe0, 0xe3, 0x97, 0xf3, 0xd9, 0x39, 0x8e, 0x92, - 0x12, 0x21, 0x41, 0x68, 0x07, 0x6a, 0xc7, 0x33, 0xd7, 0x9b, 0x9a, 0xf7, 0x58, 0x1b, 0x17, 0x28, - 0xda, 0xf5, 0xa2, 0xf8, 0xd2, 0x5c, 0xe7, 0x28, 0x13, 0xa8, 0x86, 0x7c, 0xee, 0x41, 0x68, 0x6e, - 0x70, 0x0d, 0x13, 0x99, 0xee, 0x76, 0x9f, 0xbb, 0x24, 0x7e, 0x1e, 0x4c, 0x3c, 0x9f, 0x29, 0xb3, - 0xc9, 0x77, 0xbb, 0x0a, 0x48, 0xf5, 0x49, 0x81, 0x41, 0x68, 0x02, 0xd7, 0x47, 0x82, 0x28, 0xa3, - 0xb4, 0x3b, 0x31, 0xeb, 0xbc, 0x40, 0x66, 0x08, 0xb5, 0x44, 0x1f, 0xfb, 0x63, 0x1c, 0x99, 0x5b, - 0xac, 0x4d, 0x48, 0xe9, 0xb8, 0xe7, 0xde, 0xcc, 0x8b, 0xcd, 0x86, 0x34, 0x8e, 0x21, 0xd4, 0x2f, - 0x07, 0xa4, 0x3b, 0x0d, 0x46, 0x57, 0x66, 0x73, 0xcf, 0xd8, 0xdf, 0x70, 0x12, 0x91, 0x97, 0xe4, - 0x89, 0x47, 0x62, 0x1c, 0x0d, 0x42, 0xb3, 0xc5, 0x6d, 0x98, 0x21, 0xf6, 0x28, 0xdd, 0x30, 0x73, - 0x87, 0x28, 0x79, 0xc6, 0x62, 0xa7, 0x70, 0x51, 0x6d, 0x80, 0xf7, 0x65, 0x5e, 0xca, 0x70, 0xfb, - 0x8f, 0x06, 0x6c, 0x8b, 0xaf, 0x90, 0xee, 0xf5, 0x4b, 0x77, 0x86, 0xc5, 0xe9, 0x90, 0x22, 0x54, - 0x4c, 0x4e, 0x87, 0x89, 0x8c, 0x8e, 0x00, 0x4e, 0xdd, 0x89, 0xe7, 0xcb, 0x55, 0xec, 0xa3, 0x82, - 0xdd, 0xb2, 0x83, 0xbf, 0x9c, 0x63, 0x12, 0x67, 0x7d, 0x1d, 0x69, 0xdc, 0x0a, 0x95, 0xe6, 0x4f, - 0xbc, 0xf8, 0x2b, 0x9a, 0x91, 0x10, 0xed, 0x41, 0x8d, 0x2a, 0x9e, 0x24, 0x38, 0x99, 0x11, 0x6f, - 0x40, 0xc7, 0x05, 0x0a, 0x7e, 0xbb, 0x50, 0x41, 0x12, 0x06, 0x3e, 0xc1, 0x0b, 0x34, 0x4c, 0x6c, - 0x30, 0x9f, 0x11, 0x91, 0xe5, 0x52, 0xd9, 0xfe, 0xaf, 0x01, 0x5b, 0x87, 0xd3, 0x98, 0x67, 0xc6, - 0x5b, 0x85, 0x6a, 0x3e, 0x52, 0x2a, 0x7a, 0xa4, 0xc8, 0xf1, 0x59, 0xcd, 0xc5, 0x67, 0x1a, 0x45, - 0x35, 0x39, 0x8a, 0x32, 0x5f, 0xe5, 0xc1, 0x95, 0xf8, 0x6a, 0x71, 0x74, 0xed, 0x40, 0x8d, 0x27, - 0x07, 0x1e, 0x5a, 0xb5, 0x34, 0x2b, 0x88, 0x93, 0xcc, 0x58, 0x84, 0x54, 0x2a, 0xdb, 0x87, 0xd0, - 0x90, 0xd8, 0x97, 0xf1, 0x4b, 0xfb, 0x0f, 0x06, 0xd4, 0x93, 0xd5, 0x4d, 0x0a, 0xb6, 0x64, 0x28, - 0x43, 0x37, 0xd4, 0xdd, 0xf8, 0x9d, 0xec, 0xd9, 0x15, 0xd5, 0xb3, 0xed, 0xbf, 0x19, 0xb0, 0x95, - 0xe9, 0x74, 0xcb, 0x70, 0xab, 0x14, 0x85, 0x5b, 0xce, 0x37, 0x2b, 0x77, 0xe1, 0x9b, 0xd5, 0x9c, - 0x6f, 0xfe, 0xdb, 0x00, 0x38, 0x1c, 0x8f, 0x13, 0xcf, 0x5c, 0x6e, 0xd8, 0x9c, 0x07, 0xae, 0xe9, - 0x1e, 0xb8, 0xa8, 0x0a, 0x20, 0xa8, 0x4a, 0x5e, 0x59, 0x7d, 0x87, 0x1e, 0xf9, 0x39, 0xd4, 0x53, - 0xce, 0xa5, 0xfc, 0xf1, 0x77, 0x06, 0x6c, 0xb1, 0xb4, 0xbc, 0x2c, 0xa2, 0x3f, 0x86, 0xe6, 0xb1, - 0x3f, 0x3e, 0xf2, 0x88, 0x7b, 0x3e, 0xe5, 0xd5, 0x4f, 0x1c, 0xb8, 0x54, 0x74, 0x79, 0x82, 0x53, - 0xf8, 0x54, 0xf5, 0x08, 0x93, 0xb4, 0x29, 0xc5, 0xe8, 0x02, 0x9a, 0xaf, 0xfc, 0x95, 0x28, 0x2d, - 0x4f, 0x52, 0xb2, 0xaa, 0x95, 0x9c, 0xaa, 0x3d, 0x68, 0x29, 0xdf, 0x29, 0xa5, 0xec, 0x9f, 0x0d, - 0x76, 0xa3, 0x98, 0x4e, 0xc3, 0x72, 0x82, 0x1a, 0xf1, 0xc6, 0xdd, 0x54, 0x9a, 0x02, 0x76, 0xb6, - 0xb4, 0xf4, 0x2f, 0xe7, 0x33, 0x91, 0xed, 0x15, 0xcc, 0xfe, 0x0a, 0x36, 0x53, 0x99, 0x46, 0x39, - 0xfd, 0x2f, 0x54, 0x52, 0xa2, 0x9c, 0xb5, 0x3f, 0x82, 0x76, 0x17, 0x4f, 0x3c, 0x5f, 0xf7, 0x12, - 0x0d, 0x2f, 0xf0, 0xa7, 0x4a, 0x91, 0x3f, 0xd9, 0xff, 0xe4, 0x85, 0x5a, 0xb6, 0x50, 0xa9, 0x0c, - 0x75, 0x00, 0x90, 0xcd, 0x21, 0xf2, 0x54, 0x8b, 0x8f, 0xc8, 0x16, 0x51, 0xea, 0xf2, 0xff, 0x48, - 0x59, 0xa7, 0xec, 0x64, 0x9b, 0x7e, 0x33, 0xd9, 0xff, 0xee, 0xc2, 0x3a, 0x15, 0xcf, 0xbc, 0xb7, - 0xdf, 0x00, 0x1f, 0xb3, 0x53, 0x6a, 0x6e, 0x46, 0x12, 0xa2, 0xef, 0x4a, 0xcb, 0x28, 0x6a, 0x88, - 0x46, 0x3e, 0xeb, 0x61, 0x5f, 0x40, 0x23, 0xbb, 0xa9, 0xbf, 0x9d, 0x4a, 0x37, 0xc6, 0x50, 0x57, - 0x7e, 0x8d, 0x28, 0xb7, 0xb0, 0x8f, 0xff, 0x53, 0xe7, 0xb5, 0x07, 0x7d, 0x9a, 0x56, 0x56, 0x76, - 0x45, 0xb9, 0xc3, 0x47, 0xa9, 0x97, 0xbd, 0xd6, 0x7b, 0x05, 0x28, 0x09, 0x51, 0x0f, 0x9a, 0xea, - 0x8d, 0x24, 0xda, 0x15, 0xde, 0x9d, 0xbf, 0x33, 0xb5, 0xcc, 0xe2, 0x06, 0x12, 0xa2, 0x9f, 0xc3, - 0xee, 0x82, 0x9b, 0x40, 0xb4, 0xc7, 0x07, 0x2d, 0xbe, 0xac, 0xb4, 0x3e, 0x5c, 0xd2, 0x83, 0x84, - 0x94, 0xa0, 0xf4, 0x7e, 0x92, 0x10, 0x54, 0x9f, 0x73, 0x12, 0x82, 0xf9, 0x87, 0x96, 0x1f, 0xb1, - 0x12, 0x9f, 0xbe, 0x5c, 0xa0, 0xcc, 0x0e, 0xf2, 0xf3, 0x88, 0xf5, 0xa0, 0x08, 0xe6, 0xc3, 0xe5, - 0x8b, 0xfb, 0x64, 0x78, 0xee, 0x99, 0x22, 0x19, 0xae, 0xbd, 0x20, 0x3c, 0x63, 0x5b, 0x7a, 0xe5, - 0x3a, 0xd2, 0x4c, 0xbf, 0x94, 0xbb, 0xe6, 0xb2, 0xde, 0x5f, 0xd0, 0x42, 0x42, 0xe4, 0xb0, 0x80, - 0xc9, 0xdf, 0x4c, 0xa0, 0x6f, 0xc8, 0x5a, 0xe7, 0xaf, 0x08, 0xac, 0x6f, 0xde, 0xd0, 0x4a, 0x42, - 0x34, 0x60, 0x19, 0x58, 0x9d, 0xb0, 0x58, 0x05, 0x36, 0x9b, 0xb5, 0xa8, 0x89, 0x84, 0xe8, 0x27, - 0xf0, 0x5e, 0xe1, 0xd1, 0x1e, 0x3d, 0x14, 0xb1, 0xb6, 0xe0, 0x16, 0xc3, 0xfa, 0xd6, 0x8d, 0xed, - 0xdc, 0x80, 0xc3, 0x62, 0x03, 0x0e, 0x17, 0x1a, 0xb0, 0xe8, 0x7e, 0xf6, 0x29, 0x34, 0x94, 0x0b, - 0x4a, 0xf4, 0x20, 0xed, 0xab, 0xdc, 0xc0, 0x5a, 0xbb, 0x85, 0x38, 0x77, 0x42, 0xe9, 0x74, 0x96, - 0x8b, 0x32, 0x91, 0xc1, 0x72, 0x51, 0x96, 0x66, 0xa1, 0x5e, 0x7a, 0xd4, 0x17, 0x27, 0x9b, 0x24, - 0xca, 0xb4, 0x93, 0x98, 0x65, 0x16, 0x37, 0x90, 0x10, 0x3d, 0x61, 0x6f, 0x4b, 0xe2, 0xce, 0x01, - 0xdd, 0xe7, 0xfd, 0x94, 0x0b, 0x0d, 0x6b, 0x47, 0x07, 0x49, 0x88, 0x7e, 0x00, 0x9b, 0xe9, 0xee, - 0x1d, 0x21, 0xe1, 0xa9, 0xd2, 0x61, 0xc6, 0xba, 0xaf, 0x61, 0x24, 0x44, 0x9f, 0xc0, 0x46, 0xa2, - 0x04, 0xda, 0x56, 0x95, 0xa2, 0x63, 0x50, 0x1e, 0x22, 0x21, 0xea, 0xc0, 0xba, 0xd8, 0x94, 0x21, - 0x91, 0xba, 0xb2, 0x7d, 0xa9, 0xb5, 0x9d, 0x43, 0xb8, 0x62, 0x59, 0x8d, 0x45, 0xf9, 0xb4, 0x9c, - 0x29, 0xa6, 0x6e, 0x36, 0x3e, 0x85, 0xba, 0xb4, 0xff, 0x48, 0x16, 0x42, 0xdd, 0xfa, 0x24, 0x0b, - 0x91, 0xdf, 0xa8, 0x3c, 0x85, 0x86, 0x52, 0x53, 0x51, 0x16, 0xf7, 0xca, 0x56, 0xc4, 0xda, 0x2d, - 0xc4, 0xd3, 0xa8, 0x51, 0x0a, 0x8d, 0x14, 0x35, 0xf9, 0x92, 0x26, 0x45, 0x8d, 0x5e, 0x9b, 0x9e, - 0x00, 0x64, 0xd9, 0x2a, 0x59, 0x50, 0xa5, 0xfc, 0x58, 0x3b, 0x3a, 0x48, 0xc2, 0x6e, 0xe3, 0xa7, - 0xf5, 0x0e, 0x7b, 0x77, 0xff, 0x21, 0xfd, 0x73, 0x7e, 0x8f, 0xbd, 0x90, 0x7f, 0xff, 0x7f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xb3, 0xba, 0x11, 0x76, 0x90, 0x1f, 0x00, 0x00, +var fileDescriptor_user_d39769f8de9fc07e = []byte{ + // 1397 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xd7, 0xc4, 0x49, 0x13, 0x3f, 0xc7, 0xb1, 0x3d, 0x6d, 0x13, 0x77, 0xdb, 0x6f, 0xbf, 0xe9, + 0xaa, 0x94, 0x50, 0x21, 0x9b, 0x06, 0x24, 0x24, 0x10, 0x6d, 0x13, 0xa7, 0xb5, 0x22, 0x91, 0xb8, + 0x5a, 0x27, 0x12, 0x42, 0x88, 0x68, 0x63, 0x4f, 0xdc, 0x55, 0xec, 0xdd, 0xc9, 0xce, 0x3a, 0x51, + 0x4f, 0x20, 0x40, 0x42, 0xaa, 0xe0, 0xce, 0x99, 0x1b, 0xff, 0x05, 0x37, 0x24, 0xc4, 0x81, 0x2b, + 0x27, 0xfe, 0x15, 0xb4, 0xb3, 0xbf, 0x66, 0x76, 0xd6, 0xb1, 0xb3, 0x54, 0xe2, 0x62, 0x79, 0xde, + 0xcc, 0xbc, 0x79, 0x9f, 0xcf, 0xbe, 0x79, 0x3f, 0x06, 0x2a, 0x63, 0x46, 0xdc, 0xa6, 0xff, 0xd3, + 0xa0, 0xae, 0xe3, 0x39, 0x78, 0xde, 0xff, 0xaf, 0xdd, 0xeb, 0x50, 0x62, 0x1f, 0xed, 0xee, 0x35, + 0xe9, 0xe9, 0xa0, 0xc9, 0x27, 0x9a, 0xac, 0x7f, 0x7a, 0x74, 0xc1, 0x9a, 0x17, 0x2c, 0x58, 0xa8, + 0x3d, 0x52, 0x97, 0xf4, 0x1c, 0xfb, 0x9c, 0xb8, 0xcc, 0xf4, 0x2c, 0xc7, 0x96, 0x06, 0xc1, 0x16, + 0xfd, 0x31, 0x40, 0xcb, 0x19, 0x8d, 0x1c, 0xdb, 0x20, 0x8c, 0xe2, 0x3a, 0x2c, 0x12, 0xd7, 0x6d, + 0x39, 0x7d, 0x52, 0x47, 0xeb, 0x68, 0x63, 0xc1, 0x88, 0x86, 0x78, 0x15, 0xae, 0x11, 0xd7, 0xdd, + 0x63, 0x83, 0xfa, 0xdc, 0x3a, 0xda, 0x28, 0x1a, 0xe1, 0x48, 0xef, 0x40, 0xa5, 0x4d, 0xbc, 0xad, + 0xe1, 0xf0, 0x90, 0x11, 0x77, 0x77, 0xc7, 0x20, 0x67, 0x58, 0x83, 0x25, 0x87, 0x06, 0x43, 0xae, + 0xa5, 0x68, 0xc4, 0x63, 0xbc, 0x0e, 0x25, 0x87, 0x12, 0x97, 0x5b, 0xb0, 0xbb, 0x13, 0xea, 0x12, + 0x45, 0x7a, 0x1f, 0xaa, 0xb2, 0x42, 0x46, 0xf1, 0x7b, 0xa2, 0x91, 0x5c, 0x67, 0x69, 0xb3, 0xda, + 0xe0, 0x0c, 0x25, 0x72, 0x43, 0x04, 0x72, 0x17, 0x20, 0xd8, 0xff, 0xa9, 0xc5, 0xbc, 0xfa, 0xdc, + 0x7a, 0x61, 0xa3, 0x68, 0x08, 0x12, 0xfd, 0x15, 0x54, 0xb6, 0x7a, 0x3d, 0x67, 0x6c, 0x7b, 0xad, + 0x97, 0xa4, 0x77, 0xea, 0x9b, 0xbd, 0x01, 0x15, 0xfe, 0x5f, 0xd8, 0x87, 0xf8, 0xbe, 0xb4, 0xd8, + 0x07, 0xd8, 0x89, 0x00, 0x06, 0x08, 0xe2, 0xb1, 0x0f, 0xb0, 0x23, 0x00, 0x2c, 0x04, 0x00, 0x05, + 0x91, 0xfe, 0x37, 0x82, 0xaa, 0x7c, 0x76, 0x80, 0xb0, 0x37, 0x03, 0xc2, 0x64, 0x0d, 0x6e, 0x03, + 0x18, 0x84, 0x8d, 0x87, 0x5e, 0x8c, 0xb0, 0xb4, 0xf9, 0x76, 0xb0, 0x23, 0xad, 0xbd, 0xd1, 0xb5, + 0xec, 0xc1, 0x90, 0xf8, 0x16, 0x76, 0x3d, 0xd3, 0x1b, 0x33, 0x43, 0xd8, 0xaa, 0xbd, 0x80, 0x6a, + 0x7a, 0xde, 0xff, 0xda, 0x63, 0xf1, 0x03, 0x86, 0x23, 0x7c, 0x1f, 0xca, 0x66, 0xa0, 0x3c, 0x58, + 0x18, 0xc2, 0x97, 0x85, 0xba, 0x0d, 0x2b, 0x6d, 0xe2, 0x71, 0x42, 0xec, 0x13, 0xc7, 0xe7, 0xf6, + 0x2e, 0xc0, 0x38, 0x4d, 0xab, 0x20, 0xf9, 0x97, 0x8c, 0x7e, 0x87, 0xb8, 0x13, 0x26, 0x07, 0xe6, + 0x22, 0xf4, 0x09, 0x2c, 0x47, 0x1a, 0xb8, 0x95, 0x05, 0x4e, 0xe9, 0xed, 0x06, 0x23, 0xee, 0x39, + 0x71, 0x8f, 0x4c, 0x6a, 0x1d, 0x51, 0xd3, 0x35, 0x47, 0xac, 0x11, 0x1f, 0x24, 0x6d, 0xd0, 0x5f, + 0x23, 0xa8, 0x1d, 0xd2, 0xbe, 0xe9, 0x11, 0x11, 0xfa, 0x87, 0xb0, 0x14, 0x0d, 0x43, 0x33, 0x2e, + 0x55, 0x19, 0x2f, 0x9e, 0xc6, 0x89, 0xa3, 0x72, 0x22, 0x5e, 0xa3, 0xe7, 0x80, 0xd3, 0xb6, 0xe4, + 0x61, 0x45, 0xff, 0x06, 0x81, 0xd6, 0x25, 0x5e, 0x7b, 0xe8, 0x1c, 0x9b, 0x43, 0x83, 0xf4, 0xce, + 0xf7, 0x08, 0x63, 0xe6, 0x80, 0x74, 0xa8, 0xe7, 0xa3, 0x9b, 0xe4, 0x28, 0x53, 0xef, 0x39, 0x7e, + 0x08, 0xd5, 0x41, 0xa2, 0x94, 0x0d, 0x3a, 0xd4, 0xe3, 0x38, 0x16, 0x0c, 0x45, 0xae, 0x77, 0xe0, + 0xf6, 0x44, 0x1b, 0x72, 0xa1, 0xfa, 0x19, 0x01, 0xee, 0x12, 0xaf, 0x25, 0xc4, 0x43, 0x1f, 0xcd, + 0x63, 0x58, 0x16, 0x45, 0xa1, 0x2a, 0xad, 0x21, 0xc5, 0x4d, 0x69, 0x93, 0xb4, 0xde, 0xc7, 0x64, + 0x3b, 0x9e, 0x75, 0x62, 0xf5, 0xf8, 0xf8, 0xe0, 0x15, 0x25, 0x1c, 0xfa, 0x82, 0xa1, 0xc8, 0x67, + 0x70, 0xeb, 0x36, 0x5c, 0x57, 0x6c, 0xcc, 0x85, 0xf6, 0x77, 0x04, 0xd5, 0x2e, 0xf1, 0x12, 0x42, + 0x7d, 0xac, 0xfe, 0xf9, 0x17, 0x36, 0x71, 0xa5, 0x40, 0x2d, 0x8a, 0xf0, 0x03, 0x58, 0x11, 0x0f, + 0x8f, 0x3f, 0x63, 0x4a, 0xea, 0x5f, 0x6e, 0xe5, 0x1b, 0x0a, 0x92, 0x4c, 0x56, 0xe6, 0x67, 0x63, + 0x65, 0x41, 0x65, 0xe5, 0x19, 0xd4, 0x52, 0x58, 0x72, 0x71, 0xf2, 0x35, 0x02, 0xdc, 0x56, 0x3d, + 0x40, 0xc5, 0x8c, 0x32, 0x31, 0xa7, 0xd8, 0x9b, 0x53, 0xd9, 0x9b, 0xfe, 0x7d, 0xbf, 0x47, 0x70, + 0xbd, 0xfd, 0x26, 0x3e, 0xb0, 0xe2, 0xb7, 0x73, 0x57, 0xf3, 0x5b, 0xfd, 0x5b, 0xd5, 0x12, 0x36, + 0x9b, 0x8f, 0xf8, 0x49, 0x53, 0x62, 0x86, 0x85, 0xc9, 0x36, 0x2d, 0x9e, 0x81, 0x8f, 0xd7, 0x08, + 0x6e, 0xa8, 0x56, 0xe4, 0x22, 0xe4, 0x29, 0x94, 0x25, 0x35, 0x61, 0x7e, 0xbc, 0x8c, 0x11, 0x79, + 0x83, 0xfe, 0x05, 0xac, 0x06, 0x65, 0x48, 0x0e, 0x52, 0x52, 0x50, 0xe7, 0x54, 0xa8, 0x3f, 0x22, + 0x58, 0xcb, 0x54, 0xff, 0x1f, 0xa1, 0xfd, 0x03, 0x41, 0x7d, 0xdb, 0xf4, 0x7a, 0x2f, 0xbb, 0x19, + 0x5e, 0xa0, 0xa8, 0x47, 0x57, 0x54, 0x3f, 0xc3, 0x6d, 0xc9, 0x8a, 0x11, 0x85, 0xd9, 0x62, 0xc4, + 0xbc, 0x4a, 0xef, 0x57, 0x70, 0x6b, 0x02, 0x9a, 0x5c, 0xfc, 0xd6, 0x61, 0xb1, 0x3b, 0xee, 0xf5, + 0x08, 0x8b, 0x9c, 0x3b, 0x1a, 0xfa, 0xe9, 0xef, 0xb9, 0x69, 0x0d, 0x49, 0x9f, 0x57, 0x0b, 0x45, + 0x23, 0x1c, 0xe9, 0xbf, 0x20, 0x28, 0x85, 0x15, 0x49, 0xe4, 0x33, 0x62, 0x3a, 0x44, 0x6a, 0x3a, + 0xdc, 0x01, 0xa0, 0xe6, 0xc0, 0xb2, 0xc5, 0x0b, 0x7c, 0x3f, 0xa3, 0x50, 0x30, 0xc8, 0xd9, 0x98, + 0x30, 0xef, 0x45, 0xbc, 0xd6, 0x10, 0xf6, 0xf9, 0x35, 0x83, 0x0f, 0x64, 0xdf, 0x1c, 0x91, 0xf0, + 0x86, 0xc5, 0x63, 0x21, 0x55, 0xcf, 0x8b, 0xa9, 0x5a, 0x3f, 0x80, 0xc5, 0xd6, 0x88, 0xf9, 0xa6, + 0xe2, 0x26, 0xf0, 0x56, 0x63, 0x96, 0x3a, 0x85, 0x2f, 0xf4, 0x99, 0xb1, 0xd8, 0xf6, 0xd0, 0xe9, + 0x9d, 0x72, 0x93, 0x97, 0x8c, 0x68, 0xa8, 0xff, 0x89, 0x60, 0x39, 0x61, 0x20, 0x17, 0xed, 0xef, + 0x04, 0x60, 0x84, 0xfa, 0xb6, 0x1c, 0xae, 0x0f, 0xcc, 0x35, 0xe2, 0x69, 0xfc, 0x0c, 0x20, 0x61, + 0x84, 0x23, 0x2f, 0x6d, 0xbe, 0x95, 0xc9, 0x1e, 0xa3, 0x8e, 0xcd, 0x88, 0x48, 0x5f, 0xf2, 0x1f, + 0xdf, 0x81, 0xa2, 0xe7, 0x78, 0xe6, 0x70, 0x7f, 0x3c, 0x62, 0x61, 0x8a, 0x4a, 0x04, 0xfa, 0x00, + 0x60, 0xab, 0xdf, 0xe7, 0x27, 0x07, 0x75, 0xdd, 0xf8, 0x2a, 0x75, 0x5d, 0xb4, 0x78, 0x86, 0x16, + 0xe8, 0x09, 0x94, 0xe2, 0x83, 0xf2, 0x74, 0x3f, 0xfa, 0x0f, 0x08, 0x96, 0xf9, 0x67, 0x88, 0x8c, + 0x9d, 0x54, 0xa6, 0x3d, 0x80, 0x15, 0x62, 0xf7, 0x77, 0x2c, 0x66, 0x1e, 0x0f, 0xc9, 0x81, 0x35, + 0x22, 0x51, 0x8a, 0x97, 0xa5, 0xd3, 0xeb, 0x4d, 0xa9, 0xe9, 0x9b, 0x97, 0x9b, 0x3e, 0x7d, 0x0b, + 0xca, 0x82, 0x35, 0xb9, 0x10, 0x9d, 0xc0, 0xca, 0xa1, 0x3d, 0x13, 0xa4, 0xe9, 0x95, 0xa7, 0x68, + 0x6a, 0x21, 0x65, 0x6a, 0x0b, 0x2a, 0xd2, 0x39, 0xb9, 0x8c, 0xfd, 0x15, 0xf1, 0x1e, 0x36, 0x56, + 0xc3, 0x43, 0x80, 0x7c, 0xc1, 0x51, 0xce, 0x0b, 0x3e, 0x1d, 0x5d, 0xc2, 0x4b, 0x41, 0xe2, 0xe5, + 0x5d, 0xa8, 0x71, 0x57, 0x8e, 0xad, 0xda, 0x1f, 0x8f, 0x42, 0x1f, 0x57, 0x27, 0xf4, 0x9f, 0x10, + 0x14, 0x63, 0x41, 0xfe, 0x1e, 0xe6, 0x21, 0x54, 0xb7, 0xc9, 0xc0, 0xb2, 0x55, 0x0f, 0x53, 0xe4, + 0xbe, 0x2f, 0x3e, 0x93, 0x7d, 0x31, 0x00, 0x90, 0x92, 0xea, 0x7f, 0x21, 0xa8, 0xa5, 0xd8, 0xcd, + 0xf5, 0x44, 0xd0, 0x04, 0x48, 0x74, 0x84, 0x01, 0xa6, 0x12, 0xec, 0x48, 0x1c, 0x40, 0x58, 0xf2, + 0xa6, 0x82, 0x8c, 0x16, 0x90, 0x29, 0xc4, 0x98, 0x78, 0xbc, 0xf9, 0xdb, 0x52, 0x10, 0x81, 0xf1, + 0x47, 0x71, 0xfe, 0xe0, 0x3c, 0xde, 0x08, 0xec, 0x92, 0xbb, 0x6a, 0xed, 0x66, 0x86, 0x94, 0x51, + 0xdc, 0x82, 0x15, 0xb9, 0xf5, 0xc3, 0x6b, 0xc1, 0x42, 0xa5, 0x39, 0xd5, 0xea, 0xd9, 0x13, 0x8c, + 0xe2, 0x2f, 0x61, 0x6d, 0x42, 0xcb, 0x85, 0xd7, 0x83, 0x4d, 0x93, 0xbb, 0x42, 0xed, 0xde, 0x94, + 0x15, 0x8c, 0xe2, 0x4f, 0x78, 0x7a, 0x88, 0x9f, 0x79, 0x70, 0x82, 0x45, 0x7c, 0x4b, 0xd2, 0x56, + 0xb3, 0xc4, 0xc1, 0x76, 0xf1, 0x95, 0x23, 0xda, 0x9e, 0x7a, 0xd3, 0x89, 0xb6, 0x2b, 0xcf, 0x2d, + 0xcf, 0xf9, 0x83, 0x81, 0xd4, 0xbb, 0xd5, 0xe3, 0x93, 0x52, 0x3d, 0x81, 0x76, 0x6b, 0xc2, 0x0c, + 0xa3, 0xd8, 0xe0, 0x75, 0x73, 0xba, 0x8c, 0xc3, 0x77, 0x44, 0xab, 0xd3, 0xf5, 0x94, 0xf6, 0xbf, + 0x4b, 0x66, 0x19, 0xc5, 0xbb, 0x3c, 0x78, 0xc8, 0x0a, 0xb3, 0x4d, 0xe0, 0xda, 0xb4, 0x49, 0x53, + 0x8c, 0xe2, 0xcf, 0xe0, 0x66, 0x66, 0x1d, 0x84, 0xef, 0x86, 0x7e, 0x3e, 0xa1, 0xe4, 0xd3, 0xfe, + 0x7f, 0xe9, 0x7c, 0x40, 0x60, 0x37, 0x9b, 0xc0, 0xee, 0x44, 0x02, 0xb3, 0x9a, 0xd9, 0xa7, 0x50, + 0x96, 0xba, 0x39, 0xbc, 0x1a, 0xaf, 0x95, 0xda, 0x55, 0x6d, 0x2d, 0x53, 0xce, 0x28, 0x7e, 0x04, + 0x4b, 0x51, 0x9d, 0x81, 0x6b, 0xd2, 0x85, 0xe0, 0x48, 0x70, 0x5a, 0xc4, 0x28, 0x6e, 0xc0, 0x62, + 0x98, 0x5f, 0x71, 0x18, 0x22, 0x92, 0xbc, 0xae, 0xd5, 0x52, 0x12, 0x46, 0xf1, 0x07, 0x62, 0x2c, + 0xc4, 0xe9, 0x10, 0x41, 0xce, 0xb4, 0xeb, 0x8a, 0x8c, 0x51, 0xff, 0x0a, 0x0b, 0xa9, 0x24, 0xba, + 0xc2, 0x72, 0x16, 0x8b, 0xae, 0x70, 0x3a, 0xe7, 0x3c, 0x85, 0xb2, 0x14, 0xe2, 0x70, 0x72, 0x0f, + 0xa4, 0xac, 0x12, 0xd1, 0xa2, 0xc4, 0xc3, 0xed, 0xf2, 0xe7, 0xa5, 0x06, 0x7f, 0x43, 0xfe, 0xd8, + 0xff, 0x39, 0xbe, 0xc6, 0x5f, 0x7b, 0xdf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x87, 0x2d, 0x47, + 0x32, 0x5c, 0x16, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index a404a0c9e..f020917cf 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -9,16 +9,6 @@ message CommonResp{ string errMsg = 2; } -message DeleteUsersReq{ - repeated string DeleteUserIDList = 2; - string OpUserID = 3; - string OperationID = 4; -} - -message DeleteUsersResp{ - CommonResp CommonResp = 1; - repeated string FailedUserIDList = 2; -} message GetAllUserIDReq{ @@ -143,94 +133,29 @@ message BatchSetConversationsResp{ repeated string Failed = 3; } -message ResignUserReq{ - string UserId = 1; - string OperationID = 2; -} - -message ResignUserResp{ - CommonResp commonResp = 1; -} - -message GetUserByIdReq{ - string UserId = 1; - string OperationID = 2; -} - -message User{ - string ProfilePhoto = 1; - string Nickname = 2; - string UserId = 3; - string CreateTime = 4; - string PhoneNumber = 5; - string Email = 6; - string Birth = 7; - string CreateIp = 8; - string LastLoginTime = 9; - string LastLoginIp = 10; - int32 LoginTimes = 11; - int32 Gender = 12; - int32 LoginLimit = 13; - bool IsBlock = 14; - string RegisterIp = 15; -} - -message GetUserByIdResp{ - CommonResp CommonResp = 1; - User user = 2; -} - -message GetUsersByNameReq { - string UserName = 1; - server_api_params.RequestPagination Pagination = 2; - string OperationID = 3; -} - -message GetUsersByNameResp { - repeated User users = 1; - server_api_params.ResponsePagination Pagination = 2; - int32 UserNums = 3; -} - -message AlterUserReq{ - string UserId = 1; - string OperationID = 2; - string PhoneNumber = 3; - string Nickname = 4; - string Email = 5; - string Gender = 6; - string Birth =7; - string Photo = 8; - string OpUserId = 9; -} - -message AlterUserResp{ - CommonResp CommonResp = 1; -} message GetUsersReq { - string OperationID = 1; - server_api_params.RequestPagination Pagination = 2; - string UserName = 3; + string operationID = 1; + server_api_params.RequestPagination pagination = 2; + string userName = 3; + string userID = 4; +} + +message CmsUser { + server_api_params.UserInfo user = 1; + bool isBlock = 2; } message GetUsersResp{ - CommonResp CommonResp = 1; - repeated User user = 2; + CommonResp commonResp = 1; + repeated CmsUser userList = 2; server_api_params.ResponsePagination Pagination = 3; - int32 UserNums = 4; + int32 totalNums = 4; } message AddUserReq{ - string OperationID = 1; - string PhoneNumber = 2; - string UserId = 3; - string name = 4; - string Email = 5; - string Gender = 6; - string Birth =7; - string Photo = 8; - string OpUserId = 9; + server_api_params.UserInfo userInfo = 1; + string operationID = 2; } message AddUserResp{ @@ -239,10 +164,10 @@ message AddUserResp{ message BlockUserReq{ - string UserId = 1; - string EndDisableTime = 2; - string OperationID = 3; - string OpUserId = 4; + string userID = 1; + string endDisableTime = 2; + string operationID = 3; + string opUserID = 4; } message BlockUserResp{ @@ -250,9 +175,9 @@ message BlockUserResp{ } message UnBlockUserReq{ - string UserId = 1; - string OperationID = 2; - string OpUserId = 3; + string userID = 1; + string operationID = 2; + string opUserID = 3; } message UnBlockUserResp{ @@ -260,13 +185,14 @@ message UnBlockUserResp{ } message GetBlockUsersReq{ - server_api_params.RequestPagination Pagination = 1; - string OperationID = 2; - int32 BlockUserNum = 3; + server_api_params.RequestPagination pagination = 1; + string operationID = 2; + string userID = 3; + int32 totalBlockUserNum = 4; } message BlockUser { - User User = 1; + server_api_params.UserInfo UserInfo = 1; string BeginDisableTime = 2; string EndDisableTime = 3; } @@ -278,24 +204,6 @@ message GetBlockUsersResp{ int32 UserNums = 4; } -message GetBlockUserByIdReq { - string User_id = 1; - string OperationID = 2; -} - -message GetBlockUserByIdResp { - BlockUser BlockUser = 2; -} - -message DeleteUserReq { - string User_id = 1; - string OperationID = 2; - string OpUserId = 3; -} - -message DeleteUserResp { - CommonResp CommonResp = 1; -} @@ -303,7 +211,6 @@ service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); rpc SetGlobalRecvMessageOpt(SetGlobalRecvMessageOptReq) returns(SetGlobalRecvMessageOptResp); - rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); rpc GetAllUserID(GetAllUserIDReq)returns(GetAllUserIDResp); rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); @@ -314,15 +221,13 @@ service user { rpc SetConversation(SetConversationReq)returns(SetConversationResp); rpc SetRecvMsgOpt(SetRecvMsgOptReq)returns(SetRecvMsgOptResp); - rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp); - rpc GetUsersByName(GetUsersByNameReq) returns (GetUsersByNameResp); - rpc ResignUser(ResignUserReq) returns (ResignUserResp); - rpc AlterUser(AlterUserReq) returns (AlterUserResp); + rpc GetUsers(GetUsersReq) returns (GetUsersResp); + rpc AddUser(AddUserReq) returns (AddUserResp); + rpc BlockUser(BlockUserReq) returns (BlockUserResp); rpc UnBlockUser(UnBlockUserReq) returns (UnBlockUserResp); rpc GetBlockUsers(GetBlockUsersReq) returns (GetBlockUsersResp); - rpc GetBlockUserById(GetBlockUserByIdReq) returns (GetBlockUserByIdResp); - rpc DeleteUser(DeleteUserReq) returns (DeleteUserResp); } + diff --git a/script/check_all.sh b/script/check_all.sh index 2ec2b8270..76535c79f 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -16,8 +16,6 @@ service_port_name=( openImGroupPort openImAuthPort openImPushPort - openImStatisticsPort - openImMessageCmsPort openImAdminCmsPort openImOfficePort openImOrganizationPort diff --git a/script/path_info.cfg b/script/path_info.cfg index 6562f1d7f..48ba5f96f 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -46,8 +46,6 @@ service_source_root=( ../cmd/rpc/open_im_group/ ../cmd/rpc/open_im_auth/ ../cmd/rpc/open_im_admin_cms/ - ../cmd/rpc/open_im_message_cms/ - ../cmd/rpc/open_im_statistics/ ../cmd/rpc/open_im_office/ ../cmd/rpc/open_im_organization/ ../cmd/rpc/open_im_conversation/ @@ -71,8 +69,6 @@ service_names=( open_im_group open_im_auth open_im_admin_cms - open_im_message_cms - open_im_statistics open_im_office open_im_organization open_im_conversation diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 351bd2797..1f9a7b30b 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -15,8 +15,6 @@ service_filename=( open_im_group open_im_auth open_im_admin_cms - open_im_message_cms - open_im_statistics ${msg_name} open_im_office open_im_organization @@ -35,8 +33,6 @@ service_port_name=( openImGroupPort openImAuthPort openImAdminCmsPort - openImMessageCmsPort - openImStatisticsPort openImMessagePort openImOfficePort openImOrganizationPort From 39720d401f422422d0519669406f9f6aa6c64b5d Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Sat, 27 Aug 2022 12:24:06 +0800 Subject: [PATCH 07/56] fix bug: msg_gateway/gate/ws_server.go:138 --- internal/msg_gateway/gate/ws_server.go | 1 + pkg/grpc-etcdv3/getcdv3/resolver.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index a8565f4b8..f1ecc56e9 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -134,6 +134,7 @@ func (ws *WServer) MultiTerminalLoginRemoteChecker(userID string, platformID int resp, err := client.MultiTerminalLoginCheck(context.Background(), req) if err != nil { log.Error(operationID, "MultiTerminalLoginCheck failed ", err.Error()) + continue } if resp.ErrCode != 0 { log.Error(operationID, "MultiTerminalLoginCheck errCode, errMsg: ", resp.ErrCode, resp.ErrMsg) diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index d95909b6d..e77bb626b 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -282,7 +282,7 @@ func GetDefaultGatewayConn4Unique(schema, etcdaddr, operationID string) []*grpc. if len(grpcConns) > 0 { return grpcConns } - log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) < 0 ", schema, etcdaddr, config.Config.RpcRegisterName.OpenImRelayName) + log.NewWarn(operationID, utils.GetSelfFuncName(), " len(grpcConns) == 0 ", schema, etcdaddr, config.Config.RpcRegisterName.OpenImRelayName) grpcConns = GetDefaultGatewayConn4UniqueFromcfg(operationID) log.NewDebug(operationID, utils.GetSelfFuncName(), config.Config.RpcRegisterName.OpenImRelayName, grpcConns) return grpcConns From 96814109dc0c5beb606cf21d2d1f8d21af84b4f1 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Sat, 27 Aug 2022 15:20:49 +0800 Subject: [PATCH 08/56] fix bug: GetSelfUserInfo for no result --- internal/api/user/user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index b67e63e72..96f38bd72 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -367,7 +367,7 @@ func GetSelfUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } else { - resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}} log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } From 0f0e99b42eb33ce8f0c60587ad0953db9608607f Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 29 Aug 2022 09:34:52 +0800 Subject: [PATCH 09/56] merge code : Filter push data by time --- internal/push/logic/push_handler.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index ccc00b480..200120800 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -13,6 +13,7 @@ import ( "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/msg" pbPush "Open_IM/pkg/proto/push" + "Open_IM/pkg/utils" "github.com/Shopify/sarama" "github.com/golang/protobuf/proto" ) @@ -43,6 +44,11 @@ func (ms *PushConsumerHandler) handleMs2PsChat(msg []byte) { MsgData: msgFromMQ.MsgData, PushToUserID: msgFromMQ.PushToUserID, } + sec := msgFromMQ.MsgData.SendTime / 1000 + nowSec := utils.GetCurrentTimestampBySecond() + if nowSec-sec > 10 { + return + } switch msgFromMQ.MsgData.SessionType { case constant.SuperGroupChatType: MsgToSuperGroupUser(pbData) From 6ff8fc7f87cc63a41ca69e2b3d638b3ca8e89650 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 29 Aug 2022 09:48:55 +0800 Subject: [PATCH 10/56] merge code : Filter push data by time --- internal/push/logic/push_handler.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index 200120800..f137c09d6 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -65,6 +65,7 @@ func (ms *PushConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, for msg := range claim.Messages() { log.NewDebug("", "kafka get info to mysql", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "msg", string(msg.Value)) ms.msgHandle[msg.Topic](msg.Value) + sess.MarkMessage(msg, "") } return nil } From 7f5b12d4d27d66c81000221fad218fe76086d3a5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 15:52:39 +0800 Subject: [PATCH 11/56] cms --- cmd/open_im_api/main.go | 1 + internal/api/group/group.go | 4 + internal/api/manage/management_user.go | 43 --- internal/api/user/user.go | 5 - internal/cms_api/group/group.go | 215 --------------- internal/cms_api/organization/organization.go | 49 ---- internal/cms_api/router.go | 14 +- internal/cms_api/statistics/statistics.go | 107 ++++---- internal/cms_api/user/user.go | 1 - internal/rpc/admin_cms/admin_cms.go | 36 +-- pkg/cms_api_struct/admin.go | 14 +- pkg/cms_api_struct/message_cms.go | 4 +- pkg/cms_api_struct/organization.go | 25 -- pkg/cms_api_struct/statistics.go | 63 ++--- pkg/common/log/logrus.go | 15 +- pkg/proto/admin_cms/admin_cms.pb.go | 255 +++++++++--------- pkg/proto/admin_cms/admin_cms.proto | 17 +- 17 files changed, 273 insertions(+), 595 deletions(-) delete mode 100644 internal/cms_api/organization/organization.go delete mode 100644 pkg/cms_api_struct/organization.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 5154841c2..2e4b83d60 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -111,6 +111,7 @@ func main() { groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) groupRouterGroup.POST("/get_group_abstract_info", group.GetGroupAbstractInfo) + groupRouterGroup.POST("/get_groups", group.GetGroups) //groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index bdb4edc69..88a232ef9 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1318,3 +1318,7 @@ func GetGroupAbstractInfo(c *gin.Context) { c.JSON(http.StatusOK, resp) return } + +func GetGroups(c *gin.Context) { + +} \ No newline at end of file diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index bbbfb2f2c..eb2f221dd 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -23,49 +23,6 @@ import ( "github.com/gin-gonic/gin" ) -func DeleteUser(c *gin.Context) { - params := api.DeleteUsersReq{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &rpc.DeleteUsersReq{} - utils.CopyStructFields(req, ¶ms) - - var ok bool - var errInfo string - ok, req.OpUserID, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) - if !ok { - errMsg := req.OperationID + " " + "GetUserIDFromToken failed " + errInfo + " token:" + c.Request.Header.Get("token") - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - - log.NewInfo(params.OperationID, "DeleteUser args ", req.String()) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := rpc.NewUserClient(etcdConn) - - RpcResp, err := client.DeleteUsers(context.Background(), req) - if err != nil { - log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) - return - } - resp := api.DeleteUsersResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, FailedUserIDList: RpcResp.FailedUserIDList} - if len(RpcResp.FailedUserIDList) == 0 { - resp.FailedUserIDList = []string{} - } - log.NewInfo(req.OperationID, "DeleteUser api return", resp) - c.JSON(http.StatusOK, resp) -} - // @Summary 获取所有用户uid列表 // @Description 获取所有用户uid列表 // @Tags 用户相关 diff --git a/internal/api/user/user.go b/internal/api/user/user.go index f39419f28..410a9dd42 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -463,13 +463,11 @@ func GetUsers(c *gin.Context) { resp api.GetUsersResp reqPb rpc.GetUsersReq ) - if err := c.Bind(&req); err != nil { log.NewError(req.OperationID, "Bind failed ", err.Error(), req) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - var ok bool var errInfo string ok, _, errInfo = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID) @@ -479,9 +477,7 @@ func GetUsers(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": errMsg}) return } - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.OperationID = req.OperationID reqPb.UserID = req.UserID reqPb.UserName = req.UserName @@ -499,7 +495,6 @@ func GetUsers(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - utils.CopyStructFields(&resp.Data.UserList, respPb.UserList) resp.CommResp.ErrCode = respPb.CommonResp.ErrCode resp.CommResp.ErrMsg = respPb.CommonResp.ErrMsg diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index a3e58a645..3485fc3f4 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -141,47 +141,6 @@ func GetGroupByName(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } -func CreateGroup(c *gin.Context) { - var ( - req cms_api_struct.CreateGroupRequest - _ cms_api_struct.CreateGroupResponse - reqPb pbGroup.CreateGroupReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupInfo = &commonPb.GroupInfo{} - reqPb.GroupInfo.GroupName = req.GroupName - reqPb.GroupInfo.CreatorUserID = req.GroupMasterId - reqPb.OwnerUserID = req.GroupMasterId - reqPb.OpUserID = req.GroupMasterId - for _, v := range req.GroupMembers { - reqPb.InitMemberList = append(reqPb.InitMemberList, &pbGroup.GroupAddMemberInfo{ - UserID: v, - RoleLevel: 1, - }) - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.CreateGroup(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "CreateGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - func GetGroupMembers(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest @@ -228,177 +187,3 @@ func GetGroupMembers(c *gin.Context) { log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } - -func AddGroupMembers(c *gin.Context) { - var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse - reqPb pbGroup.AddGroupMembersCMSReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo("", utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIDList = req.Members - reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - resp.Success = respPb.Success - resp.Failed = respPb.Failed - log.NewInfo("", utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func RemoveGroupMembers(c *gin.Context) { - var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse - reqPb pbGroup.RemoveGroupMembersCMSReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.UserIDList = req.Members - reqPb.GroupID = req.GroupId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.RemoveGroupMembersCMS(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "RemoveGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - resp.Success = respPb.Success - resp.Failed = respPb.Failed - log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func SetGroupOwner(c *gin.Context) { - var ( - req cms_api_struct.SetGroupMasterRequest - _ cms_api_struct.SetGroupMasterResponse - reqPb pbGroup.OperateUserRoleReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupID = req.GroupId - reqPb.UserID = req.UserId - reqPb.RoleLevel = constant.GroupOwner - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateUserRole(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func SetGroupOrdinaryUsers(c *gin.Context) { - var ( - req cms_api_struct.SetGroupMemberRequest - _ cms_api_struct.AdminLoginResponse - reqPb pbGroup.OperateUserRoleReq - ) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupID = req.GroupId - reqPb.UserID = req.UserId - reqPb.RoleLevel = constant.GroupOrdinaryUsers - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.OperateUserRole(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} - -func AlterGroupInfo(c *gin.Context) { - var ( - req cms_api_struct.AlterGroupInfoRequest - _ cms_api_struct.SetGroupMasterResponse - reqPb pbGroup.SetGroupInfoReq - ) - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OpUserID = c.MustGet("userID").(string) - reqPb.GroupInfoForSet = &commonPb.GroupInfoForSet{ - GroupID: req.GroupID, - GroupName: req.GroupName, - Introduction: req.Introduction, - Notification: req.Notification, - FaceURL: req.ProfilePhoto, - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - _, err := client.SetGroupInfo(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - openIMHttp.RespHttp200(c, constant.OK, nil) -} diff --git a/internal/cms_api/organization/organization.go b/internal/cms_api/organization/organization.go deleted file mode 100644 index f775283ca..000000000 --- a/internal/cms_api/organization/organization.go +++ /dev/null @@ -1,49 +0,0 @@ -package organization - -import ( - "github.com/gin-gonic/gin" -) - -func GetStaffs(c *gin.Context) { - -} - -func GetOrganizations(c *gin.Context) { - -} - -func GetSquads(c *gin.Context) { - -} - -func AlterStaff(c *gin.Context) { - -} - -func AddOrganization(c *gin.Context) { - -} - -func InquireOrganization(g *gin.Context) { - -} - -func AlterOrganization(c *gin.Context) { - -} - -func DeleteOrganization(g *gin.Context) { - -} - -func GetOrganizationSquads(c *gin.Context) { - -} - -func AlterStaffsInfo(c *gin.Context) { - -} - -func AddChildOrganization(c *gin.Context) { - -} diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 9a8cdfc0c..2987bd026 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -40,13 +40,13 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) - groupRouterGroup.POST("/create_group", group.CreateGroup) - groupRouterGroup.POST("/add_members", group.AddGroupMembers) - groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) - groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) - groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) - groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) - groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) + // groupRouterGroup.POST("/create_group", group.CreateGroup) + // groupRouterGroup.POST("/add_members", group.AddGroupMembers) + // groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) + // groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) + // groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) + // groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) + // groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) } userRouterGroup := r2.Group("/user") { diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 4afdf5673..99386fd3b 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -3,11 +3,9 @@ package statistics import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/statistics" + admin "Open_IM/pkg/proto/admin_cms" "Open_IM/pkg/utils" "context" "net/http" @@ -20,12 +18,12 @@ func GetMessagesStatistics(c *gin.Context) { var ( req cms_api_struct.GetMessageStatisticsRequest resp cms_api_struct.GetMessageStatisticsResponse - reqPb pb.GetMessageStatisticsReq + reqPb admin.GetMessageStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -38,20 +36,20 @@ func GetMessagesStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetMessageStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, resp) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - // utils.CopyStructFields(&resp, respPb) + resp.GroupMessageNum = int(respPb.GroupMessageNum) resp.PrivateMessageNum = int(respPb.PrivateMessageNum) for _, v := range respPb.PrivateMessageNumList { resp.PrivateMessageNumList = append(resp.PrivateMessageNumList, struct { Date string "json:\"date\"" - MessageNum int "json:\"message_num\"" + MessageNum int "json:\"messageNum\"" }{ Date: v.Date, MessageNum: int(v.Num), @@ -60,26 +58,26 @@ func GetMessagesStatistics(c *gin.Context) { for _, v := range respPb.GroupMessageNumList { resp.GroupMessageNumList = append(resp.GroupMessageNumList, struct { Date string "json:\"date\"" - MessageNum int "json:\"message_num\"" + MessageNum int "json:\"messageNum\"" }{ Date: v.Date, MessageNum: int(v.Num), }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetUserStatistics(c *gin.Context) { var ( req cms_api_struct.GetUserStatisticsRequest resp cms_api_struct.GetUserStatisticsResponse - reqPb pb.GetUserStatisticsReq + reqPb admin.GetUserStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -92,21 +90,20 @@ func GetUserStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetUserStatistics(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error(), reqPb.String()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - // utils.CopyStructFields(&resp, respPb) resp.ActiveUserNum = int(respPb.ActiveUserNum) resp.IncreaseUserNum = int(respPb.IncreaseUserNum) resp.TotalUserNum = int(respPb.TotalUserNum) for _, v := range respPb.ActiveUserNumList { resp.ActiveUserNumList = append(resp.ActiveUserNumList, struct { Date string "json:\"date\"" - ActiveUserNum int "json:\"active_user_num\"" + ActiveUserNum int "json:\"activeUserNum\"" }{ Date: v.Date, ActiveUserNum: int(v.Num), @@ -115,7 +112,7 @@ func GetUserStatistics(c *gin.Context) { for _, v := range respPb.IncreaseUserNumList { resp.IncreaseUserNumList = append(resp.IncreaseUserNumList, struct { Date string "json:\"date\"" - IncreaseUserNum int "json:\"increase_user_num\"" + IncreaseUserNum int "json:\"increaseUserNum\"" }{ Date: v.Date, IncreaseUserNum: int(v.Num), @@ -124,26 +121,26 @@ func GetUserStatistics(c *gin.Context) { for _, v := range respPb.TotalUserNumList { resp.TotalUserNumList = append(resp.TotalUserNumList, struct { Date string "json:\"date\"" - TotalUserNum int "json:\"total_user_num\"" + TotalUserNum int "json:\"totalUserNum\"" }{ Date: v.Date, TotalUserNum: int(v.Num), }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetGroupStatistics(c *gin.Context) { var ( req cms_api_struct.GetGroupStatisticsRequest resp cms_api_struct.GetGroupStatisticsResponse - reqPb pb.GetGroupStatisticsReq + reqPb admin.GetGroupStatisticsReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -156,11 +153,11 @@ func GetGroupStatistics(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } // utils.CopyStructFields(&resp, respPb) @@ -170,7 +167,7 @@ func GetGroupStatistics(c *gin.Context) { resp.IncreaseGroupNumList = append(resp.IncreaseGroupNumList, struct { Date string "json:\"date\"" - IncreaseGroupNum int "json:\"increase_group_num\"" + IncreaseGroupNum int "json:\"increaseGroupNum\"" }{ Date: v.Date, IncreaseGroupNum: int(v.Num), @@ -180,7 +177,7 @@ func GetGroupStatistics(c *gin.Context) { resp.TotalGroupNumList = append(resp.TotalGroupNumList, struct { Date string "json:\"date\"" - TotalGroupNum int "json:\"total_group_num\"" + TotalGroupNum int "json:\"totalGroupNum\"" }{ Date: v.Date, TotalGroupNum: int(v.Num), @@ -188,19 +185,19 @@ func GetGroupStatistics(c *gin.Context) { } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetActiveUser(c *gin.Context) { var ( req cms_api_struct.GetActiveUserRequest resp cms_api_struct.GetActiveUserResponse - reqPb pb.GetActiveUserReq + reqPb admin.GetActiveUserReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { + log.NewError(req.OperationID, "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -213,28 +210,28 @@ func GetActiveUser(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetActiveUser(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveUser failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } utils.CopyStructFields(&resp.ActiveUserList, respPb.Users) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetActiveGroup(c *gin.Context) { var ( req cms_api_struct.GetActiveGroupRequest resp cms_api_struct.GetActiveGroupResponse - reqPb pb.GetActiveGroupReq + reqPb admin.GetActiveGroupReq ) - reqPb.StatisticsReq = &pb.StatisticsReq{} - if err := c.ShouldBindQuery(&req); err != nil { + reqPb.StatisticsReq = &admin.StatisticsReq{} + if err := c.Bind(&req); err != nil { log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -247,18 +244,18 @@ func GetActiveGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } - client := pb.NewUserClient(etcdConn) + client := admin.NewAdminCMSClient(etcdConn) respPb, err := client.GetActiveGroup(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveGroup failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } for _, group := range respPb.Groups { resp.ActiveGroupList = append(resp.ActiveGroupList, struct { - GroupName string "json:\"group_name\"" - GroupId string "json:\"group_id\"" - MessageNum int "json:\"message_num\"" + GroupName string "json:\"groupName\"" + GroupId string "json:\"groupID\"" + MessageNum int "json:\"messageNum\"" }{ GroupName: group.GroupName, GroupId: group.GroupId, @@ -266,5 +263,5 @@ func GetActiveGroup(c *gin.Context) { }) } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 73ed0edd5..97dbc66a9 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -54,7 +54,6 @@ func BlockUser(c *gin.Context) { reqPb pb.BlockUserReq ) if err := c.BindJSON(&req); err != nil { - fmt.Println(err) log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 34871c135..554259595 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -140,12 +140,12 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re } } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) - return resp, nil + return resp, nil } func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{UserInfoList: []*server_api_params.UserInfo{}} + resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{} userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) @@ -230,11 +230,11 @@ func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatL continue } pbChatLog.RecvID = group.GroupID - pbChatLog.gr = group.GroupName + pbChatLog.GroupName = group.GroupName } resp.ChatLogs = append(resp.ChatLogs, pbChatLog) } - resp.Pagination = &open_im_sdk.ResponsePagination{ + resp.Pagination = &server_api_params.ResponsePagination{ CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, } @@ -249,13 +249,13 @@ func (s *adminCMSServer) GetActiveGroup(_ context.Context, req *pbAdminCMS.GetAc fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } for _, activeGroup := range activeGroups { resp.Groups = append(resp.Groups, @@ -275,13 +275,13 @@ func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetAct fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } for _, activeUser := range activeUsers { resp.Users = append(resp.Users, @@ -388,17 +388,17 @@ func (s *adminCMSServer) GetGroupStatistics(_ context.Context, req *pbAdminCMS.G fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } totalGroupNum, err := imdb.GetTotalGroupNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } resp.IncreaseGroupNum = increaseGroupNum resp.TotalGroupNum = totalGroupNum @@ -441,17 +441,17 @@ func (s *adminCMSServer) GetMessageStatistics(_ context.Context, req *pbAdminCMS log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) resp.PrivateMessageNum = privateMessageNum @@ -493,22 +493,22 @@ func (s *adminCMSServer) GetUserStatistics(_ context.Context, req *pbAdminCMS.Ge fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) + return resp, nil } activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } totalUserNum, err := imdb.GetTotalUserNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + return resp, nil } resp.ActiveUserNum = activeUserNum resp.TotalUserNum = totalUserNum diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index 81048719b..bdd375d1a 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -1,10 +1,14 @@ package cms_api_struct -import server_api_params "Open_IM/pkg/proto/sdk_ws" +import ( + "Open_IM/pkg/base_info" + server_api_params "Open_IM/pkg/proto/sdk_ws" +) type AdminLoginRequest struct { - AdminName string `json:"admin_name" binding:"required"` - Secret string `json:"secret" binding:"required"` + AdminName string `json:"adminName" binding:"required"` + Secret string `json:"secret" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } type AdminLoginResponse struct { @@ -30,10 +34,10 @@ type ReduceUserRegisterAddFriendIDListResponse struct { type GetUserRegisterAddFriendIDListRequest struct { OperationID string `json:"operationID" binding:"required"` - RequestPaginationBody + base_info.RequestPagination } type GetUserRegisterAddFriendIDListResponse struct { Users []*server_api_params.UserInfo `json:"users"` - ResponsePagination + base_info.ResponsePagination } diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 81778a8c8..891e24772 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -16,7 +16,7 @@ type GetChatLogsReq struct { } type GetChatLogsResp struct { - ChatLogs []*pbCommon.MsgData `json:"chat_logs"` - ChatLogsNum int `json:"log_nums"` + ChatLogs []*pbCommon.MsgData `json:"chatLogs"` + ChatLogsNum int `json:"logNums"` ResponsePagination } diff --git a/pkg/cms_api_struct/organization.go b/pkg/cms_api_struct/organization.go deleted file mode 100644 index 825d41aa1..000000000 --- a/pkg/cms_api_struct/organization.go +++ /dev/null @@ -1,25 +0,0 @@ -package cms_api_struct - -type GetStaffsResponse struct { - StaffsList []struct { - ProfilePhoto string `json:"profile_photo"` - NickName string `json:"nick_name"` - StaffId int `json:"staff_id"` - Position string `json:"position"` - EntryTime string `json:"entry_time"` - } `json:"staffs_list"` -} - -type GetOrganizationsResponse struct { - OrganizationList []struct { - OrganizationId int `json:"organization_id"` - OrganizationName string `json:"organization_name"` - } `json:"organization_list"` -} - -type SquadResponse struct { - SquadList []struct { - SquadId int `json:"squad_id"` - SquadName string `json:"squad_name"` - } `json:"squad_list"` -} diff --git a/pkg/cms_api_struct/statistics.go b/pkg/cms_api_struct/statistics.go index 2ff1efffa..0fd0eb76b 100644 --- a/pkg/cms_api_struct/statistics.go +++ b/pkg/cms_api_struct/statistics.go @@ -1,8 +1,9 @@ package cms_api_struct type GetStatisticsRequest struct { - From string `form:"from" binding:"required"` - To string `form:"to" binding:"required"` + From string `json:"from" binding:"required"` + To string `json:"to" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } type GetMessageStatisticsRequest struct { @@ -10,16 +11,16 @@ type GetMessageStatisticsRequest struct { } type GetMessageStatisticsResponse struct { - PrivateMessageNum int `json:"private_message_num"` - GroupMessageNum int `json:"group_message_num"` + PrivateMessageNum int `json:"privateMessageNum"` + GroupMessageNum int `json:"groupMessageNum"` PrivateMessageNumList []struct { Date string `json:"date"` - MessageNum int `json:"message_num"` - } `json:"private_message_num_list"` + MessageNum int `json:"messageNum"` + } `json:"privateMessageNumList"` GroupMessageNumList []struct { Date string `json:"date"` - MessageNum int `json:"message_num"` - } `json:"group_message_num_list"` + MessageNum int `json:"messageNum"` + } `json:"groupMessageNumList"` } type GetUserStatisticsRequest struct { @@ -27,21 +28,21 @@ type GetUserStatisticsRequest struct { } type GetUserStatisticsResponse struct { - IncreaseUserNum int `json:"increase_user_num"` - ActiveUserNum int `json:"active_user_num"` - TotalUserNum int `json:"total_user_num"` + IncreaseUserNum int `json:"increaseUserNum"` + ActiveUserNum int `json:"activeUserNum"` + TotalUserNum int `json:"totalUserNum"` IncreaseUserNumList []struct { Date string `json:"date"` - IncreaseUserNum int `json:"increase_user_num"` - } `json:"increase_user_num_list"` + IncreaseUserNum int `json:"increaseUserNum"` + } `json:"increaseUserNumList"` ActiveUserNumList []struct { Date string `json:"date"` - ActiveUserNum int `json:"active_user_num"` - } `json:"active_user_num_list"` + ActiveUserNum int `json:"activeUserNum"` + } `json:"activeUserNumList"` TotalUserNumList []struct { Date string `json:"date"` - TotalUserNum int `json:"total_user_num"` - } `json:"total_user_num_list"` + TotalUserNum int `json:"totalUserNum"` + } `json:"totalUserNumList"` } type GetGroupStatisticsRequest struct { @@ -50,16 +51,16 @@ type GetGroupStatisticsRequest struct { // 群聊统计 type GetGroupStatisticsResponse struct { - IncreaseGroupNum int `json:"increase_group_num"` - TotalGroupNum int `json:"total_group_num"` + IncreaseGroupNum int `json:"increaseGroupNum"` + TotalGroupNum int `json:"totalGroupNum"` IncreaseGroupNumList []struct { Date string `json:"date"` - IncreaseGroupNum int `json:"increase_group_num"` - } `json:"increase_group_num_list"` + IncreaseGroupNum int `json:"increaseGroupNum"` + } `json:"increaseGroupNumList"` TotalGroupNumList []struct { Date string `json:"date"` - TotalGroupNum int `json:"total_group_num"` - } `json:"total_group_num_list"` + TotalGroupNum int `json:"totalGroupNum"` + } `json:"totalGroupNumList"` } type GetActiveUserRequest struct { @@ -69,10 +70,10 @@ type GetActiveUserRequest struct { type GetActiveUserResponse struct { ActiveUserList []struct { - NickName string `json:"nick_name"` - UserId string `json:"user_id"` - MessageNum int `json:"message_num"` - } `json:"active_user_list"` + NickName string `json:"nickName"` + UserId string `json:"userID"` + MessageNum int `json:"messageNum"` + } `json:"activeUserList"` } type GetActiveGroupRequest struct { @@ -82,8 +83,8 @@ type GetActiveGroupRequest struct { type GetActiveGroupResponse struct { ActiveGroupList []struct { - GroupName string `json:"group_name"` - GroupId string `json:"group_id"` - MessageNum int `json:"message_num"` - } `json:"active_group_list"` + GroupName string `json:"groupName"` + GroupId string `json:"groupID"` + MessageNum int `json:"messageNum"` + } `json:"activeGroupList"` } diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index b1f26855a..a10669452 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,7 +2,6 @@ package log import ( "Open_IM/pkg/common/config" - "bufio" //"bufio" "fmt" @@ -35,13 +34,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - if err != nil { - panic(err.Error()) - } - writer := bufio.NewWriter(src) - logger.SetOutput(writer) - //logger.SetOutput(os.Stdout) + // src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + // if err != nil { + // panic(err.Error()) + // } + // writer := bufio.NewWriter(src) + // logger.SetOutput(writer) + logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 0ab31b3d1..00fc7fe42 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{0} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{1} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{2} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{3} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegis func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{4} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -267,7 +267,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{5} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -319,7 +319,7 @@ func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUse func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{6} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -358,7 +358,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{7} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -405,7 +405,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{8} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -464,7 +464,7 @@ func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } func (*GetChatLogsReq) ProtoMessage() {} func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{9} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{9} } func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) @@ -548,14 +548,15 @@ type ChatLog struct { SenderPlatformID int32 `protobuf:"varint,5,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` SenderNickname string `protobuf:"bytes,6,opt,name=SenderNickname" json:"SenderNickname,omitempty"` SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - Content string `protobuf:"bytes,11,opt,name=Content" json:"Content,omitempty"` - Status int32 `protobuf:"varint,12,opt,name=Status" json:"Status,omitempty"` - SendTime int64 `protobuf:"varint,13,opt,name=SendTime" json:"SendTime,omitempty"` - CreateTime int64 `protobuf:"varint,14,opt,name=CreateTime" json:"CreateTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=Ex" json:"Ex,omitempty"` + GroupName string `protobuf:"bytes,8,opt,name=GroupName" json:"GroupName,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=ContentType" json:"ContentType,omitempty"` + Content string `protobuf:"bytes,12,opt,name=Content" json:"Content,omitempty"` + Status int32 `protobuf:"varint,13,opt,name=Status" json:"Status,omitempty"` + SendTime int64 `protobuf:"varint,14,opt,name=SendTime" json:"SendTime,omitempty"` + CreateTime int64 `protobuf:"varint,15,opt,name=CreateTime" json:"CreateTime,omitempty"` + Ex string `protobuf:"bytes,16,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -565,7 +566,7 @@ func (m *ChatLog) Reset() { *m = ChatLog{} } func (m *ChatLog) String() string { return proto.CompactTextString(m) } func (*ChatLog) ProtoMessage() {} func (*ChatLog) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{10} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{10} } func (m *ChatLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChatLog.Unmarshal(m, b) @@ -634,6 +635,13 @@ func (m *ChatLog) GetSenderFaceURL() string { return "" } +func (m *ChatLog) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + func (m *ChatLog) GetSessionType() int32 { if m != nil { return m.SessionType @@ -704,7 +712,7 @@ func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } func (*GetChatLogsResp) ProtoMessage() {} func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{11} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{11} } func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) @@ -764,7 +772,7 @@ func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } func (*StatisticsReq) ProtoMessage() {} func (*StatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{12} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{12} } func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) @@ -810,7 +818,7 @@ func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } func (*GetActiveUserReq) ProtoMessage() {} func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{13} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{13} } func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) @@ -857,7 +865,7 @@ func (m *UserResp) Reset() { *m = UserResp{} } func (m *UserResp) String() string { return proto.CompactTextString(m) } func (*UserResp) ProtoMessage() {} func (*UserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{14} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{14} } func (m *UserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserResp.Unmarshal(m, b) @@ -910,7 +918,7 @@ func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } func (*GetActiveUserResp) ProtoMessage() {} func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{15} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{15} } func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) @@ -956,7 +964,7 @@ func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupReq) ProtoMessage() {} func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{16} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{16} } func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) @@ -1004,7 +1012,7 @@ func (m *GroupResp) Reset() { *m = GroupResp{} } func (m *GroupResp) String() string { return proto.CompactTextString(m) } func (*GroupResp) ProtoMessage() {} func (*GroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{17} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{17} } func (m *GroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResp.Unmarshal(m, b) @@ -1064,7 +1072,7 @@ func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupResp) ProtoMessage() {} func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{18} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{18} } func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) @@ -1110,7 +1118,7 @@ func (m *DateNumList) Reset() { *m = DateNumList{} } func (m *DateNumList) String() string { return proto.CompactTextString(m) } func (*DateNumList) ProtoMessage() {} func (*DateNumList) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{19} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{19} } func (m *DateNumList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DateNumList.Unmarshal(m, b) @@ -1156,7 +1164,7 @@ func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsReq) ProtoMessage() {} func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{20} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{20} } func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) @@ -1205,7 +1213,7 @@ func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsRe func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsResp) ProtoMessage() {} func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{21} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{21} } func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) @@ -1272,7 +1280,7 @@ func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsReq) ProtoMessage() {} func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{22} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{22} } func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) @@ -1321,7 +1329,7 @@ func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsResp) ProtoMessage() {} func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{23} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{23} } func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) @@ -1388,7 +1396,7 @@ func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsReq) ProtoMessage() {} func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{24} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{24} } func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) @@ -1439,7 +1447,7 @@ func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsResp) ProtoMessage() {} func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_1a9119d2c1ff8ffc, []int{25} + return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{25} } func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) @@ -1907,97 +1915,98 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_1a9119d2c1ff8ffc) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_a6bac7cb5a282446) } -var fileDescriptor_admin_cms_1a9119d2c1ff8ffc = []byte{ - // 1408 bytes of a gzipped FileDescriptorProto +var fileDescriptor_admin_cms_a6bac7cb5a282446 = []byte{ + // 1416 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x13, 0x07, 0x25, 0xcb, 0x92, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, + 0x13, 0x07, 0x25, 0xcb, 0xb2, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, 0x93, 0x42, 0x2d, 0x52, 0xa9, 0x70, 0xd0, 0x53, 0x81, 0x14, 0x8e, 0x94, 0xa8, 0x0a, 0xac, 0xc4, - 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x51, 0x09, 0x47, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, - 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x29, 0x8a, 0xa2, - 0x2f, 0x52, 0xec, 0x2e, 0x3f, 0x76, 0x49, 0x5a, 0x92, 0x1d, 0xd4, 0x37, 0xce, 0xec, 0x7c, 0xec, - 0xfc, 0x7e, 0x33, 0xcb, 0x25, 0xe1, 0xba, 0x33, 0x9e, 0xba, 0xde, 0x70, 0x34, 0xa5, 0xed, 0xf8, - 0xa9, 0x45, 0x02, 0x9f, 0xf9, 0xa8, 0x1a, 0x2b, 0xea, 0x3b, 0x4f, 0x09, 0xf6, 0x86, 0xfd, 0x41, - 0x9b, 0x1c, 0x4e, 0xda, 0x62, 0xb5, 0x4d, 0xc7, 0x87, 0xc3, 0x37, 0xb4, 0xfd, 0x26, 0xb4, 0xb6, - 0xee, 0x03, 0x74, 0xfc, 0xe9, 0xd4, 0xf7, 0x6c, 0x4c, 0x09, 0x32, 0xa1, 0x8c, 0x83, 0xa0, 0xe3, - 0x8f, 0xb1, 0x69, 0x34, 0x8c, 0x66, 0xc9, 0x8e, 0x44, 0x74, 0x15, 0x56, 0x71, 0x10, 0x0c, 0xe8, - 0xc4, 0x2c, 0x34, 0x8c, 0x66, 0xd5, 0x0e, 0x25, 0x6b, 0x04, 0x6b, 0x7b, 0x3c, 0xdf, 0xbe, 0x3f, - 0x71, 0x3d, 0x1b, 0x1f, 0xa1, 0x06, 0xd4, 0x9e, 0x12, 0x1c, 0x38, 0xcc, 0xf5, 0xbd, 0x7e, 0x57, - 0x84, 0xa9, 0xda, 0xaa, 0x8a, 0x27, 0x11, 0x2e, 0xfd, 0x6e, 0x18, 0x2b, 0x12, 0x79, 0x92, 0x67, - 0x78, 0x14, 0x60, 0x66, 0x16, 0x65, 0x12, 0x29, 0x59, 0xdf, 0xc1, 0xba, 0x9a, 0x84, 0x12, 0xb4, - 0x05, 0x25, 0xe6, 0x1f, 0x62, 0x2f, 0x8c, 0x2f, 0x05, 0xf4, 0x19, 0xc0, 0x28, 0x2e, 0x46, 0x04, - 0xaf, 0xed, 0x6e, 0xb7, 0x12, 0x80, 0x92, 0x4a, 0x6d, 0xc5, 0xd0, 0xc2, 0xb0, 0xb3, 0x37, 0x1e, - 0xbf, 0xa0, 0x38, 0xb0, 0xf1, 0xc4, 0xa5, 0x0c, 0x07, 0x7b, 0xe3, 0xf1, 0xa3, 0xc0, 0xc5, 0xde, - 0xb8, 0xdf, 0xdd, 0x77, 0x29, 0x0b, 0xeb, 0xf2, 0xb3, 0x75, 0x29, 0x2a, 0x74, 0x0b, 0x60, 0x46, - 0x71, 0x20, 0x5d, 0xcc, 0x42, 0xa3, 0xd8, 0xac, 0xda, 0x8a, 0xc6, 0xfa, 0x16, 0xac, 0x45, 0x69, - 0x28, 0x49, 0xd5, 0x60, 0x2c, 0x5b, 0xc3, 0x3b, 0x03, 0x6e, 0xdb, 0x78, 0x3c, 0x1b, 0xe1, 0xf7, - 0xae, 0xe3, 0x26, 0x54, 0x63, 0x51, 0x80, 0x58, 0xb2, 0x13, 0x45, 0xaa, 0xca, 0x62, 0xa6, 0xca, - 0x97, 0x70, 0x67, 0x89, 0x7d, 0x9c, 0xbf, 0xd0, 0x9f, 0x0d, 0xd8, 0xe9, 0x61, 0xf6, 0xde, 0x55, - 0x76, 0x01, 0x88, 0x33, 0x71, 0xbd, 0xa4, 0xcc, 0xda, 0xee, 0xed, 0x16, 0xc5, 0xc1, 0x31, 0x0e, - 0x86, 0x0e, 0x71, 0x87, 0xc4, 0x09, 0x9c, 0x29, 0x6d, 0xd9, 0xf8, 0x68, 0x86, 0x29, 0x3b, 0x88, - 0x6d, 0x6d, 0xc5, 0xcf, 0xfa, 0xc7, 0x00, 0x6b, 0xd1, 0x6e, 0x28, 0x41, 0x5f, 0xc0, 0x25, 0x01, - 0x91, 0xf7, 0xca, 0x17, 0xb0, 0x19, 0x8d, 0x62, 0xb3, 0xb6, 0x7b, 0x23, 0x27, 0xdd, 0x8b, 0xd0, - 0xcc, 0xd6, 0x1c, 0xd0, 0xc3, 0x9c, 0xdd, 0xde, 0xc9, 0xdd, 0x2d, 0x25, 0xbe, 0x47, 0x71, 0xfe, - 0x76, 0x53, 0x98, 0x17, 0x97, 0xc5, 0xfc, 0xb7, 0x02, 0xac, 0xf7, 0x30, 0xeb, 0xfc, 0xe0, 0xb0, - 0x7d, 0x7f, 0x42, 0x39, 0xc0, 0x26, 0x94, 0x3b, 0xbe, 0xc7, 0xb0, 0xc7, 0x42, 0x70, 0x23, 0x51, - 0x0e, 0x31, 0xaf, 0x3e, 0x3a, 0x29, 0xa4, 0xc4, 0xf5, 0x36, 0x1e, 0x1d, 0xf7, 0xbb, 0xd1, 0x70, - 0x4b, 0x09, 0xd5, 0xa1, 0xc2, 0x2d, 0x9e, 0xbb, 0x53, 0x6c, 0xae, 0x88, 0x95, 0x58, 0xe6, 0x34, - 0x3e, 0xc3, 0x94, 0xba, 0xbe, 0xf7, 0xfc, 0x2d, 0xc1, 0x66, 0x49, 0x34, 0xa3, 0xaa, 0xe2, 0x16, - 0x61, 0x62, 0x61, 0xb1, 0x2a, 0x2d, 0x14, 0x15, 0x27, 0x3a, 0x41, 0xc3, 0x2c, 0x9f, 0x85, 0xe8, - 0xe4, 0x39, 0x7d, 0xac, 0x55, 0x32, 0xc7, 0x9a, 0xf5, 0x57, 0x11, 0xca, 0x21, 0x42, 0x72, 0xdf, - 0x3c, 0xc1, 0x80, 0x4e, 0x92, 0xf6, 0x53, 0x54, 0xe8, 0x2e, 0x6c, 0x52, 0x16, 0xb8, 0xde, 0xa4, - 0xf3, 0xda, 0xc5, 0x1e, 0x93, 0x76, 0x12, 0xb0, 0xec, 0x82, 0x82, 0x69, 0xf1, 0x14, 0x4c, 0x57, - 0x34, 0x4c, 0x3f, 0x86, 0x0d, 0x6e, 0x81, 0x83, 0x83, 0xd7, 0x0e, 0x7b, 0xe5, 0x07, 0xd3, 0x7e, - 0x37, 0x04, 0x2f, 0xa3, 0x47, 0x1f, 0xc2, 0xba, 0xd4, 0x3d, 0x71, 0x47, 0x87, 0x9e, 0x33, 0x95, - 0x20, 0x56, 0xed, 0x94, 0x16, 0xdd, 0x86, 0x35, 0xa9, 0x79, 0xe4, 0x8c, 0xf0, 0x0b, 0x7b, 0x5f, - 0x40, 0x59, 0xb5, 0x75, 0x65, 0x9a, 0xb1, 0x4a, 0x96, 0x31, 0x13, 0xca, 0x03, 0x3a, 0x79, 0x14, - 0xf8, 0x53, 0xb3, 0x2a, 0xdf, 0x31, 0xa1, 0x98, 0xe6, 0x12, 0xb2, 0x5c, 0x2a, 0x5d, 0x57, 0xcb, - 0x76, 0x1d, 0x73, 0xd8, 0x8c, 0x9a, 0x97, 0x84, 0x5b, 0x28, 0x69, 0xdd, 0xb5, 0xd6, 0x30, 0x9a, - 0x45, 0xa5, 0xbb, 0x6e, 0x01, 0x74, 0x02, 0xec, 0x30, 0x2c, 0x56, 0xd7, 0xc5, 0xaa, 0xa2, 0x41, - 0xeb, 0x50, 0x78, 0x78, 0x62, 0x5e, 0x16, 0x89, 0x0a, 0x0f, 0x4f, 0xac, 0xbf, 0x0d, 0xb8, 0xac, - 0x8d, 0x01, 0x25, 0xa8, 0x05, 0x95, 0x48, 0x0e, 0xa7, 0x1a, 0xa9, 0xf3, 0x24, 0x97, 0xec, 0xd8, - 0x86, 0x0f, 0xf2, 0xc1, 0x79, 0x07, 0x59, 0x6f, 0xc7, 0x28, 0xe4, 0x93, 0xd9, 0x54, 0x74, 0x05, - 0x87, 0x2a, 0x51, 0xf1, 0x51, 0x4f, 0xa6, 0x59, 0xb4, 0xc7, 0xe9, 0xa3, 0x9e, 0x3c, 0x5b, 0xf7, - 0x60, 0x8d, 0x23, 0xe7, 0x52, 0xe6, 0x8e, 0xc4, 0xa0, 0x23, 0x58, 0x79, 0xc5, 0xb9, 0x92, 0x3d, - 0x2c, 0x9e, 0x39, 0x30, 0xcc, 0x0f, 0xbb, 0xb5, 0xc0, 0x7c, 0x8b, 0xc1, 0x46, 0x0f, 0xb3, 0xbd, - 0x11, 0x73, 0x8f, 0xc3, 0x63, 0xff, 0x08, 0xdd, 0x4f, 0x05, 0x0a, 0x4f, 0x78, 0x53, 0xd9, 0x82, - 0xb6, 0x6e, 0xa7, 0xf2, 0xa6, 0x06, 0xae, 0x90, 0x1d, 0xb8, 0x97, 0x50, 0x91, 0xc9, 0x28, 0xe1, - 0x34, 0xf3, 0x46, 0x7d, 0xc2, 0xdb, 0x57, 0xee, 0x34, 0x96, 0x79, 0x6b, 0x88, 0x53, 0x75, 0x1c, - 0x1d, 0x48, 0x52, 0xe2, 0xf4, 0x0f, 0x30, 0xa5, 0xce, 0x04, 0x27, 0x10, 0x2a, 0x1a, 0x6b, 0x06, - 0x9b, 0xa9, 0xaa, 0x28, 0x41, 0x1f, 0x41, 0x89, 0x3f, 0x47, 0x64, 0x5f, 0x51, 0xca, 0x89, 0x6c, - 0x6c, 0x69, 0x91, 0x62, 0xa0, 0xb0, 0x2c, 0x03, 0x6a, 0xda, 0x5e, 0xe0, 0xcf, 0xc8, 0xc5, 0xa0, - 0xf9, 0xab, 0x01, 0xd5, 0x30, 0x1d, 0x25, 0xfc, 0x0e, 0x20, 0x04, 0x05, 0xd0, 0x44, 0xc1, 0xc7, - 0x50, 0x08, 0x31, 0xa4, 0x91, 0xb8, 0x08, 0xd3, 0xf3, 0x76, 0xe5, 0x5b, 0x40, 0x69, 0x4c, 0x28, - 0x41, 0x77, 0x61, 0x55, 0x08, 0x11, 0x19, 0x5b, 0x4a, 0xa0, 0xd8, 0xca, 0x0e, 0x6d, 0xce, 0x4b, - 0xc7, 0x3d, 0xa8, 0x75, 0x1d, 0xc6, 0x37, 0x2f, 0x5e, 0xc4, 0x08, 0x56, 0xb8, 0x18, 0x8d, 0x03, - 0x7f, 0x46, 0x1b, 0x50, 0xe4, 0xd5, 0xca, 0xab, 0x12, 0x7f, 0xb4, 0x7e, 0x84, 0x6b, 0x3d, 0xcc, - 0xc2, 0xba, 0x75, 0x26, 0xfe, 0x7b, 0x26, 0xff, 0x28, 0x80, 0x99, 0x9f, 0x5d, 0x60, 0xb6, 0x79, - 0x10, 0xb8, 0xc7, 0x0e, 0xc3, 0x0a, 0x4f, 0xf2, 0xae, 0x9f, 0x5d, 0x40, 0x4d, 0xb8, 0x2c, 0xd0, - 0x53, 0x6c, 0x65, 0x95, 0x69, 0x35, 0xda, 0x87, 0xed, 0x8c, 0x7b, 0x7c, 0x43, 0xac, 0xed, 0x5e, - 0x55, 0xca, 0x53, 0xe0, 0xb4, 0xf3, 0x9d, 0xd0, 0x97, 0x70, 0x25, 0x95, 0x40, 0xc4, 0x5a, 0x99, - 0x1b, 0x2b, 0xcf, 0x25, 0xc5, 0x7a, 0x69, 0xf9, 0x86, 0xdb, 0xee, 0x61, 0x26, 0x02, 0x5e, 0x34, - 0x7d, 0xbf, 0x17, 0xe0, 0x6a, 0x5e, 0x6e, 0x4a, 0xf8, 0x6b, 0xbd, 0xef, 0x8d, 0x02, 0xec, 0x50, - 0x39, 0x05, 0x09, 0x77, 0x19, 0x3d, 0x7f, 0x5d, 0x3f, 0xf7, 0x99, 0xf3, 0x3a, 0x36, 0x94, 0xc4, - 0xe9, 0x4a, 0xf4, 0x18, 0xb6, 0xd2, 0x9e, 0x4b, 0xb0, 0x96, 0xeb, 0x83, 0xba, 0xb0, 0xa9, 0x05, - 0x5f, 0x82, 0xb2, 0xac, 0xc3, 0x79, 0x09, 0x3b, 0x81, 0xad, 0xf0, 0x1e, 0x7e, 0xd1, 0x7c, 0xfd, - 0x52, 0x14, 0xbd, 0x92, 0x4e, 0x4d, 0x09, 0x9f, 0x9e, 0x08, 0x28, 0xbe, 0x9a, 0xb0, 0x95, 0x56, - 0x73, 0xb2, 0x92, 0xf7, 0x8c, 0x42, 0x96, 0xa6, 0x44, 0x16, 0x5c, 0x12, 0x78, 0x45, 0x46, 0xf2, - 0x78, 0xd5, 0x74, 0x7c, 0x72, 0x52, 0xc1, 0x97, 0x99, 0x9c, 0x1c, 0x17, 0x4e, 0xa7, 0x96, 0x5e, - 0xc4, 0x29, 0xcd, 0xa7, 0x33, 0xe3, 0x80, 0x1e, 0xc0, 0x86, 0xba, 0x3f, 0x11, 0x64, 0x75, 0x6e, - 0x90, 0x8c, 0x7d, 0xaa, 0x25, 0xca, 0x4b, 0xb6, 0xc4, 0xee, 0x9f, 0x65, 0xa8, 0x08, 0xa3, 0xce, - 0xe0, 0x19, 0xda, 0x03, 0x48, 0x7e, 0x21, 0x20, 0x95, 0x7e, 0xed, 0xf7, 0x45, 0xfd, 0xfa, 0x29, - 0x2b, 0x94, 0xa0, 0x9f, 0xe0, 0xd6, 0xfc, 0xef, 0x77, 0x74, 0x57, 0x73, 0x5e, 0xf0, 0x47, 0xa1, - 0xfe, 0xc9, 0x19, 0xac, 0x29, 0x41, 0xef, 0x0c, 0xd8, 0x59, 0xf8, 0x65, 0x8d, 0xda, 0x4a, 0xd0, - 0x65, 0xfe, 0x07, 0xd4, 0x3f, 0x3d, 0x9b, 0x83, 0xc4, 0x61, 0xfe, 0x27, 0xaf, 0x86, 0xc3, 0xc2, - 0x6f, 0x75, 0x0d, 0x87, 0x25, 0xbe, 0xa5, 0xbb, 0x50, 0x53, 0x2e, 0xe1, 0xe8, 0xba, 0xee, 0xad, - 0x7c, 0xa3, 0xd6, 0xeb, 0xa7, 0x2d, 0x51, 0x82, 0x1e, 0xc3, 0x9a, 0x76, 0xb9, 0x43, 0x37, 0x74, - 0x63, 0xed, 0x32, 0x5b, 0xbf, 0x79, 0xfa, 0x22, 0x25, 0x68, 0x20, 0xbe, 0x8e, 0x95, 0xdb, 0x09, - 0xca, 0xb5, 0x8f, 0x2e, 0x73, 0xf5, 0xff, 0xcd, 0x59, 0xa5, 0x04, 0x0d, 0xc5, 0x51, 0x96, 0x79, - 0x7d, 0x23, 0x4b, 0x77, 0xcb, 0xbb, 0x5d, 0xd4, 0x3f, 0x58, 0x68, 0x43, 0x09, 0xfa, 0x5a, 0xdc, - 0xa6, 0x52, 0x2f, 0x18, 0xd4, 0xd0, 0x5d, 0xb3, 0xef, 0xbe, 0xfa, 0xce, 0x02, 0x0b, 0x4a, 0xd0, - 0x57, 0xe2, 0xf2, 0xaa, 0x9f, 0x85, 0xe8, 0xff, 0x59, 0x82, 0xf5, 0xc0, 0x8d, 0xf9, 0x06, 0x94, - 0x3c, 0xb8, 0xf6, 0xcd, 0x76, 0x2b, 0xf9, 0xd3, 0xf9, 0x79, 0xfc, 0xf4, 0xfd, 0xaa, 0xf8, 0x8d, - 0x79, 0xef, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd2, 0x6a, 0x73, 0x53, 0x11, 0x15, 0x00, 0x00, + 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x56, 0x09, 0x5b, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, + 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x31, 0x8a, 0x3e, + 0x47, 0x81, 0x62, 0x77, 0xf9, 0xb1, 0x4b, 0xd2, 0x92, 0xec, 0xa0, 0xbe, 0x71, 0x66, 0xe7, 0x63, + 0xe7, 0xf7, 0x9b, 0x59, 0x2e, 0x09, 0x37, 0x9d, 0xd1, 0xc4, 0xf5, 0x06, 0xc3, 0x09, 0x6d, 0xc5, + 0x4f, 0x4d, 0x12, 0xf8, 0xcc, 0x47, 0x95, 0x58, 0x51, 0xdb, 0x7e, 0x4e, 0xb0, 0x37, 0xe8, 0xf5, + 0x5b, 0xe4, 0x70, 0xdc, 0x12, 0xab, 0x2d, 0x3a, 0x3a, 0x1c, 0xbc, 0xa1, 0xad, 0x37, 0xa1, 0xb5, + 0xf5, 0x10, 0xa0, 0xed, 0x4f, 0x26, 0xbe, 0x67, 0x63, 0x4a, 0x90, 0x09, 0x65, 0x1c, 0x04, 0x6d, + 0x7f, 0x84, 0x4d, 0xa3, 0x6e, 0x34, 0x4a, 0x76, 0x24, 0xa2, 0xeb, 0xb0, 0x8c, 0x83, 0xa0, 0x4f, + 0xc7, 0x66, 0xa1, 0x6e, 0x34, 0x2a, 0x76, 0x28, 0x59, 0x43, 0x58, 0xdd, 0xe5, 0xf9, 0xf6, 0xfc, + 0xb1, 0xeb, 0xd9, 0xf8, 0x18, 0xd5, 0xa1, 0xfa, 0x9c, 0xe0, 0xc0, 0x61, 0xae, 0xef, 0xf5, 0x3a, + 0x22, 0x4c, 0xc5, 0x56, 0x55, 0x3c, 0x89, 0x70, 0xe9, 0x75, 0xc2, 0x58, 0x91, 0xc8, 0x93, 0xbc, + 0xc0, 0xc3, 0x00, 0x33, 0xb3, 0x28, 0x93, 0x48, 0xc9, 0xfa, 0x0e, 0xd6, 0xd4, 0x24, 0x94, 0xa0, + 0x4d, 0x28, 0x31, 0xff, 0x10, 0x7b, 0x61, 0x7c, 0x29, 0xa0, 0xcf, 0x00, 0x86, 0x71, 0x31, 0x22, + 0x78, 0x75, 0x67, 0xab, 0x99, 0x00, 0x94, 0x54, 0x6a, 0x2b, 0x86, 0x16, 0x86, 0xed, 0xdd, 0xd1, + 0xe8, 0x15, 0xc5, 0x81, 0x8d, 0xc7, 0x2e, 0x65, 0x38, 0xd8, 0x1d, 0x8d, 0x9e, 0x04, 0x2e, 0xf6, + 0x46, 0xbd, 0xce, 0x9e, 0x4b, 0x59, 0x58, 0x97, 0x9f, 0xad, 0x4b, 0x51, 0xa1, 0x3b, 0x00, 0x53, + 0x8a, 0x03, 0xe9, 0x62, 0x16, 0xea, 0xc5, 0x46, 0xc5, 0x56, 0x34, 0xd6, 0xb7, 0x60, 0xcd, 0x4b, + 0x43, 0x49, 0xaa, 0x06, 0x63, 0xd1, 0x1a, 0xde, 0x19, 0x70, 0xd7, 0xc6, 0xa3, 0xe9, 0x10, 0xbf, + 0x77, 0x1d, 0xb7, 0xa1, 0x12, 0x8b, 0x02, 0xc4, 0x92, 0x9d, 0x28, 0x52, 0x55, 0x16, 0x33, 0x55, + 0xbe, 0x86, 0x7b, 0x0b, 0xec, 0xe3, 0xe2, 0x85, 0xfe, 0x6c, 0xc0, 0x76, 0x17, 0xb3, 0xf7, 0xae, + 0xb2, 0x03, 0x40, 0x9c, 0xb1, 0xeb, 0x25, 0x65, 0x56, 0x77, 0xee, 0x36, 0x29, 0x0e, 0x4e, 0x70, + 0x30, 0x70, 0x88, 0x3b, 0x20, 0x4e, 0xe0, 0x4c, 0x68, 0xd3, 0xc6, 0xc7, 0x53, 0x4c, 0xd9, 0x7e, + 0x6c, 0x6b, 0x2b, 0x7e, 0xd6, 0xdf, 0x06, 0x58, 0xf3, 0x76, 0x43, 0x09, 0xfa, 0x02, 0xae, 0x08, + 0x88, 0xbc, 0x03, 0x5f, 0xc0, 0x66, 0xd4, 0x8b, 0x8d, 0xea, 0xce, 0xad, 0x9c, 0x74, 0xaf, 0x42, + 0x33, 0x5b, 0x73, 0x40, 0x8f, 0x73, 0x76, 0x7b, 0x2f, 0x77, 0xb7, 0x94, 0xf8, 0x1e, 0xc5, 0xf9, + 0xdb, 0x4d, 0x61, 0x5e, 0x5c, 0x14, 0xf3, 0xdf, 0x0a, 0xb0, 0xd6, 0xc5, 0xac, 0xfd, 0x83, 0xc3, + 0xf6, 0xfc, 0x31, 0xe5, 0x00, 0x9b, 0x50, 0x6e, 0xfb, 0x1e, 0xc3, 0x1e, 0x0b, 0xc1, 0x8d, 0x44, + 0x39, 0xc4, 0xbc, 0xfa, 0xe8, 0xa4, 0x90, 0x12, 0xd7, 0xdb, 0x78, 0x78, 0xd2, 0xeb, 0x44, 0xc3, + 0x2d, 0x25, 0x54, 0x83, 0x15, 0x6e, 0xf1, 0xd2, 0x9d, 0x60, 0x73, 0x49, 0xac, 0xc4, 0x32, 0xa7, + 0xf1, 0x05, 0xa6, 0xd4, 0xf5, 0xbd, 0x97, 0x6f, 0x09, 0x36, 0x4b, 0xa2, 0x19, 0x55, 0x15, 0xb7, + 0x08, 0x13, 0x0b, 0x8b, 0x65, 0x69, 0xa1, 0xa8, 0x38, 0xd1, 0x09, 0x1a, 0x66, 0xf9, 0x3c, 0x44, + 0x27, 0xcf, 0xe9, 0x63, 0x6d, 0x25, 0x73, 0xac, 0x59, 0xff, 0x14, 0xa1, 0x1c, 0x22, 0x24, 0xf7, + 0xcd, 0x13, 0xf4, 0xe9, 0x38, 0x69, 0x3f, 0x45, 0x85, 0xee, 0xc3, 0x06, 0x65, 0x81, 0xeb, 0x8d, + 0xdb, 0x47, 0x2e, 0xf6, 0x98, 0xb4, 0x93, 0x80, 0x65, 0x17, 0x14, 0x4c, 0x8b, 0x67, 0x60, 0xba, + 0xa4, 0x61, 0xfa, 0x31, 0xac, 0x73, 0x0b, 0x1c, 0xec, 0x1f, 0x39, 0xec, 0xc0, 0x0f, 0x26, 0xbd, + 0x4e, 0x08, 0x5e, 0x46, 0x8f, 0x3e, 0x84, 0x35, 0xa9, 0x7b, 0xe6, 0x0e, 0x0f, 0x3d, 0x67, 0x22, + 0x41, 0xac, 0xd8, 0x29, 0x2d, 0xba, 0x0b, 0xab, 0x52, 0xf3, 0xc4, 0x19, 0xe2, 0x57, 0xf6, 0x9e, + 0x80, 0xb2, 0x62, 0xeb, 0x4a, 0x7e, 0x78, 0x74, 0x03, 0x7f, 0x4a, 0x9e, 0xf1, 0x40, 0x12, 0xa5, + 0x44, 0x91, 0xe6, 0xb3, 0x92, 0xe5, 0xd3, 0x84, 0x72, 0x9f, 0x8e, 0x9f, 0x04, 0xfe, 0xc4, 0x04, + 0xf9, 0x06, 0x0a, 0xc5, 0x34, 0xd3, 0xd5, 0x2c, 0xd3, 0x4a, 0x4f, 0x5e, 0xc9, 0xf6, 0x24, 0x73, + 0xd8, 0x94, 0x9a, 0xab, 0xc2, 0x2d, 0x94, 0xb4, 0xde, 0x5b, 0xab, 0x1b, 0x8d, 0xa2, 0xd2, 0x7b, + 0x77, 0x00, 0xda, 0x01, 0x76, 0x18, 0x16, 0xab, 0x57, 0xc5, 0xaa, 0xa2, 0x41, 0x6b, 0x50, 0x78, + 0x7c, 0x6a, 0xae, 0x8b, 0x44, 0x85, 0xc7, 0xa7, 0xd6, 0x5f, 0x06, 0x5c, 0xd5, 0x86, 0x84, 0x12, + 0xd4, 0x84, 0x95, 0x48, 0x0e, 0x67, 0x1e, 0xa9, 0xd3, 0x26, 0x97, 0xec, 0xd8, 0x86, 0x8f, 0xf9, + 0xfe, 0x45, 0xc7, 0x5c, 0x6f, 0xd6, 0x28, 0xe4, 0xb3, 0xe9, 0x44, 0xf4, 0x0c, 0x87, 0x2a, 0x51, + 0xf1, 0x83, 0x20, 0x99, 0x75, 0xd1, 0x3c, 0x67, 0x1f, 0x04, 0xc9, 0xb3, 0xf5, 0x00, 0x56, 0x39, + 0x72, 0x2e, 0x65, 0xee, 0x50, 0x1c, 0x03, 0x08, 0x96, 0x0e, 0x38, 0x57, 0xb2, 0xc3, 0xc5, 0x33, + 0x07, 0x86, 0xf9, 0x61, 0x2f, 0x17, 0x98, 0x6f, 0x31, 0x58, 0xef, 0x62, 0xb6, 0x3b, 0x64, 0xee, + 0x49, 0xf8, 0x52, 0x38, 0x46, 0x0f, 0x53, 0x81, 0xc2, 0xf3, 0xdf, 0x54, 0xb6, 0xa0, 0xad, 0xdb, + 0xa9, 0xbc, 0xa9, 0x71, 0x2c, 0x64, 0xc7, 0xf1, 0x35, 0xac, 0xc8, 0x64, 0x94, 0x70, 0x9a, 0x79, + 0x1b, 0x8b, 0x9e, 0x94, 0x3b, 0x8d, 0x65, 0xde, 0x1a, 0xe2, 0xcc, 0x1d, 0x45, 0xc7, 0x95, 0x94, + 0x38, 0xfd, 0x7d, 0x4c, 0xa9, 0x33, 0xc6, 0x09, 0x84, 0x8a, 0xc6, 0x9a, 0xc2, 0x46, 0xaa, 0x2a, + 0x4a, 0xd0, 0x47, 0x50, 0xe2, 0xcf, 0x11, 0xd9, 0xd7, 0x94, 0x72, 0x22, 0x1b, 0x5b, 0x5a, 0xa4, + 0x18, 0x28, 0x2c, 0xca, 0x80, 0x9a, 0x56, 0xcc, 0xd5, 0xe5, 0xa0, 0xf9, 0xab, 0x11, 0xce, 0xb5, + 0x28, 0x53, 0x1b, 0x72, 0x23, 0x3d, 0xe4, 0x26, 0x94, 0x85, 0x10, 0x43, 0x1a, 0x89, 0xf3, 0x30, + 0xbd, 0x68, 0x57, 0xbe, 0x05, 0x94, 0xc6, 0x84, 0x12, 0x74, 0x1f, 0x96, 0x85, 0x10, 0x91, 0xb1, + 0xa9, 0x04, 0x8a, 0xad, 0xec, 0xd0, 0xe6, 0xa2, 0x74, 0x3c, 0x80, 0x6a, 0xc7, 0x61, 0x7c, 0xf3, + 0xe2, 0x35, 0x8d, 0x60, 0x89, 0x8b, 0xd1, 0x38, 0xf0, 0x67, 0xb4, 0x0e, 0x45, 0x5e, 0xad, 0xbc, + 0x48, 0xf1, 0x47, 0xeb, 0x47, 0xb8, 0xd1, 0xc5, 0x2c, 0xac, 0x5b, 0x67, 0xe2, 0xbf, 0x67, 0xf2, + 0x8f, 0x02, 0x98, 0xf9, 0xd9, 0x05, 0x66, 0x1b, 0xfb, 0x81, 0x7b, 0xe2, 0x30, 0xac, 0xf0, 0x24, + 0xbf, 0x04, 0xb2, 0x0b, 0xa8, 0x01, 0x57, 0x05, 0x7a, 0x8a, 0xad, 0xac, 0x32, 0xad, 0x46, 0x7b, + 0xb0, 0x95, 0x71, 0x8f, 0xef, 0x8f, 0xd5, 0x9d, 0xeb, 0x4a, 0x79, 0x0a, 0x9c, 0x76, 0xbe, 0x13, + 0xfa, 0x12, 0xae, 0xa5, 0x12, 0x88, 0x58, 0x4b, 0x33, 0x63, 0xe5, 0xb9, 0xa4, 0x58, 0x2f, 0x2d, + 0xde, 0x70, 0x5b, 0x5d, 0xcc, 0x44, 0xc0, 0xcb, 0xa6, 0xef, 0xf7, 0x02, 0x5c, 0xcf, 0xcb, 0x4d, + 0x09, 0x7f, 0xe9, 0xf7, 0xbc, 0x61, 0x80, 0x1d, 0x2a, 0xa7, 0x20, 0xe1, 0x2e, 0xa3, 0xe7, 0x2f, + 0xf3, 0x97, 0x3e, 0x73, 0x8e, 0x62, 0x43, 0x49, 0x9c, 0xae, 0x44, 0x4f, 0x61, 0x33, 0xed, 0xb9, + 0x00, 0x6b, 0xb9, 0x3e, 0xa8, 0x03, 0x1b, 0x5a, 0xf0, 0x05, 0x28, 0xcb, 0x3a, 0x5c, 0x94, 0xb0, + 0x53, 0xd8, 0x0c, 0x6f, 0xe9, 0x97, 0xcd, 0xd7, 0x2f, 0x45, 0xd1, 0x2b, 0xe9, 0xd4, 0x94, 0xf0, + 0xe9, 0x89, 0x80, 0xe2, 0xab, 0x09, 0x5b, 0x69, 0x35, 0x27, 0x2b, 0x79, 0xcf, 0x28, 0x64, 0x69, + 0x4a, 0x64, 0xc1, 0x15, 0x81, 0x57, 0x64, 0x24, 0x8f, 0x57, 0x4d, 0xc7, 0x27, 0x27, 0x15, 0x7c, + 0x91, 0xc9, 0xc9, 0x71, 0xe1, 0x74, 0x6a, 0xe9, 0x45, 0x9c, 0xd2, 0x6c, 0x3a, 0x33, 0x0e, 0xe8, + 0x11, 0xac, 0xab, 0xfb, 0x13, 0x41, 0x96, 0x67, 0x06, 0xc9, 0xd8, 0xa7, 0x5a, 0xa2, 0xbc, 0x60, + 0x4b, 0xec, 0xfc, 0x59, 0x86, 0x15, 0x61, 0xd4, 0xee, 0xbf, 0x40, 0xbb, 0x00, 0xc9, 0x0f, 0x06, + 0xa4, 0xd2, 0xaf, 0xfd, 0xdc, 0xa8, 0xdd, 0x3c, 0x63, 0x85, 0x12, 0xf4, 0x13, 0xdc, 0x99, 0xfd, + 0x75, 0x8f, 0xee, 0x6b, 0xce, 0x73, 0xfe, 0x37, 0xd4, 0x3e, 0x39, 0x87, 0x35, 0x25, 0xe8, 0x9d, + 0x01, 0xdb, 0x73, 0xbf, 0xbb, 0x51, 0x4b, 0x09, 0xba, 0xc8, 0xdf, 0x82, 0xda, 0xa7, 0xe7, 0x73, + 0x90, 0x38, 0xcc, 0xfe, 0x20, 0xd6, 0x70, 0x98, 0xfb, 0x25, 0xaf, 0xe1, 0xb0, 0xc0, 0x97, 0x76, + 0x07, 0xaa, 0xca, 0x25, 0x1c, 0xdd, 0xd4, 0xbd, 0x95, 0x2f, 0xd8, 0x5a, 0xed, 0xac, 0x25, 0x4a, + 0xd0, 0x53, 0x58, 0xd5, 0x2e, 0x77, 0xe8, 0x96, 0x6e, 0xac, 0x5d, 0x66, 0x6b, 0xb7, 0xcf, 0x5e, + 0xa4, 0x04, 0xf5, 0xc5, 0xb7, 0xb3, 0x72, 0x3b, 0x41, 0xb9, 0xf6, 0xd1, 0x65, 0xae, 0xf6, 0xbf, + 0x19, 0xab, 0x94, 0xa0, 0x81, 0x38, 0xca, 0x32, 0xaf, 0x6f, 0x64, 0xe9, 0x6e, 0x79, 0xb7, 0x8b, + 0xda, 0x07, 0x73, 0x6d, 0x28, 0x41, 0x5f, 0x8b, 0xdb, 0x54, 0xea, 0x05, 0x83, 0xea, 0xba, 0x6b, + 0xf6, 0xdd, 0x57, 0xdb, 0x9e, 0x63, 0x41, 0x09, 0xfa, 0x4a, 0x5c, 0x5e, 0xf5, 0xb3, 0x10, 0xfd, + 0x3f, 0x4b, 0xb0, 0x1e, 0xb8, 0x3e, 0xdb, 0x80, 0x92, 0x47, 0x37, 0xbe, 0xd9, 0x6a, 0x26, 0xff, + 0x41, 0x3f, 0x8f, 0x9f, 0xbe, 0x5f, 0x16, 0x3f, 0x39, 0x1f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, + 0xcd, 0xf8, 0xf8, 0x38, 0x2f, 0x15, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index 6dcd64628..381d8523d 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -71,14 +71,15 @@ message ChatLog { int32 SenderPlatformID = 5; string SenderNickname = 6; string SenderFaceURL = 7; - int32 SessionType = 8; - int32 MsgFrom = 9; - int32 ContentType = 10; - string Content = 11; - int32 Status = 12; - int64 SendTime = 13; - int64 CreateTime = 14; - string Ex = 15; + string GroupName = 8; + int32 SessionType = 9; + int32 MsgFrom = 10; + int32 ContentType = 11; + string Content = 12; + int32 Status = 13; + int64 SendTime = 14; + int64 CreateTime = 15; + string Ex = 16; } message GetChatLogsResp { From 9b5e1465c3973f388d81689b2f2747a1c40b1f92 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 16:05:12 +0800 Subject: [PATCH 12/56] add --- internal/cms_api/router.go | 1 - internal/cms_api/user/user.go | 51 +++++------------------------------ pkg/cms_api_struct/user.go | 22 +++++++-------- 3 files changed, 18 insertions(+), 56 deletions(-) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 2987bd026..a9fceeb97 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -54,7 +54,6 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) - userRouterGroup.GET("/get_block_user", user.GetBlockUserById) } messageCMSRouterGroup := r2.Group("/message") { diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 97dbc66a9..4c22bc56a 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -143,15 +143,13 @@ func GetBlockUsers(c *gin.Context) { for _, v := range respPb.BlockUsers { resp.BlockUsers = append(resp.BlockUsers, cms_api_struct.BlockUser{ UserResponse: cms_api_struct.UserResponse{ - UserId: v.User.UserId, - ProfilePhoto: v.User.ProfilePhoto, - Nickname: v.User.Nickname, - IsBlock: v.User.IsBlock, - Birth: v.User.Birth, - PhoneNumber: v.User.PhoneNumber, - Email: v.User.Email, - Gender: int(v.User.Gender), - CreateTime: v.User.CreateTime, + UserID: v.UserInfo.UserID, + FaceURL: v.UserInfo.FaceURL, + Nickname: v.UserInfo.Nickname, + PhoneNumber: v.UserInfo.PhoneNumber, + Email: v.UserInfo.Email, + Gender: int(v.UserInfo.Gender), + // CreateTime: v.UserInfo.CreateTime, }, BeginDisableTime: v.BeginDisableTime, EndDisableTime: v.EndDisableTime, @@ -163,38 +161,3 @@ func GetBlockUsers(c *gin.Context) { log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", resp) openIMHttp.RespHttp200(c, constant.OK, resp) } - -func GetBlockUserById(c *gin.Context) { - var ( - req cms_api_struct.GetBlockUserRequest - resp cms_api_struct.GetBlockUserResponse - reqPb pb.GetBlockUserByIdReq - ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.UserId = req.UserId - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pb.NewUserClient(etcdConn) - respPb, err := client.GetBlockUserById(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, "GetBlockUserById rpc failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - resp.EndDisableTime = respPb.BlockUser.EndDisableTime - resp.BeginDisableTime = respPb.BlockUser.BeginDisableTime - utils.CopyStructFields(&resp, respPb.BlockUser.User) - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index d4902c97a..c4c433a1e 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -1,17 +1,17 @@ package cms_api_struct type UserResponse struct { - ProfilePhoto string `json:"profile_photo"` - Nickname string `json:"nick_name"` - UserId string `json:"user_id"` - CreateTime string `json:"create_time,omitempty"` - CreateIp string `json:"create_ip,omitempty"` - LastLoginTime string `json:"last_login_time,omitempty"` - LastLoginIp string `json:"last_login_ip,omitempty"` - LoginTimes int32 `json:"login_times"` - LoginLimit int32 `json:"login_limit"` - IsBlock bool `json:"is_block"` - PhoneNumber string `json:"phone_number"` + FaceURL string `json:"faceURL"` + Nickname string `json:"nickName"` + UserID string `json:"userID"` + CreateTime string `json:"createTime,omitempty"` + CreateIp string `json:"createIp,omitempty"` + LastLoginTime string `json:"lastLoginTime,omitempty"` + LastLoginIp string `json:"lastLoginIP,omitempty"` + LoginTimes int32 `json:"loginTimes"` + LoginLimit int32 `json:"loginLimit"` + IsBlock bool `json:"isBlock"` + PhoneNumber string `json:"phoneNumber"` Email string `json:"email"` Birth string `json:"birth"` Gender int `json:"gender"` From bc1cfed3890b3f678691d5d7d2b2fcc84f08566a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 16:09:10 +0800 Subject: [PATCH 13/56] xms --- internal/demo/register/ip_limit.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index 17a53795d..e68508894 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -7,7 +7,9 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" + "github.com/gin-gonic/gin" + //"github.com/jinzhu/gorm" "net/http" "time" @@ -163,8 +165,8 @@ func AddUserIPLimitLogin(c *gin.Context) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) userIp := db.UserIpLimit{UserID: req.UserID, Ip: req.IP} err := imdb.UpdateUserInfo(db.User{ - UserID: req.UserID, - LoginLimit: 1, + UserID: req.UserID, + // LoginLimit: 1, }) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) From 12e6cbb9e5958472fd548480a6b29a7069a8e744 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 16:11:56 +0800 Subject: [PATCH 14/56] add --- pkg/common/log/logrus.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index a10669452..a19292e71 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,6 +2,7 @@ package log import ( "Open_IM/pkg/common/config" + "bufio" //"bufio" "fmt" @@ -34,13 +35,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - // src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - // if err != nil { - // panic(err.Error()) - // } - // writer := bufio.NewWriter(src) - // logger.SetOutput(writer) - logger.SetOutput(os.Stdout) + src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + if err != nil { + panic(err.Error()) + } + writer := bufio.NewWriter(src) + logger.SetOutput(writer) + // logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", From c41464b9744eaf74b6aa538e1bdb6767b0af2484 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 16:34:13 +0800 Subject: [PATCH 15/56] cms --- internal/api/user/user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 410a9dd42..feebd9487 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -481,6 +481,7 @@ func GetUsers(c *gin.Context) { reqPb.OperationID = req.OperationID reqPb.UserID = req.UserID reqPb.UserName = req.UserName + reqPb.Pagination = &open_im_sdk.RequestPagination{ShowNumber: req.ShowNumber, PageNumber: req.PageNumber} etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" From da9918b655427ed7ebdee6102f93c692d5c89aba Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 29 Aug 2022 17:16:54 +0800 Subject: [PATCH 16/56] cms --- internal/api/user/user.go | 10 ++++++- internal/cms_api/admin/admin.go | 49 ++++++++++++++++----------------- 2 files changed, 33 insertions(+), 26 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index feebd9487..d944d774c 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -496,7 +496,15 @@ func GetUsers(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - utils.CopyStructFields(&resp.Data.UserList, respPb.UserList) + for _, v := range respPb.UserList { + resp.Data.UserList = append(resp.Data.UserList, &struct { + open_im_sdk.UserInfo + IsBlock bool "json:\"isBlock\"" + }{ + IsBlock: v.IsBlock, + UserInfo: *v.User, + }) + } resp.CommResp.ErrCode = respPb.CommonResp.ErrCode resp.CommResp.ErrMsg = respPb.CommonResp.ErrMsg resp.Data.TotalNum = respPb.TotalNums diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index c71689c57..b2eee5f2e 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -3,8 +3,6 @@ package admin import ( apiStruct "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAdmin "Open_IM/pkg/proto/admin_cms" @@ -66,8 +64,8 @@ func AdminLogin(c *gin.Context) { reqPb pbAdmin.AdminLoginReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.Secret = req.Secret @@ -84,24 +82,24 @@ func AdminLogin(c *gin.Context) { respPb, err := client.AdminLogin(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } resp.Token = respPb.Token - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func AddUserRegisterAddFriendIDList(c *gin.Context) { var ( - req apiStruct.AddUserRegisterAddFriendIDListRequest - resp apiStruct.AddUserRegisterAddFriendIDListResponse + req apiStruct.AddUserRegisterAddFriendIDListRequest + // resp apiStruct.AddUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, req.OperationID) if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetConn == nil" @@ -110,23 +108,24 @@ func AddUserRegisterAddFriendIDList(c *gin.Context) { return } client := pbAdmin.NewAdminCMSClient(etcdConn) - _, err := client.AddUserRegisterAddFriendIDList(context.Background(), &pbAdmin.AddUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList}) + respPb, err := client.AddUserRegisterAddFriendIDList(context.Background(), &pbAdmin.AddUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList}) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - openIMHttp.RespHttp200(c, constant.OK, resp) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", respPb.String()) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg}) } func ReduceUserRegisterAddFriendIDList(c *gin.Context) { var ( - req apiStruct.ReduceUserRegisterAddFriendIDListRequest - resp apiStruct.ReduceUserRegisterAddFriendIDListResponse + req apiStruct.ReduceUserRegisterAddFriendIDListRequest + // resp apiStruct.ReduceUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) @@ -138,13 +137,13 @@ func ReduceUserRegisterAddFriendIDList(c *gin.Context) { return } client := pbAdmin.NewAdminCMSClient(etcdConn) - _, err := client.ReduceUserRegisterAddFriendIDList(context.Background(), &pbAdmin.ReduceUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList, Operation: req.Operation}) + respPb, err := client.ReduceUserRegisterAddFriendIDList(context.Background(), &pbAdmin.ReduceUserRegisterAddFriendIDListReq{OperationID: req.OperationID, UserIDList: req.UserIDList, Operation: req.Operation}) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg}) } func GetUserRegisterAddFriendIDList(c *gin.Context) { @@ -153,8 +152,8 @@ func GetUserRegisterAddFriendIDList(c *gin.Context) { resp apiStruct.GetUserRegisterAddFriendIDListResponse ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req) @@ -172,12 +171,12 @@ func GetUserRegisterAddFriendIDList(c *gin.Context) { }}) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } resp.Users = respPb.UserInfoList resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } From 8d4e5ad3f1c3fa1e8829e68262262754eb049865 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:38:23 +0800 Subject: [PATCH 17/56] cms --- cmd/open_im_api/main.go | 1 - internal/api/group/group.go | 5 +- internal/api/user/user.go | 2 +- internal/cms_api/group/group.go | 104 +- internal/cms_api/message_cms/message.go | 11 +- internal/cms_api/middleware/jwt_auth.go | 6 +- internal/cms_api/router.go | 24 +- internal/cms_api/statistics/statistics.go | 12 +- internal/cms_api/user/user.go | 50 +- internal/rpc/admin_cms/admin_cms.go | 4 +- internal/rpc/group/group.go | 327 +---- internal/rpc/message_cms/message_cms.go | 182 --- internal/rpc/statistics/statistics.go | 399 ------ pkg/cms_api_struct/admin.go | 2 +- pkg/cms_api_struct/group.go | 114 +- pkg/cms_api_struct/user.go | 88 +- pkg/common/db/model_struct.go | 12 +- .../mysql_model/im_mysql_model/message_cms.go | 5 +- pkg/common/http/http_resp.go | 43 - pkg/proto/admin_cms/admin_cms.pb.go | 283 +++-- pkg/proto/admin_cms/admin_cms.proto | 30 +- pkg/proto/group/group.pb.go | 1125 ++++------------- pkg/proto/group/group.proto | 70 +- 23 files changed, 548 insertions(+), 2351 deletions(-) delete mode 100644 internal/rpc/message_cms/message_cms.go delete mode 100644 internal/rpc/statistics/statistics.go delete mode 100644 pkg/common/http/http_resp.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 2e4b83d60..5154841c2 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -111,7 +111,6 @@ func main() { groupRouterGroup.POST("/set_group_member_nickname", group.SetGroupMemberNickname) groupRouterGroup.POST("/set_group_member_info", group.SetGroupMemberInfo) groupRouterGroup.POST("/get_group_abstract_info", group.GetGroupAbstractInfo) - groupRouterGroup.POST("/get_groups", group.GetGroups) //groupRouterGroup.POST("/get_group_all_member_list_by_split", group.GetGroupAllMemberListBySplit) } superGroupRouterGroup := r.Group("/super_group") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 88a232ef9..ac8364d98 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -11,6 +11,7 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" + "github.com/golang/protobuf/ptypes/wrappers" "google.golang.org/grpc" @@ -1318,7 +1319,3 @@ func GetGroupAbstractInfo(c *gin.Context) { c.JSON(http.StatusOK, resp) return } - -func GetGroups(c *gin.Context) { - -} \ No newline at end of file diff --git a/internal/api/user/user.go b/internal/api/user/user.go index d944d774c..152783f1c 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -463,7 +463,7 @@ func GetUsers(c *gin.Context) { resp api.GetUsersResp reqPb rpc.GetUsersReq ) - if err := c.Bind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, "Bind failed ", err.Error(), req) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 3485fc3f4..c73ac9599 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -3,8 +3,6 @@ package group import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" commonPb "Open_IM/pkg/proto/sdk_ws" @@ -18,51 +16,15 @@ import ( "github.com/gin-gonic/gin" ) -func GetGroupByID(c *gin.Context) { - var ( - req cms_api_struct.GetGroupByIDRequest - resp cms_api_struct.GetGroupByIDResponse - reqPb pbGroup.GetGroupByIDReq - ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupID = req.GroupID - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.GetGroupByID(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) - return - } - utils.CopyStructFields(&resp, respPb.CMSGroup.GroupInfo) - resp.GroupOwnerID = respPb.CMSGroup.GroupOwnerUserID - resp.GroupOwnerName = respPb.CMSGroup.GroupOwnerUserName - - log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - func GetGroups(c *gin.Context) { var ( req cms_api_struct.GetGroupsRequest resp cms_api_struct.GetGroupsResponse reqPb pbGroup.GetGroupsReq ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -80,7 +42,7 @@ func GetGroups(c *gin.Context) { respPb, err := client.GetGroups(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } for _, v := range respPb.CMSGroups { @@ -91,54 +53,10 @@ func GetGroups(c *gin.Context) { resp.Groups = append(resp.Groups, groupResp) } resp.GroupNums = int(respPb.GroupNum) - resp.CurrentPage = int(respPb.Pagination.PageNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) resp.ShowNumber = int(respPb.Pagination.ShowNumber) log.NewInfo("", utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) -} - -func GetGroupByName(c *gin.Context) { - var ( - req cms_api_struct.GetGroupRequest - resp cms_api_struct.GetGroupResponse - reqPb pbGroup.GetGroupReq - ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) - return - } - reqPb.OperationID = utils.OperationIDGenerator() - log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - reqPb.GroupName = req.GroupName - reqPb.Pagination = &commonPb.RequestPagination{} - utils.CopyStructFields(&reqPb.Pagination, req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, reqPb.OperationID) - if etcdConn == nil { - errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(reqPb.OperationID, errMsg) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - return - } - client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.GetGroup(context.Background(), &reqPb) - if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) - return - } - for _, v := range respPb.CMSGroups { - groupResp := cms_api_struct.GroupResponse{} - utils.CopyStructFields(&groupResp, v.GroupInfo) - groupResp.GroupOwnerName = v.GroupOwnerUserName - groupResp.GroupOwnerID = v.GroupOwnerUserID - resp.Groups = append(resp.Groups, groupResp) - } - resp.CurrentPage = int(respPb.Pagination.PageNumber) - resp.ShowNumber = int(respPb.Pagination.ShowNumber) - resp.GroupNums = int(respPb.GroupNums) - log.NewInfo("", utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } func GetGroupMembers(c *gin.Context) { @@ -147,9 +65,9 @@ func GetGroupMembers(c *gin.Context) { reqPb pbGroup.GetGroupMembersCMSReq resp cms_api_struct.GetGroupMembersResponse ) - if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -171,7 +89,7 @@ func GetGroupMembers(c *gin.Context) { respPb, err := client.GetGroupMembersCMS(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS failed:", err.Error()) - openIMHttp.RespHttp200(c, err, nil) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } resp.ResponsePagination = cms_api_struct.ResponsePagination{ @@ -185,5 +103,5 @@ func GetGroupMembers(c *gin.Context) { resp.GroupMembers = append(resp.GroupMembers, memberResp) } log.NewInfo("", utils.GetSelfFuncName(), "req: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index d5dfadc92..277076271 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -3,7 +3,6 @@ package messageCMS import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAdminCMS "Open_IM/pkg/proto/admin_cms" @@ -13,8 +12,6 @@ import ( "net/http" "strings" - "Open_IM/pkg/common/constant" - "github.com/gin-gonic/gin" ) @@ -24,9 +21,9 @@ func GetChatLogs(c *gin.Context) { resp cms_api_struct.GetChatLogsResp reqPb pbAdminCMS.GetChatLogsReq ) - if err := c.ShouldBindQuery(&req); err != nil { + if err := c.Bind(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.Pagination = &pbCommon.RequestPagination{ @@ -46,7 +43,7 @@ func GetChatLogs(c *gin.Context) { respPb, err := client.GetChatLogs(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200(c, err, resp) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 400, "errMsg": err.Error()}) return } for _, v := range respPb.ChatLogs { @@ -58,5 +55,5 @@ func GetChatLogs(c *gin.Context) { resp.CurrentPage = int(respPb.Pagination.CurrentPage) resp.ChatLogsNum = int(respPb.ChatLogsNum) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go index 255e3eaaf..e551a35d8 100644 --- a/internal/cms_api/middleware/jwt_auth.go +++ b/internal/cms_api/middleware/jwt_auth.go @@ -1,11 +1,11 @@ package middleware import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" + "net/http" + "github.com/gin-gonic/gin" ) @@ -17,7 +17,7 @@ func JWTAuth() gin.HandlerFunc { if !ok { log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token")) c.Abort() - http.RespHttp200(c, constant.ErrParseToken, nil) + c.JSON(http.StatusOK, gin.H{"errCode": 400, "errMsg": errInfo}) return } else { log.NewInfo("0", utils.GetSelfFuncName(), "failed: ", errInfo) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index a9fceeb97..2f4273782 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -28,25 +28,17 @@ func NewGinRouter() *gin.Engine { r2.Use(middleware.JWTAuth()) statisticsRouterGroup := r2.Group("/statistics") { - statisticsRouterGroup.GET("/get_messages_statistics", statistics.GetMessagesStatistics) - statisticsRouterGroup.GET("/get_user_statistics", statistics.GetUserStatistics) - statisticsRouterGroup.GET("/get_group_statistics", statistics.GetGroupStatistics) - statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) - statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) + statisticsRouterGroup.POST("/get_messages_statistics", statistics.GetMessagesStatistics) + statisticsRouterGroup.POST("/get_user_statistics", statistics.GetUserStatistics) + statisticsRouterGroup.POST("/get_group_statistics", statistics.GetGroupStatistics) + statisticsRouterGroup.POST("/get_active_user", statistics.GetActiveUser) + statisticsRouterGroup.POST("/get_active_group", statistics.GetActiveGroup) } groupRouterGroup := r2.Group("/group") { - groupRouterGroup.GET("/get_group_by_id", group.GetGroupByID) - groupRouterGroup.GET("/get_groups", group.GetGroups) - groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) - groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) - // groupRouterGroup.POST("/create_group", group.CreateGroup) - // groupRouterGroup.POST("/add_members", group.AddGroupMembers) - // groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) - // groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) - // groupRouterGroup.POST("/set_group_master", group.SetGroupOwner) - // groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) - // groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) + groupRouterGroup.POST("/get_groups", group.GetGroups) + groupRouterGroup.POST("/get_group_members", group.GetGroupMembers) + groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) } userRouterGroup := r2.Group("/user") { diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 99386fd3b..ccfe97020 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -21,7 +21,7 @@ func GetMessagesStatistics(c *gin.Context) { reqPb admin.GetMessageStatisticsReq ) reqPb.StatisticsReq = &admin.StatisticsReq{} - if err := c.Bind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return @@ -75,7 +75,7 @@ func GetUserStatistics(c *gin.Context) { reqPb admin.GetUserStatisticsReq ) reqPb.StatisticsReq = &admin.StatisticsReq{} - if err := c.Bind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return @@ -138,7 +138,7 @@ func GetGroupStatistics(c *gin.Context) { reqPb admin.GetGroupStatisticsReq ) reqPb.StatisticsReq = &admin.StatisticsReq{} - if err := c.Bind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return @@ -195,7 +195,7 @@ func GetActiveUser(c *gin.Context) { reqPb admin.GetActiveUserReq ) reqPb.StatisticsReq = &admin.StatisticsReq{} - if err := c.Bind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return @@ -229,8 +229,8 @@ func GetActiveGroup(c *gin.Context) { reqPb admin.GetActiveGroupReq ) reqPb.StatisticsReq = &admin.StatisticsReq{} - if err := c.Bind(&req); err != nil { - log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 4c22bc56a..84d2b12db 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -3,15 +3,12 @@ package user import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" commonPb "Open_IM/pkg/proto/sdk_ws" pb "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "fmt" "net/http" "strings" @@ -25,7 +22,7 @@ func AddUser(c *gin.Context) { ) if err := c.BindJSON(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -39,23 +36,24 @@ func AddUser(c *gin.Context) { return } client := pb.NewUserClient(etcdConn) - _, err := client.AddUser(context.Background(), &reqPb) + respPb, err := client.AddUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err, nil) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), reqPb.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - openIMHttp.RespHttp200(c, constant.OK, nil) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg}) } func BlockUser(c *gin.Context) { var ( - req cms_api_struct.BlockUserRequest - resp cms_api_struct.BlockUserResponse + req cms_api_struct.BlockUserRequest + // resp cms_api_struct.BlockUserResponse reqPb pb.BlockUserReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -69,13 +67,13 @@ func BlockUser(c *gin.Context) { return } client := pb.NewUserClient(etcdConn) - fmt.Println(reqPb) - _, err := client.BlockUser(context.Background(), &reqPb) + respPb, err := client.BlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err, resp) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), reqPb.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg}) } func UnblockUser(c *gin.Context) { @@ -84,9 +82,9 @@ func UnblockUser(c *gin.Context) { resp cms_api_struct.UnBlockUserResponse reqPb pb.UnBlockUserReq ) - if err := c.ShouldBind(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -100,13 +98,14 @@ func UnblockUser(c *gin.Context) { return } client := pb.NewUserClient(etcdConn) - _, err := client.UnBlockUser(context.Background(), &reqPb) + respPb, err := client.UnBlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err, resp) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), err.Error(), reqPb.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg}) } func GetBlockUsers(c *gin.Context) { @@ -117,9 +116,9 @@ func GetBlockUsers(c *gin.Context) { respPb *pb.GetBlockUsersResp ) reqPb.Pagination = &commonPb.RequestPagination{} - if err := c.ShouldBindQuery(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -137,7 +136,7 @@ func GetBlockUsers(c *gin.Context) { respPb, err := client.GetBlockUsers(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetBlockUsers rpc", err.Error()) - openIMHttp.RespHttp200(c, err, resp) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } for _, v := range respPb.BlockUsers { @@ -149,7 +148,6 @@ func GetBlockUsers(c *gin.Context) { PhoneNumber: v.UserInfo.PhoneNumber, Email: v.UserInfo.Email, Gender: int(v.UserInfo.Gender), - // CreateTime: v.UserInfo.CreateTime, }, BeginDisableTime: v.BeginDisableTime, EndDisableTime: v.EndDisableTime, @@ -159,5 +157,5 @@ func GetBlockUsers(c *gin.Context) { resp.CurrentPage = int(respPb.Pagination.CurrentPage) resp.UserNums = respPb.UserNums log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", resp) - openIMHttp.RespHttp200(c, constant.OK, resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 2832c54ea..51e3a7aab 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -140,7 +140,7 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re } } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", req.String()) - return resp, nil + return resp, nil } func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { @@ -223,7 +223,7 @@ func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatL } pbChatLog.SenderNickname = recvUser.Nickname - case constant.GroupChatType: + case constant.GroupChatType, constant.SuperGroupChatType: group, err := imdb.GetGroupInfoByGroupID(chatLog.RecvID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7a821c34e..1948c93ac 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/db/rocks_cache" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" @@ -19,12 +19,13 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "math/big" "net" "strconv" "strings" "time" + + "google.golang.org/grpc" ) type groupServer struct { @@ -315,7 +316,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue - log.NewError(req.OperationID, "InsertIntoGroupRequest failed ", err.Error(), groupRequest) + // log.NewError(req.OperationID, "InsertIntoGroupRequest failed ", err.Error(), groupRequest) // return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } else { var resultNode pbGroup.Id2Result @@ -826,7 +827,6 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) - groupRequest := db.GroupRequest{} utils.CopyStructFields(&groupRequest, req) groupRequest.UserID = req.FromUserID @@ -1335,139 +1335,53 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } -func (s *groupServer) GetGroupByID(_ context.Context, req *pbGroup.GetGroupByIDReq) (*pbGroup.GetGroupByIDResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbGroup.GetGroupByIDResp{CMSGroup: &pbGroup.CMSGroup{ - GroupInfo: &open_im_sdk.GroupInfo{}, - }} - group, err := imdb.GetGroupInfoByGroupID(req.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById error", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) - groupMember, err := imdb.GetGroupOwnerInfoByGroupID(group.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - groupMemberNum, err := imdb.GetGroupMemberNumByGroupID(req.GroupID) - if err == nil { - resp.CMSGroup.GroupInfo.MemberCount = uint32(groupMemberNum) - } else { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - resp.CMSGroup.GroupOwnerUserName = groupMember.Nickname - resp.CMSGroup.GroupOwnerUserID = groupMember.UserID - resp.CMSGroup.GroupInfo.CreatorUserID = group.CreatorUserID - resp.CMSGroup.GroupInfo.CreateTime = uint32(group.CreateTime.Unix()) - utils.CopyStructFields(resp.CMSGroup.GroupInfo, group) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return resp, nil -} - -func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbGroup.GetGroupResp{ - CMSGroups: []*pbGroup.CMSGroup{}, - } - groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String(), req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) - return resp, http.WrapError(constant.ErrDB) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "groups", groups) - nums, err := imdb.GetGroupsCountNum(db.Group{GroupName: req.GroupName}) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error(), req.GroupName) - return resp, http.WrapError(constant.ErrDB) - } - resp.GroupNums = nums - resp.Pagination = &open_im_sdk.RequestPagination{ - PageNumber: req.Pagination.PageNumber, - ShowNumber: req.Pagination.ShowNumber, - } - for _, v := range groups { - group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} - utils.CopyStructFields(group.GroupInfo, v) - groupMember, err := imdb.GetGroupOwnerInfoByGroupID(v.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) - continue - } - - group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) - group.GroupOwnerUserID = groupMember.UserID - group.GroupOwnerUserName = groupMember.Nickname - resp.CMSGroups = append(resp.CMSGroups, group) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return resp, nil -} - func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups ", req.String()) resp := &pbGroup.GetGroupsResp{ CMSGroups: []*pbGroup.CMSGroup{}, - Pagination: &open_im_sdk.RequestPagination{}, + Pagination: &open_im_sdk.ResponsePagination{}, } - groups, err := imdb.GetGroups(int(req.Pagination.PageNumber), int(req.Pagination.ShowNumber)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroups error", err.Error()) - return resp, http.WrapError(constant.ErrDB) + if req.GroupID != "" { + groupInfoDB, err := imdb.GetGroupInfoByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.GroupNum = 1 + groupInfo := &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupInfo, groupInfoDB) + resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{GroupInfo: groupInfo}) + } else { + groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String(), req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) + } + for _, v := range groups { + group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(group.GroupInfo, v) + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(v.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupOwnerInfoByGroupID failed", err.Error(), v) + continue + } + group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) + group.GroupOwnerUserID = groupMember.UserID + group.GroupOwnerUserName = groupMember.Nickname + resp.CMSGroups = append(resp.CMSGroups, group) + } + resp.GroupNum, err = imdb.GetGroupsCountNum(db.Group{GroupName: req.GroupName}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } } - resp.GroupNum, err = imdb.GetGroupsCountNum(db.Group{}) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - resp.Pagination.PageNumber = req.Pagination.PageNumber + resp.Pagination.CurrentPage = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber - for _, v := range groups { - group := &pbGroup.CMSGroup{GroupInfo: &open_im_sdk.GroupInfo{}} - utils.CopyStructFields(group.GroupInfo, v) - groupMember, err := imdb.GetGroupOwnerInfoByGroupID(v.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error(), v) - continue - } - group.GroupInfo.CreateTime = uint32(v.CreateTime.Unix()) - group.GroupOwnerUserID = groupMember.UserID - group.GroupOwnerUserName = groupMember.Nickname - resp.CMSGroups = append(resp.CMSGroups, group) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups ", resp.String()) - return resp, nil -} - -func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) - resp := &pbGroup.OperateUserRoleResp{} - oldOwnerUserID, err := imdb.GetGroupOwnerInfoByGroupID(req.GroupID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - return resp, http.WrapError(constant.ErrInternal) - } - client := pbGroup.NewGroupClient(etcdConn) - var reqPb pbGroup.TransferGroupOwnerReq - reqPb.OperationID = req.OperationID - reqPb.NewOwnerUserID = req.UserID - reqPb.GroupID = req.GroupID - reqPb.OpUserID = "cms admin" - reqPb.OldOwnerUserID = oldOwnerUserID.UserID - reply, err := client.TransferGroupOwner(context.Background(), &reqPb) - if reply.CommonResp.ErrCode != 0 || err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "TransferGroupOwner rpc failed") - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - } - } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups resp", resp.String()) return resp, nil } @@ -1477,12 +1391,16 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupID, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersByGroupIdCMS Error", err.Error()) - return resp, http.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupID, req.UserName) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS Error", err.Error()) - return resp, http.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } log.NewInfo(req.OperationID, groupMembersCount) resp.MemberNums = int32(groupMembersCount) @@ -1501,151 +1419,6 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou return resp, nil } -func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.RemoveGroupMembersCMSReq) (*pbGroup.RemoveGroupMembersCMSResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) - resp := &pbGroup.RemoveGroupMembersCMSResp{} - for _, userId := range req.UserIDList { - err := imdb.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, userId) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - resp.Failed = append(resp.Failed, userId) - } else { - resp.Success = append(resp.Success, userId) - } - } - reqKick := &pbGroup.KickGroupMemberReq{ - GroupID: req.GroupID, - KickedUserIDList: resp.Success, - Reason: "admin kick", - OperationID: req.OperationID, - OpUserID: req.OpUserID, - } - var reqPb pbUser.SetConversationReq - var c pbConversation.Conversation - for _, v := range resp.Success { - reqPb.OperationID = req.OperationID - c.OwnerUserID = v - c.ConversationID = utils.GetConversationIDBySessionType(req.GroupID, constant.GroupChatType) - c.ConversationType = constant.GroupChatType - c.GroupID = req.GroupID - c.IsNotInGroup = true - reqPb.Conversation = &c - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - return resp, http.WrapError(constant.ErrInternal) - } - client := pbUser.NewUserClient(etcdConn) - respPb, err := client.SetConversation(context.Background(), &reqPb) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "SetConversation rpc failed, ", reqPb.String(), err.Error(), v) - } else { - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "SetConversation success", respPb.String(), v) - } - } - - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - return resp, http.WrapError(constant.ErrDB) - } - cacheClient := pbCache.NewCacheClient(etcdConn) - cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{ - GroupID: req.GroupID, - OperationID: req.OperationID, - }) - if err != nil { - log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc call failed ", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - if cacheResp.CommonResp.ErrCode != 0 { - log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) - return resp, http.WrapError(constant.ErrDB) - } - if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - - for _, userID := range resp.Success { - if err := rocksCache.DelGroupMemberInfoFromCache(req.GroupID, userID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID, userID) - } - } - - chat.MemberKickedNotification(reqKick, resp.Success) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} - -func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGroupMembersCMSReq) (*pbGroup.AddGroupMembersCMSResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) - resp := &pbGroup.AddGroupMembersCMSResp{} - for _, userId := range req.UserIDList { - if isExist := imdb.IsExistGroupMember(req.GroupID, userId); isExist { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "user is exist in group", userId, req.GroupID) - resp.Failed = append(resp.Failed, userId) - continue - } - user, err := imdb.GetUserByUserID(userId) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID", err.Error()) - resp.Failed = append(resp.Failed, userId) - continue - } - groupMember := db.GroupMember{ - GroupID: req.GroupID, - UserID: userId, - Nickname: user.Nickname, - FaceURL: "", - RoleLevel: 1, - JoinTime: time.Time{}, - JoinSource: constant.JoinByAdmin, - OperatorUserID: "CmsAdmin", - Ex: "", - } - if err := imdb.InsertIntoGroupMember(groupMember); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) - resp.Failed = append(resp.Failed, userId) - } else { - resp.Success = append(resp.Success, userId) - } - } - - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCacheName, req.OperationID) - if etcdConn == nil { - errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" - log.NewError(req.OperationID, errMsg) - return resp, http.WrapError(constant.ErrDB) - } - cacheClient := pbCache.NewCacheClient(etcdConn) - cacheResp, err := cacheClient.DelGroupMemberIDListFromCache(context.Background(), &pbCache.DelGroupMemberIDListFromCacheReq{ - GroupID: req.GroupID, - OperationID: req.OperationID, - }) - if err != nil { - log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc call failed ", err.Error()) - return resp, http.WrapError(constant.ErrDB) - } - if cacheResp.CommonResp.ErrCode != 0 { - log.NewError(req.OperationID, "DelGroupMemberIDListFromCache rpc logic call failed ", cacheResp.String()) - return resp, http.WrapError(constant.ErrDB) - } - if err := rocksCache.DelGroupMemberListHashFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - if err := rocksCache.DelGroupMemberNumFromCache(req.GroupID); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) - } - - chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, "admin add you to group", resp.Success) - return resp, nil -} - func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup.GetUserReqApplicationListReq) (*pbGroup.GetUserReqApplicationListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetUserReqApplicationListResp{} diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go deleted file mode 100644 index 58a7e7d4e..000000000 --- a/internal/rpc/message_cms/message_cms.go +++ /dev/null @@ -1,182 +0,0 @@ -package messageCMS - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - errors "Open_IM/pkg/common/http" - "context" - "strconv" - - "Open_IM/pkg/common/log" - - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbMessageCMS "Open_IM/pkg/proto/message_cms" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" - - "Open_IM/pkg/utils" - - "net" - "strings" - - "google.golang.org/grpc" -) - -type messageCMSServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewMessageCMSServer(port int) *messageCMSServer { - log.NewPrivateLog(constant.LogFileName) - return &messageCMSServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImMessageCMSName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *messageCMSServer) Run() { - log.NewInfo("0", "messageCMS rpc start ") - - listenIP := "" - if config.Config.ListenIP == "" { - listenIP = "0.0.0.0" - } else { - listenIP = config.Config.ListenIP - } - address := listenIP + ":" + strconv.Itoa(s.rpcPort) - - //listener network - listener, err := net.Listen("tcp", address) - if err != nil { - panic("listening err:" + err.Error() + s.rpcRegisterName) - } - log.NewInfo("0", "listen network success, ", address, listener) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbMessageCMS.RegisterMessageCMSServer(srv, s) - rpcRegisterIP := config.Config.RpcRegisterIP - if config.Config.RpcRegisterIP == "" { - rpcRegisterIP, err = utils.GetLocalIP() - if err != nil { - log.Error("", "GetLocalIP failed ", err.Error()) - } - } - log.NewInfo("", "rpcRegisterIP", rpcRegisterIP) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) - panic(utils.Wrap(err, "register message_cms module rpc to etcd err")) - } - err = srv.Serve(listener) - if err != nil { - log.NewError("0", "Serve failed ", err.Error()) - return - } - log.NewInfo("0", "message cms rpc success") -} - -func (s *messageCMSServer) BoradcastMessage(_ context.Context, req *pbMessageCMS.BoradcastMessageReq) (*pbMessageCMS.BoradcastMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "BoradcastMessage", req.String()) - resp := &pbMessageCMS.BoradcastMessageResp{} - return resp, errors.WrapError(constant.ErrDB) -} - -func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetChatLogsReq) (*pbMessageCMS.GetChatLogsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) - resp := &pbMessageCMS.GetChatLogsResp{} - time, err := utils.TimeStringToTime(req.Date) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) - } - chatLog := db.ChatLog{ - Content: req.Content, - SendTime: time, - ContentType: req.ContentType, - SessionType: req.SessionType, - } - switch chatLog.SessionType { - case constant.SingleChatType: - chatLog.SendID = req.UserId - case constant.GroupChatType: - chatLog.RecvID = req.GroupId - chatLog.SendID = req.UserId - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "chat_log: ", chatLog) - nums, err := imdb.GetChatLogCount(chatLog) - resp.ChatLogsNum = int32(nums) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLogCount", err.Error()) - } - chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, chatLog := range chatLogs { - pbChatLog := &pbMessageCMS.ChatLogs{ - SessionType: chatLog.SessionType, - ContentType: chatLog.ContentType, - SearchContent: req.Content, - WholeContent: chatLog.Content, - Date: chatLog.CreateTime.String(), - SenderNickName: chatLog.SenderNickname, - SenderId: chatLog.SendID, - } - if chatLog.SenderNickname == "" { - sendUser, err := imdb.GetUserByUserID(chatLog.SendID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) - continue - } - pbChatLog.SenderNickName = sendUser.Nickname - } - switch chatLog.SessionType { - case constant.SingleChatType: - recvUser, err := imdb.GetUserByUserID(chatLog.RecvID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) - continue - } - pbChatLog.ReciverId = recvUser.UserID - pbChatLog.ReciverNickName = recvUser.Nickname - - case constant.GroupChatType: - group, err := imdb.GetGroupInfoByGroupID(chatLog.RecvID) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") - continue - } - pbChatLog.GroupId = group.GroupID - pbChatLog.GroupName = group.GroupName - } - resp.ChatLogs = append(resp.ChatLogs, pbChatLog) - } - resp.Pagination = &open_im_sdk.ResponsePagination{ - CurrentPage: req.Pagination.PageNumber, - ShowNumber: req.Pagination.ShowNumber, - } - - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp output: ", resp.String()) - return resp, nil -} - -func (s *messageCMSServer) MassSendMessage(_ context.Context, req *pbMessageCMS.MassSendMessageReq) (*pbMessageCMS.MassSendMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "MassSendMessage", req.String()) - resp := &pbMessageCMS.MassSendMessageResp{} - return resp, nil -} - -func (s *messageCMSServer) WithdrawMessage(_ context.Context, req *pbMessageCMS.WithdrawMessageReq) (*pbMessageCMS.WithdrawMessageResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "WithdrawMessage", req.String()) - resp := &pbMessageCMS.WithdrawMessageResp{} - return resp, nil -} diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go deleted file mode 100644 index 8947c6a74..000000000 --- a/internal/rpc/statistics/statistics.go +++ /dev/null @@ -1,399 +0,0 @@ -package statistics - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "context" - "strconv" - "sync" - "time" - - //"Open_IM/pkg/common/constant" - //"Open_IM/pkg/common/db" - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - - //cp "Open_IM/pkg/common/utils" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbStatistics "Open_IM/pkg/proto/statistics" - - //open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" - //"context" - errors "Open_IM/pkg/common/http" - "net" - "strings" - - "google.golang.org/grpc" -) - -type statisticsServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewStatisticsServer(port int) *statisticsServer { - log.NewPrivateLog(constant.LogFileName) - return &statisticsServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *statisticsServer) Run() { - log.NewInfo("0", "Statistics rpc start ") - - listenIP := "" - if config.Config.ListenIP == "" { - listenIP = "0.0.0.0" - } else { - listenIP = config.Config.ListenIP - } - address := listenIP + ":" + strconv.Itoa(s.rpcPort) - - //listener network - listener, err := net.Listen("tcp", address) - if err != nil { - panic("listening err:" + err.Error() + s.rpcRegisterName) - } - log.NewInfo("0", "listen network success, ", address, listener) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbStatistics.RegisterUserServer(srv, s) - rpcRegisterIP := config.Config.RpcRegisterIP - if config.Config.RpcRegisterIP == "" { - rpcRegisterIP, err = utils.GetLocalIP() - if err != nil { - log.Error("", "GetLocalIP failed ", err.Error()) - } - } - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), rpcRegisterIP, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.NewError("0", "RegisterEtcd failed ", err.Error()) - panic(utils.Wrap(err, "register statistics module rpc to etcd err")) - } - err = srv.Serve(listener) - if err != nil { - log.NewError("0", "Serve failed ", err.Error()) - return - } - log.NewInfo("0", "statistics rpc success") -} - -func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.GetActiveGroupReq) (*pbStatistics.GetActiveGroupResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req", req.String()) - resp := &pbStatistics.GetActiveGroupResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) - activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, activeGroup := range activeGroups { - resp.Groups = append(resp.Groups, - &pbStatistics.GroupResp{ - GroupName: activeGroup.Name, - GroupId: activeGroup.Id, - MessageNum: int32(activeGroup.MessageNum), - }) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) - return resp, nil -} - -func (s *statisticsServer) GetActiveUser(_ context.Context, req *pbStatistics.GetActiveUserReq) (*pbStatistics.GetActiveUserResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetActiveUserResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) - activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - for _, activeUser := range activeUsers { - resp.Users = append(resp.Users, - &pbStatistics.UserResp{ - UserId: activeUser.Id, - NickName: activeUser.Name, - MessageNum: int32(activeUser.MessageNum), - }, - ) - } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) - return resp, nil -} - -func ParseTimeFromTo(from, to string) (time.Time, time.Time, error) { - var fromTime time.Time - var toTime time.Time - fromTime, err := utils.TimeStringToTime(from) - if err != nil { - return fromTime, toTime, err - } - toTime, err = utils.TimeStringToTime(to) - if err != nil { - return fromTime, toTime, err - } - return fromTime, toTime, nil -} - -func isInOneMonth(from, to time.Time) bool { - return from.Month() == to.Month() && from.Year() == to.Year() -} - -func GetRangeDate(from, to time.Time) [][2]time.Time { - interval := to.Sub(from) - var times [][2]time.Time - switch { - // today - case interval == 0: - times = append(times, [2]time.Time{ - from, from.Add(time.Hour * 24), - }) - // days - case isInOneMonth(from, to): - for i := 0; ; i++ { - fromTime := from.Add(time.Hour * 24 * time.Duration(i)) - toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) - if toTime.After(to.Add(time.Hour * 24)) { - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - // month - case !isInOneMonth(from, to): - if to.Sub(from) < time.Hour*24*30 { - for i := 0; ; i++ { - fromTime := from.Add(time.Hour * 24 * time.Duration(i)) - toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) - if toTime.After(to.Add(time.Hour * 24)) { - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - } else { - for i := 0; ; i++ { - if i == 0 { - fromTime := from - toTime := getFirstDateOfNextNMonth(fromTime, 1) - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } else { - fromTime := getFirstDateOfNextNMonth(from, i) - toTime := getFirstDateOfNextNMonth(fromTime, 1) - if toTime.After(to) { - toTime = to - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - break - } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } - - } - } - } - return times -} - -func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { - lastOfMonth := time.Date(currentTime.Year(), currentTime.Month(), 1, 0, 0, 0, 0, currentTime.Location()).AddDate(0, n, 0) - return lastOfMonth -} - -func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatistics.GetGroupStatisticsReq) (*pbStatistics.GetGroupStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetGroupStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) - return resp, errors.WrapError(constant.ErrDB) - } - totalGroupNum, err := imdb.GetTotalGroupNum() - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.IncreaseGroupNum = increaseGroupNum - resp.TotalGroupNum = totalGroupNum - times := GetRangeDate(fromTime, toTime) - log.NewDebug(req.OperationID, "times:", times) - wg := &sync.WaitGroup{} - resp.IncreaseGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.TotalGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.IncreaseGroupNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetGroupNum(v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.TotalGroupNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} - -func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatistics.GetMessageStatisticsReq) (*pbStatistics.GetMessageStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbStatistics.GetMessageStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) - resp.PrivateMessageNum = privateMessageNum - resp.GroupMessageNum = groupMessageNum - times := GetRangeDate(fromTime, toTime) - resp.GroupMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.PrivateMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg := &sync.WaitGroup{} - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - - num, err := imdb.GetPrivateMessageNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.PrivateMessageNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetGroupMessageNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.GroupMessageNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - return resp, nil -} - -func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistics.GetUserStatisticsReq) (*pbStatistics.GetUserStatisticsResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbStatistics.GetUserStatisticsResp{} - fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) - return resp, errors.WrapError(constant.ErrArgs) - } - activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - totalUserNum, err := imdb.GetTotalUserNum() - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) - } - resp.ActiveUserNum = activeUserNum - resp.TotalUserNum = totalUserNum - resp.IncreaseUserNum = increaseUserNum - times := GetRangeDate(fromTime, toTime) - resp.TotalUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.ActiveUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - resp.IncreaseUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - wg := &sync.WaitGroup{} - wg.Add(len(times)) - for i, v := range times { - go func(wg *sync.WaitGroup, index int, v [2]time.Time) { - defer wg.Done() - num, err := imdb.GetActiveUserNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.ActiveUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - - num, err = imdb.GetTotalUserNumByDate(v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) - } - resp.TotalUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - num, err = imdb.GetIncreaseUserNum(v[0], v[1]) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) - } - resp.IncreaseUserNumList[index] = &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - } - }(wg, i, v) - } - wg.Wait() - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) - return resp, nil -} diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index bdd375d1a..bca998291 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -6,7 +6,7 @@ import ( ) type AdminLoginRequest struct { - AdminName string `json:"adminName" binding:"required"` + AdminName string `json:"adminID" binding:"required"` Secret string `json:"secret" binding:"required"` OperationID string `json:"operationID" binding:"required"` } diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 5296478b6..416e040b5 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,9 +1,8 @@ package cms_api_struct type GroupResponse struct { - GroupOwnerName string `json:"GroupOwnerName"` - GroupOwnerID string `json:"GroupOwnerID"` - //*server_api_params.GroupInfo + GroupOwnerName string `json:"GroupOwnerName"` + GroupOwnerID string `json:"GroupOwnerID"` GroupID string `json:"groupID"` GroupName string `json:"groupName"` Notification string `json:"notification"` @@ -23,27 +22,9 @@ type GroupResponse struct { NotificationUserID string `json:"notificationUserID"` } -type GetGroupByIDRequest struct { - GroupID string `form:"groupID" binding:"required"` -} - -type GetGroupByIDResponse struct { - GroupResponse -} - -type GetGroupRequest struct { - GroupName string `form:"groupName" binding:"required"` - RequestPagination -} - -type GetGroupResponse struct { - Groups []GroupResponse `json:"groups"` - GroupNums int `json:"groupNums"` - ResponsePagination -} - type GetGroupsRequest struct { RequestPagination + OperationID string `json:"operationID"` } type GetGroupsResponse struct { @@ -52,55 +33,10 @@ type GetGroupsResponse struct { ResponsePagination } -type CreateGroupRequest struct { - GroupName string `json:"groupName" binding:"required"` - GroupMasterId string `json:"groupOwnerID" binding:"required"` - GroupMembers []string `json:"groupMembers" binding:"required"` -} - -type CreateGroupResponse struct { -} - -type SetGroupMasterRequest struct { - GroupId string `json:"groupID" binding:"required"` - UserId string `json:"userID" binding:"required"` -} - -type SetGroupMasterResponse struct { -} - -type SetGroupMemberRequest struct { - GroupId string `json:"groupID" binding:"required"` - UserId string `json:"userID" binding:"required"` -} - -type SetGroupMemberRespones struct { -} - -type BanGroupChatRequest struct { - GroupId string `json:"groupID" binding:"required"` -} - -type BanGroupChatResponse struct { -} - -type BanPrivateChatRequest struct { - GroupId string `json:"groupID" binding:"required"` -} - -type BanPrivateChatResponse struct { -} - -type DeleteGroupRequest struct { - GroupId string `json:"groupID" binding:"required"` -} - -type DeleteGroupResponse struct { -} - type GetGroupMembersRequest struct { - GroupID string `form:"groupID" binding:"required"` - UserName string `form:"userName"` + GroupID string `form:"groupID" binding:"required"` + UserName string `form:"userName"` + OperationID string `json:"operationID"` RequestPagination } @@ -124,41 +60,3 @@ type GetGroupMembersResponse struct { ResponsePagination MemberNums int `json:"memberNums"` } - -type GroupMemberRequest struct { - GroupId string `json:"groupID" binding:"required"` - Members []string `json:"members" binding:"required"` -} - -type GroupMemberOperateResponse struct { - Success []string `json:"success"` - Failed []string `json:"failed"` -} - -type AddGroupMembersRequest struct { - GroupMemberRequest -} - -type AddGroupMembersResponse struct { - GroupMemberOperateResponse -} - -type RemoveGroupMembersRequest struct { - GroupMemberRequest -} - -type RemoveGroupMembersResponse struct { - GroupMemberOperateResponse -} - -type AlterGroupInfoRequest struct { - GroupID string `json:"groupID"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - ProfilePhoto string `json:"profilePhoto"` - GroupType int `json:"groupType"` -} - -type AlterGroupInfoResponse struct { -} diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index c4c433a1e..b994d07e0 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -17,63 +17,15 @@ type UserResponse struct { Gender int `json:"gender"` } -type GetUserRequest struct { - UserId string `form:"user_id" binding:"required"` -} - -type GetUserResponse struct { - UserResponse -} - -type GetUsersRequest struct { - RequestPagination -} - -type GetUsersResponse struct { - Users []*UserResponse `json:"users"` - ResponsePagination - UserNums int32 `json:"user_nums"` -} - -type GetUsersByNameRequest struct { - UserName string `form:"user_name" binding:"required"` - RequestPagination -} - -type GetUsersByNameResponse struct { - Users []*UserResponse `json:"users"` - ResponsePagination - UserNums int32 `json:"user_nums"` -} - -type ResignUserRequest struct { - UserId string `json:"user_id"` -} - -type ResignUserResponse struct { -} - -type AlterUserRequest struct { - UserId string `json:"user_id" binding:"required"` - Nickname string `json:"nickname"` - PhoneNumber string `json:"phone_number" validate:"len=11"` - Email string `json:"email"` - Birth string `json:"birth"` - Gender string `json:"gender"` - Photo string `json:"photo"` -} - -type AlterUserResponse struct { -} - type AddUserRequest struct { - PhoneNumber string `json:"phone_number" binding:"required"` - UserId string `json:"user_id" binding:"required"` + OperationID string `json:"operationID"` + PhoneNumber string `json:"phoneNumber" binding:"required"` + UserId string `json:"userID" binding:"required"` Name string `json:"name" binding:"required"` Email string `json:"email"` Birth string `json:"birth"` Gender string `json:"gender"` - Photo string `json:"photo"` + FaceURL string `json:"faceURL"` } type AddUserResponse struct { @@ -81,46 +33,34 @@ type AddUserResponse struct { type BlockUser struct { UserResponse - BeginDisableTime string `json:"begin_disable_time"` - EndDisableTime string `json:"end_disable_time"` + BeginDisableTime string `json:"beginDisableTime"` + EndDisableTime string `json:"endDisableTime"` } type BlockUserRequest struct { - UserId string `json:"user_id" binding:"required"` - EndDisableTime string `json:"end_disable_time" binding:"required"` + OperationID string `json:"operationID"` + UserID string `json:"userID" binding:"required"` + EndDisableTime string `json:"endDisableTime" binding:"required"` } type BlockUserResponse struct { } type UnblockUserRequest struct { - UserId string `json:"user_id" binding:"required"` + OperationID string `json:"operationID"` + UserID string `json:"userID" binding:"required"` } type UnBlockUserResponse struct { } type GetBlockUsersRequest struct { + OperationID string `json:"operationID"` RequestPagination } type GetBlockUsersResponse struct { - BlockUsers []BlockUser `json:"block_users"` + BlockUsers []BlockUser `json:"blockUsers"` ResponsePagination - UserNums int32 `json:"user_nums"` -} - -type GetBlockUserRequest struct { - UserId string `form:"user_id" binding:"required"` -} - -type GetBlockUserResponse struct { - BlockUser -} - -type DeleteUserRequest struct { - UserId string `json:"user_id" binding:"required"` -} - -type DeleteUserResponse struct { + UserNums int32 `json:"userNums"` } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 489c27c47..65be89ce3 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -227,17 +227,17 @@ type Black struct { type ChatLog struct { ServerMsgID string `gorm:"column:server_msg_id;primary_key;type:char(64)" json:"serverMsgID"` ClientMsgID string `gorm:"column:client_msg_id;type:char(64)" json:"clientMsgID"` - SendID string `gorm:"column:send_id;type:char(64)" json:"sendID"` - RecvID string `gorm:"column:recv_id;type:char(64)" json:"recvID"` + SendID string `gorm:"column:send_id;type:char(64);index:search" json:"sendID"` + RecvID string `gorm:"column:recv_id;type:char(64);index:search" json:"recvID"` SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255)" json:"senderFaceURL"` - SessionType int32 `gorm:"column:session_type" json:"sessionType"` + SessionType int32 `gorm:"column:session_type;;index:search" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` - ContentType int32 `gorm:"column:content_type" json:"contentType"` - Content string `gorm:"column:content;type:varchar(3000)" json:"content"` + ContentType int32 `gorm:"column:content_type;index:search" json:"contentType"` + Content string `gorm:"column:content;type:varchar(3000);index:search" json:"content"` Status int32 `gorm:"column:status" json:"status"` - SendTime time.Time `gorm:"column:send_time" json:"sendTime"` + SendTime time.Time `gorm:"column:send_time;;index:search" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 1279aad80..80000e1bd 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -1,6 +1,7 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" @@ -15,8 +16,10 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, if chatLog.SessionType != 0 { db = db.Where("session_type = ?", chatLog.SessionType) } - if chatLog.ContentType != 0 { + if chatLog.ContentType == 1 { db = db.Where("content_type = ?", chatLog.ContentType) + } else if chatLog.ContentType == 2 { + db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } if chatLog.SendID != "" { db = db.Where("send_id = ?", chatLog.SendID) diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go deleted file mode 100644 index cdbf04463..000000000 --- a/pkg/common/http/http_resp.go +++ /dev/null @@ -1,43 +0,0 @@ -package http - -import ( - "Open_IM/pkg/common/constant" - "fmt" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - //"Open_IM/pkg/cms_api_struct" - "net/http" - - "github.com/gin-gonic/gin" -) - -type BaseResp struct { - Code int32 `json:"code"` - ErrMsg string `json:"err_msg"` - Data interface{} `json:"data"` -} - -func RespHttp200(ctx *gin.Context, err error, data interface{}) { - var resp BaseResp - switch e := err.(type) { - case constant.ErrInfo: - resp.Code = e.ErrCode - resp.ErrMsg = e.ErrMsg - default: - s, ok := status.FromError(err) - if !ok { - fmt.Println("need grpc format error") - return - } - resp.Code = int32(s.Code()) - resp.ErrMsg = s.Message() - } - resp.Data = data - ctx.JSON(http.StatusOK, resp) -} - -// warp error -func WrapError(err constant.ErrInfo) error { - return status.Error(codes.Code(err.ErrCode), err.ErrMsg) -} diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 00fc7fe42..311feb3ca 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{0} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{1} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{2} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{3} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegis func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{4} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -267,7 +267,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{5} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -319,7 +319,7 @@ func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUse func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{6} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -358,7 +358,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{7} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -405,7 +405,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{8} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -464,7 +464,7 @@ func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } func (*GetChatLogsReq) ProtoMessage() {} func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{9} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{9} } func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) @@ -542,21 +542,23 @@ func (m *GetChatLogsReq) GetOperationID() string { type ChatLog struct { ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - StringClientMsgID string `protobuf:"bytes,2,opt,name=stringClientMsgID" json:"stringClientMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` RecvID string `protobuf:"bytes,4,opt,name=RecvID" json:"RecvID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,5,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,6,opt,name=SenderNickname" json:"SenderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - GroupName string `protobuf:"bytes,8,opt,name=GroupName" json:"GroupName,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=ContentType" json:"ContentType,omitempty"` - Content string `protobuf:"bytes,12,opt,name=Content" json:"Content,omitempty"` - Status int32 `protobuf:"varint,13,opt,name=Status" json:"Status,omitempty"` - SendTime int64 `protobuf:"varint,14,opt,name=SendTime" json:"SendTime,omitempty"` - CreateTime int64 `protobuf:"varint,15,opt,name=CreateTime" json:"CreateTime,omitempty"` - Ex string `protobuf:"bytes,16,opt,name=Ex" json:"Ex,omitempty"` + GroupID string `protobuf:"bytes,5,opt,name=groupID" json:"groupID,omitempty"` + RecvNickname string `protobuf:"bytes,6,opt,name=recvNickname" json:"recvNickname,omitempty"` + SenderPlatformID int32 `protobuf:"varint,7,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,8,opt,name=SenderNickname" json:"SenderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,9,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + GroupName string `protobuf:"bytes,10,opt,name=GroupName" json:"GroupName,omitempty"` + SessionType int32 `protobuf:"varint,11,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,12,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,13,opt,name=ContentType" json:"ContentType,omitempty"` + Content string `protobuf:"bytes,14,opt,name=Content" json:"Content,omitempty"` + Status int32 `protobuf:"varint,15,opt,name=Status" json:"Status,omitempty"` + SendTime int64 `protobuf:"varint,16,opt,name=SendTime" json:"SendTime,omitempty"` + CreateTime int64 `protobuf:"varint,17,opt,name=CreateTime" json:"CreateTime,omitempty"` + Ex string `protobuf:"bytes,18,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -566,7 +568,7 @@ func (m *ChatLog) Reset() { *m = ChatLog{} } func (m *ChatLog) String() string { return proto.CompactTextString(m) } func (*ChatLog) ProtoMessage() {} func (*ChatLog) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{10} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{10} } func (m *ChatLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChatLog.Unmarshal(m, b) @@ -593,9 +595,9 @@ func (m *ChatLog) GetServerMsgID() string { return "" } -func (m *ChatLog) GetStringClientMsgID() string { +func (m *ChatLog) GetClientMsgID() string { if m != nil { - return m.StringClientMsgID + return m.ClientMsgID } return "" } @@ -614,6 +616,20 @@ func (m *ChatLog) GetRecvID() string { return "" } +func (m *ChatLog) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *ChatLog) GetRecvNickname() string { + if m != nil { + return m.RecvNickname + } + return "" +} + func (m *ChatLog) GetSenderPlatformID() int32 { if m != nil { return m.SenderPlatformID @@ -712,7 +728,7 @@ func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } func (*GetChatLogsResp) ProtoMessage() {} func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{11} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{11} } func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) @@ -772,7 +788,7 @@ func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } func (*StatisticsReq) ProtoMessage() {} func (*StatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{12} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{12} } func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) @@ -818,7 +834,7 @@ func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } func (*GetActiveUserReq) ProtoMessage() {} func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{13} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{13} } func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) @@ -865,7 +881,7 @@ func (m *UserResp) Reset() { *m = UserResp{} } func (m *UserResp) String() string { return proto.CompactTextString(m) } func (*UserResp) ProtoMessage() {} func (*UserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{14} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{14} } func (m *UserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserResp.Unmarshal(m, b) @@ -918,7 +934,7 @@ func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } func (*GetActiveUserResp) ProtoMessage() {} func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{15} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{15} } func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) @@ -964,7 +980,7 @@ func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupReq) ProtoMessage() {} func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{16} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{16} } func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) @@ -1012,7 +1028,7 @@ func (m *GroupResp) Reset() { *m = GroupResp{} } func (m *GroupResp) String() string { return proto.CompactTextString(m) } func (*GroupResp) ProtoMessage() {} func (*GroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{17} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{17} } func (m *GroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResp.Unmarshal(m, b) @@ -1072,7 +1088,7 @@ func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupResp) ProtoMessage() {} func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{18} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{18} } func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) @@ -1118,7 +1134,7 @@ func (m *DateNumList) Reset() { *m = DateNumList{} } func (m *DateNumList) String() string { return proto.CompactTextString(m) } func (*DateNumList) ProtoMessage() {} func (*DateNumList) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{19} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{19} } func (m *DateNumList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DateNumList.Unmarshal(m, b) @@ -1164,7 +1180,7 @@ func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsReq) ProtoMessage() {} func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{20} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{20} } func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) @@ -1213,7 +1229,7 @@ func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsRe func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsResp) ProtoMessage() {} func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{21} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{21} } func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) @@ -1280,7 +1296,7 @@ func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsReq) ProtoMessage() {} func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{22} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{22} } func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) @@ -1329,7 +1345,7 @@ func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsResp) ProtoMessage() {} func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{23} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{23} } func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) @@ -1396,7 +1412,7 @@ func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsReq) ProtoMessage() {} func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{24} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{24} } func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) @@ -1447,7 +1463,7 @@ func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsResp) ProtoMessage() {} func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_a6bac7cb5a282446, []int{25} + return fileDescriptor_admin_cms_521fdb68576e364f, []int{25} } func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) @@ -1915,98 +1931,99 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_a6bac7cb5a282446) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_521fdb68576e364f) } -var fileDescriptor_admin_cms_a6bac7cb5a282446 = []byte{ - // 1416 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xcd, 0x6e, 0xdb, 0xc6, - 0x13, 0x07, 0x25, 0xcb, 0xb2, 0x46, 0xb1, 0x63, 0x6f, 0xec, 0x84, 0x51, 0xf2, 0xcf, 0x5f, 0x66, - 0x93, 0x42, 0x2d, 0x52, 0xa9, 0x70, 0xd0, 0x53, 0x81, 0x14, 0x8e, 0x94, 0xa8, 0x0a, 0xac, 0xc4, - 0x60, 0x92, 0x02, 0x6d, 0xd1, 0x08, 0xac, 0xb4, 0x56, 0x09, 0x5b, 0xe4, 0x9a, 0xbb, 0x72, 0x1c, - 0x14, 0xbd, 0xe6, 0xd2, 0x7b, 0x0f, 0x3d, 0xf6, 0x15, 0xfa, 0x04, 0x3d, 0xf6, 0x31, 0x8a, 0x3e, - 0x47, 0x81, 0x62, 0x77, 0xf9, 0xb1, 0x4b, 0xd2, 0x92, 0xec, 0xa0, 0xbe, 0x71, 0x66, 0xe7, 0x63, - 0xe7, 0xf7, 0x9b, 0x59, 0x2e, 0x09, 0x37, 0x9d, 0xd1, 0xc4, 0xf5, 0x06, 0xc3, 0x09, 0x6d, 0xc5, - 0x4f, 0x4d, 0x12, 0xf8, 0xcc, 0x47, 0x95, 0x58, 0x51, 0xdb, 0x7e, 0x4e, 0xb0, 0x37, 0xe8, 0xf5, - 0x5b, 0xe4, 0x70, 0xdc, 0x12, 0xab, 0x2d, 0x3a, 0x3a, 0x1c, 0xbc, 0xa1, 0xad, 0x37, 0xa1, 0xb5, - 0xf5, 0x10, 0xa0, 0xed, 0x4f, 0x26, 0xbe, 0x67, 0x63, 0x4a, 0x90, 0x09, 0x65, 0x1c, 0x04, 0x6d, - 0x7f, 0x84, 0x4d, 0xa3, 0x6e, 0x34, 0x4a, 0x76, 0x24, 0xa2, 0xeb, 0xb0, 0x8c, 0x83, 0xa0, 0x4f, - 0xc7, 0x66, 0xa1, 0x6e, 0x34, 0x2a, 0x76, 0x28, 0x59, 0x43, 0x58, 0xdd, 0xe5, 0xf9, 0xf6, 0xfc, - 0xb1, 0xeb, 0xd9, 0xf8, 0x18, 0xd5, 0xa1, 0xfa, 0x9c, 0xe0, 0xc0, 0x61, 0xae, 0xef, 0xf5, 0x3a, - 0x22, 0x4c, 0xc5, 0x56, 0x55, 0x3c, 0x89, 0x70, 0xe9, 0x75, 0xc2, 0x58, 0x91, 0xc8, 0x93, 0xbc, - 0xc0, 0xc3, 0x00, 0x33, 0xb3, 0x28, 0x93, 0x48, 0xc9, 0xfa, 0x0e, 0xd6, 0xd4, 0x24, 0x94, 0xa0, - 0x4d, 0x28, 0x31, 0xff, 0x10, 0x7b, 0x61, 0x7c, 0x29, 0xa0, 0xcf, 0x00, 0x86, 0x71, 0x31, 0x22, - 0x78, 0x75, 0x67, 0xab, 0x99, 0x00, 0x94, 0x54, 0x6a, 0x2b, 0x86, 0x16, 0x86, 0xed, 0xdd, 0xd1, - 0xe8, 0x15, 0xc5, 0x81, 0x8d, 0xc7, 0x2e, 0x65, 0x38, 0xd8, 0x1d, 0x8d, 0x9e, 0x04, 0x2e, 0xf6, - 0x46, 0xbd, 0xce, 0x9e, 0x4b, 0x59, 0x58, 0x97, 0x9f, 0xad, 0x4b, 0x51, 0xa1, 0x3b, 0x00, 0x53, - 0x8a, 0x03, 0xe9, 0x62, 0x16, 0xea, 0xc5, 0x46, 0xc5, 0x56, 0x34, 0xd6, 0xb7, 0x60, 0xcd, 0x4b, - 0x43, 0x49, 0xaa, 0x06, 0x63, 0xd1, 0x1a, 0xde, 0x19, 0x70, 0xd7, 0xc6, 0xa3, 0xe9, 0x10, 0xbf, - 0x77, 0x1d, 0xb7, 0xa1, 0x12, 0x8b, 0x02, 0xc4, 0x92, 0x9d, 0x28, 0x52, 0x55, 0x16, 0x33, 0x55, - 0xbe, 0x86, 0x7b, 0x0b, 0xec, 0xe3, 0xe2, 0x85, 0xfe, 0x6c, 0xc0, 0x76, 0x17, 0xb3, 0xf7, 0xae, - 0xb2, 0x03, 0x40, 0x9c, 0xb1, 0xeb, 0x25, 0x65, 0x56, 0x77, 0xee, 0x36, 0x29, 0x0e, 0x4e, 0x70, - 0x30, 0x70, 0x88, 0x3b, 0x20, 0x4e, 0xe0, 0x4c, 0x68, 0xd3, 0xc6, 0xc7, 0x53, 0x4c, 0xd9, 0x7e, - 0x6c, 0x6b, 0x2b, 0x7e, 0xd6, 0xdf, 0x06, 0x58, 0xf3, 0x76, 0x43, 0x09, 0xfa, 0x02, 0xae, 0x08, - 0x88, 0xbc, 0x03, 0x5f, 0xc0, 0x66, 0xd4, 0x8b, 0x8d, 0xea, 0xce, 0xad, 0x9c, 0x74, 0xaf, 0x42, - 0x33, 0x5b, 0x73, 0x40, 0x8f, 0x73, 0x76, 0x7b, 0x2f, 0x77, 0xb7, 0x94, 0xf8, 0x1e, 0xc5, 0xf9, - 0xdb, 0x4d, 0x61, 0x5e, 0x5c, 0x14, 0xf3, 0xdf, 0x0a, 0xb0, 0xd6, 0xc5, 0xac, 0xfd, 0x83, 0xc3, - 0xf6, 0xfc, 0x31, 0xe5, 0x00, 0x9b, 0x50, 0x6e, 0xfb, 0x1e, 0xc3, 0x1e, 0x0b, 0xc1, 0x8d, 0x44, - 0x39, 0xc4, 0xbc, 0xfa, 0xe8, 0xa4, 0x90, 0x12, 0xd7, 0xdb, 0x78, 0x78, 0xd2, 0xeb, 0x44, 0xc3, - 0x2d, 0x25, 0x54, 0x83, 0x15, 0x6e, 0xf1, 0xd2, 0x9d, 0x60, 0x73, 0x49, 0xac, 0xc4, 0x32, 0xa7, - 0xf1, 0x05, 0xa6, 0xd4, 0xf5, 0xbd, 0x97, 0x6f, 0x09, 0x36, 0x4b, 0xa2, 0x19, 0x55, 0x15, 0xb7, - 0x08, 0x13, 0x0b, 0x8b, 0x65, 0x69, 0xa1, 0xa8, 0x38, 0xd1, 0x09, 0x1a, 0x66, 0xf9, 0x3c, 0x44, - 0x27, 0xcf, 0xe9, 0x63, 0x6d, 0x25, 0x73, 0xac, 0x59, 0xff, 0x14, 0xa1, 0x1c, 0x22, 0x24, 0xf7, - 0xcd, 0x13, 0xf4, 0xe9, 0x38, 0x69, 0x3f, 0x45, 0x85, 0xee, 0xc3, 0x06, 0x65, 0x81, 0xeb, 0x8d, - 0xdb, 0x47, 0x2e, 0xf6, 0x98, 0xb4, 0x93, 0x80, 0x65, 0x17, 0x14, 0x4c, 0x8b, 0x67, 0x60, 0xba, - 0xa4, 0x61, 0xfa, 0x31, 0xac, 0x73, 0x0b, 0x1c, 0xec, 0x1f, 0x39, 0xec, 0xc0, 0x0f, 0x26, 0xbd, - 0x4e, 0x08, 0x5e, 0x46, 0x8f, 0x3e, 0x84, 0x35, 0xa9, 0x7b, 0xe6, 0x0e, 0x0f, 0x3d, 0x67, 0x22, - 0x41, 0xac, 0xd8, 0x29, 0x2d, 0xba, 0x0b, 0xab, 0x52, 0xf3, 0xc4, 0x19, 0xe2, 0x57, 0xf6, 0x9e, - 0x80, 0xb2, 0x62, 0xeb, 0x4a, 0x7e, 0x78, 0x74, 0x03, 0x7f, 0x4a, 0x9e, 0xf1, 0x40, 0x12, 0xa5, - 0x44, 0x91, 0xe6, 0xb3, 0x92, 0xe5, 0xd3, 0x84, 0x72, 0x9f, 0x8e, 0x9f, 0x04, 0xfe, 0xc4, 0x04, - 0xf9, 0x06, 0x0a, 0xc5, 0x34, 0xd3, 0xd5, 0x2c, 0xd3, 0x4a, 0x4f, 0x5e, 0xc9, 0xf6, 0x24, 0x73, - 0xd8, 0x94, 0x9a, 0xab, 0xc2, 0x2d, 0x94, 0xb4, 0xde, 0x5b, 0xab, 0x1b, 0x8d, 0xa2, 0xd2, 0x7b, - 0x77, 0x00, 0xda, 0x01, 0x76, 0x18, 0x16, 0xab, 0x57, 0xc5, 0xaa, 0xa2, 0x41, 0x6b, 0x50, 0x78, - 0x7c, 0x6a, 0xae, 0x8b, 0x44, 0x85, 0xc7, 0xa7, 0xd6, 0x5f, 0x06, 0x5c, 0xd5, 0x86, 0x84, 0x12, - 0xd4, 0x84, 0x95, 0x48, 0x0e, 0x67, 0x1e, 0xa9, 0xd3, 0x26, 0x97, 0xec, 0xd8, 0x86, 0x8f, 0xf9, - 0xfe, 0x45, 0xc7, 0x5c, 0x6f, 0xd6, 0x28, 0xe4, 0xb3, 0xe9, 0x44, 0xf4, 0x0c, 0x87, 0x2a, 0x51, - 0xf1, 0x83, 0x20, 0x99, 0x75, 0xd1, 0x3c, 0x67, 0x1f, 0x04, 0xc9, 0xb3, 0xf5, 0x00, 0x56, 0x39, - 0x72, 0x2e, 0x65, 0xee, 0x50, 0x1c, 0x03, 0x08, 0x96, 0x0e, 0x38, 0x57, 0xb2, 0xc3, 0xc5, 0x33, - 0x07, 0x86, 0xf9, 0x61, 0x2f, 0x17, 0x98, 0x6f, 0x31, 0x58, 0xef, 0x62, 0xb6, 0x3b, 0x64, 0xee, - 0x49, 0xf8, 0x52, 0x38, 0x46, 0x0f, 0x53, 0x81, 0xc2, 0xf3, 0xdf, 0x54, 0xb6, 0xa0, 0xad, 0xdb, - 0xa9, 0xbc, 0xa9, 0x71, 0x2c, 0x64, 0xc7, 0xf1, 0x35, 0xac, 0xc8, 0x64, 0x94, 0x70, 0x9a, 0x79, - 0x1b, 0x8b, 0x9e, 0x94, 0x3b, 0x8d, 0x65, 0xde, 0x1a, 0xe2, 0xcc, 0x1d, 0x45, 0xc7, 0x95, 0x94, - 0x38, 0xfd, 0x7d, 0x4c, 0xa9, 0x33, 0xc6, 0x09, 0x84, 0x8a, 0xc6, 0x9a, 0xc2, 0x46, 0xaa, 0x2a, - 0x4a, 0xd0, 0x47, 0x50, 0xe2, 0xcf, 0x11, 0xd9, 0xd7, 0x94, 0x72, 0x22, 0x1b, 0x5b, 0x5a, 0xa4, - 0x18, 0x28, 0x2c, 0xca, 0x80, 0x9a, 0x56, 0xcc, 0xd5, 0xe5, 0xa0, 0xf9, 0xab, 0x11, 0xce, 0xb5, - 0x28, 0x53, 0x1b, 0x72, 0x23, 0x3d, 0xe4, 0x26, 0x94, 0x85, 0x10, 0x43, 0x1a, 0x89, 0xf3, 0x30, - 0xbd, 0x68, 0x57, 0xbe, 0x05, 0x94, 0xc6, 0x84, 0x12, 0x74, 0x1f, 0x96, 0x85, 0x10, 0x91, 0xb1, - 0xa9, 0x04, 0x8a, 0xad, 0xec, 0xd0, 0xe6, 0xa2, 0x74, 0x3c, 0x80, 0x6a, 0xc7, 0x61, 0x7c, 0xf3, - 0xe2, 0x35, 0x8d, 0x60, 0x89, 0x8b, 0xd1, 0x38, 0xf0, 0x67, 0xb4, 0x0e, 0x45, 0x5e, 0xad, 0xbc, - 0x48, 0xf1, 0x47, 0xeb, 0x47, 0xb8, 0xd1, 0xc5, 0x2c, 0xac, 0x5b, 0x67, 0xe2, 0xbf, 0x67, 0xf2, - 0x8f, 0x02, 0x98, 0xf9, 0xd9, 0x05, 0x66, 0x1b, 0xfb, 0x81, 0x7b, 0xe2, 0x30, 0xac, 0xf0, 0x24, - 0xbf, 0x04, 0xb2, 0x0b, 0xa8, 0x01, 0x57, 0x05, 0x7a, 0x8a, 0xad, 0xac, 0x32, 0xad, 0x46, 0x7b, - 0xb0, 0x95, 0x71, 0x8f, 0xef, 0x8f, 0xd5, 0x9d, 0xeb, 0x4a, 0x79, 0x0a, 0x9c, 0x76, 0xbe, 0x13, - 0xfa, 0x12, 0xae, 0xa5, 0x12, 0x88, 0x58, 0x4b, 0x33, 0x63, 0xe5, 0xb9, 0xa4, 0x58, 0x2f, 0x2d, - 0xde, 0x70, 0x5b, 0x5d, 0xcc, 0x44, 0xc0, 0xcb, 0xa6, 0xef, 0xf7, 0x02, 0x5c, 0xcf, 0xcb, 0x4d, - 0x09, 0x7f, 0xe9, 0xf7, 0xbc, 0x61, 0x80, 0x1d, 0x2a, 0xa7, 0x20, 0xe1, 0x2e, 0xa3, 0xe7, 0x2f, - 0xf3, 0x97, 0x3e, 0x73, 0x8e, 0x62, 0x43, 0x49, 0x9c, 0xae, 0x44, 0x4f, 0x61, 0x33, 0xed, 0xb9, - 0x00, 0x6b, 0xb9, 0x3e, 0xa8, 0x03, 0x1b, 0x5a, 0xf0, 0x05, 0x28, 0xcb, 0x3a, 0x5c, 0x94, 0xb0, - 0x53, 0xd8, 0x0c, 0x6f, 0xe9, 0x97, 0xcd, 0xd7, 0x2f, 0x45, 0xd1, 0x2b, 0xe9, 0xd4, 0x94, 0xf0, - 0xe9, 0x89, 0x80, 0xe2, 0xab, 0x09, 0x5b, 0x69, 0x35, 0x27, 0x2b, 0x79, 0xcf, 0x28, 0x64, 0x69, - 0x4a, 0x64, 0xc1, 0x15, 0x81, 0x57, 0x64, 0x24, 0x8f, 0x57, 0x4d, 0xc7, 0x27, 0x27, 0x15, 0x7c, - 0x91, 0xc9, 0xc9, 0x71, 0xe1, 0x74, 0x6a, 0xe9, 0x45, 0x9c, 0xd2, 0x6c, 0x3a, 0x33, 0x0e, 0xe8, - 0x11, 0xac, 0xab, 0xfb, 0x13, 0x41, 0x96, 0x67, 0x06, 0xc9, 0xd8, 0xa7, 0x5a, 0xa2, 0xbc, 0x60, - 0x4b, 0xec, 0xfc, 0x59, 0x86, 0x15, 0x61, 0xd4, 0xee, 0xbf, 0x40, 0xbb, 0x00, 0xc9, 0x0f, 0x06, - 0xa4, 0xd2, 0xaf, 0xfd, 0xdc, 0xa8, 0xdd, 0x3c, 0x63, 0x85, 0x12, 0xf4, 0x13, 0xdc, 0x99, 0xfd, - 0x75, 0x8f, 0xee, 0x6b, 0xce, 0x73, 0xfe, 0x37, 0xd4, 0x3e, 0x39, 0x87, 0x35, 0x25, 0xe8, 0x9d, - 0x01, 0xdb, 0x73, 0xbf, 0xbb, 0x51, 0x4b, 0x09, 0xba, 0xc8, 0xdf, 0x82, 0xda, 0xa7, 0xe7, 0x73, - 0x90, 0x38, 0xcc, 0xfe, 0x20, 0xd6, 0x70, 0x98, 0xfb, 0x25, 0xaf, 0xe1, 0xb0, 0xc0, 0x97, 0x76, - 0x07, 0xaa, 0xca, 0x25, 0x1c, 0xdd, 0xd4, 0xbd, 0x95, 0x2f, 0xd8, 0x5a, 0xed, 0xac, 0x25, 0x4a, - 0xd0, 0x53, 0x58, 0xd5, 0x2e, 0x77, 0xe8, 0x96, 0x6e, 0xac, 0x5d, 0x66, 0x6b, 0xb7, 0xcf, 0x5e, - 0xa4, 0x04, 0xf5, 0xc5, 0xb7, 0xb3, 0x72, 0x3b, 0x41, 0xb9, 0xf6, 0xd1, 0x65, 0xae, 0xf6, 0xbf, - 0x19, 0xab, 0x94, 0xa0, 0x81, 0x38, 0xca, 0x32, 0xaf, 0x6f, 0x64, 0xe9, 0x6e, 0x79, 0xb7, 0x8b, - 0xda, 0x07, 0x73, 0x6d, 0x28, 0x41, 0x5f, 0x8b, 0xdb, 0x54, 0xea, 0x05, 0x83, 0xea, 0xba, 0x6b, - 0xf6, 0xdd, 0x57, 0xdb, 0x9e, 0x63, 0x41, 0x09, 0xfa, 0x4a, 0x5c, 0x5e, 0xf5, 0xb3, 0x10, 0xfd, - 0x3f, 0x4b, 0xb0, 0x1e, 0xb8, 0x3e, 0xdb, 0x80, 0x92, 0x47, 0x37, 0xbe, 0xd9, 0x6a, 0x26, 0xff, - 0x41, 0x3f, 0x8f, 0x9f, 0xbe, 0x5f, 0x16, 0x3f, 0x39, 0x1f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, - 0xcd, 0xf8, 0xf8, 0x38, 0x2f, 0x15, 0x00, 0x00, +var fileDescriptor_admin_cms_521fdb68576e364f = []byte{ + // 1436 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0x13, 0xc7, + 0x17, 0xd7, 0xda, 0x71, 0x1c, 0x1f, 0x93, 0x90, 0x1c, 0x12, 0x58, 0x0c, 0x7f, 0xfe, 0xce, 0x16, + 0xaa, 0xb4, 0xa2, 0x49, 0x15, 0xd4, 0xab, 0x4a, 0x54, 0x21, 0x86, 0xd4, 0x28, 0x86, 0x68, 0x81, + 0x4a, 0x6d, 0x55, 0xac, 0xad, 0x3d, 0xb8, 0xab, 0xe0, 0xdd, 0x61, 0x67, 0x1c, 0x40, 0x55, 0x6f, + 0xb9, 0xe9, 0x7d, 0x2f, 0x7a, 0xd9, 0x17, 0xe8, 0x45, 0x9f, 0xa0, 0x97, 0x7d, 0x8c, 0xaa, 0x2f, + 0x52, 0xcd, 0xcc, 0x7e, 0xcc, 0xec, 0x6e, 0x6c, 0x13, 0x54, 0xee, 0xe6, 0x9c, 0x39, 0x1f, 0x73, + 0x7e, 0xe7, 0x63, 0x66, 0x17, 0x2e, 0x7b, 0xc3, 0xb1, 0x1f, 0xf4, 0x07, 0x63, 0xb6, 0x93, 0xae, + 0xb6, 0x69, 0x14, 0xf2, 0x10, 0x1b, 0x29, 0xa3, 0xb5, 0xf9, 0x90, 0x92, 0xa0, 0xdf, 0xed, 0xed, + 0xd0, 0xe3, 0xd1, 0x8e, 0xdc, 0xdd, 0x61, 0xc3, 0xe3, 0xfe, 0x4b, 0xb6, 0xf3, 0x32, 0x96, 0x76, + 0x6e, 0x03, 0xec, 0x87, 0xe3, 0x71, 0x18, 0xb8, 0x84, 0x51, 0xb4, 0xa1, 0x4e, 0xa2, 0x68, 0x3f, + 0x1c, 0x12, 0xdb, 0x6a, 0x5b, 0x5b, 0x35, 0x37, 0x21, 0xf1, 0x22, 0x2c, 0x92, 0x28, 0xea, 0xb1, + 0x91, 0x5d, 0x69, 0x5b, 0x5b, 0x0d, 0x37, 0xa6, 0x9c, 0x01, 0x2c, 0xef, 0x09, 0x7f, 0x87, 0xe1, + 0xc8, 0x0f, 0x5c, 0xf2, 0x02, 0xdb, 0xd0, 0x7c, 0x48, 0x49, 0xe4, 0x71, 0x3f, 0x0c, 0xba, 0x1d, + 0x69, 0xa6, 0xe1, 0xea, 0x2c, 0xe1, 0x44, 0xaa, 0x74, 0x3b, 0xb1, 0xad, 0x84, 0x14, 0x4e, 0x1e, + 0x91, 0x41, 0x44, 0xb8, 0x5d, 0x55, 0x4e, 0x14, 0xe5, 0x7c, 0x07, 0x2b, 0xba, 0x13, 0x46, 0x71, + 0x1d, 0x6a, 0x3c, 0x3c, 0x26, 0x41, 0x6c, 0x5f, 0x11, 0xf8, 0x19, 0xc0, 0x20, 0x0d, 0x46, 0x1a, + 0x6f, 0xee, 0x6e, 0x6c, 0x67, 0x00, 0x65, 0x91, 0xba, 0x9a, 0xa0, 0x43, 0x60, 0x73, 0x6f, 0x38, + 0x7c, 0xc2, 0x48, 0xe4, 0x92, 0x91, 0xcf, 0x38, 0x89, 0xf6, 0x86, 0xc3, 0x7b, 0x91, 0x4f, 0x82, + 0x61, 0xb7, 0x73, 0xe8, 0x33, 0x1e, 0xc7, 0x15, 0x16, 0xe3, 0xd2, 0x58, 0x78, 0x0d, 0x60, 0xc2, + 0x48, 0xa4, 0x54, 0xec, 0x4a, 0xbb, 0xba, 0xd5, 0x70, 0x35, 0x8e, 0xf3, 0x2d, 0x38, 0xb3, 0xdc, + 0x30, 0x9a, 0x8b, 0xc1, 0x9a, 0x37, 0x86, 0x37, 0x16, 0x5c, 0x77, 0xc9, 0x70, 0x32, 0x20, 0xef, + 0x1c, 0xc7, 0x55, 0x68, 0xa4, 0xa4, 0x04, 0xb1, 0xe6, 0x66, 0x8c, 0x5c, 0x94, 0xd5, 0x42, 0x94, + 0x4f, 0xe1, 0xc6, 0x1c, 0xe7, 0x38, 0x7b, 0xa0, 0x3f, 0x5b, 0xb0, 0x79, 0x40, 0xf8, 0x3b, 0x47, + 0xd9, 0x01, 0xa0, 0xde, 0xc8, 0x0f, 0xb2, 0x30, 0x9b, 0xbb, 0xd7, 0xb7, 0x19, 0x89, 0x4e, 0x48, + 0xd4, 0xf7, 0xa8, 0xdf, 0xa7, 0x5e, 0xe4, 0x8d, 0xd9, 0xb6, 0x4b, 0x5e, 0x4c, 0x08, 0xe3, 0x47, + 0xa9, 0xac, 0xab, 0xe9, 0x39, 0xff, 0x58, 0xe0, 0xcc, 0x3a, 0x0d, 0xa3, 0xf8, 0x05, 0x9c, 0x93, + 0x10, 0x05, 0xcf, 0x42, 0x09, 0x9b, 0xd5, 0xae, 0x6e, 0x35, 0x77, 0xaf, 0x94, 0xb8, 0x7b, 0x12, + 0x8b, 0xb9, 0x86, 0x02, 0xde, 0x2d, 0x39, 0xed, 0x8d, 0xd2, 0xd3, 0x32, 0x1a, 0x06, 0x8c, 0x94, + 0x1f, 0x37, 0x87, 0x79, 0x75, 0x5e, 0xcc, 0x7f, 0xab, 0xc0, 0xca, 0x01, 0xe1, 0xfb, 0x3f, 0x78, + 0xfc, 0x30, 0x1c, 0x31, 0x01, 0xb0, 0x0d, 0xf5, 0xfd, 0x30, 0xe0, 0x24, 0xe0, 0x31, 0xb8, 0x09, + 0xa9, 0x9a, 0x58, 0x44, 0x9f, 0x4c, 0x0a, 0x45, 0x09, 0xbe, 0x4b, 0x06, 0x27, 0xdd, 0x4e, 0xd2, + 0xdc, 0x8a, 0xc2, 0x16, 0x2c, 0x09, 0x89, 0xc7, 0xfe, 0x98, 0xd8, 0x0b, 0x72, 0x27, 0xa5, 0x45, + 0x1a, 0x1f, 0x11, 0xc6, 0xfc, 0x30, 0x78, 0xfc, 0x9a, 0x12, 0xbb, 0x26, 0x8b, 0x51, 0x67, 0x09, + 0x89, 0xd8, 0xb1, 0x94, 0x58, 0x54, 0x12, 0x1a, 0x4b, 0x24, 0x3a, 0x43, 0xc3, 0xae, 0xbf, 0x4d, + 0xa2, 0xb3, 0x75, 0x7e, 0xac, 0x2d, 0x15, 0xc6, 0x9a, 0xf3, 0xfb, 0x02, 0xd4, 0x63, 0x84, 0xd4, + 0xb9, 0x85, 0x83, 0x1e, 0x1b, 0x65, 0xe5, 0xa7, 0xb1, 0xe4, 0xb9, 0x9f, 0xfb, 0x24, 0xe0, 0x4a, + 0x42, 0x41, 0xa5, 0xb3, 0x34, 0x1c, 0xab, 0xa7, 0xe0, 0xb8, 0x60, 0xe0, 0x68, 0x43, 0x7d, 0x14, + 0x85, 0x13, 0xda, 0xed, 0x48, 0x9c, 0x1a, 0x6e, 0x42, 0xa2, 0x03, 0xe7, 0x22, 0x32, 0x38, 0x79, + 0xe0, 0x0f, 0x8e, 0x03, 0x6f, 0xac, 0x40, 0x6a, 0xb8, 0x06, 0x0f, 0x3f, 0x86, 0x55, 0x61, 0x9f, + 0x44, 0x47, 0xcf, 0x3d, 0xfe, 0x2c, 0x8c, 0xc6, 0xdd, 0x8e, 0xc4, 0xaa, 0xe6, 0x16, 0xf8, 0xf8, + 0x21, 0xac, 0x28, 0x5e, 0x6a, 0x51, 0xc1, 0x91, 0xe3, 0xe2, 0x75, 0x58, 0x56, 0x9c, 0x7b, 0xde, + 0x80, 0x3c, 0x71, 0x0f, 0xed, 0x86, 0x14, 0x33, 0x99, 0x62, 0xdc, 0x1c, 0x88, 0x83, 0x3e, 0x10, + 0x86, 0x40, 0x4a, 0x64, 0x8c, 0x7c, 0x05, 0x34, 0x8b, 0x15, 0x60, 0x43, 0xbd, 0xc7, 0x46, 0xf7, + 0xa2, 0x70, 0x6c, 0x9f, 0x53, 0x77, 0x56, 0x4c, 0xe6, 0x6b, 0x63, 0xb9, 0x58, 0x1b, 0x5a, 0x15, + 0xaf, 0x14, 0xab, 0x98, 0x7b, 0x7c, 0xc2, 0xec, 0xf3, 0x52, 0x2d, 0xa6, 0x8c, 0x6a, 0x5d, 0x6d, + 0x5b, 0x5b, 0x55, 0xad, 0x5a, 0xaf, 0x01, 0xec, 0x47, 0xc4, 0xe3, 0x44, 0xee, 0xae, 0xc9, 0x5d, + 0x8d, 0x83, 0x2b, 0x50, 0xb9, 0xfb, 0xca, 0x46, 0xe9, 0xa8, 0x72, 0xf7, 0x95, 0xf3, 0xb7, 0x05, + 0xe7, 0x8d, 0xb6, 0x62, 0x14, 0xb7, 0x61, 0x29, 0xa1, 0xe3, 0x29, 0x81, 0x7a, 0x7f, 0xaa, 0x2d, + 0x37, 0x95, 0x11, 0x83, 0xe1, 0xe8, 0xac, 0x83, 0xc1, 0x2c, 0xef, 0xc4, 0xe4, 0x83, 0xc9, 0x58, + 0x56, 0x9c, 0x80, 0x2a, 0x63, 0x89, 0xd1, 0x91, 0x4d, 0x07, 0x59, 0x7a, 0xa7, 0x8f, 0x8e, 0x6c, + 0xed, 0xdc, 0x82, 0x65, 0x81, 0x9c, 0xcf, 0xb8, 0x3f, 0x90, 0x83, 0x03, 0x61, 0xe1, 0x99, 0xc8, + 0x95, 0xea, 0x09, 0xb9, 0x16, 0xc0, 0xf0, 0x30, 0xee, 0x81, 0x0a, 0x0f, 0x1d, 0x0e, 0xab, 0x07, + 0x84, 0xef, 0x0d, 0xb8, 0x7f, 0x12, 0x5f, 0x23, 0x2f, 0xf0, 0x76, 0xce, 0x50, 0x7c, 0x63, 0xd8, + 0xda, 0x11, 0x8c, 0x7d, 0x37, 0xe7, 0x37, 0xd7, 0xc0, 0x95, 0x62, 0x03, 0x3f, 0x85, 0x25, 0xe5, + 0x8c, 0x51, 0x91, 0x66, 0x51, 0xc6, 0xb2, 0x26, 0xd5, 0x49, 0x53, 0x5a, 0x94, 0x86, 0x9c, 0xd2, + 0xc3, 0x64, 0xc0, 0x29, 0x4a, 0xa4, 0xbf, 0x47, 0x18, 0xf3, 0x46, 0x24, 0x83, 0x50, 0xe3, 0x38, + 0x13, 0x58, 0xcb, 0x45, 0xc5, 0x28, 0x7e, 0x04, 0x35, 0xb1, 0x4e, 0x92, 0x7d, 0x41, 0x0b, 0x27, + 0x91, 0x71, 0x95, 0x44, 0x2e, 0x03, 0x95, 0x79, 0x33, 0xa0, 0xbb, 0x95, 0x7d, 0xf5, 0x7e, 0xd0, + 0xfc, 0xd5, 0x8a, 0xfb, 0x5a, 0x86, 0x69, 0x34, 0xb9, 0x95, 0x6f, 0x72, 0x1b, 0xea, 0x92, 0x48, + 0x21, 0x4d, 0xc8, 0x59, 0x98, 0x9e, 0xb5, 0x2a, 0x5f, 0x03, 0xe6, 0x31, 0x61, 0x14, 0x6f, 0xc2, + 0xa2, 0x24, 0x92, 0x64, 0xac, 0x6b, 0x86, 0x52, 0x29, 0x37, 0x96, 0x39, 0x6b, 0x3a, 0x6e, 0x41, + 0xb3, 0xe3, 0x71, 0x71, 0x78, 0x79, 0xb1, 0x23, 0x2c, 0x08, 0x32, 0x69, 0x07, 0xb1, 0xc6, 0x55, + 0xa8, 0x8a, 0x68, 0xd5, 0xd3, 0x4b, 0x2c, 0x9d, 0x1f, 0xe1, 0xd2, 0x01, 0xe1, 0x71, 0xdc, 0x66, + 0x26, 0xfe, 0xfb, 0x4c, 0xfe, 0x59, 0x01, 0xbb, 0xdc, 0xbb, 0xc4, 0x6c, 0xed, 0x28, 0xf2, 0x4f, + 0x3c, 0x4e, 0xb4, 0x3c, 0xa9, 0x6f, 0x87, 0xe2, 0x06, 0x6e, 0xc1, 0x79, 0x89, 0x9e, 0x26, 0xab, + 0xa2, 0xcc, 0xb3, 0xf1, 0x10, 0x36, 0x0a, 0xea, 0xe9, 0x8b, 0xb3, 0xb9, 0x7b, 0x51, 0x0b, 0x4f, + 0x83, 0xd3, 0x2d, 0x57, 0xc2, 0x2f, 0xe1, 0x42, 0xce, 0x81, 0xb4, 0xb5, 0x30, 0xd5, 0x56, 0x99, + 0x4a, 0x2e, 0xeb, 0xb5, 0xf9, 0x0b, 0x6e, 0xe3, 0x80, 0x70, 0x69, 0xf0, 0x7d, 0xa7, 0xef, 0x8f, + 0x0a, 0x5c, 0x2c, 0xf3, 0xcd, 0xa8, 0xb8, 0xf4, 0xbb, 0xc1, 0x20, 0x22, 0x1e, 0x53, 0x5d, 0x90, + 0xe5, 0xae, 0xc0, 0x17, 0x97, 0xf9, 0xe3, 0x90, 0x7b, 0xcf, 0x53, 0x41, 0x95, 0x38, 0x93, 0x89, + 0xf7, 0x61, 0x3d, 0xaf, 0x39, 0x47, 0xd6, 0x4a, 0x75, 0xb0, 0x03, 0x6b, 0x86, 0xf1, 0x39, 0x52, + 0x56, 0x54, 0x38, 0x6b, 0xc2, 0x5e, 0xc1, 0x7a, 0xfc, 0xae, 0x7f, 0xdf, 0xf9, 0xfa, 0xa5, 0x2a, + 0x6b, 0x25, 0xef, 0x9a, 0x51, 0xd1, 0x3d, 0x09, 0x50, 0x62, 0x37, 0xcb, 0x56, 0x9e, 0x2d, 0x92, + 0x95, 0xdd, 0x33, 0x5a, 0xb2, 0x0c, 0xa6, 0x78, 0x17, 0x4a, 0xbc, 0x12, 0x21, 0x35, 0x5e, 0x0d, + 0x9e, 0xe8, 0x9c, 0x9c, 0xf1, 0x79, 0x3a, 0xa7, 0x44, 0x45, 0xa4, 0xd3, 0x70, 0x2f, 0xed, 0xd4, + 0xa6, 0xa7, 0xb3, 0xa0, 0x80, 0x77, 0x60, 0x55, 0x3f, 0x9f, 0x34, 0xb2, 0x38, 0xd5, 0x48, 0x41, + 0x3e, 0x57, 0x12, 0xf5, 0x39, 0x4b, 0x62, 0xf7, 0xaf, 0x3a, 0x2c, 0x49, 0xa1, 0xfd, 0xde, 0x23, + 0xdc, 0x03, 0xc8, 0x7e, 0x49, 0xa0, 0x9e, 0x7e, 0xe3, 0x77, 0x48, 0xeb, 0xf2, 0x29, 0x3b, 0x8c, + 0xe2, 0x4f, 0x70, 0x6d, 0xfa, 0xff, 0x00, 0xbc, 0x69, 0x28, 0xcf, 0xf8, 0x43, 0xd1, 0xfa, 0xe4, + 0x2d, 0xa4, 0x19, 0xc5, 0x37, 0x16, 0x6c, 0xce, 0xfc, 0x52, 0xc7, 0x1d, 0xcd, 0xe8, 0x3c, 0xff, + 0x17, 0x5a, 0x9f, 0xbe, 0x9d, 0x82, 0xc2, 0x61, 0xfa, 0x27, 0xb4, 0x81, 0xc3, 0xcc, 0x6f, 0x7f, + 0x03, 0x87, 0x39, 0xbe, 0xcd, 0x3b, 0xd0, 0xd4, 0x1e, 0xe1, 0x78, 0xd9, 0xd4, 0xd6, 0xbe, 0x79, + 0x5b, 0xad, 0xd3, 0xb6, 0x18, 0xc5, 0xfb, 0xb0, 0x6c, 0x3c, 0xee, 0xf0, 0x8a, 0x29, 0x6c, 0x3c, + 0x66, 0x5b, 0x57, 0x4f, 0xdf, 0x64, 0x14, 0x7b, 0xf2, 0x6b, 0x5b, 0x7b, 0x9d, 0x60, 0xa9, 0x7c, + 0xf2, 0x98, 0x6b, 0xfd, 0x6f, 0xca, 0x2e, 0xa3, 0xd8, 0x97, 0xa3, 0xac, 0x70, 0x7d, 0xa3, 0x63, + 0xaa, 0x95, 0xbd, 0x2e, 0x5a, 0x1f, 0xcc, 0x94, 0x61, 0x14, 0xbf, 0x96, 0xaf, 0xa9, 0xdc, 0x05, + 0x83, 0x6d, 0x53, 0xb5, 0x78, 0xf7, 0xb5, 0x36, 0x67, 0x48, 0x30, 0x8a, 0x5f, 0xc9, 0xc7, 0xab, + 0x39, 0x0b, 0xf1, 0xff, 0xc5, 0x04, 0x9b, 0x86, 0xdb, 0xd3, 0x05, 0x18, 0xbd, 0x73, 0xe9, 0x9b, + 0x8d, 0xed, 0xec, 0xcf, 0xe9, 0xe7, 0xe9, 0xea, 0xfb, 0x45, 0xf9, 0x5b, 0xf4, 0xd6, 0xbf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x9c, 0x40, 0xb4, 0xf6, 0x61, 0x15, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index 381d8523d..c0118d7ba 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -65,21 +65,23 @@ message GetChatLogsReq { message ChatLog { string ServerMsgID = 1; - string stringClientMsgID = 2; + string ClientMsgID = 2; string SendID = 3; - string RecvID = 4; - int32 SenderPlatformID = 5; - string SenderNickname = 6; - string SenderFaceURL = 7; - string GroupName = 8; - int32 SessionType = 9; - int32 MsgFrom = 10; - int32 ContentType = 11; - string Content = 12; - int32 Status = 13; - int64 SendTime = 14; - int64 CreateTime = 15; - string Ex = 16; + string RecvID = 4; + string groupID = 5; + string recvNickname = 6; + int32 SenderPlatformID = 7; + string SenderNickname = 8; + string SenderFaceURL = 9; + string GroupName = 10; + int32 SessionType = 11; + int32 MsgFrom = 12; + int32 ContentType = 13; + string Content = 14; + int32 Status = 15; + int64 SendTime = 16; + int64 CreateTime = 17; + string Ex = 18; } message GetChatLogsResp { diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index d4cd55960..5fbfa123d 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{0} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{1} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -132,7 +132,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{2} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{3} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -254,7 +254,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{4} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -308,7 +308,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{5} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -362,7 +362,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{6} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -414,7 +414,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{7} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -454,7 +454,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{8} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{9} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -562,7 +562,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListReq) ProtoMessage() {} func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{10} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{10} } func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetUserReqApplicationListResp) ProtoMessage() {} func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{11} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{11} } func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b) @@ -664,7 +664,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{12} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{12} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -730,7 +730,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{13} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{13} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -773,7 +773,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{14} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{14} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -846,7 +846,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{15} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{15} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -889,7 +889,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{16} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{16} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -962,7 +962,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{17} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{17} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1002,7 +1002,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{18} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{18} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1054,7 +1054,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{19} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{19} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -1096,7 +1096,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{20} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1165,7 +1165,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{21} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{22} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1288,7 +1288,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{23} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1344,7 +1344,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{24} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1411,7 +1411,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{25} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1458,7 +1458,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{26} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1512,7 +1512,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{27} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1566,7 +1566,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{28} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{28} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1622,7 +1622,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{29} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{29} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1690,7 +1690,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{30} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{30} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1746,7 +1746,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{31} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{31} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1814,7 +1814,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{32} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{32} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1868,7 +1868,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} } func (m *CMSGroup) String() string { return proto.CompactTextString(m) } func (*CMSGroup) ProtoMessage() {} func (*CMSGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{33} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{33} } func (m *CMSGroup) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CMSGroup.Unmarshal(m, b) @@ -1909,117 +1909,11 @@ func (m *CMSGroup) GetGroupOwnerUserID() string { return "" } -type GetGroupReq struct { - GroupName string `protobuf:"bytes,1,opt,name=GroupName" json:"GroupName,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupReq) Reset() { *m = GetGroupReq{} } -func (m *GetGroupReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupReq) ProtoMessage() {} -func (*GetGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{34} -} -func (m *GetGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupReq.Unmarshal(m, b) -} -func (m *GetGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupReq.Merge(dst, src) -} -func (m *GetGroupReq) XXX_Size() int { - return xxx_messageInfo_GetGroupReq.Size(m) -} -func (m *GetGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupReq proto.InternalMessageInfo - -func (m *GetGroupReq) GetGroupName() string { - if m != nil { - return m.GroupName - } - return "" -} - -func (m *GetGroupReq) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetGroupResp struct { - CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups" json:"CMSGroups,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - GroupNums int32 `protobuf:"varint,3,opt,name=GroupNums" json:"GroupNums,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupResp) Reset() { *m = GetGroupResp{} } -func (m *GetGroupResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupResp) ProtoMessage() {} -func (*GetGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{35} -} -func (m *GetGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupResp.Unmarshal(m, b) -} -func (m *GetGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupResp.Merge(dst, src) -} -func (m *GetGroupResp) XXX_Size() int { - return xxx_messageInfo_GetGroupResp.Size(m) -} -func (m *GetGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupResp proto.InternalMessageInfo - -func (m *GetGroupResp) GetCMSGroups() []*CMSGroup { - if m != nil { - return m.CMSGroups - } - return nil -} - -func (m *GetGroupResp) GetPagination() *sdk_ws.RequestPagination { - if m != nil { - return m.Pagination - } - return nil -} - -func (m *GetGroupResp) GetGroupNums() int32 { - if m != nil { - return m.GroupNums - } - return 0 -} - type GetGroupsReq struct { Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2029,7 +1923,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} } func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsReq) ProtoMessage() {} func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{36} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{34} } func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b) @@ -2056,6 +1950,20 @@ func (m *GetGroupsReq) GetPagination() *sdk_ws.RequestPagination { return nil } +func (m *GetGroupsReq) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *GetGroupsReq) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + func (m *GetGroupsReq) GetOperationID() string { if m != nil { return m.OperationID @@ -2064,19 +1972,20 @@ func (m *GetGroupsReq) GetOperationID() string { } type GetGroupsResp struct { - CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups" json:"CMSGroups,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum" json:"GroupNum,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups" json:"CMSGroups,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum" json:"GroupNum,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} } func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsResp) ProtoMessage() {} func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{37} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{35} } func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b) @@ -2103,7 +2012,7 @@ func (m *GetGroupsResp) GetCMSGroups() []*CMSGroup { return nil } -func (m *GetGroupsResp) GetPagination() *sdk_ws.RequestPagination { +func (m *GetGroupsResp) GetPagination() *sdk_ws.ResponsePagination { if m != nil { return m.Pagination } @@ -2117,6 +2026,13 @@ func (m *GetGroupsResp) GetGroupNum() int32 { return 0 } +func (m *GetGroupsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GetGroupMemberReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -2129,7 +2045,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} } func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberReq) ProtoMessage() {} func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{38} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{36} } func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b) @@ -2163,182 +2079,6 @@ func (m *GetGroupMemberReq) GetOperationID() string { return "" } -type OperateUserRoleReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=RoleLevel" json:"RoleLevel,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} } -func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) } -func (*OperateUserRoleReq) ProtoMessage() {} -func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{39} -} -func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b) -} -func (m *OperateUserRoleReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateUserRoleReq.Marshal(b, m, deterministic) -} -func (dst *OperateUserRoleReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateUserRoleReq.Merge(dst, src) -} -func (m *OperateUserRoleReq) XXX_Size() int { - return xxx_messageInfo_OperateUserRoleReq.Size(m) -} -func (m *OperateUserRoleReq) XXX_DiscardUnknown() { - xxx_messageInfo_OperateUserRoleReq.DiscardUnknown(m) -} - -var xxx_messageInfo_OperateUserRoleReq proto.InternalMessageInfo - -func (m *OperateUserRoleReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *OperateUserRoleReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *OperateUserRoleReq) GetRoleLevel() int32 { - if m != nil { - return m.RoleLevel - } - return 0 -} - -func (m *OperateUserRoleReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type OperateUserRoleResp struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} } -func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) } -func (*OperateUserRoleResp) ProtoMessage() {} -func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{40} -} -func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b) -} -func (m *OperateUserRoleResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateUserRoleResp.Marshal(b, m, deterministic) -} -func (dst *OperateUserRoleResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateUserRoleResp.Merge(dst, src) -} -func (m *OperateUserRoleResp) XXX_Size() int { - return xxx_messageInfo_OperateUserRoleResp.Size(m) -} -func (m *OperateUserRoleResp) XXX_DiscardUnknown() { - xxx_messageInfo_OperateUserRoleResp.DiscardUnknown(m) -} - -var xxx_messageInfo_OperateUserRoleResp proto.InternalMessageInfo - -type GetGroupByIDReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupByIDReq) Reset() { *m = GetGroupByIDReq{} } -func (m *GetGroupByIDReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupByIDReq) ProtoMessage() {} -func (*GetGroupByIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{41} -} -func (m *GetGroupByIDReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupByIDReq.Unmarshal(m, b) -} -func (m *GetGroupByIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupByIDReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupByIDReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupByIDReq.Merge(dst, src) -} -func (m *GetGroupByIDReq) XXX_Size() int { - return xxx_messageInfo_GetGroupByIDReq.Size(m) -} -func (m *GetGroupByIDReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupByIDReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupByIDReq proto.InternalMessageInfo - -func (m *GetGroupByIDReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *GetGroupByIDReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetGroupByIDResp struct { - CMSGroup *CMSGroup `protobuf:"bytes,1,opt,name=CMSGroup" json:"CMSGroup,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupByIDResp) Reset() { *m = GetGroupByIDResp{} } -func (m *GetGroupByIDResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupByIDResp) ProtoMessage() {} -func (*GetGroupByIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{42} -} -func (m *GetGroupByIDResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupByIDResp.Unmarshal(m, b) -} -func (m *GetGroupByIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupByIDResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupByIDResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupByIDResp.Merge(dst, src) -} -func (m *GetGroupByIDResp) XXX_Size() int { - return xxx_messageInfo_GetGroupByIDResp.Size(m) -} -func (m *GetGroupByIDResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupByIDResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupByIDResp proto.InternalMessageInfo - -func (m *GetGroupByIDResp) GetCMSGroup() *CMSGroup { - if m != nil { - return m.CMSGroup - } - return nil -} - type GetGroupMembersCMSReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` UserName string `protobuf:"bytes,2,opt,name=UserName" json:"UserName,omitempty"` @@ -2353,7 +2093,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} } func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSReq) ProtoMessage() {} func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{43} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{37} } func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b) @@ -2405,6 +2145,7 @@ type GetGroupMembersCMSResp struct { Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,1,rep,name=members" json:"members,omitempty"` Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` MemberNums int32 `protobuf:"varint,3,opt,name=MemberNums" json:"MemberNums,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2414,7 +2155,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{} func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersCMSResp) ProtoMessage() {} func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{44} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{38} } func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b) @@ -2455,218 +2196,9 @@ func (m *GetGroupMembersCMSResp) GetMemberNums() int32 { return 0 } -type RemoveGroupMembersCMSReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSReq{} } -func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } -func (*RemoveGroupMembersCMSReq) ProtoMessage() {} -func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{45} -} -func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b) -} -func (m *RemoveGroupMembersCMSReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveGroupMembersCMSReq.Marshal(b, m, deterministic) -} -func (dst *RemoveGroupMembersCMSReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveGroupMembersCMSReq.Merge(dst, src) -} -func (m *RemoveGroupMembersCMSReq) XXX_Size() int { - return xxx_messageInfo_RemoveGroupMembersCMSReq.Size(m) -} -func (m *RemoveGroupMembersCMSReq) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveGroupMembersCMSReq.DiscardUnknown(m) -} - -var xxx_messageInfo_RemoveGroupMembersCMSReq proto.InternalMessageInfo - -func (m *RemoveGroupMembersCMSReq) GetGroupID() string { +func (m *GetGroupMembersCMSResp) GetCommonResp() *CommonResp { if m != nil { - return m.GroupID - } - return "" -} - -func (m *RemoveGroupMembersCMSReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList - } - return nil -} - -func (m *RemoveGroupMembersCMSReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *RemoveGroupMembersCMSReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -type RemoveGroupMembersCMSResp struct { - Success []string `protobuf:"bytes,1,rep,name=success" json:"success,omitempty"` - Failed []string `protobuf:"bytes,2,rep,name=failed" json:"failed,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMSResp{} } -func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } -func (*RemoveGroupMembersCMSResp) ProtoMessage() {} -func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{46} -} -func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b) -} -func (m *RemoveGroupMembersCMSResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveGroupMembersCMSResp.Marshal(b, m, deterministic) -} -func (dst *RemoveGroupMembersCMSResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveGroupMembersCMSResp.Merge(dst, src) -} -func (m *RemoveGroupMembersCMSResp) XXX_Size() int { - return xxx_messageInfo_RemoveGroupMembersCMSResp.Size(m) -} -func (m *RemoveGroupMembersCMSResp) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveGroupMembersCMSResp.DiscardUnknown(m) -} - -var xxx_messageInfo_RemoveGroupMembersCMSResp proto.InternalMessageInfo - -func (m *RemoveGroupMembersCMSResp) GetSuccess() []string { - if m != nil { - return m.Success - } - return nil -} - -func (m *RemoveGroupMembersCMSResp) GetFailed() []string { - if m != nil { - return m.Failed - } - return nil -} - -type AddGroupMembersCMSReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} } -func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) } -func (*AddGroupMembersCMSReq) ProtoMessage() {} -func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{47} -} -func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b) -} -func (m *AddGroupMembersCMSReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddGroupMembersCMSReq.Marshal(b, m, deterministic) -} -func (dst *AddGroupMembersCMSReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddGroupMembersCMSReq.Merge(dst, src) -} -func (m *AddGroupMembersCMSReq) XXX_Size() int { - return xxx_messageInfo_AddGroupMembersCMSReq.Size(m) -} -func (m *AddGroupMembersCMSReq) XXX_DiscardUnknown() { - xxx_messageInfo_AddGroupMembersCMSReq.DiscardUnknown(m) -} - -var xxx_messageInfo_AddGroupMembersCMSReq proto.InternalMessageInfo - -func (m *AddGroupMembersCMSReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *AddGroupMembersCMSReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList - } - return nil -} - -func (m *AddGroupMembersCMSReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *AddGroupMembersCMSReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - -type AddGroupMembersCMSResp struct { - Success []string `protobuf:"bytes,1,rep,name=success" json:"success,omitempty"` - Failed []string `protobuf:"bytes,2,rep,name=failed" json:"failed,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{} } -func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) } -func (*AddGroupMembersCMSResp) ProtoMessage() {} -func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{48} -} -func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b) -} -func (m *AddGroupMembersCMSResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddGroupMembersCMSResp.Marshal(b, m, deterministic) -} -func (dst *AddGroupMembersCMSResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddGroupMembersCMSResp.Merge(dst, src) -} -func (m *AddGroupMembersCMSResp) XXX_Size() int { - return xxx_messageInfo_AddGroupMembersCMSResp.Size(m) -} -func (m *AddGroupMembersCMSResp) XXX_DiscardUnknown() { - xxx_messageInfo_AddGroupMembersCMSResp.DiscardUnknown(m) -} - -var xxx_messageInfo_AddGroupMembersCMSResp proto.InternalMessageInfo - -func (m *AddGroupMembersCMSResp) GetSuccess() []string { - if m != nil { - return m.Success - } - return nil -} - -func (m *AddGroupMembersCMSResp) GetFailed() []string { - if m != nil { - return m.Failed + return m.CommonResp } return nil } @@ -2684,7 +2216,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} } func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) } func (*DismissGroupReq) ProtoMessage() {} func (*DismissGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{49} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{39} } func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b) @@ -2736,7 +2268,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} } func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) } func (*DismissGroupResp) ProtoMessage() {} func (*DismissGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{50} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{40} } func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b) @@ -2778,7 +2310,7 @@ func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} } func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberReq) ProtoMessage() {} func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{51} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{41} } func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b) @@ -2844,7 +2376,7 @@ func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} } func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupMemberResp) ProtoMessage() {} func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{52} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{42} } func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b) @@ -2885,7 +2417,7 @@ func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberR func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberReq) ProtoMessage() {} func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{53} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{43} } func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b) @@ -2944,7 +2476,7 @@ func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMember func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupMemberResp) ProtoMessage() {} func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{54} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{44} } func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b) @@ -2984,7 +2516,7 @@ func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} } func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) } func (*MuteGroupReq) ProtoMessage() {} func (*MuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{55} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{45} } func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b) @@ -3036,7 +2568,7 @@ func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} } func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) } func (*MuteGroupResp) ProtoMessage() {} func (*MuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{56} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{46} } func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b) @@ -3076,7 +2608,7 @@ func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} } func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupReq) ProtoMessage() {} func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{57} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{47} } func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b) @@ -3128,7 +2660,7 @@ func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} } func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) } func (*CancelMuteGroupResp) ProtoMessage() {} func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{58} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{48} } func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b) @@ -3170,7 +2702,7 @@ func (m *SetGroupMemberNicknameReq) Reset() { *m = SetGroupMemberNicknam func (m *SetGroupMemberNicknameReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameReq) ProtoMessage() {} func (*SetGroupMemberNicknameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{59} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{49} } func (m *SetGroupMemberNicknameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameReq.Unmarshal(m, b) @@ -3236,7 +2768,7 @@ func (m *SetGroupMemberNicknameResp) Reset() { *m = SetGroupMemberNickna func (m *SetGroupMemberNicknameResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberNicknameResp) ProtoMessage() {} func (*SetGroupMemberNicknameResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{60} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{50} } func (m *SetGroupMemberNicknameResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberNicknameResp.Unmarshal(m, b) @@ -3276,7 +2808,7 @@ func (m *GetJoinedSuperGroupListReq) Reset() { *m = GetJoinedSuperGroupL func (m *GetJoinedSuperGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListReq) ProtoMessage() {} func (*GetJoinedSuperGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{61} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{51} } func (m *GetJoinedSuperGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListReq.Unmarshal(m, b) @@ -3329,7 +2861,7 @@ func (m *GetJoinedSuperGroupListResp) Reset() { *m = GetJoinedSuperGroup func (m *GetJoinedSuperGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedSuperGroupListResp) ProtoMessage() {} func (*GetJoinedSuperGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{62} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{52} } func (m *GetJoinedSuperGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedSuperGroupListResp.Unmarshal(m, b) @@ -3376,7 +2908,7 @@ func (m *GetSuperGroupsInfoReq) Reset() { *m = GetSuperGroupsInfoReq{} } func (m *GetSuperGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoReq) ProtoMessage() {} func (*GetSuperGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{63} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{53} } func (m *GetSuperGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoReq.Unmarshal(m, b) @@ -3429,7 +2961,7 @@ func (m *GetSuperGroupsInfoResp) Reset() { *m = GetSuperGroupsInfoResp{} func (m *GetSuperGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupsInfoResp) ProtoMessage() {} func (*GetSuperGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{64} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{54} } func (m *GetSuperGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupsInfoResp.Unmarshal(m, b) @@ -3481,7 +3013,7 @@ func (m *SetGroupMemberInfoReq) Reset() { *m = SetGroupMemberInfoReq{} } func (m *SetGroupMemberInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoReq) ProtoMessage() {} func (*SetGroupMemberInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{65} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{55} } func (m *SetGroupMemberInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoReq.Unmarshal(m, b) @@ -3568,7 +3100,7 @@ func (m *SetGroupMemberInfoResp) Reset() { *m = SetGroupMemberInfoResp{} func (m *SetGroupMemberInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupMemberInfoResp) ProtoMessage() {} func (*SetGroupMemberInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{66} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{56} } func (m *SetGroupMemberInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupMemberInfoResp.Unmarshal(m, b) @@ -3608,7 +3140,7 @@ func (m *GetGroupAbstractInfoReq) Reset() { *m = GetGroupAbstractInfoReq func (m *GetGroupAbstractInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoReq) ProtoMessage() {} func (*GetGroupAbstractInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{67} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{57} } func (m *GetGroupAbstractInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoReq.Unmarshal(m, b) @@ -3662,7 +3194,7 @@ func (m *GetGroupAbstractInfoResp) Reset() { *m = GetGroupAbstractInfoRe func (m *GetGroupAbstractInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAbstractInfoResp) ProtoMessage() {} func (*GetGroupAbstractInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_077aa2a789cf93ed, []int{68} + return fileDescriptor_group_37a68c49b6b0a4e7, []int{58} } func (m *GetGroupAbstractInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAbstractInfoResp.Unmarshal(m, b) @@ -3738,21 +3270,11 @@ func init() { proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") proto.RegisterType((*CMSGroup)(nil), "group.CMSGroup") - proto.RegisterType((*GetGroupReq)(nil), "group.GetGroupReq") - proto.RegisterType((*GetGroupResp)(nil), "group.GetGroupResp") proto.RegisterType((*GetGroupsReq)(nil), "group.GetGroupsReq") proto.RegisterType((*GetGroupsResp)(nil), "group.GetGroupsResp") proto.RegisterType((*GetGroupMemberReq)(nil), "group.GetGroupMemberReq") - proto.RegisterType((*OperateUserRoleReq)(nil), "group.OperateUserRoleReq") - proto.RegisterType((*OperateUserRoleResp)(nil), "group.OperateUserRoleResp") - proto.RegisterType((*GetGroupByIDReq)(nil), "group.GetGroupByIDReq") - proto.RegisterType((*GetGroupByIDResp)(nil), "group.GetGroupByIDResp") proto.RegisterType((*GetGroupMembersCMSReq)(nil), "group.GetGroupMembersCMSReq") proto.RegisterType((*GetGroupMembersCMSResp)(nil), "group.GetGroupMembersCMSResp") - proto.RegisterType((*RemoveGroupMembersCMSReq)(nil), "group.RemoveGroupMembersCMSReq") - proto.RegisterType((*RemoveGroupMembersCMSResp)(nil), "group.RemoveGroupMembersCMSResp") - proto.RegisterType((*AddGroupMembersCMSReq)(nil), "group.AddGroupMembersCMSReq") - proto.RegisterType((*AddGroupMembersCMSResp)(nil), "group.AddGroupMembersCMSResp") proto.RegisterType((*DismissGroupReq)(nil), "group.DismissGroupReq") proto.RegisterType((*DismissGroupResp)(nil), "group.DismissGroupResp") proto.RegisterType((*MuteGroupMemberReq)(nil), "group.MuteGroupMemberReq") @@ -3801,13 +3323,8 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) - GetGroupByID(ctx context.Context, in *GetGroupByIDReq, opts ...grpc.CallOption) (*GetGroupByIDResp, error) - GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) - OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) - RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) - AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) @@ -3963,24 +3480,6 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb return out, nil } -func (c *groupClient) GetGroupByID(ctx context.Context, in *GetGroupByIDReq, opts ...grpc.CallOption) (*GetGroupByIDResp, error) { - out := new(GetGroupByIDResp) - err := grpc.Invoke(ctx, "/group.group/GetGroupByID", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { - out := new(GetGroupResp) - err := grpc.Invoke(ctx, "/group.group/GetGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { out := new(GetGroupsResp) err := grpc.Invoke(ctx, "/group.group/GetGroups", in, out, c.cc, opts...) @@ -3990,15 +3489,6 @@ func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...g return out, nil } -func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) { - out := new(OperateUserRoleResp) - err := grpc.Invoke(ctx, "/group.group/OperateUserRole", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) { out := new(GetGroupMembersCMSResp) err := grpc.Invoke(ctx, "/group.group/GetGroupMembersCMS", in, out, c.cc, opts...) @@ -4008,24 +3498,6 @@ func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMember return out, nil } -func (c *groupClient) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) { - out := new(RemoveGroupMembersCMSResp) - err := grpc.Invoke(ctx, "/group.group/RemoveGroupMembersCMS", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *groupClient) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) { - out := new(AddGroupMembersCMSResp) - err := grpc.Invoke(ctx, "/group.group/AddGroupMembersCMS", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *groupClient) DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error) { out := new(DismissGroupResp) err := grpc.Invoke(ctx, "/group.group/DismissGroup", in, out, c.cc, opts...) @@ -4134,13 +3606,8 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) - GetGroupByID(context.Context, *GetGroupByIDReq) (*GetGroupByIDResp, error) - GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) - OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) - RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) - AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) DismissGroup(context.Context, *DismissGroupReq) (*DismissGroupResp, error) MuteGroupMember(context.Context, *MuteGroupMemberReq) (*MuteGroupMemberResp, error) CancelMuteGroupMember(context.Context, *CancelMuteGroupMemberReq) (*CancelMuteGroupMemberResp, error) @@ -4427,42 +3894,6 @@ func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Group_GetGroupByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupByIDReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupByID(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupByID", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupByID(ctx, req.(*GetGroupByIDReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Group_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroup(ctx, req.(*GetGroupReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGroupsReq) if err := dec(in); err != nil { @@ -4481,24 +3912,6 @@ func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } -func _Group_OperateUserRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OperateUserRoleReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).OperateUserRole(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/OperateUserRole", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).OperateUserRole(ctx, req.(*OperateUserRoleReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Group_GetGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGroupMembersCMSReq) if err := dec(in); err != nil { @@ -4517,42 +3930,6 @@ func _Group_GetGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Group_RemoveGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveGroupMembersCMSReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).RemoveGroupMembersCMS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/RemoveGroupMembersCMS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).RemoveGroupMembersCMS(ctx, req.(*RemoveGroupMembersCMSReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Group_AddGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddGroupMembersCMSReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).AddGroupMembersCMS(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/AddGroupMembersCMS", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).AddGroupMembersCMS(ctx, req.(*AddGroupMembersCMSReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Group_DismissGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DismissGroupReq) if err := dec(in); err != nil { @@ -4797,34 +4174,14 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "getGroupAllMember", Handler: _Group_GetGroupAllMember_Handler, }, - { - MethodName: "GetGroupByID", - Handler: _Group_GetGroupByID_Handler, - }, - { - MethodName: "GetGroup", - Handler: _Group_GetGroup_Handler, - }, { MethodName: "GetGroups", Handler: _Group_GetGroups_Handler, }, - { - MethodName: "OperateUserRole", - Handler: _Group_OperateUserRole_Handler, - }, { MethodName: "GetGroupMembersCMS", Handler: _Group_GetGroupMembersCMS_Handler, }, - { - MethodName: "RemoveGroupMembersCMS", - Handler: _Group_RemoveGroupMembersCMS_Handler, - }, - { - MethodName: "AddGroupMembersCMS", - Handler: _Group_AddGroupMembersCMS_Handler, - }, { MethodName: "DismissGroup", Handler: _Group_DismissGroup_Handler, @@ -4870,159 +4227,145 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_077aa2a789cf93ed) } +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_37a68c49b6b0a4e7) } -var fileDescriptor_group_077aa2a789cf93ed = []byte{ - // 2401 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x1a, 0x4d, 0x6f, 0x1c, 0x49, - 0x55, 0x3d, 0xe3, 0x89, 0x3d, 0xcf, 0x9e, 0x8c, 0x53, 0x8e, 0x9d, 0x49, 0xc7, 0xeb, 0x38, 0xb5, - 0x61, 0x89, 0x20, 0x38, 0xe0, 0x48, 0x11, 0xb0, 0x88, 0x10, 0xdb, 0x49, 0xec, 0x24, 0xb6, 0x49, - 0x4f, 0x16, 0xa4, 0x48, 0x28, 0x8c, 0x67, 0x6a, 0x9a, 0xc1, 0x33, 0xdd, 0xed, 0xae, 0x1e, 0x3b, - 0x70, 0x59, 0x71, 0x59, 0x09, 0x84, 0xb4, 0x7c, 0x5c, 0x17, 0xc1, 0x72, 0x81, 0x03, 0x48, 0x1c, - 0xe0, 0x8c, 0x38, 0x70, 0xe3, 0x0f, 0x70, 0xe5, 0x0f, 0xf0, 0x17, 0x50, 0x57, 0x55, 0x57, 0x57, - 0x77, 0x75, 0xb7, 0x27, 0xed, 0x64, 0xc3, 0xa5, 0xa5, 0x7a, 0xf5, 0xaa, 0xea, 0x7d, 0xd5, 0xab, - 0xf7, 0xd1, 0x70, 0xc1, 0xf6, 0xdd, 0xb1, 0x77, 0x8b, 0x7d, 0xd7, 0x3c, 0xdf, 0x0d, 0x5c, 0x54, - 0x63, 0x03, 0xf3, 0xda, 0xbe, 0x47, 0x9c, 0x17, 0x3b, 0xbb, 0xb7, 0xbc, 0x43, 0xfb, 0x16, 0x9b, - 0xb9, 0x45, 0x7b, 0x87, 0x2f, 0x4e, 0xe8, 0xad, 0x13, 0xca, 0x31, 0xcd, 0xcf, 0xe7, 0xa3, 0xf8, - 0x1d, 0xcf, 0x23, 0xbe, 0x40, 0xc4, 0xdf, 0x04, 0xd8, 0x74, 0x47, 0x23, 0xd7, 0xb1, 0x08, 0xf5, - 0x50, 0x0b, 0xa6, 0xef, 0xfb, 0xfe, 0xa6, 0xdb, 0x23, 0x2d, 0x63, 0xd5, 0xb8, 0x51, 0xb3, 0xa2, - 0x21, 0x5a, 0x82, 0x73, 0xf7, 0x7d, 0x7f, 0x97, 0xda, 0xad, 0xca, 0xaa, 0x71, 0xa3, 0x6e, 0x89, - 0x11, 0x7e, 0x04, 0xe8, 0x61, 0x48, 0xd4, 0xbd, 0x5e, 0x6f, 0x97, 0x8c, 0x0e, 0x88, 0xbf, 0xe3, - 0xf4, 0xdd, 0x10, 0xfb, 0x03, 0x4a, 0xfc, 0x9d, 0x2d, 0xb6, 0x4d, 0xdd, 0x12, 0x23, 0xb4, 0x0c, - 0x75, 0xcb, 0x1d, 0x92, 0x27, 0xe4, 0x98, 0x0c, 0xd9, 0x46, 0x35, 0x2b, 0x06, 0xe0, 0xff, 0x1a, - 0x70, 0x7e, 0xd3, 0x27, 0x9d, 0x80, 0xb0, 0x2d, 0x2d, 0x72, 0x84, 0xee, 0xc1, 0xf9, 0x1d, 0x67, - 0x10, 0xf0, 0xad, 0x9f, 0x0c, 0x68, 0xd0, 0x32, 0x56, 0xab, 0x37, 0x66, 0xd7, 0x2f, 0xaf, 0x71, - 0xb9, 0xe8, 0x67, 0x5b, 0xa9, 0x05, 0xe8, 0xeb, 0x50, 0x67, 0x58, 0xe1, 0x24, 0x3b, 0x73, 0x76, - 0x7d, 0x79, 0x8d, 0x12, 0xff, 0x98, 0xf8, 0x2f, 0x3a, 0xde, 0xe0, 0x85, 0xd7, 0xf1, 0x3b, 0x23, - 0xba, 0x26, 0x71, 0xac, 0x18, 0x1d, 0xad, 0xc2, 0xec, 0xbe, 0x47, 0xfc, 0x4e, 0x30, 0x70, 0x9d, - 0x9d, 0xad, 0x56, 0x95, 0x31, 0xa3, 0x82, 0x90, 0x09, 0x33, 0xfb, 0x9e, 0xe0, 0x75, 0x8a, 0x4d, - 0xcb, 0x31, 0x5b, 0x7d, 0xe2, 0x10, 0x5f, 0x4c, 0xd7, 0xc4, 0xea, 0x18, 0x84, 0x3f, 0x84, 0x66, - 0x82, 0xe1, 0x32, 0x2a, 0x48, 0x32, 0x58, 0x7d, 0x25, 0x06, 0xb1, 0x0f, 0xf3, 0x0f, 0x49, 0xc0, - 0xc6, 0x94, 0xcd, 0x91, 0xa3, 0x90, 0x6c, 0x8e, 0xb0, 0x25, 0x05, 0x5e, 0xb7, 0x54, 0x50, 0x5a, - 0x2c, 0x95, 0x62, 0xb1, 0x54, 0x93, 0x62, 0xc1, 0x3f, 0x35, 0xe0, 0x42, 0xea, 0xd0, 0x52, 0x7c, - 0x6f, 0x40, 0x43, 0x32, 0xc2, 0x28, 0xad, 0x32, 0xd3, 0x28, 0xe6, 0x3d, 0xb9, 0x04, 0xff, 0xc6, - 0x80, 0x66, 0x5b, 0xd0, 0x12, 0xf1, 0xff, 0x04, 0x9a, 0x76, 0x34, 0x7e, 0xe0, 0xfa, 0x6d, 0x12, - 0x30, 0x8a, 0x66, 0xd7, 0x71, 0xd1, 0xce, 0x1c, 0xd3, 0x4a, 0x2f, 0x4d, 0x48, 0xa2, 0x92, 0x61, - 0x20, 0x85, 0xe6, 0x85, 0xef, 0xc3, 0x7c, 0x92, 0x3c, 0xea, 0xa1, 0xaf, 0xa8, 0x57, 0x56, 0x90, - 0x76, 0x41, 0xdc, 0x87, 0x78, 0xc2, 0x52, 0x90, 0xf0, 0x8f, 0xc1, 0x8c, 0x24, 0x7e, 0xcf, 0xf3, - 0x86, 0x83, 0x2e, 0xdb, 0x3f, 0x94, 0x40, 0xc8, 0xb0, 0x4a, 0xa2, 0x51, 0x4c, 0x62, 0x86, 0xaa, - 0x57, 0x00, 0x1e, 0xf8, 0xee, 0x28, 0xa1, 0x6c, 0x05, 0x82, 0x3f, 0x31, 0xe0, 0x4a, 0xee, 0xe1, - 0xa5, 0x14, 0xff, 0x18, 0xe6, 0x23, 0x07, 0x31, 0x26, 0x34, 0x50, 0x74, 0x7f, 0x35, 0x4f, 0x43, - 0x02, 0xd5, 0xd2, 0x16, 0xe2, 0x00, 0x96, 0x1f, 0x92, 0x20, 0xa4, 0xd5, 0x22, 0x47, 0x19, 0xc2, - 0xc9, 0x73, 0x65, 0x67, 0xd3, 0xeb, 0x6f, 0x0d, 0x78, 0xa7, 0xe0, 0xd8, 0x52, 0x5a, 0xce, 0x94, - 0x4b, 0xa5, 0xac, 0x5c, 0xfe, 0x6e, 0xc0, 0xe2, 0x33, 0xbf, 0xe3, 0xd0, 0x3e, 0xf1, 0xd9, 0x24, - 0xf3, 0x5b, 0xa1, 0x44, 0x5a, 0x30, 0x2d, 0x9c, 0x81, 0x10, 0x49, 0x34, 0x44, 0xef, 0xc1, 0xf9, - 0xfd, 0x61, 0x4f, 0xf5, 0x79, 0x5c, 0x32, 0x29, 0x68, 0x88, 0xb7, 0x47, 0x4e, 0x54, 0x3c, 0x2e, - 0xa2, 0x14, 0x34, 0x2d, 0xc7, 0xa9, 0x62, 0x3f, 0x53, 0x4b, 0xf9, 0x99, 0xc7, 0xb0, 0x94, 0xc5, - 0x40, 0xb9, 0x1b, 0xf4, 0x2f, 0x03, 0xe6, 0x1e, 0xb9, 0x03, 0x47, 0xbe, 0x4c, 0xf9, 0x52, 0x58, - 0x01, 0xb0, 0xc8, 0xd1, 0x2e, 0xa1, 0xb4, 0x63, 0x13, 0x21, 0x01, 0x05, 0x52, 0xe4, 0x1b, 0x27, - 0xe0, 0x78, 0x05, 0x20, 0xa4, 0xa3, 0xed, 0x8e, 0xfd, 0x2e, 0x61, 0x3c, 0xd7, 0x2c, 0x05, 0x82, - 0xae, 0x43, 0x63, 0xc7, 0x39, 0x1e, 0x04, 0x52, 0xb4, 0xe7, 0xd8, 0x1e, 0x49, 0x20, 0xde, 0x80, - 0x86, 0xc2, 0x4d, 0x39, 0x91, 0xfc, 0x3b, 0xbc, 0xd8, 0xa9, 0x5b, 0x1d, 0x4e, 0xb8, 0x0e, 0x25, - 0xe2, 0x1d, 0x51, 0x79, 0x31, 0x8a, 0xb5, 0x97, 0xbe, 0x43, 0x8a, 0x7c, 0xab, 0x9a, 0x7c, 0x15, - 0x87, 0x33, 0x95, 0x76, 0x38, 0xe1, 0xfc, 0x76, 0xc7, 0xe9, 0x0d, 0x49, 0x2f, 0x74, 0x1d, 0xdc, - 0x2a, 0x14, 0x08, 0xc2, 0x30, 0xc7, 0x47, 0x16, 0xa1, 0xe3, 0x61, 0xc0, 0x04, 0x54, 0xb3, 0x12, - 0x30, 0xfc, 0x14, 0x96, 0xf3, 0x59, 0x2b, 0x27, 0xae, 0x3e, 0xcc, 0x3d, 0x1d, 0x0f, 0x82, 0x09, - 0x0c, 0xe8, 0x6c, 0xcf, 0xeb, 0x06, 0x34, 0x94, 0x73, 0xca, 0xd1, 0xfa, 0xa9, 0x01, 0x8b, 0x91, - 0xcf, 0x8e, 0x43, 0xa9, 0x62, 0xaa, 0xcf, 0xe4, 0x10, 0x43, 0x37, 0xfb, 0x60, 0x30, 0x0c, 0x88, - 0xcf, 0x14, 0x5a, 0xb3, 0xc4, 0x28, 0x3c, 0x6f, 0x8f, 0xbc, 0x0c, 0xda, 0xe4, 0x48, 0xd8, 0x7a, - 0x34, 0xc4, 0x7f, 0x32, 0x60, 0x29, 0x8b, 0xc6, 0x52, 0x4f, 0xca, 0x03, 0x80, 0x51, 0x1c, 0x63, - 0xf2, 0xc7, 0xe4, 0xbd, 0x3c, 0xa7, 0xc9, 0x4f, 0x7b, 0x30, 0x1e, 0x0e, 0xd9, 0x9b, 0xac, 0xac, - 0x0c, 0x4f, 0x76, 0x04, 0xb9, 0x9c, 0x8f, 0x68, 0x88, 0x7f, 0xa1, 0x91, 0x2b, 0x03, 0xae, 0x42, - 0x57, 0xa2, 0x90, 0x55, 0x61, 0x91, 0x98, 0x7a, 0xdc, 0x99, 0x5c, 0x09, 0xfe, 0xb5, 0x01, 0x97, - 0x32, 0x49, 0x7a, 0x9b, 0x22, 0xc4, 0x7f, 0x31, 0x00, 0x3d, 0x1e, 0x74, 0x0f, 0x15, 0xbc, 0x62, - 0x21, 0x7d, 0x01, 0xe6, 0x43, 0x7c, 0xd2, 0xe3, 0x8c, 0x2b, 0xa2, 0xd2, 0xe0, 0x21, 0xf1, 0x16, - 0xe9, 0x50, 0xd7, 0x11, 0xe2, 0x12, 0xa3, 0xb4, 0xb0, 0x6a, 0xc5, 0x57, 0xee, 0x5c, 0xea, 0xca, - 0xbd, 0x0f, 0xf5, 0x9d, 0xde, 0x3a, 0x77, 0x1d, 0xb9, 0x01, 0x03, 0x3b, 0x9a, 0x39, 0x1c, 0x9e, - 0xf8, 0x88, 0x11, 0xfe, 0x10, 0x16, 0x34, 0x76, 0x4b, 0x29, 0xe0, 0x0e, 0x34, 0x24, 0x15, 0x8a, - 0x0e, 0xe6, 0xc5, 0x55, 0x97, 0x73, 0x56, 0x12, 0x0d, 0x8f, 0xd9, 0x5d, 0x0f, 0x9f, 0x03, 0xd2, - 0x63, 0x54, 0x44, 0x77, 0x3d, 0xe9, 0x68, 0x0d, 0xcd, 0xd1, 0xae, 0xc2, 0xac, 0xab, 0xfb, 0x29, - 0x77, 0x42, 0x3f, 0xf5, 0x11, 0xbf, 0x10, 0xda, 0xb9, 0x67, 0xca, 0x81, 0x26, 0xce, 0x03, 0x62, - 0x74, 0xfc, 0x57, 0x03, 0x2e, 0xf2, 0xd7, 0x31, 0xa4, 0xec, 0x99, 0x2b, 0x3d, 0xf4, 0xe9, 0x7e, - 0x38, 0xff, 0x91, 0x8a, 0x0d, 0x6d, 0x2a, 0x61, 0x68, 0x37, 0xe1, 0x02, 0x3f, 0x4b, 0xb5, 0xd6, - 0x1a, 0xb3, 0x56, 0x7d, 0xa2, 0xd0, 0xe8, 0x7e, 0x62, 0xc0, 0x62, 0x06, 0xd9, 0x9f, 0xa9, 0xe9, - 0x7c, 0x62, 0xc0, 0x45, 0x19, 0xdb, 0x0f, 0x87, 0x93, 0xdc, 0xd6, 0x33, 0x3f, 0x13, 0xfb, 0xfd, - 0x3e, 0x25, 0x41, 0xf4, 0x4c, 0xf0, 0x11, 0xba, 0x08, 0xb5, 0x4d, 0x77, 0xec, 0x04, 0xe2, 0x91, - 0xe0, 0x03, 0xfc, 0x4b, 0xe5, 0x19, 0x53, 0xc8, 0x7b, 0xab, 0xee, 0xed, 0xf7, 0x06, 0xcc, 0x6c, - 0xee, 0xb6, 0x19, 0x5a, 0x32, 0x75, 0x37, 0x5e, 0xad, 0x36, 0xb1, 0x26, 0x2a, 0x2f, 0x32, 0x60, - 0xde, 0xeb, 0x8c, 0xa2, 0x70, 0x33, 0x63, 0x26, 0x74, 0x93, 0x49, 0xa8, 0x94, 0xb0, 0x06, 0x0f, - 0x5f, 0x86, 0xd9, 0x48, 0x70, 0xa1, 0x3a, 0x97, 0x05, 0x9d, 0xec, 0x08, 0xae, 0xd0, 0x18, 0x80, - 0xb6, 0x00, 0xbe, 0xdd, 0xb1, 0x07, 0x0e, 0x53, 0x92, 0x28, 0xb1, 0x5c, 0xcf, 0x60, 0x43, 0xa4, - 0x17, 0x31, 0xae, 0xa5, 0xac, 0x9b, 0x20, 0x69, 0xfa, 0xd4, 0x80, 0xb9, 0x98, 0x2a, 0xea, 0xa1, - 0x2f, 0x41, 0x3d, 0x12, 0x25, 0x15, 0x85, 0xa1, 0x66, 0x14, 0xd8, 0x08, 0xb8, 0x15, 0x63, 0xbc, - 0x26, 0x3a, 0xa5, 0x2c, 0xc6, 0x23, 0xca, 0xa8, 0xac, 0x59, 0x31, 0x00, 0x1f, 0xc7, 0x24, 0xd2, - 0x50, 0x72, 0xc9, 0x33, 0x8d, 0xd7, 0x23, 0x1b, 0xdd, 0x13, 0xe1, 0xdf, 0x19, 0xd0, 0x50, 0x0e, - 0x7e, 0x5b, 0xc2, 0x31, 0x61, 0x26, 0x92, 0x85, 0x90, 0x8d, 0x1c, 0xe3, 0xfd, 0xb8, 0xec, 0x33, - 0x89, 0xa3, 0x38, 0x9d, 0xe7, 0x8f, 0x0c, 0x40, 0x7c, 0xcc, 0x5c, 0xa0, 0xe5, 0x0e, 0x49, 0xf1, - 0x96, 0xf1, 0xd3, 0x5c, 0xc9, 0x2f, 0x4b, 0x56, 0x53, 0x65, 0xc9, 0x09, 0x02, 0xa9, 0x45, 0x58, - 0xd0, 0xe8, 0xa0, 0x1e, 0xde, 0x85, 0x66, 0xc4, 0xf0, 0xc6, 0x8f, 0x76, 0xb6, 0xce, 0xca, 0xee, - 0xdd, 0xb8, 0x56, 0xc7, 0xb7, 0xa3, 0x1e, 0xfa, 0x62, 0xec, 0x4c, 0x84, 0x71, 0x69, 0x3a, 0x96, - 0x08, 0xf8, 0x6f, 0x5a, 0x54, 0x4f, 0x37, 0x77, 0xdb, 0xa7, 0xba, 0xeb, 0x94, 0x6f, 0x91, 0xe3, - 0x94, 0xc9, 0x54, 0x5f, 0x8f, 0x6d, 0x67, 0x88, 0xf7, 0x1f, 0x7a, 0xe8, 0xcc, 0xe8, 0xa6, 0x1e, - 0xfa, 0x16, 0x4c, 0x73, 0xdf, 0x1a, 0x99, 0xf8, 0xa4, 0x2e, 0x39, 0x5a, 0x86, 0xee, 0x67, 0xd8, - 0xfd, 0xe7, 0x32, 0x99, 0xe0, 0xe9, 0x5f, 0x0e, 0x17, 0x2b, 0x00, 0xfc, 0x04, 0xc5, 0x2d, 0x28, - 0x10, 0xfc, 0x2b, 0x03, 0x5a, 0x16, 0x19, 0xb9, 0xc7, 0xe4, 0x95, 0xc4, 0xbf, 0x02, 0xa0, 0x45, - 0xb5, 0x0a, 0xe4, 0x6c, 0x05, 0x6a, 0xbc, 0x0b, 0x97, 0x73, 0x68, 0xe2, 0x4f, 0x24, 0x1d, 0x77, - 0xbb, 0x84, 0x52, 0x51, 0x02, 0x8e, 0x86, 0xe1, 0x35, 0xea, 0x77, 0x06, 0x43, 0xd2, 0x13, 0x04, - 0x89, 0x11, 0xfe, 0xd8, 0x80, 0xc5, 0x7b, 0xbd, 0xde, 0xff, 0x11, 0x83, 0x8f, 0x60, 0x29, 0x8b, - 0xa0, 0x52, 0xdc, 0x0d, 0xa0, 0xb9, 0x35, 0xa0, 0xa3, 0x01, 0xa5, 0xf2, 0x59, 0x34, 0x61, 0xc6, - 0x4d, 0x15, 0x4e, 0x5d, 0x6f, 0xe2, 0xe0, 0xb8, 0x05, 0xd3, 0x76, 0x32, 0x78, 0x14, 0x43, 0x7c, - 0x1f, 0xe6, 0x93, 0x47, 0xf1, 0x2c, 0xbe, 0x3b, 0x49, 0x16, 0x1f, 0x23, 0xe1, 0x3f, 0x1a, 0x80, - 0x76, 0xc7, 0x01, 0x49, 0xb9, 0xdc, 0x37, 0x44, 0x75, 0x28, 0xb8, 0xb1, 0xaa, 0x06, 0x31, 0x42, - 0x18, 0xe6, 0x46, 0xe3, 0x80, 0xf4, 0xda, 0xa4, 0xeb, 0x3a, 0x3d, 0xca, 0x42, 0xb4, 0x86, 0x95, - 0x80, 0xe1, 0x6d, 0x58, 0xd0, 0x28, 0x2d, 0xc7, 0xf4, 0xcf, 0x0c, 0x68, 0x6d, 0x76, 0x9c, 0x2e, - 0x19, 0xbe, 0x7d, 0xd6, 0xf1, 0x1e, 0x5c, 0xce, 0xa1, 0xa5, 0x1c, 0x73, 0x7d, 0x98, 0x93, 0x3b, - 0xbd, 0x49, 0x03, 0xdc, 0x80, 0x86, 0x72, 0x4e, 0x39, 0x5a, 0x87, 0x80, 0x52, 0xbc, 0xbf, 0x49, - 0x8a, 0xb7, 0x61, 0x41, 0x3b, 0xad, 0x1c, 0xdd, 0x7f, 0x30, 0xe0, 0x72, 0x3b, 0xf1, 0xda, 0xec, - 0x0d, 0xba, 0x87, 0x4e, 0x67, 0x14, 0x05, 0x17, 0x76, 0xd2, 0x93, 0xd9, 0xf1, 0x4b, 0xe9, 0x08, - 0xc4, 0xe8, 0xa5, 0x8c, 0xc6, 0x09, 0xae, 0xab, 0xc5, 0x5c, 0x4f, 0xe9, 0x5c, 0xc7, 0xd6, 0x55, - 0x4b, 0x58, 0xd7, 0x3e, 0x98, 0x79, 0x84, 0x96, 0x2b, 0xfb, 0xf9, 0xac, 0x4d, 0xc4, 0x33, 0xf2, - 0xf6, 0xd8, 0x13, 0x75, 0xf3, 0xa8, 0x1c, 0x90, 0x22, 0xd4, 0x28, 0x22, 0xb4, 0x92, 0xf0, 0x00, - 0x05, 0xec, 0xe3, 0x9f, 0xf3, 0xf6, 0x50, 0xf6, 0xa1, 0xa5, 0x34, 0x78, 0xa6, 0x62, 0xc0, 0x09, - 0x0b, 0x91, 0x62, 0x3a, 0x3e, 0xb3, 0xae, 0xe8, 0xc7, 0x3c, 0xc8, 0xd1, 0x4e, 0x2e, 0x27, 0x82, - 0xd7, 0xd1, 0x1b, 0xfd, 0x4f, 0x05, 0x16, 0x93, 0xf6, 0xa5, 0x14, 0x2c, 0x73, 0x2e, 0x41, 0x09, - 0x0b, 0x98, 0xe0, 0x02, 0x7c, 0x55, 0xb9, 0x5a, 0x35, 0x91, 0x25, 0xdb, 0xae, 0x6b, 0x0f, 0x09, - 0xff, 0x8b, 0xe1, 0x60, 0xdc, 0x5f, 0x6b, 0x07, 0xfe, 0xc0, 0xb1, 0xbf, 0xd3, 0x19, 0x8e, 0x89, - 0x72, 0xf1, 0xee, 0xc0, 0x74, 0xbf, 0xd3, 0x25, 0x1f, 0x58, 0x4f, 0x58, 0xfd, 0xe4, 0xb4, 0x85, - 0x11, 0x32, 0xfa, 0x1a, 0xd4, 0x7d, 0x99, 0x11, 0x4c, 0xb3, 0x95, 0x57, 0xb4, 0x95, 0x3b, 0x4e, - 0x70, 0x7b, 0x9d, 0x2f, 0x8c, 0xb1, 0xd1, 0x4d, 0xa8, 0x90, 0x97, 0xad, 0x99, 0x09, 0x4e, 0xab, - 0x90, 0x97, 0xf8, 0x31, 0x2c, 0x65, 0xc9, 0xb8, 0xdc, 0xfd, 0x3d, 0x8a, 0xeb, 0xb9, 0xf7, 0x0e, - 0x68, 0xe0, 0x77, 0xba, 0xc1, 0xe9, 0x2a, 0x53, 0x55, 0x53, 0x29, 0x56, 0x4d, 0x55, 0x53, 0x0d, - 0xfe, 0xb3, 0x01, 0xad, 0xec, 0x33, 0xcb, 0xf5, 0x30, 0x6f, 0x8a, 0xff, 0x5e, 0x64, 0xe8, 0x7c, - 0x40, 0x7c, 0x51, 0x30, 0xd5, 0x27, 0xd0, 0x97, 0x61, 0xc1, 0x4e, 0xd6, 0xff, 0xb7, 0x3b, 0xf4, - 0x07, 0x8c, 0xce, 0x29, 0x2b, 0x6b, 0x6a, 0xfd, 0x9f, 0x0b, 0xc0, 0xff, 0xa2, 0x41, 0xdf, 0x80, - 0xd9, 0x6e, 0xfc, 0xef, 0x05, 0x5a, 0x8c, 0xe8, 0x4a, 0xfc, 0x80, 0x62, 0x2e, 0x65, 0x81, 0xa9, - 0x87, 0xee, 0x40, 0xfd, 0x87, 0x51, 0x03, 0x0d, 0x2d, 0x08, 0x24, 0xb5, 0x41, 0x68, 0x5e, 0xd4, - 0x81, 0x7c, 0xdd, 0x51, 0xd4, 0x9d, 0x91, 0xeb, 0xd4, 0xbe, 0x90, 0x5c, 0x97, 0x6c, 0xe2, 0x6c, - 0x40, 0xc3, 0x56, 0xff, 0x99, 0x40, 0x97, 0xa2, 0x3f, 0x60, 0x52, 0xbf, 0x6f, 0x98, 0xad, 0xec, - 0x09, 0xea, 0xa1, 0xbb, 0x30, 0x47, 0x95, 0x9f, 0x09, 0x50, 0xc4, 0x5b, 0xea, 0x07, 0x08, 0xf3, - 0x52, 0x26, 0x9c, 0x7a, 0xe8, 0xfb, 0x70, 0xc9, 0xce, 0xee, 0xe4, 0xa3, 0x6b, 0xa9, 0x53, 0xf5, - 0x4e, 0xba, 0x89, 0x4f, 0x43, 0xa1, 0x1e, 0xea, 0xc3, 0x65, 0x3b, 0xaf, 0x2d, 0x8e, 0xde, 0x8d, - 0x37, 0xc8, 0xed, 0xd7, 0x9b, 0xd7, 0x4f, 0x47, 0xa2, 0x1e, 0x7a, 0x0a, 0x28, 0xd0, 0x7a, 0xc3, - 0x68, 0x59, 0xac, 0xcd, 0xec, 0x7b, 0x9b, 0xef, 0x14, 0xcc, 0x52, 0x0f, 0x75, 0xa1, 0x65, 0xe7, - 0xb4, 0x0c, 0x11, 0x4e, 0xfc, 0xae, 0x94, 0xd9, 0x2e, 0x35, 0xdf, 0x3d, 0x15, 0x87, 0xd3, 0x6d, - 0x6b, 0x3d, 0x2f, 0x49, 0x77, 0x66, 0xcb, 0x4e, 0xd2, 0x9d, 0xd3, 0x2c, 0x7b, 0x06, 0x0b, 0xb6, - 0xde, 0x04, 0x42, 0xd9, 0xab, 0xa4, 0x95, 0xad, 0x14, 0x4d, 0x53, 0x0f, 0x6d, 0x43, 0xf3, 0x30, - 0xd9, 0xd5, 0x40, 0xd1, 0x3f, 0x5b, 0x7a, 0x73, 0xc7, 0x34, 0xf3, 0xa6, 0x24, 0xcb, 0xa9, 0x36, - 0x81, 0xca, 0xb2, 0xde, 0xb9, 0x50, 0x59, 0xce, 0xea, 0x2f, 0xec, 0xc1, 0x85, 0x41, 0xba, 0x72, - 0x8e, 0xae, 0x44, 0xc5, 0xee, 0x8c, 0x56, 0x80, 0xb9, 0x9c, 0x3f, 0xc9, 0xf7, 0xb3, 0xd3, 0x65, - 0x66, 0xb9, 0x5f, 0x56, 0x7d, 0xdc, 0x5c, 0xce, 0x9f, 0xe4, 0x17, 0x55, 0xad, 0xf4, 0xc8, 0x8b, - 0x9a, 0xaa, 0x26, 0x99, 0x97, 0x32, 0xe1, 0xd4, 0x43, 0xb7, 0x61, 0x26, 0x82, 0x21, 0x94, 0x42, - 0x0a, 0x17, 0x2e, 0x68, 0x30, 0xee, 0x9a, 0xa4, 0xcf, 0x40, 0x69, 0x0c, 0xaa, 0xba, 0xa6, 0x64, - 0xa1, 0x71, 0x1b, 0x9a, 0xa9, 0xea, 0x97, 0x54, 0xb5, 0x5e, 0x9d, 0x93, 0xaa, 0xce, 0x28, 0x98, - 0x85, 0xaa, 0xd6, 0xeb, 0x3c, 0x39, 0xd6, 0x2d, 0x4a, 0x0b, 0x39, 0xd6, 0x2d, 0xf3, 0xfc, 0xe7, - 0xb0, 0x98, 0x59, 0xe2, 0x40, 0x57, 0xc5, 0xba, 0xbc, 0xa2, 0x8c, 0xb9, 0x5a, 0x8c, 0xc0, 0xc9, - 0xd5, 0xab, 0x0b, 0x92, 0xdc, 0xcc, 0x4a, 0x88, 0x24, 0x37, 0xa7, 0x2c, 0x71, 0x17, 0xe6, 0xd4, - 0xcc, 0x5f, 0x6a, 0x3e, 0x55, 0x79, 0x90, 0x9a, 0xd7, 0xca, 0x04, 0xdb, 0xd0, 0x4c, 0xe5, 0x9a, - 0x52, 0x19, 0x7a, 0x3e, 0x2c, 0x95, 0x91, 0x95, 0x9e, 0x3e, 0x87, 0xc5, 0xcc, 0xdc, 0x55, 0x4a, - 0x2e, 0x2f, 0xcb, 0x96, 0x92, 0xcb, 0x4f, 0x7d, 0xef, 0x40, 0x5d, 0x82, 0xa5, 0xa9, 0xa9, 0x79, - 0xa2, 0x34, 0xb5, 0x64, 0x3a, 0xb7, 0x0d, 0xcd, 0xd4, 0xa6, 0x92, 0x3b, 0x3d, 0xd7, 0x94, 0xdc, - 0x65, 0x25, 0x86, 0xdf, 0x4b, 0xc7, 0x5d, 0x51, 0xee, 0x84, 0x56, 0x53, 0xaf, 0x9f, 0x96, 0x03, - 0x9a, 0xd7, 0x4e, 0xc1, 0xe0, 0x2f, 0x65, 0x4e, 0x52, 0xa3, 0xbe, 0x94, 0x39, 0x99, 0x96, 0xfa, - 0x52, 0xe6, 0xe6, 0x45, 0xfc, 0xae, 0xa4, 0xd2, 0x05, 0xf5, 0xae, 0xe8, 0x39, 0x8c, 0x7a, 0x57, - 0xb2, 0xf2, 0x8c, 0xa7, 0x80, 0xf4, 0x58, 0x54, 0x6e, 0x99, 0x99, 0x0a, 0xc8, 0x2d, 0x73, 0x82, - 0xd8, 0xef, 0x2a, 0xfd, 0x41, 0x25, 0x3a, 0x44, 0xe9, 0xe7, 0x23, 0x15, 0xae, 0x9a, 0x57, 0x0b, - 0xe7, 0xa9, 0xb7, 0xd1, 0x7c, 0xde, 0x58, 0xe3, 0xff, 0x46, 0xbf, 0xcf, 0xbe, 0x07, 0xe7, 0x58, - 0x88, 0x7d, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xe2, 0x3c, 0x77, 0x37, 0x2d, 0x00, - 0x00, +var fileDescriptor_group_37a68c49b6b0a4e7 = []byte{ + // 2188 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x1a, 0xdf, 0x6f, 0xdc, 0x48, + 0x59, 0xde, 0x64, 0x9b, 0xec, 0x97, 0x6c, 0x37, 0x99, 0x34, 0xe9, 0xd6, 0xcd, 0xa5, 0xa9, 0xaf, + 0x1c, 0x15, 0x2a, 0x09, 0xe4, 0xa4, 0x0a, 0x38, 0xc4, 0xd1, 0xfc, 0x6a, 0x72, 0x6d, 0x12, 0xe2, + 0xed, 0x81, 0x74, 0x12, 0x2a, 0xce, 0xee, 0xac, 0x31, 0xd9, 0xb5, 0x1d, 0x8f, 0xb7, 0xa9, 0x78, + 0x39, 0xf1, 0x82, 0x04, 0x42, 0x02, 0xc4, 0xeb, 0x21, 0x04, 0x2f, 0xf0, 0x00, 0x88, 0x07, 0x78, + 0xe6, 0x1f, 0xe0, 0x11, 0x21, 0xf1, 0xca, 0x3f, 0xc0, 0x0b, 0x7f, 0x00, 0xf2, 0xcc, 0x78, 0x3c, + 0xf6, 0xd8, 0xde, 0x3d, 0xe7, 0xda, 0xbe, 0xac, 0x34, 0xdf, 0x7c, 0xe3, 0xf9, 0x7e, 0xcf, 0xf7, + 0x63, 0x61, 0xd1, 0x0e, 0xbc, 0x91, 0xbf, 0x49, 0x7f, 0x37, 0xfc, 0xc0, 0x0b, 0x3d, 0x54, 0xa7, + 0x0b, 0xfd, 0xee, 0x89, 0x8f, 0xdd, 0xe7, 0x87, 0x47, 0x9b, 0xfe, 0xb9, 0xbd, 0x49, 0x77, 0x36, + 0x49, 0xef, 0xfc, 0xf9, 0x25, 0xd9, 0xbc, 0x24, 0x0c, 0x53, 0xff, 0x7c, 0x31, 0x4a, 0x60, 0xf9, + 0x3e, 0x0e, 0x38, 0xa2, 0xf1, 0x0d, 0x80, 0x1d, 0x6f, 0x38, 0xf4, 0x5c, 0x13, 0x13, 0x1f, 0xb5, + 0x61, 0x66, 0x2f, 0x08, 0x76, 0xbc, 0x1e, 0x6e, 0x6b, 0xeb, 0xda, 0xfd, 0xba, 0x19, 0x2f, 0xd1, + 0x0a, 0x5c, 0xdb, 0x0b, 0x82, 0x23, 0x62, 0xb7, 0x6b, 0xeb, 0xda, 0xfd, 0x86, 0xc9, 0x57, 0xc6, + 0x07, 0x80, 0x1e, 0x47, 0x44, 0x3d, 0xea, 0xf5, 0x8e, 0xf0, 0xf0, 0x0c, 0x07, 0x87, 0x6e, 0xdf, + 0x8b, 0xb0, 0x3f, 0x24, 0x38, 0x38, 0xdc, 0xa5, 0x9f, 0x69, 0x98, 0x7c, 0x85, 0x56, 0xa1, 0x61, + 0x7a, 0x03, 0xfc, 0x14, 0xbf, 0xc0, 0x03, 0xfa, 0xa1, 0xba, 0x99, 0x00, 0x8c, 0xff, 0x6a, 0x70, + 0x7d, 0x27, 0xc0, 0x56, 0x88, 0xe9, 0x27, 0x4d, 0x7c, 0x81, 0x1e, 0xc1, 0xf5, 0x43, 0xd7, 0x09, + 0xd9, 0xa7, 0x9f, 0x3a, 0x24, 0x6c, 0x6b, 0xeb, 0x53, 0xf7, 0xe7, 0xb6, 0x6e, 0x6d, 0x30, 0xb9, + 0xa8, 0x77, 0x9b, 0x99, 0x03, 0xe8, 0x6b, 0xd0, 0xa0, 0x58, 0xd1, 0x26, 0xbd, 0x73, 0x6e, 0x6b, + 0x75, 0x83, 0xe0, 0xe0, 0x05, 0x0e, 0x9e, 0x5b, 0xbe, 0xf3, 0xdc, 0xb7, 0x02, 0x6b, 0x48, 0x36, + 0x04, 0x8e, 0x99, 0xa0, 0xa3, 0x75, 0x98, 0x3b, 0xf1, 0x71, 0x60, 0x85, 0x8e, 0xe7, 0x1e, 0xee, + 0xb6, 0xa7, 0x28, 0x33, 0x32, 0x08, 0xe9, 0x30, 0x7b, 0xe2, 0x73, 0x5e, 0xa7, 0xe9, 0xb6, 0x58, + 0xd3, 0xd3, 0x97, 0x2e, 0x0e, 0xf8, 0x76, 0x9d, 0x9f, 0x4e, 0x40, 0xc6, 0xc7, 0xd0, 0x4a, 0x31, + 0x5c, 0x45, 0x05, 0x69, 0x06, 0xa7, 0x3e, 0x15, 0x83, 0x46, 0x00, 0x0b, 0x8f, 0x71, 0x48, 0xd7, + 0x84, 0xee, 0xe1, 0x8b, 0x88, 0x6c, 0x86, 0xb0, 0x2b, 0x04, 0xde, 0x30, 0x65, 0x50, 0x56, 0x2c, + 0xb5, 0x72, 0xb1, 0x4c, 0xa5, 0xc5, 0x62, 0xfc, 0x44, 0x83, 0xc5, 0xcc, 0xa5, 0x95, 0xf8, 0xde, + 0x86, 0xa6, 0x60, 0x84, 0x52, 0x3a, 0x45, 0x4d, 0xa3, 0x9c, 0xf7, 0xf4, 0x11, 0xe3, 0xd7, 0x1a, + 0xb4, 0x3a, 0x9c, 0x96, 0x98, 0xff, 0xa7, 0xd0, 0xb2, 0xe3, 0xf5, 0xbe, 0x17, 0x74, 0x70, 0x48, + 0x29, 0x9a, 0xdb, 0x32, 0xca, 0xbe, 0xcc, 0x30, 0xcd, 0xec, 0xd1, 0x94, 0x24, 0x6a, 0x39, 0x06, + 0x52, 0x6a, 0x5e, 0xc6, 0x1e, 0x2c, 0xa4, 0xc9, 0x23, 0x3e, 0xfa, 0xb2, 0xec, 0xb2, 0x9c, 0xb4, + 0x45, 0xee, 0x0f, 0xc9, 0x86, 0x29, 0x21, 0x19, 0x3f, 0x04, 0x3d, 0x96, 0xf8, 0x23, 0xdf, 0x1f, + 0x38, 0x5d, 0xfa, 0xfd, 0x48, 0x02, 0x11, 0xc3, 0x32, 0x89, 0x5a, 0x39, 0x89, 0x39, 0xaa, 0x5e, + 0x03, 0xd8, 0x0f, 0xbc, 0x61, 0x4a, 0xd9, 0x12, 0xc4, 0xf8, 0x44, 0x83, 0xdb, 0x85, 0x97, 0x57, + 0x52, 0xfc, 0x13, 0x58, 0x88, 0x03, 0xc4, 0x08, 0x93, 0x50, 0xd2, 0xfd, 0x9d, 0x22, 0x0d, 0x71, + 0x54, 0x53, 0x39, 0x68, 0x84, 0xb0, 0xfa, 0x18, 0x87, 0x11, 0xad, 0x26, 0xbe, 0xc8, 0x11, 0x4e, + 0x51, 0x28, 0xbb, 0x9a, 0x5e, 0x7f, 0xa3, 0xc1, 0x5b, 0x25, 0xd7, 0x56, 0xd2, 0x72, 0xae, 0x5c, + 0x6a, 0x55, 0xe5, 0xf2, 0x77, 0x0d, 0x96, 0x9f, 0x05, 0x96, 0x4b, 0xfa, 0x38, 0xa0, 0x9b, 0x34, + 0x6e, 0x45, 0x12, 0x69, 0xc3, 0x0c, 0x0f, 0x06, 0x5c, 0x24, 0xf1, 0x12, 0xbd, 0x03, 0xd7, 0x4f, + 0x06, 0x3d, 0x39, 0xe6, 0x31, 0xc9, 0x64, 0xa0, 0x11, 0xde, 0x31, 0xbe, 0x94, 0xf1, 0x98, 0x88, + 0x32, 0xd0, 0xac, 0x1c, 0xa7, 0xcb, 0xe3, 0x4c, 0x3d, 0x13, 0x67, 0x9e, 0xc0, 0x4a, 0x1e, 0x03, + 0xd5, 0x3c, 0xe8, 0x1f, 0x1a, 0xcc, 0x7f, 0xe0, 0x39, 0xae, 0x78, 0x99, 0x8a, 0xa5, 0xb0, 0x06, + 0x60, 0xe2, 0x8b, 0x23, 0x4c, 0x88, 0x65, 0x63, 0x2e, 0x01, 0x09, 0x52, 0x16, 0x1b, 0x27, 0xe0, + 0x78, 0x0d, 0x20, 0xa2, 0xa3, 0xe3, 0x8d, 0x82, 0x2e, 0xa6, 0x3c, 0xd7, 0x4d, 0x09, 0x82, 0xee, + 0x41, 0xf3, 0xd0, 0x7d, 0xe1, 0x84, 0x42, 0xb4, 0xd7, 0xe8, 0x37, 0xd2, 0x40, 0x63, 0x1b, 0x9a, + 0x12, 0x37, 0xd5, 0x44, 0xf2, 0xef, 0xc8, 0xb1, 0x33, 0x5e, 0x1d, 0x6d, 0x78, 0x2e, 0xc1, 0xfc, + 0x1d, 0x91, 0x79, 0xd1, 0xca, 0xb5, 0x97, 0xf5, 0x21, 0x49, 0xbe, 0x53, 0x8a, 0x7c, 0xa5, 0x80, + 0x33, 0x9d, 0x0d, 0x38, 0xd1, 0xfe, 0x81, 0xe5, 0xf6, 0x06, 0xb8, 0x17, 0x85, 0x0e, 0x66, 0x15, + 0x12, 0x04, 0x19, 0x30, 0xcf, 0x56, 0x26, 0x26, 0xa3, 0x41, 0x48, 0x05, 0x54, 0x37, 0x53, 0x30, + 0xe3, 0x14, 0x56, 0x8b, 0x59, 0xab, 0x26, 0xae, 0x3e, 0xcc, 0x9f, 0x8e, 0x9c, 0x70, 0x02, 0x03, + 0xba, 0xda, 0xf3, 0xba, 0x0d, 0x4d, 0xe9, 0x9e, 0x6a, 0xb4, 0xfe, 0x56, 0x83, 0xe5, 0x38, 0x66, + 0x27, 0xa9, 0x54, 0x39, 0xd5, 0x57, 0x0a, 0x88, 0x51, 0x98, 0xdd, 0x77, 0x06, 0x21, 0x0e, 0xa8, + 0x42, 0xeb, 0x26, 0x5f, 0x45, 0xf7, 0x1d, 0xe3, 0x97, 0x61, 0x07, 0x5f, 0x70, 0x5b, 0x8f, 0x97, + 0xc6, 0x1f, 0x35, 0x58, 0xc9, 0xa3, 0xb1, 0xd2, 0x93, 0xb2, 0x0f, 0x30, 0x4c, 0x72, 0x4c, 0xf6, + 0x98, 0xbc, 0x53, 0x14, 0x34, 0xd9, 0x6d, 0xfb, 0xa3, 0xc1, 0x80, 0xbe, 0xc9, 0xd2, 0xc9, 0xe8, + 0x66, 0x97, 0x93, 0xcb, 0xf8, 0x88, 0x97, 0xc6, 0x2f, 0x14, 0x72, 0x45, 0xc2, 0x55, 0x1a, 0x4a, + 0x24, 0xb2, 0x6a, 0x34, 0x13, 0x93, 0xaf, 0xbb, 0x52, 0x28, 0x31, 0x7e, 0xa5, 0xc1, 0xcd, 0x5c, + 0x92, 0xde, 0xa4, 0x08, 0x8d, 0xbf, 0x68, 0x80, 0x9e, 0x38, 0xdd, 0x73, 0x09, 0xaf, 0x5c, 0x48, + 0x5f, 0x80, 0x85, 0x08, 0x1f, 0xf7, 0x18, 0xe3, 0x92, 0xa8, 0x14, 0x78, 0x44, 0xbc, 0x89, 0x2d, + 0xe2, 0xb9, 0x5c, 0x5c, 0x7c, 0x95, 0x15, 0x56, 0xbd, 0xdc, 0xe5, 0xae, 0x65, 0x5c, 0xee, 0x3d, + 0x68, 0x1c, 0xf6, 0xb6, 0x58, 0xe8, 0x28, 0x4c, 0x18, 0xe8, 0xd5, 0x34, 0xe0, 0xb0, 0xc2, 0x87, + 0xaf, 0x8c, 0x8f, 0x61, 0x49, 0x61, 0xb7, 0x92, 0x02, 0x1e, 0x42, 0x53, 0x50, 0x21, 0xe9, 0x60, + 0x81, 0xbb, 0xba, 0xd8, 0x33, 0xd3, 0x68, 0xc6, 0x88, 0xfa, 0x7a, 0xf4, 0x1c, 0xe0, 0x1e, 0xa5, + 0x22, 0xf6, 0xf5, 0x74, 0xa0, 0xd5, 0x94, 0x40, 0xbb, 0x0e, 0x73, 0x9e, 0x1a, 0xa7, 0xbc, 0x09, + 0xe3, 0xd4, 0x8f, 0x99, 0x43, 0x28, 0xf7, 0x5e, 0xa9, 0x06, 0x9a, 0xb8, 0x0e, 0x48, 0xd0, 0x8d, + 0xbf, 0x6a, 0x70, 0x83, 0xbd, 0x8e, 0x11, 0x65, 0xcf, 0x3c, 0x11, 0xa1, 0xc7, 0xc7, 0xe1, 0xe2, + 0x47, 0x2a, 0x31, 0xb4, 0xe9, 0x94, 0xa1, 0x3d, 0x80, 0x45, 0x76, 0x97, 0x6c, 0xad, 0x75, 0x6a, + 0xad, 0xea, 0x46, 0xa9, 0xd1, 0xfd, 0x48, 0x83, 0xe5, 0x1c, 0xb2, 0x5f, 0xab, 0xe9, 0x7c, 0xa2, + 0xc1, 0x0d, 0x91, 0xdb, 0x0f, 0x06, 0x93, 0x78, 0xeb, 0x95, 0x9f, 0x89, 0x93, 0x7e, 0x9f, 0xe0, + 0x30, 0x7e, 0x26, 0xd8, 0x0a, 0xdd, 0x80, 0xfa, 0x8e, 0x37, 0x72, 0x43, 0xfe, 0x48, 0xb0, 0x85, + 0xf1, 0x4b, 0xe9, 0x19, 0x93, 0xc8, 0x7b, 0xa3, 0xe1, 0xed, 0x77, 0x1a, 0xcc, 0xee, 0x1c, 0x75, + 0x28, 0x5a, 0xba, 0x74, 0xd7, 0x3e, 0x5d, 0x6f, 0x62, 0x83, 0x77, 0x5e, 0x44, 0xc2, 0x7c, 0x6c, + 0x0d, 0xe3, 0x74, 0x33, 0x67, 0x27, 0x0a, 0x93, 0x69, 0xa8, 0x90, 0xb0, 0x02, 0x37, 0xfe, 0xac, + 0xc1, 0xbc, 0x28, 0xd1, 0x23, 0x7d, 0xee, 0x02, 0x7c, 0xcb, 0xb2, 0x1d, 0x97, 0xea, 0x81, 0x53, + 0x7a, 0x2f, 0x87, 0x52, 0x5e, 0x41, 0x24, 0xb8, 0xa6, 0x74, 0x0e, 0xad, 0x72, 0x76, 0x25, 0x4a, + 0x13, 0x40, 0x89, 0x33, 0x8d, 0x7f, 0xca, 0xfe, 0xa9, 0x41, 0x53, 0x22, 0x98, 0xf8, 0xe8, 0x8b, + 0xd0, 0x88, 0xc5, 0x4c, 0x78, 0xd3, 0xa8, 0x15, 0x27, 0x3d, 0x1c, 0x6e, 0x26, 0x18, 0x68, 0x2f, + 0xc5, 0x20, 0x6b, 0x13, 0x7d, 0x2e, 0x97, 0x41, 0x96, 0x05, 0x16, 0x70, 0xa8, 0xc3, 0x2c, 0x63, + 0x68, 0x34, 0xa4, 0x4c, 0xd4, 0x4d, 0xb1, 0x8e, 0xf2, 0xb0, 0x6e, 0x92, 0x87, 0x4d, 0x17, 0xe6, + 0x61, 0x09, 0x92, 0x71, 0x92, 0x74, 0x4a, 0x26, 0xf1, 0xad, 0xb1, 0x01, 0xcb, 0xf8, 0x9b, 0x92, + 0xd8, 0x91, 0x9d, 0xa3, 0xce, 0x58, 0x8f, 0xcd, 0x98, 0x97, 0x58, 0x67, 0xec, 0x62, 0xaa, 0xa2, + 0x5d, 0x8c, 0xd7, 0xef, 0xff, 0xd4, 0xec, 0x89, 0xd2, 0x4d, 0x7c, 0xf4, 0x4d, 0x98, 0x61, 0xee, + 0x15, 0xab, 0x79, 0x52, 0xaf, 0x8c, 0x8f, 0x7d, 0x56, 0xba, 0x5f, 0x03, 0x60, 0x37, 0x1c, 0x8f, + 0x86, 0x84, 0x6b, 0x5f, 0x82, 0x54, 0xd1, 0xbf, 0x03, 0xad, 0x5d, 0x87, 0x0c, 0x1d, 0x42, 0xc4, + 0xa3, 0xa4, 0xc3, 0xac, 0x97, 0x69, 0xd6, 0x78, 0xfe, 0xc4, 0x0f, 0x72, 0x1b, 0x66, 0xec, 0xb4, + 0x8f, 0xf1, 0xa5, 0xb1, 0x07, 0x0b, 0xe9, 0xab, 0x58, 0xe5, 0xd0, 0x9d, 0xa4, 0x72, 0x90, 0x28, + 0xfe, 0x83, 0x06, 0xe8, 0x68, 0xc4, 0x1b, 0x9a, 0x89, 0xcd, 0xbe, 0x22, 0xaa, 0xa3, 0x68, 0x3d, + 0x92, 0xeb, 0x40, 0xbe, 0x8a, 0x6a, 0xbc, 0xe1, 0x28, 0xc4, 0xbd, 0x0e, 0xee, 0x7a, 0x6e, 0x8f, + 0xd0, 0x67, 0xa1, 0x69, 0xa6, 0x60, 0xc6, 0x01, 0x2c, 0x29, 0x94, 0x56, 0x63, 0xfa, 0xa7, 0x1a, + 0xb4, 0x77, 0x2c, 0xb7, 0x8b, 0x07, 0x6f, 0x9e, 0x75, 0xe3, 0x18, 0x6e, 0x15, 0xd0, 0x52, 0x8d, + 0xb9, 0x3e, 0xcc, 0x8b, 0x2f, 0xbd, 0x4a, 0x03, 0xdc, 0x86, 0xa6, 0x74, 0x4f, 0x35, 0x5a, 0x07, + 0x80, 0x32, 0xbc, 0xbf, 0x4a, 0x8a, 0x0f, 0x60, 0x49, 0xb9, 0xad, 0x1a, 0xdd, 0xbf, 0xd7, 0xe0, + 0x56, 0x27, 0x15, 0xde, 0x8e, 0x9d, 0xee, 0xb9, 0x6b, 0x0d, 0x31, 0x0f, 0xcd, 0x76, 0x3a, 0x34, + 0xdb, 0x49, 0x68, 0x76, 0x39, 0x62, 0x1c, 0x9a, 0xe3, 0x75, 0x8a, 0xeb, 0xa9, 0x72, 0xae, 0xa7, + 0x55, 0xae, 0x13, 0xeb, 0xaa, 0xa7, 0xac, 0xeb, 0x04, 0xf4, 0x22, 0x42, 0xab, 0xb5, 0x1a, 0x02, + 0xda, 0x9a, 0x66, 0x55, 0x40, 0x67, 0xe4, 0xf3, 0x5e, 0x5d, 0x5c, 0x82, 0x64, 0x08, 0xd5, 0xca, + 0x08, 0xad, 0xa5, 0x22, 0x40, 0x09, 0xfb, 0xc6, 0xcf, 0x58, 0x4b, 0x3a, 0xff, 0xd2, 0x4a, 0x1a, + 0xbc, 0x52, 0x01, 0x72, 0x49, 0xdf, 0xe4, 0x84, 0x8e, 0xd7, 0x36, 0x89, 0xf9, 0x39, 0x7b, 0x55, + 0x95, 0x9b, 0xab, 0x89, 0xe0, 0xb3, 0x98, 0xc7, 0xfc, 0xa7, 0x06, 0xcb, 0x69, 0xfb, 0x92, 0x9a, + 0x24, 0x05, 0x4e, 0x50, 0xc1, 0x02, 0x26, 0x70, 0x80, 0xaf, 0x48, 0xae, 0x55, 0xe7, 0x99, 0xb9, + 0xed, 0x79, 0xf6, 0x00, 0xb3, 0xc9, 0xe9, 0xd9, 0xa8, 0xbf, 0xd1, 0x09, 0x03, 0xc7, 0xb5, 0xbf, + 0x6d, 0x0d, 0x46, 0x58, 0x72, 0xbc, 0x87, 0x30, 0xd3, 0xb7, 0xba, 0xf8, 0x43, 0xf3, 0x29, 0xad, + 0xd9, 0xc6, 0x1d, 0x8c, 0x91, 0xd1, 0x57, 0xa1, 0x11, 0x88, 0xe1, 0xe8, 0x0c, 0x3d, 0x79, 0x5b, + 0x39, 0x79, 0xe8, 0x86, 0xef, 0x6e, 0xb1, 0x83, 0x09, 0x36, 0x7a, 0x00, 0x35, 0xfc, 0xb2, 0x3d, + 0x3b, 0xc1, 0x6d, 0x35, 0xfc, 0xd2, 0x78, 0x02, 0x2b, 0x79, 0x32, 0xae, 0xe6, 0xbf, 0x17, 0x49, + 0x0f, 0xe9, 0xd1, 0x19, 0x09, 0x03, 0xab, 0x1b, 0x8e, 0x57, 0x99, 0xac, 0x9a, 0x5a, 0xb9, 0x6a, + 0xa6, 0x14, 0xd5, 0x18, 0x7f, 0xd2, 0xa0, 0x9d, 0x7f, 0x67, 0xb5, 0xb9, 0xc9, 0x03, 0x3e, 0x6b, + 0x17, 0xb9, 0xda, 0x19, 0x0e, 0x78, 0x93, 0x46, 0xdd, 0x40, 0x5f, 0x82, 0x25, 0x3b, 0xdd, 0x73, + 0x3c, 0xb0, 0xc8, 0xf7, 0x29, 0x9d, 0xd3, 0x66, 0xde, 0xd6, 0xd6, 0xbf, 0x16, 0x80, 0x4d, 0xee, + 0xd1, 0xd7, 0x61, 0xae, 0x9b, 0xcc, 0x7b, 0xd1, 0x72, 0x4c, 0x57, 0x6a, 0xe8, 0xad, 0xaf, 0xe4, + 0x81, 0x89, 0x8f, 0x1e, 0x42, 0xe3, 0x07, 0x71, 0xd3, 0x1e, 0x2d, 0x71, 0x24, 0x79, 0x28, 0xa1, + 0xdf, 0x50, 0x81, 0xec, 0xdc, 0x45, 0xdc, 0x11, 0x16, 0xe7, 0xe4, 0x5e, 0xb4, 0x38, 0x97, 0x6e, + 0x1c, 0x6f, 0x43, 0xd3, 0x96, 0xe7, 0xb4, 0xe8, 0x66, 0x3c, 0x75, 0xcf, 0x8c, 0x8c, 0xf5, 0x76, + 0xfe, 0x06, 0xf1, 0xd1, 0xfb, 0x30, 0x4f, 0xa4, 0x01, 0x26, 0x8a, 0x79, 0xcb, 0x0c, 0x5d, 0xf5, + 0x9b, 0xb9, 0x70, 0xe2, 0xa3, 0xef, 0xc1, 0x4d, 0x3b, 0x7f, 0x7a, 0x88, 0xee, 0x66, 0x6e, 0x55, + 0xa7, 0x77, 0xba, 0x31, 0x0e, 0x85, 0xf8, 0xa8, 0x0f, 0xb7, 0xec, 0xa2, 0x51, 0x1c, 0x7a, 0x3b, + 0xf9, 0x40, 0xe1, 0x8c, 0x50, 0xbf, 0x37, 0x1e, 0x89, 0xf8, 0xe8, 0x14, 0x50, 0xa8, 0xcc, 0xa3, + 0xd0, 0x2a, 0x3f, 0x9b, 0x3b, 0x6b, 0xd3, 0xdf, 0x2a, 0xd9, 0x25, 0x3e, 0xea, 0x42, 0xdb, 0x2e, + 0x18, 0x53, 0x20, 0x23, 0xf5, 0x17, 0x89, 0xdc, 0x11, 0x8d, 0xfe, 0xf6, 0x58, 0x1c, 0x46, 0xb7, + 0xad, 0xf4, 0xd9, 0x05, 0xdd, 0xb9, 0x63, 0x02, 0x41, 0x77, 0x41, 0x83, 0xfe, 0x19, 0x2c, 0xd9, + 0x6a, 0xe3, 0x19, 0xe5, 0x9f, 0x12, 0x56, 0xb6, 0x56, 0xb6, 0x4d, 0x7c, 0x74, 0x00, 0xad, 0xf3, + 0x74, 0x27, 0x15, 0xc5, 0xff, 0x13, 0x51, 0x1b, 0xca, 0xba, 0x5e, 0xb4, 0x25, 0x58, 0xce, 0xb4, + 0x26, 0x65, 0x96, 0xd5, 0x6e, 0xa9, 0xcc, 0x72, 0x5e, 0x4f, 0xf3, 0x18, 0x16, 0x9d, 0x6c, 0xb7, + 0x0e, 0xdd, 0x8e, 0x1b, 0x6c, 0x39, 0xed, 0x47, 0x7d, 0xb5, 0x78, 0x93, 0x7d, 0xcf, 0xce, 0xb6, + 0xb6, 0xc4, 0xf7, 0xf2, 0x7a, 0x72, 0xfa, 0x6a, 0xf1, 0x26, 0x0b, 0x12, 0xc2, 0x7b, 0x45, 0x90, + 0x90, 0x7b, 0x40, 0x22, 0x48, 0xa4, 0xfb, 0x2c, 0xa7, 0x80, 0xd4, 0xc2, 0xbc, 0xc0, 0x3a, 0x78, + 0xaf, 0xa1, 0xc0, 0x3a, 0x44, 0x45, 0xff, 0x3e, 0xcc, 0xcb, 0xa5, 0xa8, 0x88, 0x19, 0x99, 0x52, + 0x58, 0xc4, 0x0c, 0xa5, 0x6e, 0x3d, 0x80, 0x56, 0xa6, 0xf8, 0x11, 0x86, 0xa0, 0x16, 0x68, 0xc2, + 0x10, 0xf2, 0xea, 0xa5, 0x8f, 0x60, 0x39, 0xb7, 0x98, 0x42, 0x77, 0xe2, 0x18, 0x5d, 0x50, 0xf6, + 0xe9, 0xeb, 0xe5, 0x08, 0x4c, 0xe2, 0x02, 0x2c, 0x24, 0x2e, 0x17, 0x2e, 0x42, 0xe2, 0xe9, 0xfa, + 0xe2, 0x00, 0x5a, 0x99, 0x8f, 0x0a, 0xee, 0xd4, 0xe2, 0x47, 0x70, 0x97, 0x57, 0xa9, 0x7c, 0x37, + 0x9b, 0x08, 0xc4, 0xc9, 0x3c, 0x5a, 0xcf, 0x84, 0x63, 0xa5, 0x28, 0xd1, 0xef, 0x8e, 0xc1, 0x60, + 0xa1, 0xbb, 0x20, 0xcb, 0x96, 0x43, 0x77, 0x41, 0xea, 0x2f, 0x87, 0xee, 0xc2, 0x44, 0x9d, 0x19, + 0x5f, 0x26, 0x7f, 0x95, 0x8d, 0x4f, 0x4d, 0xaa, 0x65, 0xe3, 0xcb, 0x4b, 0x7c, 0x4f, 0x01, 0xa9, + 0xc9, 0x91, 0xf8, 0x64, 0x6e, 0x6e, 0x2a, 0x3e, 0x59, 0x90, 0x55, 0x7d, 0x47, 0x6a, 0x92, 0x4b, + 0xe9, 0x0a, 0xca, 0xc6, 0xb3, 0x4c, 0xfe, 0xa4, 0xdf, 0x29, 0xdd, 0x27, 0xfe, 0x76, 0xeb, 0xa3, + 0xe6, 0x06, 0xfb, 0x83, 0xe0, 0x7b, 0xf4, 0xf7, 0xec, 0x1a, 0xcd, 0xf9, 0xde, 0xfd, 0x7f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xa6, 0x62, 0x5f, 0x0b, 0x3c, 0x28, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index cffe91886..852dbba5b 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -219,27 +219,19 @@ message CMSGroup { string GroupOwnerUserID = 3; } -message GetGroupReq { - string GroupName = 1; - server_api_params.RequestPagination Pagination = 2; - string OperationID = 3; -} - -message GetGroupResp { - repeated CMSGroup CMSGroups = 1; - server_api_params.RequestPagination Pagination = 2; - int32 GroupNums = 3; -} message GetGroupsReq { server_api_params.RequestPagination Pagination = 1; - string OperationID = 2; + string GroupName = 2; + string GroupID = 3; + string OperationID = 4; } message GetGroupsResp { repeated CMSGroup CMSGroups = 1; - server_api_params.RequestPagination Pagination = 2; + server_api_params.ResponsePagination Pagination = 2; int32 GroupNum = 3; + CommonResp commonResp = 4; } message GetGroupMemberReq { @@ -247,26 +239,6 @@ message GetGroupMemberReq { string OperationID = 2; } -message OperateUserRoleReq { - string GroupID = 1; - string UserID = 2; - int32 RoleLevel = 3; - string OperationID = 4; -} - -message OperateUserRoleResp { - -} - -message GetGroupByIDReq { - string GroupID = 1; - string OperationID = 2; -} - -message GetGroupByIDResp { - CMSGroup CMSGroup = 1; -} - message GetGroupMembersCMSReq { string GroupID = 1; string UserName = 2; @@ -278,30 +250,7 @@ message GetGroupMembersCMSResp { repeated server_api_params.GroupMemberFullInfo members = 1; server_api_params.ResponsePagination Pagination = 2; int32 MemberNums = 3; -} - -message RemoveGroupMembersCMSReq { - string GroupID = 1; - repeated string UserIDList = 2; - string OperationID = 3; - string OpUserID = 4; -} - -message RemoveGroupMembersCMSResp { - repeated string success = 1; - repeated string failed = 2; -} - -message AddGroupMembersCMSReq { - string GroupID = 1; - repeated string UserIDList = 2; - string OperationID = 3; - string OpUserID = 4; -} - -message AddGroupMembersCMSResp { - repeated string success = 1; - repeated string failed = 2; + CommonResp commonResp = 4; } message DismissGroupReq{ @@ -444,13 +393,9 @@ service group{ rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - rpc GetGroupByID(GetGroupByIDReq) returns(GetGroupByIDResp); - rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); - rpc OperateUserRole(OperateUserRoleReq) returns(OperateUserRoleResp); rpc GetGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp); - rpc RemoveGroupMembersCMS(RemoveGroupMembersCMSReq) returns(RemoveGroupMembersCMSResp); - rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); + rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp); rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); @@ -459,7 +404,6 @@ service group{ rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); rpc SetGroupMemberNickname(SetGroupMemberNicknameReq) returns (SetGroupMemberNicknameResp); - rpc GetJoinedSuperGroupList(GetJoinedSuperGroupListReq) returns (GetJoinedSuperGroupListResp); rpc GetSuperGroupsInfo(GetSuperGroupsInfoReq) returns (GetSuperGroupsInfoResp); rpc SetGroupMemberInfo(SetGroupMemberInfoReq) returns (SetGroupMemberInfoResp); From a4767bc7e3cd54cf0d14591d3b2b62bebd85d6d0 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:40:54 +0800 Subject: [PATCH 18/56] cms --- internal/rpc/user/user.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 56670eb72..7d82bb192 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -7,7 +7,6 @@ import ( "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" rocksCache "Open_IM/pkg/common/db/rocks_cache" - errors "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -697,7 +696,9 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser nums, err := imdb.GetBlockUsersNumCount() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsersNumCount failed", err.Error()) - return resp, errors.WrapError(constant.ErrDB) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } resp.UserNums = nums log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) From 42f7af3d52399808ca75f16291a8e9bc330deb5e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:42:27 +0800 Subject: [PATCH 19/56] cms --- pkg/common/db/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 65be89ce3..ba7afe19f 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -237,7 +237,7 @@ type ChatLog struct { ContentType int32 `gorm:"column:content_type;index:search" json:"contentType"` Content string `gorm:"column:content;type:varchar(3000);index:search" json:"content"` Status int32 `gorm:"column:status" json:"status"` - SendTime time.Time `gorm:"column:send_time;;index:search" json:"sendTime"` + SendTime time.Time `gorm:"column:send_time;index:search;priority:1" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } From b75b46f415172ac7b50fafbf1e66acd21f7fbde4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:44:34 +0800 Subject: [PATCH 20/56] cms --- internal/rpc/group/group.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1948c93ac..6e9e4b3af 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1161,7 +1161,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf group, err := imdb.GetGroupInfoByGroupID(req.GroupInfoForSet.GroupID) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfoForSet.GroupID) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } if group.Status == constant.GroupStatusDismissed { @@ -1198,7 +1198,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf m["need_verification"] = req.GroupInfoForSet.NeedVerification.Value if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } if req.GroupInfoForSet.LookMemberInfo != nil { @@ -1207,7 +1207,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf m["look_member_info"] = req.GroupInfoForSet.LookMemberInfo.Value if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } if req.GroupInfoForSet.ApplyMemberFriend != nil { @@ -1216,7 +1216,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf m["apply_member_friend"] = req.GroupInfoForSet.ApplyMemberFriend.Value if err := imdb.UpdateGroupInfoDefaultZero(req.GroupInfoForSet.GroupID, m); err != nil { log.NewError(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), m) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } // @@ -1233,11 +1233,11 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } if err := rocksCache.DelGroupInfoFromCache(req.GroupInfoForSet.GroupID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "DelGroupInfoFromCache failed ", err.Error(), req.GroupInfoForSet.GroupID) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) @@ -1251,7 +1251,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, http.WrapError(constant.ErrInternal) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } client := pbCache.NewCacheClient(etcdConn) cacheResp, err := client.GetGroupMemberIDListFromCache(context.Background(), getGroupMemberIDListFromCacheReq) @@ -1280,7 +1280,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if etcdConn == nil { errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(req.OperationID, errMsg) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, http.WrapError(constant.ErrInternal) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrInternal.ErrCode, ErrMsg: errMsg}}, nil } nClient := pbConversation.NewConversationClient(nEtcdConn) conversationReply, err := nClient.ModifyConversationField(context.Background(), &conversationReq) From f43c04222371d4feda65c8a8859465df84481ea4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:45:41 +0800 Subject: [PATCH 21/56] cms --- internal/rpc/group/group.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6e9e4b3af..d70798668 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -7,7 +7,6 @@ import ( "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" rocksCache "Open_IM/pkg/common/db/rocks_cache" - "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" cp "Open_IM/pkg/common/utils" @@ -122,7 +121,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err := imdb.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } var okUserIDList []string resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}} @@ -132,7 +131,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR us, err = imdb.GetUserByUserID(req.OwnerUserID) if err != nil { log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OwnerUserID) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } //to group member groupMember = db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID, JoinSource: constant.JoinByInvitation, InviterUserID: req.OpUserID} @@ -140,7 +139,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err = imdb.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } } if req.GroupInfo.GroupType != constant.SuperGroup { From 2a8b19d31948353fa30e4dc2ef1ebbb833c404a2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 01:57:06 +0800 Subject: [PATCH 22/56] cms --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index d70798668..1f3145340 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1337,6 +1337,7 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups ", req.String()) resp := &pbGroup.GetGroupsResp{ + CommonResp: &pbGroup.CommonResp{}, CMSGroups: []*pbGroup.CMSGroup{}, Pagination: &open_im_sdk.ResponsePagination{}, } From 2c2d3e4641bdf9efb58b8e2d96ecf831b84fb164 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 02:02:41 +0800 Subject: [PATCH 23/56] cms --- internal/cms_api/router.go | 1 - pkg/cms_api_struct/group.go | 2 +- pkg/common/db/model_struct.go | 10 +++++----- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 2f4273782..60f61650f 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -38,7 +38,6 @@ func NewGinRouter() *gin.Engine { { groupRouterGroup.POST("/get_groups", group.GetGroups) groupRouterGroup.POST("/get_group_members", group.GetGroupMembers) - groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) } userRouterGroup := r2.Group("/user") { diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 416e040b5..3427c8967 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -24,7 +24,7 @@ type GroupResponse struct { type GetGroupsRequest struct { RequestPagination - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` } type GetGroupsResponse struct { diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index ba7afe19f..29486c16d 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -227,17 +227,17 @@ type Black struct { type ChatLog struct { ServerMsgID string `gorm:"column:server_msg_id;primary_key;type:char(64)" json:"serverMsgID"` ClientMsgID string `gorm:"column:client_msg_id;type:char(64)" json:"clientMsgID"` - SendID string `gorm:"column:send_id;type:char(64);index:search" json:"sendID"` - RecvID string `gorm:"column:recv_id;type:char(64);index:search" json:"recvID"` + SendID string `gorm:"column:send_id;type:char(64);index:send_id" json:"sendID"` + RecvID string `gorm:"column:recv_id;type:char(64);index:recv_id" json:"recvID"` SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255)" json:"senderFaceURL"` - SessionType int32 `gorm:"column:session_type;;index:search" json:"sessionType"` + SessionType int32 `gorm:"column:session_type;;index:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` - ContentType int32 `gorm:"column:content_type;index:search" json:"contentType"` + ContentType int32 `gorm:"column:content_type;index:content_type" json:"contentType"` Content string `gorm:"column:content;type:varchar(3000);index:search" json:"content"` Status int32 `gorm:"column:status" json:"status"` - SendTime time.Time `gorm:"column:send_time;index:search;priority:1" json:"sendTime"` + SendTime time.Time `gorm:"column:send_time;index:sendTime" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } From 87dfdb2ddcd68bc0221fb4dde5cd101cc458d975 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 02:20:04 +0800 Subject: [PATCH 24/56] cms --- internal/cms_api/group/group.go | 4 +++- internal/rpc/group/group.go | 2 +- pkg/cms_api_struct/group.go | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index c73ac9599..b53bc6bc1 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -38,6 +38,8 @@ func GetGroups(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } + reqPb.GroupID = req.GroupID + reqPb.GroupName = req.GroupName client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroups(context.Background(), &reqPb) if err != nil { @@ -55,7 +57,7 @@ func GetGroups(c *gin.Context) { resp.GroupNums = int(respPb.GroupNum) resp.CurrentPage = int(respPb.Pagination.CurrentPage) resp.ShowNumber = int(respPb.Pagination.ShowNumber) - log.NewInfo("", utils.GetSelfFuncName(), "resp: ", resp) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1f3145340..72e5e4825 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1387,7 +1387,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGroupMembersCMSReq) (*pbGroup.GetGroupMembersCMSResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) - resp := &pbGroup.GetGroupMembersCMSResp{} + resp := &pbGroup.GetGroupMembersCMSResp{CommonResp: &pbGroup.CommonResp{}} groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupID, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersByGroupIdCMS Error", err.Error()) diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 3427c8967..00769e80f 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -25,6 +25,8 @@ type GroupResponse struct { type GetGroupsRequest struct { RequestPagination OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID"` + GroupName string `json:"groupName"` } type GetGroupsResponse struct { @@ -36,7 +38,7 @@ type GetGroupsResponse struct { type GetGroupMembersRequest struct { GroupID string `form:"groupID" binding:"required"` UserName string `form:"userName"` - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` RequestPagination } From 54c56037e7f66f1fa63682b7d01effc0baef6d10 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 14:17:40 +0800 Subject: [PATCH 25/56] cms --- internal/rpc/group/group.go | 13 +++++++++++-- internal/rpc/user/user.go | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 72e5e4825..9b43c33e9 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -18,6 +18,7 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" + "errors" "math/big" "net" "strconv" @@ -25,6 +26,7 @@ import ( "time" "google.golang.org/grpc" + "gorm.io/gorm" ) type groupServer struct { @@ -1343,7 +1345,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* } if req.GroupID != "" { groupInfoDB, err := imdb.GetGroupInfoByGroupID(req.GroupID) - if err != nil { + if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = err.Error() @@ -1352,7 +1354,14 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* resp.GroupNum = 1 groupInfo := &open_im_sdk.GroupInfo{} utils.CopyStructFields(groupInfo, groupInfoDB) - resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{GroupInfo: groupInfo}) + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{GroupInfo: groupInfo, GroupOwnerUserName: groupMember.Nickname, GroupOwnerUserID: groupMember.UserID}) } else { groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 7d82bb192..18f07260c 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -17,6 +17,7 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" + "errors" "net" "strconv" "strings" @@ -552,7 +553,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp := &pbUser.GetUsersResp{CommonResp: &pbUser.CommonResp{}} if req.UserID != "" { userDB, err := imdb.GetUserByUserID(req.UserID) - if err != nil && !gorm.IsRecordNotFoundError(err) { + if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserID, err.Error()) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg From 77327f59b9898ae4e98434c53f49d146b2490c33 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 16:53:15 +0800 Subject: [PATCH 26/56] cms --- internal/cms_api/router.go | 4 +- internal/cms_api/statistics/statistics.go | 10 +-- internal/cms_api/user/user.go | 7 +- internal/rpc/group/group.go | 11 ++-- internal/rpc/user/user.go | 65 ++++++++++++------- pkg/cms_api_struct/user.go | 8 +-- .../mysql_model/im_mysql_model/group_model.go | 2 +- .../mysql_model/im_mysql_model/user_model.go | 6 +- 8 files changed, 66 insertions(+), 47 deletions(-) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 60f61650f..b49df0e7f 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -44,11 +44,11 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/add_user", user.AddUser) userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) - userRouterGroup.GET("/get_block_users", user.GetBlockUsers) + userRouterGroup.POST("/get_block_users", user.GetBlockUsers) } messageCMSRouterGroup := r2.Group("/message") { - messageCMSRouterGroup.GET("/get_chat_logs", messageCMS.GetChatLogs) + messageCMSRouterGroup.POST("/get_chat_logs", messageCMS.GetChatLogs) } return baseRouter } diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index ccfe97020..f8cc80717 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -29,7 +29,7 @@ func GetMessagesStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -83,7 +83,7 @@ func GetUserStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -146,7 +146,7 @@ func GetGroupStatistics(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, &req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -203,7 +203,7 @@ func GetActiveUser(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -237,7 +237,7 @@ func GetActiveGroup(c *gin.Context) { reqPb.OperationID = utils.OperationIDGenerator() log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) utils.CopyStructFields(&reqPb.StatisticsReq, req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 84d2b12db..dff3a853f 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -47,13 +47,12 @@ func AddUser(c *gin.Context) { func BlockUser(c *gin.Context) { var ( - req cms_api_struct.BlockUserRequest - // resp cms_api_struct.BlockUserResponse + req cms_api_struct.BlockUserRequest reqPb pb.BlockUserReq ) if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() @@ -84,7 +83,7 @@ func UnblockUser(c *gin.Context) { ) if err := c.BindJSON(&req); err != nil { log.NewError(req.OperationID, "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } reqPb.OperationID = utils.OperationIDGenerator() diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 9b43c33e9..d1569883b 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1341,15 +1341,20 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* resp := &pbGroup.GetGroupsResp{ CommonResp: &pbGroup.CommonResp{}, CMSGroups: []*pbGroup.CMSGroup{}, - Pagination: &open_im_sdk.ResponsePagination{}, + Pagination: &open_im_sdk.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber}, } if req.GroupID != "" { groupInfoDB, err := imdb.GetGroupInfoByGroupID(req.GroupID) - if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return resp, nil + } log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = err.Error() return resp, nil + } else { + } resp.GroupNum = 1 groupInfo := &open_im_sdk.GroupInfo{} @@ -1388,8 +1393,6 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* return resp, nil } } - resp.Pagination.CurrentPage = req.Pagination.PageNumber - resp.Pagination.ShowNumber = req.Pagination.ShowNumber log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups resp", resp.String()) return resp, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 18f07260c..2f96a4759 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -22,8 +22,8 @@ import ( "strconv" "strings" - "github.com/jinzhu/gorm" "google.golang.org/grpc" + "gorm.io/gorm" ) type userServer struct { @@ -550,15 +550,19 @@ func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, o func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetUsersResp{CommonResp: &pbUser.CommonResp{}} + resp := &pbUser.GetUsersResp{CommonResp: &pbUser.CommonResp{}, Pagination: &sdkws.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber}} if req.UserID != "" { userDB, err := imdb.GetUserByUserID(req.UserID) - if err != nil && errors.Is(err, gorm.ErrRecordNotFound) { + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return resp, nil + } log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserID, err.Error()) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } + user := pbUser.CmsUser{User: &sdkws.UserInfo{}} utils.CopyStructFields(&user.User, userDB) resp.UserList = append(resp.UserList, &user) @@ -621,7 +625,6 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb v.IsBlock = true } } - resp.Pagination = &sdkws.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } @@ -655,7 +658,7 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.UnBlockUserResp{} + resp := &pbUser.UnBlockUserResp{CommonResp: &pbUser.CommonResp{}} err := imdb.UnBlockUser(req.UserID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "unBlockUser", err.Error()) @@ -667,15 +670,40 @@ func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq return resp, nil } -func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { +func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (resp *pbUser.GetBlockUsersResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.GetBlockUsersResp{} - blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) - if err != nil { - log.Error(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsers", err.Error(), req.Pagination.ShowNumber, req.Pagination.PageNumber) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = err.Error() - return resp, nil + resp = &pbUser.GetBlockUsersResp{CommonResp: &pbUser.CommonResp{}, Pagination: &sdkws.ResponsePagination{ShowNumber: req.Pagination.ShowNumber, CurrentPage: req.Pagination.PageNumber}} + var blockUsers []imdb.BlockUserInfo + if req.UserID != "" { + blockUser, err := imdb.GetBlockUserByID(req.UserID) + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return resp, nil + } + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + blockUsers = append(blockUsers, blockUser) + resp.UserNums = 1 + } else { + blockUsers, err = imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.Error(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsers", err.Error(), req.Pagination.ShowNumber, req.Pagination.PageNumber) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + + nums, err := imdb.GetBlockUsersNumCount() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsersNumCount failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + resp.UserNums = nums } for _, v := range blockUsers { resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ @@ -691,17 +719,6 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser EndDisableTime: (v.EndDisableTime).String(), }) } - resp.Pagination = &sdkws.ResponsePagination{} - resp.Pagination.ShowNumber = req.Pagination.ShowNumber - resp.Pagination.CurrentPage = req.Pagination.PageNumber - nums, err := imdb.GetBlockUsersNumCount() - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsersNumCount failed", err.Error()) - resp.CommonResp.ErrCode = constant.ErrDB.ErrCode - resp.CommonResp.ErrMsg = err.Error() - return resp, nil - } - resp.UserNums = nums log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) return resp, nil } diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index b994d07e0..5de29cc32 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -18,7 +18,7 @@ type UserResponse struct { } type AddUserRequest struct { - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` PhoneNumber string `json:"phoneNumber" binding:"required"` UserId string `json:"userID" binding:"required"` Name string `json:"name" binding:"required"` @@ -38,7 +38,7 @@ type BlockUser struct { } type BlockUserRequest struct { - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` UserID string `json:"userID" binding:"required"` EndDisableTime string `json:"endDisableTime" binding:"required"` } @@ -47,7 +47,7 @@ type BlockUserResponse struct { } type UnblockUserRequest struct { - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` UserID string `json:"userID" binding:"required"` } @@ -55,7 +55,7 @@ type UnBlockUserResponse struct { } type GetBlockUsersRequest struct { - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` RequestPagination } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index aa4ef29b9..2def46596 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -80,7 +80,7 @@ func OperateGroupStatus(groupId string, groupStatus int32) error { func GetGroupsCountNum(group db.Group) (int32, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(" name like '%%%s%%' ", group.GroupName).Count(&count).Error; err != nil { return 0, err } return int32(count), nil diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index d328e311e..c4023c404 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -199,7 +199,7 @@ type BlockUserInfo struct { EndDisableTime time.Time } -func GetBlockUserById(userId string) (BlockUserInfo, error) { +func GetBlockUserByID(userId string) (BlockUserInfo, error) { var blockUserInfo BlockUserInfo blockUser := db.BlackList{ UserId: userId, @@ -254,13 +254,13 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, error) { var users []db.User - err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", userName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like '%%%s%%' ", userName).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error return users, err } func GetUsersCount(nickname string) (int32, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", nickname)).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like '%%%s%%' ", nickname).Count(&count).Error; err != nil { return 0, err } return int32(count), nil From 5134faeefd97d45ace85c445bdbf6a24d425c4fe Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 17:33:20 +0800 Subject: [PATCH 27/56] cms --- internal/rpc/admin_cms/admin_cms.go | 39 +++++++++++++++++-- .../mysql_model/im_mysql_model/user_model.go | 2 +- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 51e3a7aab..ead456677 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -199,6 +199,8 @@ func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatL chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } for _, chatLog := range chatLogs { @@ -249,12 +251,16 @@ func (s *adminCMSServer) GetActiveGroup(_ context.Context, req *pbAdminCMS.GetAc fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } for _, activeGroup := range activeGroups { @@ -271,16 +277,20 @@ func (s *adminCMSServer) GetActiveGroup(_ context.Context, req *pbAdminCMS.GetAc func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetActiveUserReq) (*pbAdminCMS.GetActiveUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbAdminCMS.GetActiveUserResp{} + resp := &pbAdminCMS.GetActiveUserResp{CommonResp: &pbAdminCMS.CommonResp{}} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "time: ", fromTime, toTime) activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } for _, activeUser := range activeUsers { @@ -384,20 +394,27 @@ func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { func (s *adminCMSServer) GetGroupStatistics(_ context.Context, req *pbAdminCMS.GetGroupStatisticsReq) (*pbAdminCMS.GetGroupStatisticsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbAdminCMS.GetGroupStatisticsResp{} + resp := &pbAdminCMS.GetGroupStatisticsResp{CommonResp: &pbAdminCMS.CommonResp{}} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error(), fromTime, toTime) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } totalGroupNum, err := imdb.GetTotalGroupNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } resp.IncreaseGroupNum = increaseGroupNum @@ -436,21 +453,27 @@ func (s *adminCMSServer) GetGroupStatistics(_ context.Context, req *pbAdminCMS.G func (s *adminCMSServer) GetMessageStatistics(_ context.Context, req *pbAdminCMS.GetMessageStatisticsReq) (*pbAdminCMS.GetMessageStatisticsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - resp := &pbAdminCMS.GetMessageStatisticsResp{} + resp := &pbAdminCMS.GetMessageStatisticsResp{CommonResp: &pbAdminCMS.CommonResp{}} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "times: ", fromTime, toTime) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } log.NewDebug(req.OperationID, utils.GetSelfFuncName(), privateMessageNum, groupMessageNum) @@ -489,25 +512,33 @@ func (s *adminCMSServer) GetMessageStatistics(_ context.Context, req *pbAdminCMS func (s *adminCMSServer) GetUserStatistics(_ context.Context, req *pbAdminCMS.GetUserStatisticsReq) (*pbAdminCMS.GetUserStatisticsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.GetUserStatisticsResp{} + resp := &pbAdminCMS.GetUserStatisticsResp{CommonResp: &pbAdminCMS.CommonResp{}} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } totalUserNum, err := imdb.GetTotalUserNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() return resp, nil } resp.ActiveUserNum = activeUserNum diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index c4023c404..1a53e8eac 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -254,7 +254,7 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, error) { var users []db.User - err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like '%%%s%%' ", userName).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like %?%", userName).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error return users, err } From a4b95cb7cf3ead39de6f5c03e284f3a6360da1c8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 30 Aug 2022 23:23:53 +0800 Subject: [PATCH 28/56] cms --- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 4 ++-- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 2def46596..ccf317ff4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -54,7 +54,7 @@ type GroupWithNum struct { func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]GroupWithNum, error) { var groups []GroupWithNum err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Select("groups.*, (select count(*) from group_members where group_members.group_id=groups.group_id) as num"). - Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error + Where(" name like ? ", fmt.Sprintf("%%%s%%", groupName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error return groups, err } @@ -80,7 +80,7 @@ func OperateGroupStatus(groupId string, groupStatus int32) error { func GetGroupsCountNum(group db.Group) (int32, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(" name like '%%%s%%' ", group.GroupName).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Where(" name like ? ", fmt.Sprintf("%%%s%%", group.GroupName)).Count(&count).Error; err != nil { return 0, err } return int32(count), nil diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 1a53e8eac..cb9322ea0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -254,13 +254,13 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, error) { var users []db.User - err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like %?%", userName).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like ?", fmt.Sprintf("%%%s%%", userName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error return users, err } -func GetUsersCount(nickname string) (int32, error) { +func GetUsersCount(userName string) (int32, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like '%%%s%%' ", nickname).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like ? ", fmt.Sprintf("%%%s%%", userName)).Count(&count).Error; err != nil { return 0, err } return int32(count), nil From c2831e6676a9f19f571359fdd2e07a8e6e7967a8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 00:43:06 +0800 Subject: [PATCH 29/56] cms --- cmd/open_im_cms_api/main.go | 1 + internal/cms_api/message_cms/message.go | 4 ++-- internal/rpc/admin_cms/admin_cms.go | 2 +- pkg/cms_api_struct/message_cms.go | 1 + pkg/common/db/model_struct.go | 6 +++--- .../im_mysql_model/statistics_model.go | 20 +++++++++++-------- .../im_mysql_model/user_black_list_model.go | 16 +++++++-------- 7 files changed, 28 insertions(+), 22 deletions(-) diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index b2b1cae7c..622d72924 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -8,6 +8,7 @@ import ( "strconv" "Open_IM/pkg/common/config" + "github.com/gin-gonic/gin" ) diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index 277076271..c3f6cf231 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -32,7 +32,7 @@ func GetChatLogs(c *gin.Context) { } utils.CopyStructFields(&reqPb, &req) log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName, reqPb.OperationID) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) if etcdConn == nil { errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" log.NewError(reqPb.OperationID, errMsg) @@ -43,7 +43,7 @@ func GetChatLogs(c *gin.Context) { respPb, err := client.GetChatLogs(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 400, "errMsg": err.Error()}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } for _, v := range respPb.ChatLogs { diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index ead456677..392841fe2 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -296,7 +296,7 @@ func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetAct for _, activeUser := range activeUsers { resp.Users = append(resp.Users, &pbAdminCMS.UserResp{ - UserId: activeUser.Id, + UserId: activeUser.ID, NickName: activeUser.Name, MessageNum: int32(activeUser.MessageNum), }, diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 891e24772..2b6dfb4be 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -13,6 +13,7 @@ type GetChatLogsReq struct { GroupID string `json:"groupID"` SendTime string `json:"sendTime"` RequestPagination + OperationID string `json:"operationID"` } type GetChatLogsResp struct { diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 29486c16d..7023996d7 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -92,7 +92,7 @@ type Group struct { Notification string `gorm:"column:notification;size:255" json:"notification"` Introduction string `gorm:"column:introduction;size:255" json:"introduction"` FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` - CreateTime time.Time `gorm:"column:create_time"` + CreateTime time.Time `gorm:"column:create_time;index:create_time"` Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` Status int32 `gorm:"column:status"` CreatorUserID string `gorm:"column:creator_user_id;size:64"` @@ -176,7 +176,7 @@ type User struct { Birth time.Time `gorm:"column:birth"` Email string `gorm:"column:email;size:64"` Ex string `gorm:"column:ex;size:1024"` - CreateTime time.Time `gorm:"column:create_time"` + CreateTime time.Time `gorm:"column:create_time;index:create_time"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` InvitationCode string `gorm:"column:invitation_code"` @@ -232,7 +232,7 @@ type ChatLog struct { SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255)" json:"senderFaceURL"` - SessionType int32 `gorm:"column:session_type;;index:session_type" json:"sessionType"` + SessionType int32 `gorm:"column:session_type;index:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` ContentType int32 `gorm:"column:content_type;index:content_type" json:"contentType"` Content string `gorm:"column:content;type:varchar(3000);index:search" json:"content"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go index b8d3e9d17..4a8626cf0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go @@ -1,13 +1,14 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "time" ) func GetActiveUserNum(from, to time.Time) (int32, error) { var num int64 - err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("count(distinct(send_id))").Where("create_time >= ? and create_time <= ?", from, to).Count(&num).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("count(distinct(send_id))").Where("send_time >= ? and send_time <= ?", from, to).Count(&num).Error return int32(num), err } @@ -31,13 +32,13 @@ func GetTotalUserNumByDate(to time.Time) (int32, error) { func GetPrivateMessageNum(from, to time.Time) (int32, error) { var num int64 - err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 1).Count(&num).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Where("send_time >= ? and send_time <= ? and session_type = ?", from, to, 1).Count(&num).Error return int32(num), err } func GetGroupMessageNum(from, to time.Time) (int32, error) { var num int64 - err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 2).Count(&num).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Where("send_time >= ? and send_time <= ? and session_type = ?", from, to, 2).Count(&num).Error return int32(num), err } @@ -67,7 +68,7 @@ type activeGroup struct { func GetActiveGroups(from, to time.Time, limit int) ([]*activeGroup, error) { var activeGroups []*activeGroup - err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("recv_id, count(*) as message_num").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 2).Group("recv_id").Limit(limit).Order("message_num DESC").Find(&activeGroups).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("recv_id, count(*) as message_num").Where("send_time >= ? and send_time <= ? and session_type in (?)", from, to, []int{constant.GroupChatType, constant.SuperGroupChatType}).Group("recv_id").Limit(limit).Order("message_num DESC").Find(&activeGroups).Error for _, activeGroup := range activeGroups { group := db.Group{ GroupID: activeGroup.Id, @@ -80,18 +81,21 @@ func GetActiveGroups(from, to time.Time, limit int) ([]*activeGroup, error) { type activeUser struct { Name string - Id string `gorm:"column:send_id"` + ID string `gorm:"column:send_id"` MessageNum int `gorm:"column:message_num"` } func GetActiveUsers(from, to time.Time, limit int) ([]*activeUser, error) { var activeUsers []*activeUser - err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("send_id, count(*) as message_num").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 1).Group("send_id").Limit(limit).Order("message_num DESC").Find(&activeUsers).Error + err := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs").Select("send_id, count(*) as message_num").Where("send_time >= ? and send_time <= ? and session_type = ?", from, to, constant.SingleChatType).Group("send_id").Limit(limit).Order("message_num DESC").Find(&activeUsers).Error for _, activeUser := range activeUsers { user := db.User{ - UserID: activeUser.Id, + UserID: activeUser.ID, + } + err = db.DB.MysqlDB.DefaultGormDB().Table("users").Select("user_id, name").Find(&user).Error + if err != nil { + continue } - db.DB.MysqlDB.DefaultGormDB().Table("users").Select("user_id, name").Find(&user) activeUser.Name = user.Nickname } return activeUsers, err diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index b4bfc1038..b848bff41 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -11,14 +11,14 @@ func InsertInToUserBlackList(black db.Black) error { return db.DB.MysqlDB.DefaultGormDB().Table("blacks").Create(black).Error } -//type Black struct { -// OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` -// BlockUserID string `gorm:"column:block_user_id;primaryKey;"` -// CreateTime time.Time `gorm:"column:create_time"` -// AddSource int32 `gorm:"column:add_source"` -// OperatorUserID int32 `gorm:"column:operator_user_id"` -// Ex string `gorm:"column:ex"` -//} +// type Black struct { +// OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` +// BlockUserID string `gorm:"column:block_user_id;primaryKey;"` +// CreateTime time.Time `gorm:"column:create_time"` +// AddSource int32 `gorm:"column:add_source"` +// OperatorUserID int32 `gorm:"column:operator_user_id"` +// Ex string `gorm:"column:ex"` +// } func CheckBlack(ownerUserID, blockUserID string) error { var black db.Black From d16ceac14914138d83ab3c6e8ef63c39fc758f7c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 00:54:02 +0800 Subject: [PATCH 30/56] cms --- pkg/common/db/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 7023996d7..ce52a0e70 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -235,7 +235,7 @@ type ChatLog struct { SessionType int32 `gorm:"column:session_type;index:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` ContentType int32 `gorm:"column:content_type;index:content_type" json:"contentType"` - Content string `gorm:"column:content;type:varchar(3000);index:search" json:"content"` + Content string `gorm:"column:content;type:varchar(3000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` SendTime time.Time `gorm:"column:send_time;index:sendTime" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` From 8e063f6e59b7cf233fd6ea4900bf0c9a3ce09b26 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 01:01:38 +0800 Subject: [PATCH 31/56] cms --- pkg/common/db/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index f28be8dc1..6141e4119 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -56,7 +56,7 @@ func initMysqlDB() { Writer{}, logger.Config{ SlowThreshold: 200 * time.Millisecond, // Slow SQL threshold - LogLevel: logger.Error, // Log level + LogLevel: logger.Info, // Log level IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger Colorful: true, // Disable color }, From 1da5ad88302ec268b21dd2545ead48b365d4f6a5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 01:29:29 +0800 Subject: [PATCH 32/56] add --- pkg/common/db/model_struct.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index ce52a0e70..e4a7330aa 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -227,17 +227,17 @@ type Black struct { type ChatLog struct { ServerMsgID string `gorm:"column:server_msg_id;primary_key;type:char(64)" json:"serverMsgID"` ClientMsgID string `gorm:"column:client_msg_id;type:char(64)" json:"clientMsgID"` - SendID string `gorm:"column:send_id;type:char(64);index:send_id" json:"sendID"` - RecvID string `gorm:"column:recv_id;type:char(64);index:recv_id" json:"recvID"` + SendID string `gorm:"column:send_id;type:char(64);index:send_id,priority:2" json:"sendID"` + RecvID string `gorm:"column:recv_id;type:char(64);index:recv_id,priority:2" json:"recvID"` SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` - SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255)" json:"senderFaceURL"` - SessionType int32 `gorm:"column:session_type;index:session_type" json:"sessionType"` + SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255);index:content_type,priority:1" json:"senderFaceURL"` + SessionType int32 `gorm:"column:session_type;index:session_type,priority:2" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` - ContentType int32 `gorm:"column:content_type;index:content_type" json:"contentType"` + ContentType int32 `gorm:"column:content_type;index:content_type,priority:2" json:"contentType"` Content string `gorm:"column:content;type:varchar(3000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` - SendTime time.Time `gorm:"column:send_time;index:sendTime" json:"sendTime"` + SendTime time.Time `gorm:"column:send_time;index:sendTime;index:content_type,priority:1;index:session_type,priority:1;index:recv_id,priority:1;index:send_id,priority:1" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } From af110f75d69f17bb58ab244d13ab91dd872404a6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 01:50:56 +0800 Subject: [PATCH 33/56] add --- internal/rpc/admin_cms/admin_cms.go | 2 +- pkg/common/db/model_struct.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 392841fe2..d02f84d37 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -171,7 +171,7 @@ func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req * func (s *adminCMSServer) GetChatLogs(_ context.Context, req *pbAdminCMS.GetChatLogsReq) (*pbAdminCMS.GetChatLogsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) - resp := &pbAdminCMS.GetChatLogsResp{CommonResp: &pbAdminCMS.CommonResp{}} + resp := &pbAdminCMS.GetChatLogsResp{CommonResp: &pbAdminCMS.CommonResp{}, Pagination: &server_api_params.ResponsePagination{}} time, err := utils.TimeStringToTime(req.SendTime) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index e4a7330aa..18e651f3e 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -231,10 +231,10 @@ type ChatLog struct { RecvID string `gorm:"column:recv_id;type:char(64);index:recv_id,priority:2" json:"recvID"` SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` - SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255);index:content_type,priority:1" json:"senderFaceURL"` - SessionType int32 `gorm:"column:session_type;index:session_type,priority:2" json:"sessionType"` + SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255);" json:"senderFaceURL"` + SessionType int32 `gorm:"column:session_type;index:session_type,priority:2;index:session_type_alone" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` - ContentType int32 `gorm:"column:content_type;index:content_type,priority:2" json:"contentType"` + ContentType int32 `gorm:"column:content_type;index:content_type,priority:2;index:content_type_alone" json:"contentType"` Content string `gorm:"column:content;type:varchar(3000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` SendTime time.Time `gorm:"column:send_time;index:sendTime;index:content_type,priority:1;index:session_type,priority:1;index:recv_id,priority:1;index:send_id,priority:1" json:"sendTime"` From c7e130237708d7f646c19f0b3af02a673a0046e2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 15:06:59 +0800 Subject: [PATCH 34/56] add --- internal/cms_api/middleware/jwt_auth.go | 2 +- internal/cms_api/router.go | 13 +++++++++++++ internal/cms_api/statistics/statistics.go | 21 ++++++++++++++++----- internal/rpc/admin_cms/admin_cms.go | 6 +++--- internal/rpc/user/user.go | 3 +++ 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go index e551a35d8..5ab3ffbbf 100644 --- a/internal/cms_api/middleware/jwt_auth.go +++ b/internal/cms_api/middleware/jwt_auth.go @@ -12,7 +12,7 @@ import ( func JWTAuth() gin.HandlerFunc { return func(c *gin.Context) { ok, userID, errInfo := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), "") - log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID) + // log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID) c.Set("userID", userID) if !ok { log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token")) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index b49df0e7f..a846f4ef1 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -7,6 +7,7 @@ import ( "Open_IM/internal/cms_api/middleware" "Open_IM/internal/cms_api/statistics" "Open_IM/internal/cms_api/user" + "Open_IM/internal/demo/register" "github.com/gin-gonic/gin" ) @@ -23,6 +24,18 @@ func NewGinRouter() *gin.Engine { adminRouterGroup.POST("/add_user_register_add_friend_id", admin.AddUserRegisterAddFriendIDList) adminRouterGroup.POST("/reduce_user_register_reduce_friend_id", admin.ReduceUserRegisterAddFriendIDList) adminRouterGroup.POST("/get_user_register_reduce_friend_id_list", admin.GetUserRegisterAddFriendIDList) + + adminRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode) + adminRouterGroup.POST("/query_invitation_code", register.QueryInvitationCode) + adminRouterGroup.POST("/get_invitation_codes", register.GetInvitationCodes) + + adminRouterGroup.POST("/query_user_ip_limit_login", register.QueryUserIDLimitLogin) + adminRouterGroup.POST("/add_user_ip_limit_login", register.AddUserIPLimitLogin) + adminRouterGroup.POST("/remove_user_ip_limit_login", register.RemoveUserIPLimitLogin) + + adminRouterGroup.POST("/query_ip_register", register.QueryIPRegister) + adminRouterGroup.POST("/add_ip_limit", register.AddIPLimit) + adminRouterGroup.POST("/remove_ip_Limit", register.RemoveIPLimit) } r2 := router.Group("") r2.Use(middleware.JWTAuth()) diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index f8cc80717..76aad968e 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -10,6 +10,7 @@ import ( "context" "net/http" "strings" + "time" "github.com/gin-gonic/gin" ) @@ -37,7 +38,9 @@ func GetMessagesStatistics(c *gin.Context) { return } client := admin.NewAdminCMSClient(etcdConn) - respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) + ctx, cancel := context.WithTimeout(context.TODO(), time.Second*100) + defer cancel() + respPb, err := client.GetMessageStatistics(ctx, &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetMessageStatistics failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -91,7 +94,9 @@ func GetUserStatistics(c *gin.Context) { return } client := admin.NewAdminCMSClient(etcdConn) - respPb, err := client.GetUserStatistics(context.Background(), &reqPb) + ctx, cancel := context.WithTimeout(context.TODO(), time.Second*100) + defer cancel() + respPb, err := client.GetUserStatistics(ctx, &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error(), reqPb.String()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) @@ -154,7 +159,9 @@ func GetGroupStatistics(c *gin.Context) { return } client := admin.NewAdminCMSClient(etcdConn) - respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) + ctx, cancel := context.WithTimeout(context.TODO(), time.Second*100) + defer cancel() + respPb, err := client.GetGroupStatistics(ctx, &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) @@ -211,7 +218,9 @@ func GetActiveUser(c *gin.Context) { return } client := admin.NewAdminCMSClient(etcdConn) - respPb, err := client.GetActiveUser(context.Background(), &reqPb) + ctx, cancel := context.WithTimeout(context.TODO(), time.Second*100) + defer cancel() + respPb, err := client.GetActiveUser(ctx, &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveUser failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) @@ -245,7 +254,9 @@ func GetActiveGroup(c *gin.Context) { return } client := admin.NewAdminCMSClient(etcdConn) - respPb, err := client.GetActiveGroup(context.Background(), &reqPb) + ctx, cancel := context.WithTimeout(context.TODO(), time.Second*100) + defer cancel() + respPb, err := client.GetActiveGroup(ctx, &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveGroup failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": err.Error()}) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index d02f84d37..1f5648999 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -110,7 +110,7 @@ func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLogi func (s *adminCMSServer) AddUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.AddUserRegisterAddFriendIDListReq) (*pbAdminCMS.AddUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.AddUserRegisterAddFriendIDListResp{} + resp := &pbAdminCMS.AddUserRegisterAddFriendIDListResp{CommonResp: &pbAdminCMS.CommonResp{}} if err := imdb.AddUserRegisterAddFriendIDList(req.UserIDList...); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode @@ -123,7 +123,7 @@ func (s *adminCMSServer) AddUserRegisterAddFriendIDList(_ context.Context, req * func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.ReduceUserRegisterAddFriendIDListReq) (*pbAdminCMS.ReduceUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.ReduceUserRegisterAddFriendIDListResp{} + resp := &pbAdminCMS.ReduceUserRegisterAddFriendIDListResp{CommonResp: &pbAdminCMS.CommonResp{}} if req.Operation == 0 { if err := imdb.ReduceUserRegisterAddFriendIDList(req.UserIDList...); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList) @@ -145,7 +145,7 @@ func (s *adminCMSServer) ReduceUserRegisterAddFriendIDList(_ context.Context, re func (s *adminCMSServer) GetUserRegisterAddFriendIDList(_ context.Context, req *pbAdminCMS.GetUserRegisterAddFriendIDListReq) (*pbAdminCMS.GetUserRegisterAddFriendIDListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{} + resp := &pbAdminCMS.GetUserRegisterAddFriendIDListResp{CommonResp: &pbAdminCMS.CommonResp{}} userIDList, err := imdb.GetRegisterAddFriendList(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 2f96a4759..ed259438e 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -565,6 +565,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb user := pbUser.CmsUser{User: &sdkws.UserInfo{}} utils.CopyStructFields(&user.User, userDB) + user.User.CreateTime = uint32(userDB.CreateTime.Unix()) resp.UserList = append(resp.UserList, &user) resp.TotalNums = 1 } else if req.UserName != "" { @@ -585,6 +586,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb for _, userDB := range usersDB { var user sdkws.UserInfo utils.CopyStructFields(&user, userDB) + user.CreateTime = uint32(userDB.CreateTime.Unix()) resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) } } else { @@ -605,6 +607,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb for _, userDB := range usersDB { var user sdkws.UserInfo utils.CopyStructFields(&user, userDB) + user.CreateTime = uint32(userDB.CreateTime.Unix()) resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) } } From c7d544685ed3d6f6136c2a002fd81f07353067e9 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 31 Aug 2022 15:26:32 +0800 Subject: [PATCH 35/56] cms --- internal/demo/register/ip_limit.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/ip_limit.go b/internal/demo/register/ip_limit.go index e68508894..a94e51e74 100644 --- a/internal/demo/register/ip_limit.go +++ b/internal/demo/register/ip_limit.go @@ -143,7 +143,7 @@ func QueryUserIDLimitLogin(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) return } - c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": gin.H{"limit": resp}}) } type AddUserIPLimitLoginReq struct { From b401917c194658ad9ee61d9e11419b3f16c4a785 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 1 Sep 2022 21:58:53 +0800 Subject: [PATCH 36/56] cache --- internal/rpc/cache/cache.go | 6 ++++-- pkg/common/db/rocks_cache/rocks_cache.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/rpc/cache/cache.go b/internal/rpc/cache/cache.go index 60cc52d32..510fc94a1 100644 --- a/internal/rpc/cache/cache.go +++ b/internal/rpc/cache/cache.go @@ -3,16 +3,17 @@ package cache import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/rocks_cache" + rocksCache "Open_IM/pkg/common/db/rocks_cache" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbCache "Open_IM/pkg/proto/cache" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strconv" "strings" + + "google.golang.org/grpc" ) type cacheServer struct { @@ -67,6 +68,7 @@ func (s *cacheServer) Run() { log.NewError("0", "RegisterEtcd failed ", err.Error()) return } + go rocksCache.DelKeys() err = srv.Serve(listener) if err != nil { log.NewError("0", "Serve failed ", err.Error()) diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 103bd51f7..d698029b6 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -36,7 +36,7 @@ const ( conversationIDListCache = "CONVERSATION_ID_LIST_CACHE:" ) -func init() { +func DelKeys() { fmt.Println("init to del old keys") for _, key := range []string{groupCache, friendRelationCache, blackListCache, userInfoCache, groupInfoCache, groupOwnerIDCache, joinedGroupListCache, groupMemberInfoCache, groupAllMemberInfoCache, allFriendInfoCache} { From 6774a8594fa69c3e0153a7daa04c9a13fdcb078f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 02:01:42 +0800 Subject: [PATCH 37/56] cms --- internal/cms_api/friend/friend.go | 63 + internal/cms_api/message_cms/message.go | 2 +- internal/cms_api/router.go | 5 + internal/rpc/admin_cms/admin_cms.go | 81 +- internal/rpc/auth/auth.go | 37 +- internal/rpc/group/group.go | 2 - internal/rpc/user/user.go | 2 +- pkg/cms_api_struct/friend.go | 25 + pkg/cms_api_struct/message_cms.go | 29 +- pkg/common/config/config.go | 2 + pkg/common/db/model_struct.go | 6 +- .../mysql_model/im_mysql_model/demo_model.go | 8 + .../im_mysql_model/friend_model.go | 32 +- .../mysql_model/im_mysql_model/group_model.go | 4 +- .../mysql_model/im_mysql_model/message_cms.go | 24 +- .../mysql_model/im_mysql_model/user_model.go | 28 +- pkg/common/db/rocks_cache/rocks_cache.go | 34 - pkg/proto/admin_cms/admin_cms.pb.go | 1952 +++++++++++++++-- pkg/proto/admin_cms/admin_cms.proto | 235 +- 19 files changed, 2292 insertions(+), 279 deletions(-) create mode 100644 internal/cms_api/friend/friend.go create mode 100644 pkg/cms_api_struct/friend.go diff --git a/internal/cms_api/friend/friend.go b/internal/cms_api/friend/friend.go new file mode 100644 index 000000000..0aee0cd61 --- /dev/null +++ b/internal/cms_api/friend/friend.go @@ -0,0 +1,63 @@ +package friend + +import ( + "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbAdmin "Open_IM/pkg/proto/admin_cms" + pbCommon "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "net/http" + "strings" + + "github.com/gin-gonic/gin" +) + +func GetUserFriends(c *gin.Context) { + var ( + req cms_api_struct.GetFriendsReq + resp cms_api_struct.GetFriendsResp + reqPb pbAdmin.GetUserFriendsReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "req: ", req) + reqPb.Pagination = &pbCommon.RequestPagination{} + utils.CopyStructFields(&reqPb.Pagination, req) + etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName, reqPb.OperationID) + if etcdConn == nil { + errMsg := reqPb.OperationID + "getcdv3.GetDefaultConn == nil" + log.NewError(reqPb.OperationID, errMsg) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) + return + } + reqPb.OperationID = req.OperationID + reqPb.UserID = req.UserID + reqPb.FriendUserName = req.FriendUserName + reqPb.FriendUserID = req.FriendUserID + + client := pbAdmin.NewAdminCMSClient(etcdConn) + respPb, err := client.GetUserFriends(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + for _, v := range respPb.FriendInfoList { + friend := &cms_api_struct.FriendInfo{} + utils.CopyStructFields(friend, v) + friend.Nickname = v.FriendUser.Nickname + friend.UserID = v.FriendUser.UserID + resp.FriendInfoList = append(resp.FriendInfoList, friend) + } + resp.FriendNums = respPb.FriendNums + resp.CurrentPage = int(respPb.Pagination.CurrentPage) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) + c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) +} diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index c3f6cf231..758e9dc29 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -47,7 +47,7 @@ func GetChatLogs(c *gin.Context) { return } for _, v := range respPb.ChatLogs { - chatLog := pbCommon.MsgData{} + chatLog := cms_api_struct.ChatLog{} utils.CopyStructFields(&chatLog, v) resp.ChatLogs = append(resp.ChatLogs, &chatLog) } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index a846f4ef1..7636eee8c 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -2,6 +2,7 @@ package cms_api import ( "Open_IM/internal/cms_api/admin" + "Open_IM/internal/cms_api/friend" "Open_IM/internal/cms_api/group" messageCMS "Open_IM/internal/cms_api/message_cms" "Open_IM/internal/cms_api/middleware" @@ -63,5 +64,9 @@ func NewGinRouter() *gin.Engine { { messageCMSRouterGroup.POST("/get_chat_logs", messageCMS.GetChatLogs) } + friendCMSRouterGroup := r2.Group("friend") + { + friendCMSRouterGroup.POST("/get_friends", friend.GetUserFriends) + } return baseRouter } diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 1f5648999..1590a502e 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -12,6 +12,7 @@ import ( server_api_params "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" + "errors" "net" "strconv" "strings" @@ -19,6 +20,7 @@ import ( "time" "google.golang.org/grpc" + "gorm.io/gorm" ) type adminCMSServer struct { @@ -296,7 +298,7 @@ func (s *adminCMSServer) GetActiveUser(_ context.Context, req *pbAdminCMS.GetAct for _, activeUser := range activeUsers { resp.Users = append(resp.Users, &pbAdminCMS.UserResp{ - UserId: activeUser.ID, + UserID: activeUser.ID, NickName: activeUser.Name, MessageNum: int32(activeUser.MessageNum), }, @@ -584,3 +586,80 @@ func (s *adminCMSServer) GetUserStatistics(_ context.Context, req *pbAdminCMS.Ge log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp) return resp, nil } + +func (s *adminCMSServer) GetUserFriends(_ context.Context, req *pbAdminCMS.GetUserFriendsReq) (*pbAdminCMS.GetUserFriendsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.GetUserFriendsResp{CommonResp: &pbAdminCMS.CommonResp{}, Pagination: &server_api_params.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber}} + var friendList []*imdb.FriendUser + var err error + if req.FriendUserID != "" { + friend, err := imdb.GetFriendByIDCMS(req.UserID, req.FriendUserID) + if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return resp, nil + } + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID, req.FriendUserID) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + friendList = append(friendList, friend) + } else { + friendList, err = imdb.GetUserFriendsCMS(req.UserID, req.FriendUserName, req.Pagination.PageNumber, req.Pagination.ShowNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID, req.FriendUserName, req.Pagination.PageNumber, req.Pagination.ShowNumber) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + } + for _, v := range friendList { + friendInfo := &server_api_params.FriendInfo{} + userInfo := &server_api_params.UserInfo{UserID: v.FriendUserID, Nickname: v.Nickname} + utils.CopyStructFields(friendInfo, v) + friendInfo.FriendUser = userInfo + resp.FriendInfoList = append(resp.FriendInfoList, friendInfo) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) + return nil, nil +} + +func (s *adminCMSServer) GenerateInvitationCode(_ context.Context, req *pbAdminCMS.GenerateInvitationCodeReq) (*pbAdminCMS.GenerateInvitationCodeResp, error) { + return nil, nil +} + +func (s *adminCMSServer) GetInvitationCodes(_ context.Context, req *pbAdminCMS.GetInvitationCodesReq) (*pbAdminCMS.GetInvitationCodesResp, error) { + return nil, nil +} + +func (s *adminCMSServer) QueryIPRegister(_ context.Context, req *pbAdminCMS.QueryIPRegisterReq) (*pbAdminCMS.QueryIPRegisterResp, error) { + return nil, nil +} + +func (s *adminCMSServer) AddIPLimit(_ context.Context, req *pbAdminCMS.AddIPLimitReq) (*pbAdminCMS.AddIPLimitResp, error) { + return nil, nil +} + +func (s *adminCMSServer) RemoveIPLimit(_ context.Context, req *pbAdminCMS.RemoveIPLimitReq) (*pbAdminCMS.RemoveIPLimitResp, error) { + return nil, nil +} + +func (s *adminCMSServer) QueryUserIDIPLimitLogin(_ context.Context, req *pbAdminCMS.QueryUserIDIPLimitLoginReq) (*pbAdminCMS.QueryUserIDIPLimitLoginResp, error) { + return nil, nil +} + +func (s *adminCMSServer) AddUserIPLimitLogin(_ context.Context, req *pbAdminCMS.AddUserIPLimitLoginReq) (*pbAdminCMS.AddUserIPLimitLoginResp, error) { + return nil, nil +} + +func (s *adminCMSServer) RemoveUserIPLimit(_ context.Context, req *pbAdminCMS.RemoveUserIPLimitReq) (*pbAdminCMS.RemoveUserIPLimitResp, error) { + return nil, nil +} + +func (s *adminCMSServer) GetClientInitConfig(_ context.Context, req *pbAdminCMS.GetClientInitConfigReq) (*pbAdminCMS.GetClientInitConfigResp, error) { + return nil, nil +} + +func (s *adminCMSServer) SetClientInitConfig(_ context.Context, req *pbAdminCMS.SetClientInitConfigReq) (*pbAdminCMS.SetClientInitConfigResp, error) { + return nil, nil +} diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index ccab54c65..0e2b4d2af 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -52,11 +52,38 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - _, err := imdb.GetUserByUserID(req.FromUserID) - if err != nil { - errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.FromUserID - log.NewError(req.OperationID, errMsg) - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil + + if config.Config.Demo.UseIPLimit { + user, err := imdb.GetUserIPLimit(req.FromUserID) + if err != nil { + errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.FromUserID + log.NewError(req.OperationID, errMsg) + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil + } + + var Limited bool + var LimitError error + Limited, LimitError = imdb.IsLimitLoginIp(req.LoginIp) + if LimitError != nil { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + } + if Limited { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil + } + Limited, LimitError = imdb.IsLimitUserLoginIp(user.UserID, req.LoginIp) + if LimitError != nil { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + } + if Limited { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil + } + Limited, LimitError = imdb.UserIsBlock(user.UserID) + if LimitError != nil { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil + } + if Limited { + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil + } } tokens, expTime, err := token_verify.CreateToken(req.FromUserID, int(req.Platform)) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index d1569883b..141fd7048 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1353,8 +1353,6 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = err.Error() return resp, nil - } else { - } resp.GroupNum = 1 groupInfo := &open_im_sdk.GroupInfo{} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index ed259438e..0379ab204 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -634,7 +634,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) - resp := &pbUser.AddUserResp{} + resp := &pbUser.AddUserResp{CommonResp: &pbUser.CommonResp{}} err := imdb.AddUser(req.UserInfo.UserID, req.UserInfo.PhoneNumber, req.UserInfo.Nickname, req.UserInfo.Email, req.UserInfo.Gender, req.UserInfo.FaceURL, req.UserInfo.Birth) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "AddUser", err.Error(), req.String()) diff --git a/pkg/cms_api_struct/friend.go b/pkg/cms_api_struct/friend.go new file mode 100644 index 000000000..ce3af6ddc --- /dev/null +++ b/pkg/cms_api_struct/friend.go @@ -0,0 +1,25 @@ +package cms_api_struct + +type GetFriendsReq struct { + OperationID string `json:"operationID"` + UserID string `json:"userID"` + FriendUserName string `json:"friendUserName"` + FriendUserID string `json:"friendUserID"` + RequestPagination +} + +type FriendInfo struct { + OwnerUserID string `json:"ownerUserID"` + Remark string `json:"remark"` + CreateTime uint32 `json:"createTime"` + UserID string `json:"userID"` + Nickname string `json:"nickName"` + AddSource int32 `json:"addSource"` + OperatorUserID string `json:"operatorUserID"` +} + +type GetFriendsResp struct { + ResponsePagination + FriendInfoList []*FriendInfo `json:"friendInfoList"` + FriendNums int32 `json:"friendNums"` +} diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 2b6dfb4be..708e70c4f 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -16,8 +16,33 @@ type GetChatLogsReq struct { OperationID string `json:"operationID"` } +type ChatLog struct { + SendID string `json:"sendID,omitempty"` + RecvID string `json:"recvID,omitempty"` + GroupID string `json:"groupID,omitempty"` + ClientMsgID string `json:"clientMsgID,omitempty"` + ServerMsgID string `json:"serverMsgID,omitempty"` + SenderPlatformID int32 `json:"senderPlatformID,omitempty"` + SenderNickname string `json:"senderNickname,omitempty"` + SenderFaceURL string `json:"senderFaceURL,omitempty"` + SessionType int32 `json:"sessionType,omitempty"` + MsgFrom int32 `json:"msgFrom,omitempty"` + ContentType int32 `json:"contentType,omitempty"` + Content string `json:"content,omitempty"` + Seq uint32 `json:"seq,omitempty"` + SendTime int64 `json:"sendTime,omitempty"` + CreateTime int64 `json:"createTime,omitempty"` + Status int32 `json:"status,omitempty"` + Options map[string]bool `json:"options,omitempty"` + OfflinePushInfo *pbCommon.OfflinePushInfo `json:"offlinePushInfo,omitempty"` + AtUserIDList []string `json:"atUserIDList,omitempty"` + MsgDataList []byte `json:"msgDataList,omitempty"` + AttachedInfo string `json:"attachedInfo,omitempty"` + Ex string `json:"ex,omitempty"` +} + type GetChatLogsResp struct { - ChatLogs []*pbCommon.MsgData `json:"chatLogs"` - ChatLogsNum int `json:"logNums"` + ChatLogs []*ChatLog `json:"chatLogs"` + ChatLogsNum int `json:"logNums"` ResponsePagination } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index ba8b25fa2..6210fd0b3 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -508,6 +508,8 @@ type config struct { JoinDepartmentIDList []string `yaml:"joinDepartmentIDList"` JoinDepartmentGroups bool `yaml:"joinDepartmentGroups"` OaNotification bool `yaml:"oaNotification"` + + UseIPLimit bool `yaml:"useIPLimit"` } Rtc struct { SignalTimeout string `yaml:"signalTimeout"` diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 18e651f3e..043240532 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -15,7 +15,7 @@ type Register struct { type Invitation struct { InvitationCode string `gorm:"column:invitation_code;primary_key;type:varchar(32)"` CreateTime time.Time `gorm:"column:create_time"` - UserID string `gorm:"column:user_id"` + UserID string `gorm:"column:user_id;index:userID"` LastTime time.Time `gorm:"column:last_time"` Status int32 `gorm:"column:status"` } @@ -179,8 +179,8 @@ type User struct { CreateTime time.Time `gorm:"column:create_time;index:create_time"` AppMangerLevel int32 `gorm:"column:app_manger_level"` GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"` - InvitationCode string `gorm:"column:invitation_code"` - status int32 `gorm:"column:status"` + + status int32 `gorm:"column:status"` } type UserIpRecord struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 349555c31..b023d2b40 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" "errors" + _ "gorm.io/gorm" ) @@ -74,3 +75,10 @@ func DeleteAllRegisterAddFriendIDList() error { err := db.DB.MysqlDB.DefaultGormDB().Where("1 = 1").Delete(&db.RegisterAddFriend{}).Error return err } + +func GetUserIPLimit(userID string) (db.UserIpLimit, error) { + var limit db.UserIpLimit + limit.UserID = userID + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpLimit{}).Take(&limit).Error + return limit, err +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index 33e22771d..5115bf4d3 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -2,8 +2,10 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - _ "github.com/jinzhu/gorm/dialects/mysql" + "fmt" "time" + + _ "github.com/jinzhu/gorm/dialects/mysql" ) func InsertToFriend(toInsertFollow *db.Friend) error { @@ -51,3 +53,31 @@ func UpdateFriendComment(OwnerUserID, FriendUserID, Remark string) error { func DeleteSingleFriendInfo(OwnerUserID, FriendUserID string) error { return db.DB.MysqlDB.DefaultGormDB().Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(db.Friend{}).Error } + +type FriendUser struct { + db.Friend + Nickname string `gorm:"column:name;size:255"` +} + +func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumber int32) (friendUserList []*FriendUser, err error) { + db := db.DB.MysqlDB.DefaultGormDB().Table("friends"). + Select("friends.*, users.name"). + Where("friends.owner_user_id=?", ownerUserID).Limit(int(showNumber)). + Joins("left join friends on friends.friend_user_id = users.user_id"). + Offset(int(showNumber * (pageNumber - 1))) + if friendUserName != "" { + db = db.Where("users.name like ?", fmt.Sprintf("%%%s%%", friendUserName)) + } + err = db.Find(&friendUserList).Error + return +} + +func GetFriendByIDCMS(ownerUserID, friendUserID string) (friendUser *FriendUser, err error) { + friendUser = &FriendUser{} + err = db.DB.MysqlDB.DefaultGormDB().Table("friends"). + Select("friends.*, users.name"). + Where("friends.owner_user_id=? and friends.friend_user_id=?", ownerUserID, friendUserID). + Joins("left join friends on friends.friend_user_id = users.user_id"). + Take(friendUser).Error + return friendUser, err +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index ccf317ff4..9f9b10d3c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -1,9 +1,11 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "fmt" + "time" ) @@ -54,7 +56,7 @@ type GroupWithNum struct { func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]GroupWithNum, error) { var groups []GroupWithNum err := db.DB.MysqlDB.DefaultGormDB().Table("groups").Select("groups.*, (select count(*) from group_members where group_members.group_id=groups.group_id) as num"). - Where(" name like ? ", fmt.Sprintf("%%%s%%", groupName)).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error + Where(" name like ? and status != ?", fmt.Sprintf("%%%s%%", groupName), constant.GroupStatusDismissed).Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&groups).Error return groups, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 80000e1bd..2b7e74673 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -11,16 +11,18 @@ import ( func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, error) { var chatLogs []db.ChatLog db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs"). - Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)). Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))) - if chatLog.SessionType != 0 { - db = db.Where("session_type = ?", chatLog.SessionType) + if chatLog.Content != "" { + db = db.Where(" name like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } - if chatLog.ContentType == 1 { - db = db.Where("content_type = ?", chatLog.ContentType) - } else if chatLog.ContentType == 2 { + if chatLog.SessionType == 1 { + db = db.Where("session_type = ?", chatLog.SessionType) + } else if chatLog.SessionType == 2 { db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } + if chatLog.ContentType != 0 { + db = db.Where("content_type = ?", chatLog.ContentType) + } if chatLog.SendID != "" { db = db.Where("send_id = ?", chatLog.SendID) } @@ -37,13 +39,17 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, func GetChatLogCount(chatLog db.ChatLog) (int64, error) { var chatLogs []db.ChatLog var count int64 - db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs"). - Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)) + db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs") + if chatLog.Content != "" { + db = db.Where(" name like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) + } if chatLog.SessionType != 0 { db = db.Where("session_type = ?", chatLog.SessionType) } - if chatLog.ContentType != 0 { + if chatLog.ContentType == 1 { db = db.Where("content_type = ?", chatLog.ContentType) + } else if chatLog.ContentType == 2 { + db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } if chatLog.SendID != "" { db = db.Where("send_id = ?", chatLog.SendID) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index cb9322ea0..4605fd5a8 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -130,21 +130,29 @@ func AddUser(userID string, phoneNumber string, name string, email string, gende _birth = time.Now() } user := db.User{ - UserID: userID, - Nickname: name, - FaceURL: faceURL, - Gender: gender, - PhoneNumber: phoneNumber, - Birth: _birth, - Email: email, - Ex: "", - CreateTime: time.Now(), - InvitationCode: "", + UserID: userID, + Nickname: name, + FaceURL: faceURL, + Gender: gender, + PhoneNumber: phoneNumber, + Birth: _birth, + Email: email, + Ex: "", + CreateTime: time.Now(), } result := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user) return result.Error } +func UserIsBlock(userId string) (bool, error) { + var user db.BlackList + rows := db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userId).First(&user).RowsAffected + if rows >= 1 { + return user.EndDisableTime.After(time.Now()), nil + } + return false, nil +} + func UsersIsBlock(userIDList []string) (inBlockUserIDList []string, err error) { err = db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid in (?) and end_disable_time > now()", userIDList).Pluck("uid", &inBlockUserIDList).Error return inBlockUserIDList, err diff --git a/pkg/common/db/rocks_cache/rocks_cache.go b/pkg/common/db/rocks_cache/rocks_cache.go index 08dcddd01..bb8565dc1 100644 --- a/pkg/common/db/rocks_cache/rocks_cache.go +++ b/pkg/common/db/rocks_cache/rocks_cache.go @@ -6,10 +6,8 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" - "context" "encoding/json" "errors" - "fmt" "math/big" "sort" "strconv" @@ -36,38 +34,6 @@ const ( conversationIDListCache = "CONVERSATION_ID_LIST_CACHE:" ) -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 { - var keys []string - var err error - keys, cursor, err = db.DB.RDB.Scan(context.Background(), cursor, key+"*", 3000).Result() - if err != nil { - panic(err.Error()) - } - n += len(keys) - // for each for redis cluster - 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 { - break - } - } - } -} - func GetFriendIDListFromCache(userID string) ([]string, error) { getFriendIDList := func() (string, error) { friendIDList, err := imdb.GetFriendIDListByUserID(userID) diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 311feb3ca..11180d164 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{0} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -71,9 +71,9 @@ func (m *CommonResp) GetErrMsg() string { } type AdminLoginReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - AdminID string `protobuf:"bytes,2,opt,name=AdminID" json:"AdminID,omitempty"` - Secret string `protobuf:"bytes,3,opt,name=Secret" json:"Secret,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + AdminID string `protobuf:"bytes,2,opt,name=adminID" json:"adminID,omitempty"` + Secret string `protobuf:"bytes,3,opt,name=secret" json:"secret,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -83,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{1} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{2} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{3} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegis func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{4} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -267,7 +267,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{5} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -319,7 +319,7 @@ func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUse func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{6} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -358,7 +358,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{7} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -405,7 +405,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{8} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -447,14 +447,14 @@ func (m *GetUserRegisterAddFriendIDListResp) GetCommonResp() *CommonResp { } type GetChatLogsReq struct { - Content string `protobuf:"bytes,1,opt,name=Content" json:"Content,omitempty"` - SendID string `protobuf:"bytes,2,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,3,opt,name=RecvID" json:"RecvID,omitempty"` - SendTime string `protobuf:"bytes,4,opt,name=SendTime" json:"SendTime,omitempty"` - SessionType int32 `protobuf:"varint,5,opt,name=SessionType" json:"SessionType,omitempty"` - ContentType int32 `protobuf:"varint,6,opt,name=ContentType" json:"ContentType,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,7,opt,name=Pagination" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,8,opt,name=OperationID" json:"OperationID,omitempty"` + Content string `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"` + SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,3,opt,name=recvID" json:"recvID,omitempty"` + SendTime string `protobuf:"bytes,4,opt,name=sendTime" json:"sendTime,omitempty"` + SessionType int32 `protobuf:"varint,5,opt,name=sessionType" json:"sessionType,omitempty"` + ContentType int32 `protobuf:"varint,6,opt,name=contentType" json:"contentType,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,7,opt,name=pagination" json:"pagination,omitempty"` + OperationID string `protobuf:"bytes,8,opt,name=operationID" json:"operationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -464,7 +464,7 @@ func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } func (*GetChatLogsReq) ProtoMessage() {} func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{9} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{9} } func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) @@ -541,24 +541,24 @@ func (m *GetChatLogsReq) GetOperationID() string { } type ChatLog struct { - ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,4,opt,name=RecvID" json:"RecvID,omitempty"` + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,4,opt,name=recvID" json:"recvID,omitempty"` GroupID string `protobuf:"bytes,5,opt,name=groupID" json:"groupID,omitempty"` RecvNickname string `protobuf:"bytes,6,opt,name=recvNickname" json:"recvNickname,omitempty"` - SenderPlatformID int32 `protobuf:"varint,7,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,8,opt,name=SenderNickname" json:"SenderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,9,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - GroupName string `protobuf:"bytes,10,opt,name=GroupName" json:"GroupName,omitempty"` - SessionType int32 `protobuf:"varint,11,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,12,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,13,opt,name=ContentType" json:"ContentType,omitempty"` - Content string `protobuf:"bytes,14,opt,name=Content" json:"Content,omitempty"` - Status int32 `protobuf:"varint,15,opt,name=Status" json:"Status,omitempty"` - SendTime int64 `protobuf:"varint,16,opt,name=SendTime" json:"SendTime,omitempty"` - CreateTime int64 `protobuf:"varint,17,opt,name=CreateTime" json:"CreateTime,omitempty"` - Ex string `protobuf:"bytes,18,opt,name=Ex" json:"Ex,omitempty"` + SenderPlatformID int32 `protobuf:"varint,7,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,8,opt,name=senderNickname" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,9,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + GroupName string `protobuf:"bytes,10,opt,name=groupName" json:"groupName,omitempty"` + SessionType int32 `protobuf:"varint,11,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,12,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,13,opt,name=contentType" json:"contentType,omitempty"` + Content string `protobuf:"bytes,14,opt,name=content" json:"content,omitempty"` + Status int32 `protobuf:"varint,15,opt,name=status" json:"status,omitempty"` + SendTime int64 `protobuf:"varint,16,opt,name=sendTime" json:"sendTime,omitempty"` + CreateTime int64 `protobuf:"varint,17,opt,name=createTime" json:"createTime,omitempty"` + Ex string `protobuf:"bytes,18,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -568,7 +568,7 @@ func (m *ChatLog) Reset() { *m = ChatLog{} } func (m *ChatLog) String() string { return proto.CompactTextString(m) } func (*ChatLog) ProtoMessage() {} func (*ChatLog) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{10} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{10} } func (m *ChatLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChatLog.Unmarshal(m, b) @@ -715,10 +715,10 @@ func (m *ChatLog) GetEx() string { } type GetChatLogsResp struct { - ChatLogs []*ChatLog `protobuf:"bytes,1,rep,name=ChatLogs" json:"ChatLogs,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` - ChatLogsNum int32 `protobuf:"varint,3,opt,name=ChatLogsNum" json:"ChatLogsNum,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,4,opt,name=CommonResp" json:"CommonResp,omitempty"` + ChatLogs []*ChatLog `protobuf:"bytes,1,rep,name=chatLogs" json:"chatLogs,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=pagination" json:"pagination,omitempty"` + ChatLogsNum int32 `protobuf:"varint,3,opt,name=chatLogsNum" json:"chatLogsNum,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -728,7 +728,7 @@ func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } func (*GetChatLogsResp) ProtoMessage() {} func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{11} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{11} } func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) @@ -788,7 +788,7 @@ func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } func (*StatisticsReq) ProtoMessage() {} func (*StatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{12} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{12} } func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) @@ -823,8 +823,8 @@ func (m *StatisticsReq) GetTo() string { } type GetActiveUserReq struct { - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=statisticsReq" json:"statisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -834,7 +834,7 @@ func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } func (*GetActiveUserReq) ProtoMessage() {} func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{13} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{13} } func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) @@ -869,9 +869,9 @@ func (m *GetActiveUserReq) GetOperationID() string { } type UserResp struct { - NickName string `protobuf:"bytes,1,opt,name=NickName" json:"NickName,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` - MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum" json:"MessageNum,omitempty"` + NickName string `protobuf:"bytes,1,opt,name=nickName" json:"nickName,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + MessageNum int32 `protobuf:"varint,3,opt,name=messageNum" json:"messageNum,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -881,7 +881,7 @@ func (m *UserResp) Reset() { *m = UserResp{} } func (m *UserResp) String() string { return proto.CompactTextString(m) } func (*UserResp) ProtoMessage() {} func (*UserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{14} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{14} } func (m *UserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserResp.Unmarshal(m, b) @@ -908,9 +908,9 @@ func (m *UserResp) GetNickName() string { return "" } -func (m *UserResp) GetUserId() string { +func (m *UserResp) GetUserID() string { if m != nil { - return m.UserId + return m.UserID } return "" } @@ -924,7 +924,7 @@ func (m *UserResp) GetMessageNum() int32 { type GetActiveUserResp struct { Users []*UserResp `protobuf:"bytes,1,rep,name=Users" json:"Users,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,2,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -934,7 +934,7 @@ func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } func (*GetActiveUserResp) ProtoMessage() {} func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{15} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{15} } func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) @@ -969,8 +969,8 @@ func (m *GetActiveUserResp) GetCommonResp() *CommonResp { } type GetActiveGroupReq struct { - StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq" json:"StatisticsReq,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=statisticsReq" json:"statisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -980,7 +980,7 @@ func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupReq) ProtoMessage() {} func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{16} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{16} } func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) @@ -1018,7 +1018,7 @@ type GroupResp struct { GroupName string `protobuf:"bytes,1,opt,name=GroupName" json:"GroupName,omitempty"` GroupId string `protobuf:"bytes,2,opt,name=GroupId" json:"GroupId,omitempty"` MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum" json:"MessageNum,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,4,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1028,7 +1028,7 @@ func (m *GroupResp) Reset() { *m = GroupResp{} } func (m *GroupResp) String() string { return proto.CompactTextString(m) } func (*GroupResp) ProtoMessage() {} func (*GroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{17} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{17} } func (m *GroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResp.Unmarshal(m, b) @@ -1078,7 +1078,7 @@ func (m *GroupResp) GetCommonResp() *CommonResp { type GetActiveGroupResp struct { Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups" json:"Groups,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,2,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1088,7 +1088,7 @@ func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupResp) ProtoMessage() {} func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{18} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{18} } func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) @@ -1134,7 +1134,7 @@ func (m *DateNumList) Reset() { *m = DateNumList{} } func (m *DateNumList) String() string { return proto.CompactTextString(m) } func (*DateNumList) ProtoMessage() {} func (*DateNumList) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{19} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{19} } func (m *DateNumList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DateNumList.Unmarshal(m, b) @@ -1180,7 +1180,7 @@ func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsReq) ProtoMessage() {} func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{20} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{20} } func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) @@ -1219,7 +1219,7 @@ type GetMessageStatisticsResp struct { GroupMessageNum int32 `protobuf:"varint,2,opt,name=GroupMessageNum" json:"GroupMessageNum,omitempty"` PrivateMessageNumList []*DateNumList `protobuf:"bytes,3,rep,name=PrivateMessageNumList" json:"PrivateMessageNumList,omitempty"` GroupMessageNumList []*DateNumList `protobuf:"bytes,4,rep,name=GroupMessageNumList" json:"GroupMessageNumList,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,5,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,5,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1229,7 +1229,7 @@ func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsRe func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsResp) ProtoMessage() {} func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{21} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{21} } func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) @@ -1296,7 +1296,7 @@ func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsReq) ProtoMessage() {} func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{22} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{22} } func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) @@ -1335,7 +1335,7 @@ type GetGroupStatisticsResp struct { TotalGroupNum int32 `protobuf:"varint,2,opt,name=TotalGroupNum" json:"TotalGroupNum,omitempty"` IncreaseGroupNumList []*DateNumList `protobuf:"bytes,3,rep,name=IncreaseGroupNumList" json:"IncreaseGroupNumList,omitempty"` TotalGroupNumList []*DateNumList `protobuf:"bytes,4,rep,name=TotalGroupNumList" json:"TotalGroupNumList,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,5,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,5,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1345,7 +1345,7 @@ func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsResp) ProtoMessage() {} func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{23} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{23} } func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) @@ -1412,7 +1412,7 @@ func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsReq) ProtoMessage() {} func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{24} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{24} } func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) @@ -1453,7 +1453,7 @@ type GetUserStatisticsResp struct { IncreaseUserNumList []*DateNumList `protobuf:"bytes,4,rep,name=IncreaseUserNumList" json:"IncreaseUserNumList,omitempty"` ActiveUserNumList []*DateNumList `protobuf:"bytes,5,rep,name=ActiveUserNumList" json:"ActiveUserNumList,omitempty"` TotalUserNumList []*DateNumList `protobuf:"bytes,6,rep,name=TotalUserNumList" json:"TotalUserNumList,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,7,opt,name=CommonResp" json:"CommonResp,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,7,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1463,7 +1463,7 @@ func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsResp) ProtoMessage() {} func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_521fdb68576e364f, []int{25} + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{25} } func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) @@ -1532,6 +1532,1198 @@ func (m *GetUserStatisticsResp) GetCommonResp() *CommonResp { return nil } +type GenerateInvitationCodeReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + CodeLen int32 `protobuf:"varint,2,opt,name=codeLen" json:"codeLen,omitempty"` + CodeNum int32 `protobuf:"varint,3,opt,name=codeNum" json:"codeNum,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateInvitationCodeReq) Reset() { *m = GenerateInvitationCodeReq{} } +func (m *GenerateInvitationCodeReq) String() string { return proto.CompactTextString(m) } +func (*GenerateInvitationCodeReq) ProtoMessage() {} +func (*GenerateInvitationCodeReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{26} +} +func (m *GenerateInvitationCodeReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateInvitationCodeReq.Unmarshal(m, b) +} +func (m *GenerateInvitationCodeReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateInvitationCodeReq.Marshal(b, m, deterministic) +} +func (dst *GenerateInvitationCodeReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateInvitationCodeReq.Merge(dst, src) +} +func (m *GenerateInvitationCodeReq) XXX_Size() int { + return xxx_messageInfo_GenerateInvitationCodeReq.Size(m) +} +func (m *GenerateInvitationCodeReq) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateInvitationCodeReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateInvitationCodeReq proto.InternalMessageInfo + +func (m *GenerateInvitationCodeReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GenerateInvitationCodeReq) GetCodeLen() int32 { + if m != nil { + return m.CodeLen + } + return 0 +} + +func (m *GenerateInvitationCodeReq) GetCodeNum() int32 { + if m != nil { + return m.CodeNum + } + return 0 +} + +type GenerateInvitationCodeResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GenerateInvitationCodeResp) Reset() { *m = GenerateInvitationCodeResp{} } +func (m *GenerateInvitationCodeResp) String() string { return proto.CompactTextString(m) } +func (*GenerateInvitationCodeResp) ProtoMessage() {} +func (*GenerateInvitationCodeResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{27} +} +func (m *GenerateInvitationCodeResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GenerateInvitationCodeResp.Unmarshal(m, b) +} +func (m *GenerateInvitationCodeResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GenerateInvitationCodeResp.Marshal(b, m, deterministic) +} +func (dst *GenerateInvitationCodeResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenerateInvitationCodeResp.Merge(dst, src) +} +func (m *GenerateInvitationCodeResp) XXX_Size() int { + return xxx_messageInfo_GenerateInvitationCodeResp.Size(m) +} +func (m *GenerateInvitationCodeResp) XXX_DiscardUnknown() { + xxx_messageInfo_GenerateInvitationCodeResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GenerateInvitationCodeResp proto.InternalMessageInfo + +func (m *GenerateInvitationCodeResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetInvitationCodesReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code" json:"code,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=status" json:"status,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,4,opt,name=pagination" json:"pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetInvitationCodesReq) Reset() { *m = GetInvitationCodesReq{} } +func (m *GetInvitationCodesReq) String() string { return proto.CompactTextString(m) } +func (*GetInvitationCodesReq) ProtoMessage() {} +func (*GetInvitationCodesReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{28} +} +func (m *GetInvitationCodesReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetInvitationCodesReq.Unmarshal(m, b) +} +func (m *GetInvitationCodesReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetInvitationCodesReq.Marshal(b, m, deterministic) +} +func (dst *GetInvitationCodesReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetInvitationCodesReq.Merge(dst, src) +} +func (m *GetInvitationCodesReq) XXX_Size() int { + return xxx_messageInfo_GetInvitationCodesReq.Size(m) +} +func (m *GetInvitationCodesReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetInvitationCodesReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetInvitationCodesReq proto.InternalMessageInfo + +func (m *GetInvitationCodesReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetInvitationCodesReq) GetCode() string { + if m != nil { + return m.Code + } + return "" +} + +func (m *GetInvitationCodesReq) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *GetInvitationCodesReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +type InvitationCode struct { + InvitationCode string `protobuf:"bytes,1,opt,name=invitationCode" json:"invitationCode,omitempty"` + CreateTime int32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` + LastTime int32 `protobuf:"varint,3,opt,name=lastTime" json:"lastTime,omitempty"` + UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + Status int32 `protobuf:"varint,5,opt,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InvitationCode) Reset() { *m = InvitationCode{} } +func (m *InvitationCode) String() string { return proto.CompactTextString(m) } +func (*InvitationCode) ProtoMessage() {} +func (*InvitationCode) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{29} +} +func (m *InvitationCode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InvitationCode.Unmarshal(m, b) +} +func (m *InvitationCode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InvitationCode.Marshal(b, m, deterministic) +} +func (dst *InvitationCode) XXX_Merge(src proto.Message) { + xxx_messageInfo_InvitationCode.Merge(dst, src) +} +func (m *InvitationCode) XXX_Size() int { + return xxx_messageInfo_InvitationCode.Size(m) +} +func (m *InvitationCode) XXX_DiscardUnknown() { + xxx_messageInfo_InvitationCode.DiscardUnknown(m) +} + +var xxx_messageInfo_InvitationCode proto.InternalMessageInfo + +func (m *InvitationCode) GetInvitationCode() string { + if m != nil { + return m.InvitationCode + } + return "" +} + +func (m *InvitationCode) GetCreateTime() int32 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *InvitationCode) GetLastTime() int32 { + if m != nil { + return m.LastTime + } + return 0 +} + +func (m *InvitationCode) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *InvitationCode) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +type GetInvitationCodesResp struct { + InvitationCodes []*InvitationCode `protobuf:"bytes,1,rep,name=invitationCodes" json:"invitationCodes,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination" json:"Pagination,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,3,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetInvitationCodesResp) Reset() { *m = GetInvitationCodesResp{} } +func (m *GetInvitationCodesResp) String() string { return proto.CompactTextString(m) } +func (*GetInvitationCodesResp) ProtoMessage() {} +func (*GetInvitationCodesResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{30} +} +func (m *GetInvitationCodesResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetInvitationCodesResp.Unmarshal(m, b) +} +func (m *GetInvitationCodesResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetInvitationCodesResp.Marshal(b, m, deterministic) +} +func (dst *GetInvitationCodesResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetInvitationCodesResp.Merge(dst, src) +} +func (m *GetInvitationCodesResp) XXX_Size() int { + return xxx_messageInfo_GetInvitationCodesResp.Size(m) +} +func (m *GetInvitationCodesResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetInvitationCodesResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetInvitationCodesResp proto.InternalMessageInfo + +func (m *GetInvitationCodesResp) GetInvitationCodes() []*InvitationCode { + if m != nil { + return m.InvitationCodes + } + return nil +} + +func (m *GetInvitationCodesResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetInvitationCodesResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type QueryIPRegisterReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + IP string `protobuf:"bytes,2,opt,name=IP" json:"IP,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryIPRegisterReq) Reset() { *m = QueryIPRegisterReq{} } +func (m *QueryIPRegisterReq) String() string { return proto.CompactTextString(m) } +func (*QueryIPRegisterReq) ProtoMessage() {} +func (*QueryIPRegisterReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{31} +} +func (m *QueryIPRegisterReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryIPRegisterReq.Unmarshal(m, b) +} +func (m *QueryIPRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryIPRegisterReq.Marshal(b, m, deterministic) +} +func (dst *QueryIPRegisterReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryIPRegisterReq.Merge(dst, src) +} +func (m *QueryIPRegisterReq) XXX_Size() int { + return xxx_messageInfo_QueryIPRegisterReq.Size(m) +} +func (m *QueryIPRegisterReq) XXX_DiscardUnknown() { + xxx_messageInfo_QueryIPRegisterReq.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryIPRegisterReq proto.InternalMessageInfo + +func (m *QueryIPRegisterReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *QueryIPRegisterReq) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +type QueryIPRegisterResp struct { + IP string `protobuf:"bytes,1,opt,name=IP" json:"IP,omitempty"` + RegisterNum int32 `protobuf:"varint,2,opt,name=RegisterNum" json:"RegisterNum,omitempty"` + Status int32 `protobuf:"varint,3,opt,name=Status" json:"Status,omitempty"` + UserIDList []string `protobuf:"bytes,4,rep,name=userIDList" json:"userIDList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,5,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryIPRegisterResp) Reset() { *m = QueryIPRegisterResp{} } +func (m *QueryIPRegisterResp) String() string { return proto.CompactTextString(m) } +func (*QueryIPRegisterResp) ProtoMessage() {} +func (*QueryIPRegisterResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{32} +} +func (m *QueryIPRegisterResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryIPRegisterResp.Unmarshal(m, b) +} +func (m *QueryIPRegisterResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryIPRegisterResp.Marshal(b, m, deterministic) +} +func (dst *QueryIPRegisterResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryIPRegisterResp.Merge(dst, src) +} +func (m *QueryIPRegisterResp) XXX_Size() int { + return xxx_messageInfo_QueryIPRegisterResp.Size(m) +} +func (m *QueryIPRegisterResp) XXX_DiscardUnknown() { + xxx_messageInfo_QueryIPRegisterResp.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryIPRegisterResp proto.InternalMessageInfo + +func (m *QueryIPRegisterResp) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +func (m *QueryIPRegisterResp) GetRegisterNum() int32 { + if m != nil { + return m.RegisterNum + } + return 0 +} + +func (m *QueryIPRegisterResp) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +func (m *QueryIPRegisterResp) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *QueryIPRegisterResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type AddIPLimitReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + IP string `protobuf:"bytes,2,opt,name=IP" json:"IP,omitempty"` + LimitTime int32 `protobuf:"varint,3,opt,name=limitTime" json:"limitTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddIPLimitReq) Reset() { *m = AddIPLimitReq{} } +func (m *AddIPLimitReq) String() string { return proto.CompactTextString(m) } +func (*AddIPLimitReq) ProtoMessage() {} +func (*AddIPLimitReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{33} +} +func (m *AddIPLimitReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddIPLimitReq.Unmarshal(m, b) +} +func (m *AddIPLimitReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddIPLimitReq.Marshal(b, m, deterministic) +} +func (dst *AddIPLimitReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddIPLimitReq.Merge(dst, src) +} +func (m *AddIPLimitReq) XXX_Size() int { + return xxx_messageInfo_AddIPLimitReq.Size(m) +} +func (m *AddIPLimitReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddIPLimitReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddIPLimitReq proto.InternalMessageInfo + +func (m *AddIPLimitReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AddIPLimitReq) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +func (m *AddIPLimitReq) GetLimitTime() int32 { + if m != nil { + return m.LimitTime + } + return 0 +} + +type AddIPLimitResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddIPLimitResp) Reset() { *m = AddIPLimitResp{} } +func (m *AddIPLimitResp) String() string { return proto.CompactTextString(m) } +func (*AddIPLimitResp) ProtoMessage() {} +func (*AddIPLimitResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{34} +} +func (m *AddIPLimitResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddIPLimitResp.Unmarshal(m, b) +} +func (m *AddIPLimitResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddIPLimitResp.Marshal(b, m, deterministic) +} +func (dst *AddIPLimitResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddIPLimitResp.Merge(dst, src) +} +func (m *AddIPLimitResp) XXX_Size() int { + return xxx_messageInfo_AddIPLimitResp.Size(m) +} +func (m *AddIPLimitResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddIPLimitResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddIPLimitResp proto.InternalMessageInfo + +func (m *AddIPLimitResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type RemoveIPLimitReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + IP string `protobuf:"bytes,2,opt,name=IP" json:"IP,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoveIPLimitReq) Reset() { *m = RemoveIPLimitReq{} } +func (m *RemoveIPLimitReq) String() string { return proto.CompactTextString(m) } +func (*RemoveIPLimitReq) ProtoMessage() {} +func (*RemoveIPLimitReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{35} +} +func (m *RemoveIPLimitReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveIPLimitReq.Unmarshal(m, b) +} +func (m *RemoveIPLimitReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveIPLimitReq.Marshal(b, m, deterministic) +} +func (dst *RemoveIPLimitReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveIPLimitReq.Merge(dst, src) +} +func (m *RemoveIPLimitReq) XXX_Size() int { + return xxx_messageInfo_RemoveIPLimitReq.Size(m) +} +func (m *RemoveIPLimitReq) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveIPLimitReq.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoveIPLimitReq proto.InternalMessageInfo + +func (m *RemoveIPLimitReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *RemoveIPLimitReq) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +type RemoveIPLimitResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoveIPLimitResp) Reset() { *m = RemoveIPLimitResp{} } +func (m *RemoveIPLimitResp) String() string { return proto.CompactTextString(m) } +func (*RemoveIPLimitResp) ProtoMessage() {} +func (*RemoveIPLimitResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{36} +} +func (m *RemoveIPLimitResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveIPLimitResp.Unmarshal(m, b) +} +func (m *RemoveIPLimitResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveIPLimitResp.Marshal(b, m, deterministic) +} +func (dst *RemoveIPLimitResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveIPLimitResp.Merge(dst, src) +} +func (m *RemoveIPLimitResp) XXX_Size() int { + return xxx_messageInfo_RemoveIPLimitResp.Size(m) +} +func (m *RemoveIPLimitResp) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveIPLimitResp.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoveIPLimitResp proto.InternalMessageInfo + +func (m *RemoveIPLimitResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type QueryUserIDIPLimitLoginReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryUserIDIPLimitLoginReq) Reset() { *m = QueryUserIDIPLimitLoginReq{} } +func (m *QueryUserIDIPLimitLoginReq) String() string { return proto.CompactTextString(m) } +func (*QueryUserIDIPLimitLoginReq) ProtoMessage() {} +func (*QueryUserIDIPLimitLoginReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{37} +} +func (m *QueryUserIDIPLimitLoginReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryUserIDIPLimitLoginReq.Unmarshal(m, b) +} +func (m *QueryUserIDIPLimitLoginReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryUserIDIPLimitLoginReq.Marshal(b, m, deterministic) +} +func (dst *QueryUserIDIPLimitLoginReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryUserIDIPLimitLoginReq.Merge(dst, src) +} +func (m *QueryUserIDIPLimitLoginReq) XXX_Size() int { + return xxx_messageInfo_QueryUserIDIPLimitLoginReq.Size(m) +} +func (m *QueryUserIDIPLimitLoginReq) XXX_DiscardUnknown() { + xxx_messageInfo_QueryUserIDIPLimitLoginReq.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryUserIDIPLimitLoginReq proto.InternalMessageInfo + +func (m *QueryUserIDIPLimitLoginReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *QueryUserIDIPLimitLoginReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +type UserIPLimit struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + IP string `protobuf:"bytes,2,opt,name=IP" json:"IP,omitempty"` + CreateTime int32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserIPLimit) Reset() { *m = UserIPLimit{} } +func (m *UserIPLimit) String() string { return proto.CompactTextString(m) } +func (*UserIPLimit) ProtoMessage() {} +func (*UserIPLimit) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{38} +} +func (m *UserIPLimit) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserIPLimit.Unmarshal(m, b) +} +func (m *UserIPLimit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserIPLimit.Marshal(b, m, deterministic) +} +func (dst *UserIPLimit) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserIPLimit.Merge(dst, src) +} +func (m *UserIPLimit) XXX_Size() int { + return xxx_messageInfo_UserIPLimit.Size(m) +} +func (m *UserIPLimit) XXX_DiscardUnknown() { + xxx_messageInfo_UserIPLimit.DiscardUnknown(m) +} + +var xxx_messageInfo_UserIPLimit proto.InternalMessageInfo + +func (m *UserIPLimit) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *UserIPLimit) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +func (m *UserIPLimit) GetCreateTime() int32 { + if m != nil { + return m.CreateTime + } + return 0 +} + +type QueryUserIDIPLimitLoginResp struct { + UserIPLimits []*UserIPLimit `protobuf:"bytes,1,rep,name=UserIPLimits" json:"UserIPLimits,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryUserIDIPLimitLoginResp) Reset() { *m = QueryUserIDIPLimitLoginResp{} } +func (m *QueryUserIDIPLimitLoginResp) String() string { return proto.CompactTextString(m) } +func (*QueryUserIDIPLimitLoginResp) ProtoMessage() {} +func (*QueryUserIDIPLimitLoginResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{39} +} +func (m *QueryUserIDIPLimitLoginResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryUserIDIPLimitLoginResp.Unmarshal(m, b) +} +func (m *QueryUserIDIPLimitLoginResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryUserIDIPLimitLoginResp.Marshal(b, m, deterministic) +} +func (dst *QueryUserIDIPLimitLoginResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryUserIDIPLimitLoginResp.Merge(dst, src) +} +func (m *QueryUserIDIPLimitLoginResp) XXX_Size() int { + return xxx_messageInfo_QueryUserIDIPLimitLoginResp.Size(m) +} +func (m *QueryUserIDIPLimitLoginResp) XXX_DiscardUnknown() { + xxx_messageInfo_QueryUserIDIPLimitLoginResp.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryUserIDIPLimitLoginResp proto.InternalMessageInfo + +func (m *QueryUserIDIPLimitLoginResp) GetUserIPLimits() []*UserIPLimit { + if m != nil { + return m.UserIPLimits + } + return nil +} + +func (m *QueryUserIDIPLimitLoginResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type AddUserIPLimitLoginReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + IP string `protobuf:"bytes,3,opt,name=IP" json:"IP,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserIPLimitLoginReq) Reset() { *m = AddUserIPLimitLoginReq{} } +func (m *AddUserIPLimitLoginReq) String() string { return proto.CompactTextString(m) } +func (*AddUserIPLimitLoginReq) ProtoMessage() {} +func (*AddUserIPLimitLoginReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{40} +} +func (m *AddUserIPLimitLoginReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserIPLimitLoginReq.Unmarshal(m, b) +} +func (m *AddUserIPLimitLoginReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserIPLimitLoginReq.Marshal(b, m, deterministic) +} +func (dst *AddUserIPLimitLoginReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserIPLimitLoginReq.Merge(dst, src) +} +func (m *AddUserIPLimitLoginReq) XXX_Size() int { + return xxx_messageInfo_AddUserIPLimitLoginReq.Size(m) +} +func (m *AddUserIPLimitLoginReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserIPLimitLoginReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserIPLimitLoginReq proto.InternalMessageInfo + +func (m *AddUserIPLimitLoginReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *AddUserIPLimitLoginReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *AddUserIPLimitLoginReq) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +type AddUserIPLimitLoginResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddUserIPLimitLoginResp) Reset() { *m = AddUserIPLimitLoginResp{} } +func (m *AddUserIPLimitLoginResp) String() string { return proto.CompactTextString(m) } +func (*AddUserIPLimitLoginResp) ProtoMessage() {} +func (*AddUserIPLimitLoginResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{41} +} +func (m *AddUserIPLimitLoginResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddUserIPLimitLoginResp.Unmarshal(m, b) +} +func (m *AddUserIPLimitLoginResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddUserIPLimitLoginResp.Marshal(b, m, deterministic) +} +func (dst *AddUserIPLimitLoginResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddUserIPLimitLoginResp.Merge(dst, src) +} +func (m *AddUserIPLimitLoginResp) XXX_Size() int { + return xxx_messageInfo_AddUserIPLimitLoginResp.Size(m) +} +func (m *AddUserIPLimitLoginResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddUserIPLimitLoginResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddUserIPLimitLoginResp proto.InternalMessageInfo + +func (m *AddUserIPLimitLoginResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type RemoveUserIPLimitReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + IP string `protobuf:"bytes,3,opt,name=IP" json:"IP,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoveUserIPLimitReq) Reset() { *m = RemoveUserIPLimitReq{} } +func (m *RemoveUserIPLimitReq) String() string { return proto.CompactTextString(m) } +func (*RemoveUserIPLimitReq) ProtoMessage() {} +func (*RemoveUserIPLimitReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{42} +} +func (m *RemoveUserIPLimitReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveUserIPLimitReq.Unmarshal(m, b) +} +func (m *RemoveUserIPLimitReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveUserIPLimitReq.Marshal(b, m, deterministic) +} +func (dst *RemoveUserIPLimitReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveUserIPLimitReq.Merge(dst, src) +} +func (m *RemoveUserIPLimitReq) XXX_Size() int { + return xxx_messageInfo_RemoveUserIPLimitReq.Size(m) +} +func (m *RemoveUserIPLimitReq) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveUserIPLimitReq.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoveUserIPLimitReq proto.InternalMessageInfo + +func (m *RemoveUserIPLimitReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *RemoveUserIPLimitReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *RemoveUserIPLimitReq) GetIP() string { + if m != nil { + return m.IP + } + return "" +} + +type RemoveUserIPLimitResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RemoveUserIPLimitResp) Reset() { *m = RemoveUserIPLimitResp{} } +func (m *RemoveUserIPLimitResp) String() string { return proto.CompactTextString(m) } +func (*RemoveUserIPLimitResp) ProtoMessage() {} +func (*RemoveUserIPLimitResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{43} +} +func (m *RemoveUserIPLimitResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveUserIPLimitResp.Unmarshal(m, b) +} +func (m *RemoveUserIPLimitResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveUserIPLimitResp.Marshal(b, m, deterministic) +} +func (dst *RemoveUserIPLimitResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveUserIPLimitResp.Merge(dst, src) +} +func (m *RemoveUserIPLimitResp) XXX_Size() int { + return xxx_messageInfo_RemoveUserIPLimitResp.Size(m) +} +func (m *RemoveUserIPLimitResp) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveUserIPLimitResp.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoveUserIPLimitResp proto.InternalMessageInfo + +func (m *RemoveUserIPLimitResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetClientInitConfigReq 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 *GetClientInitConfigReq) Reset() { *m = GetClientInitConfigReq{} } +func (m *GetClientInitConfigReq) String() string { return proto.CompactTextString(m) } +func (*GetClientInitConfigReq) ProtoMessage() {} +func (*GetClientInitConfigReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{44} +} +func (m *GetClientInitConfigReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetClientInitConfigReq.Unmarshal(m, b) +} +func (m *GetClientInitConfigReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetClientInitConfigReq.Marshal(b, m, deterministic) +} +func (dst *GetClientInitConfigReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetClientInitConfigReq.Merge(dst, src) +} +func (m *GetClientInitConfigReq) XXX_Size() int { + return xxx_messageInfo_GetClientInitConfigReq.Size(m) +} +func (m *GetClientInitConfigReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetClientInitConfigReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetClientInitConfigReq proto.InternalMessageInfo + +func (m *GetClientInitConfigReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetClientInitConfigResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetClientInitConfigResp) Reset() { *m = GetClientInitConfigResp{} } +func (m *GetClientInitConfigResp) String() string { return proto.CompactTextString(m) } +func (*GetClientInitConfigResp) ProtoMessage() {} +func (*GetClientInitConfigResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{45} +} +func (m *GetClientInitConfigResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetClientInitConfigResp.Unmarshal(m, b) +} +func (m *GetClientInitConfigResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetClientInitConfigResp.Marshal(b, m, deterministic) +} +func (dst *GetClientInitConfigResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetClientInitConfigResp.Merge(dst, src) +} +func (m *GetClientInitConfigResp) XXX_Size() int { + return xxx_messageInfo_GetClientInitConfigResp.Size(m) +} +func (m *GetClientInitConfigResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetClientInitConfigResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetClientInitConfigResp proto.InternalMessageInfo + +func (m *GetClientInitConfigResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type SetClientInitConfigReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + DiscoverPageURL string `protobuf:"bytes,2,opt,name=discoverPageURL" json:"discoverPageURL,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetClientInitConfigReq) Reset() { *m = SetClientInitConfigReq{} } +func (m *SetClientInitConfigReq) String() string { return proto.CompactTextString(m) } +func (*SetClientInitConfigReq) ProtoMessage() {} +func (*SetClientInitConfigReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{46} +} +func (m *SetClientInitConfigReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetClientInitConfigReq.Unmarshal(m, b) +} +func (m *SetClientInitConfigReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetClientInitConfigReq.Marshal(b, m, deterministic) +} +func (dst *SetClientInitConfigReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetClientInitConfigReq.Merge(dst, src) +} +func (m *SetClientInitConfigReq) XXX_Size() int { + return xxx_messageInfo_SetClientInitConfigReq.Size(m) +} +func (m *SetClientInitConfigReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetClientInitConfigReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetClientInitConfigReq proto.InternalMessageInfo + +func (m *SetClientInitConfigReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *SetClientInitConfigReq) GetDiscoverPageURL() string { + if m != nil { + return m.DiscoverPageURL + } + return "" +} + +type SetClientInitConfigResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetClientInitConfigResp) Reset() { *m = SetClientInitConfigResp{} } +func (m *SetClientInitConfigResp) String() string { return proto.CompactTextString(m) } +func (*SetClientInitConfigResp) ProtoMessage() {} +func (*SetClientInitConfigResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{47} +} +func (m *SetClientInitConfigResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetClientInitConfigResp.Unmarshal(m, b) +} +func (m *SetClientInitConfigResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetClientInitConfigResp.Marshal(b, m, deterministic) +} +func (dst *SetClientInitConfigResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetClientInitConfigResp.Merge(dst, src) +} +func (m *SetClientInitConfigResp) XXX_Size() int { + return xxx_messageInfo_SetClientInitConfigResp.Size(m) +} +func (m *SetClientInitConfigResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetClientInitConfigResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetClientInitConfigResp proto.InternalMessageInfo + +func (m *SetClientInitConfigResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUserFriendsReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + FriendUserID string `protobuf:"bytes,3,opt,name=friendUserID" json:"friendUserID,omitempty"` + FriendUserName string `protobuf:"bytes,4,opt,name=friendUserName" json:"friendUserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,5,opt,name=pagination" json:"pagination,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserFriendsReq) Reset() { *m = GetUserFriendsReq{} } +func (m *GetUserFriendsReq) String() string { return proto.CompactTextString(m) } +func (*GetUserFriendsReq) ProtoMessage() {} +func (*GetUserFriendsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{48} +} +func (m *GetUserFriendsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserFriendsReq.Unmarshal(m, b) +} +func (m *GetUserFriendsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserFriendsReq.Marshal(b, m, deterministic) +} +func (dst *GetUserFriendsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserFriendsReq.Merge(dst, src) +} +func (m *GetUserFriendsReq) XXX_Size() int { + return xxx_messageInfo_GetUserFriendsReq.Size(m) +} +func (m *GetUserFriendsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserFriendsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserFriendsReq proto.InternalMessageInfo + +func (m *GetUserFriendsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetUserFriendsReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUserFriendsReq) GetFriendUserID() string { + if m != nil { + return m.FriendUserID + } + return "" +} + +func (m *GetUserFriendsReq) GetFriendUserName() string { + if m != nil { + return m.FriendUserName + } + return "" +} + +func (m *GetUserFriendsReq) GetPagination() *sdk_ws.RequestPagination { + if m != nil { + return m.Pagination + } + return nil +} + +type GetUserFriendsResp struct { + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,1,opt,name=pagination" json:"pagination,omitempty"` + FriendInfoList []*sdk_ws.FriendInfo `protobuf:"bytes,2,rep,name=friendInfoList" json:"friendInfoList,omitempty"` + FriendNums int32 `protobuf:"varint,3,opt,name=friendNums" json:"friendNums,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUserFriendsResp) Reset() { *m = GetUserFriendsResp{} } +func (m *GetUserFriendsResp) String() string { return proto.CompactTextString(m) } +func (*GetUserFriendsResp) ProtoMessage() {} +func (*GetUserFriendsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{49} +} +func (m *GetUserFriendsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserFriendsResp.Unmarshal(m, b) +} +func (m *GetUserFriendsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserFriendsResp.Marshal(b, m, deterministic) +} +func (dst *GetUserFriendsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUserFriendsResp.Merge(dst, src) +} +func (m *GetUserFriendsResp) XXX_Size() int { + return xxx_messageInfo_GetUserFriendsResp.Size(m) +} +func (m *GetUserFriendsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUserFriendsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUserFriendsResp proto.InternalMessageInfo + +func (m *GetUserFriendsResp) GetPagination() *sdk_ws.ResponsePagination { + if m != nil { + return m.Pagination + } + return nil +} + +func (m *GetUserFriendsResp) GetFriendInfoList() []*sdk_ws.FriendInfo { + if m != nil { + return m.FriendInfoList + } + return nil +} + +func (m *GetUserFriendsResp) GetFriendNums() int32 { + if m != nil { + return m.FriendNums + } + return 0 +} + +func (m *GetUserFriendsResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "admin_cms.CommonResp") proto.RegisterType((*AdminLoginReq)(nil), "admin_cms.AdminLoginReq") @@ -1559,6 +2751,30 @@ func init() { proto.RegisterType((*GetGroupStatisticsResp)(nil), "admin_cms.GetGroupStatisticsResp") proto.RegisterType((*GetUserStatisticsReq)(nil), "admin_cms.GetUserStatisticsReq") proto.RegisterType((*GetUserStatisticsResp)(nil), "admin_cms.GetUserStatisticsResp") + proto.RegisterType((*GenerateInvitationCodeReq)(nil), "admin_cms.GenerateInvitationCodeReq") + proto.RegisterType((*GenerateInvitationCodeResp)(nil), "admin_cms.GenerateInvitationCodeResp") + proto.RegisterType((*GetInvitationCodesReq)(nil), "admin_cms.GetInvitationCodesReq") + proto.RegisterType((*InvitationCode)(nil), "admin_cms.invitationCode") + proto.RegisterType((*GetInvitationCodesResp)(nil), "admin_cms.GetInvitationCodesResp") + proto.RegisterType((*QueryIPRegisterReq)(nil), "admin_cms.QueryIPRegisterReq") + proto.RegisterType((*QueryIPRegisterResp)(nil), "admin_cms.QueryIPRegisterResp") + proto.RegisterType((*AddIPLimitReq)(nil), "admin_cms.AddIPLimitReq") + proto.RegisterType((*AddIPLimitResp)(nil), "admin_cms.AddIPLimitResp") + proto.RegisterType((*RemoveIPLimitReq)(nil), "admin_cms.RemoveIPLimitReq") + proto.RegisterType((*RemoveIPLimitResp)(nil), "admin_cms.RemoveIPLimitResp") + proto.RegisterType((*QueryUserIDIPLimitLoginReq)(nil), "admin_cms.QueryUserIDIPLimitLoginReq") + proto.RegisterType((*UserIPLimit)(nil), "admin_cms.UserIPLimit") + proto.RegisterType((*QueryUserIDIPLimitLoginResp)(nil), "admin_cms.QueryUserIDIPLimitLoginResp") + proto.RegisterType((*AddUserIPLimitLoginReq)(nil), "admin_cms.AddUserIPLimitLoginReq") + proto.RegisterType((*AddUserIPLimitLoginResp)(nil), "admin_cms.AddUserIPLimitLoginResp") + proto.RegisterType((*RemoveUserIPLimitReq)(nil), "admin_cms.RemoveUserIPLimitReq") + proto.RegisterType((*RemoveUserIPLimitResp)(nil), "admin_cms.RemoveUserIPLimitResp") + proto.RegisterType((*GetClientInitConfigReq)(nil), "admin_cms.GetClientInitConfigReq") + proto.RegisterType((*GetClientInitConfigResp)(nil), "admin_cms.GetClientInitConfigResp") + proto.RegisterType((*SetClientInitConfigReq)(nil), "admin_cms.SetClientInitConfigReq") + proto.RegisterType((*SetClientInitConfigResp)(nil), "admin_cms.SetClientInitConfigResp") + proto.RegisterType((*GetUserFriendsReq)(nil), "admin_cms.GetUserFriendsReq") + proto.RegisterType((*GetUserFriendsResp)(nil), "admin_cms.GetUserFriendsResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -1582,6 +2798,17 @@ type AdminCMSClient interface { GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) + GenerateInvitationCode(ctx context.Context, in *GenerateInvitationCodeReq, opts ...grpc.CallOption) (*GenerateInvitationCodeResp, error) + GetInvitationCodes(ctx context.Context, in *GetInvitationCodesReq, opts ...grpc.CallOption) (*GetInvitationCodesResp, error) + QueryIPRegister(ctx context.Context, in *QueryIPRegisterReq, opts ...grpc.CallOption) (*QueryIPRegisterResp, error) + AddIPLimit(ctx context.Context, in *AddIPLimitReq, opts ...grpc.CallOption) (*AddIPLimitResp, error) + RemoveIPLimit(ctx context.Context, in *RemoveIPLimitReq, opts ...grpc.CallOption) (*RemoveIPLimitResp, error) + QueryUserIDIPLimitLogin(ctx context.Context, in *QueryUserIDIPLimitLoginReq, opts ...grpc.CallOption) (*QueryUserIDIPLimitLoginResp, error) + AddUserIPLimitLogin(ctx context.Context, in *AddUserIPLimitLoginReq, opts ...grpc.CallOption) (*AddUserIPLimitLoginResp, error) + RemoveUserIPLimit(ctx context.Context, in *RemoveUserIPLimitReq, opts ...grpc.CallOption) (*RemoveUserIPLimitResp, error) + GetClientInitConfig(ctx context.Context, in *GetClientInitConfigReq, opts ...grpc.CallOption) (*GetClientInitConfigResp, error) + SetClientInitConfig(ctx context.Context, in *SetClientInitConfigReq, opts ...grpc.CallOption) (*SetClientInitConfigResp, error) + GetUserFriends(ctx context.Context, in *GetUserFriendsReq, opts ...grpc.CallOption) (*GetUserFriendsResp, error) } type adminCMSClient struct { @@ -1682,6 +2909,105 @@ func (c *adminCMSClient) GetUserStatistics(ctx context.Context, in *GetUserStati return out, nil } +func (c *adminCMSClient) GenerateInvitationCode(ctx context.Context, in *GenerateInvitationCodeReq, opts ...grpc.CallOption) (*GenerateInvitationCodeResp, error) { + out := new(GenerateInvitationCodeResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GenerateInvitationCode", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetInvitationCodes(ctx context.Context, in *GetInvitationCodesReq, opts ...grpc.CallOption) (*GetInvitationCodesResp, error) { + out := new(GetInvitationCodesResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetInvitationCodes", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) QueryIPRegister(ctx context.Context, in *QueryIPRegisterReq, opts ...grpc.CallOption) (*QueryIPRegisterResp, error) { + out := new(QueryIPRegisterResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/QueryIPRegister", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) AddIPLimit(ctx context.Context, in *AddIPLimitReq, opts ...grpc.CallOption) (*AddIPLimitResp, error) { + out := new(AddIPLimitResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/AddIPLimit", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) RemoveIPLimit(ctx context.Context, in *RemoveIPLimitReq, opts ...grpc.CallOption) (*RemoveIPLimitResp, error) { + out := new(RemoveIPLimitResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/RemoveIPLimit", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) QueryUserIDIPLimitLogin(ctx context.Context, in *QueryUserIDIPLimitLoginReq, opts ...grpc.CallOption) (*QueryUserIDIPLimitLoginResp, error) { + out := new(QueryUserIDIPLimitLoginResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/QueryUserIDIPLimitLogin", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) AddUserIPLimitLogin(ctx context.Context, in *AddUserIPLimitLoginReq, opts ...grpc.CallOption) (*AddUserIPLimitLoginResp, error) { + out := new(AddUserIPLimitLoginResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/AddUserIPLimitLogin", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) RemoveUserIPLimit(ctx context.Context, in *RemoveUserIPLimitReq, opts ...grpc.CallOption) (*RemoveUserIPLimitResp, error) { + out := new(RemoveUserIPLimitResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/RemoveUserIPLimit", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetClientInitConfig(ctx context.Context, in *GetClientInitConfigReq, opts ...grpc.CallOption) (*GetClientInitConfigResp, error) { + out := new(GetClientInitConfigResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetClientInitConfig", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) SetClientInitConfig(ctx context.Context, in *SetClientInitConfigReq, opts ...grpc.CallOption) (*SetClientInitConfigResp, error) { + out := new(SetClientInitConfigResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/SetClientInitConfig", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminCMSClient) GetUserFriends(ctx context.Context, in *GetUserFriendsReq, opts ...grpc.CallOption) (*GetUserFriendsResp, error) { + out := new(GetUserFriendsResp) + err := grpc.Invoke(ctx, "/admin_cms.adminCMS/GetUserFriends", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for AdminCMS service type AdminCMSServer interface { @@ -1695,6 +3021,17 @@ type AdminCMSServer interface { GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) + GenerateInvitationCode(context.Context, *GenerateInvitationCodeReq) (*GenerateInvitationCodeResp, error) + GetInvitationCodes(context.Context, *GetInvitationCodesReq) (*GetInvitationCodesResp, error) + QueryIPRegister(context.Context, *QueryIPRegisterReq) (*QueryIPRegisterResp, error) + AddIPLimit(context.Context, *AddIPLimitReq) (*AddIPLimitResp, error) + RemoveIPLimit(context.Context, *RemoveIPLimitReq) (*RemoveIPLimitResp, error) + QueryUserIDIPLimitLogin(context.Context, *QueryUserIDIPLimitLoginReq) (*QueryUserIDIPLimitLoginResp, error) + AddUserIPLimitLogin(context.Context, *AddUserIPLimitLoginReq) (*AddUserIPLimitLoginResp, error) + RemoveUserIPLimit(context.Context, *RemoveUserIPLimitReq) (*RemoveUserIPLimitResp, error) + GetClientInitConfig(context.Context, *GetClientInitConfigReq) (*GetClientInitConfigResp, error) + SetClientInitConfig(context.Context, *SetClientInitConfigReq) (*SetClientInitConfigResp, error) + GetUserFriends(context.Context, *GetUserFriendsReq) (*GetUserFriendsResp, error) } func RegisterAdminCMSServer(s *grpc.Server, srv AdminCMSServer) { @@ -1881,6 +3218,204 @@ func _AdminCMS_GetUserStatistics_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _AdminCMS_GenerateInvitationCode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateInvitationCodeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GenerateInvitationCode(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GenerateInvitationCode", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GenerateInvitationCode(ctx, req.(*GenerateInvitationCodeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetInvitationCodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInvitationCodesReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetInvitationCodes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetInvitationCodes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetInvitationCodes(ctx, req.(*GetInvitationCodesReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_QueryIPRegister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryIPRegisterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).QueryIPRegister(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/QueryIPRegister", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).QueryIPRegister(ctx, req.(*QueryIPRegisterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_AddIPLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddIPLimitReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).AddIPLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/AddIPLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).AddIPLimit(ctx, req.(*AddIPLimitReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_RemoveIPLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveIPLimitReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).RemoveIPLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/RemoveIPLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).RemoveIPLimit(ctx, req.(*RemoveIPLimitReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_QueryUserIDIPLimitLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryUserIDIPLimitLoginReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).QueryUserIDIPLimitLogin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/QueryUserIDIPLimitLogin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).QueryUserIDIPLimitLogin(ctx, req.(*QueryUserIDIPLimitLoginReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_AddUserIPLimitLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddUserIPLimitLoginReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).AddUserIPLimitLogin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/AddUserIPLimitLogin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).AddUserIPLimitLogin(ctx, req.(*AddUserIPLimitLoginReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_RemoveUserIPLimit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveUserIPLimitReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).RemoveUserIPLimit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/RemoveUserIPLimit", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).RemoveUserIPLimit(ctx, req.(*RemoveUserIPLimitReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetClientInitConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClientInitConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetClientInitConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetClientInitConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetClientInitConfig(ctx, req.(*GetClientInitConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_SetClientInitConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetClientInitConfigReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).SetClientInitConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/SetClientInitConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).SetClientInitConfig(ctx, req.(*SetClientInitConfigReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminCMS_GetUserFriends_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserFriendsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).GetUserFriends(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/GetUserFriends", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).GetUserFriends(ctx, req.(*GetUserFriendsReq)) + } + return interceptor(ctx, in, info, handler) +} + var _AdminCMS_serviceDesc = grpc.ServiceDesc{ ServiceName: "admin_cms.adminCMS", HandlerType: (*AdminCMSServer)(nil), @@ -1925,105 +3460,192 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ MethodName: "GetUserStatistics", Handler: _AdminCMS_GetUserStatistics_Handler, }, + { + MethodName: "GenerateInvitationCode", + Handler: _AdminCMS_GenerateInvitationCode_Handler, + }, + { + MethodName: "GetInvitationCodes", + Handler: _AdminCMS_GetInvitationCodes_Handler, + }, + { + MethodName: "QueryIPRegister", + Handler: _AdminCMS_QueryIPRegister_Handler, + }, + { + MethodName: "AddIPLimit", + Handler: _AdminCMS_AddIPLimit_Handler, + }, + { + MethodName: "RemoveIPLimit", + Handler: _AdminCMS_RemoveIPLimit_Handler, + }, + { + MethodName: "QueryUserIDIPLimitLogin", + Handler: _AdminCMS_QueryUserIDIPLimitLogin_Handler, + }, + { + MethodName: "AddUserIPLimitLogin", + Handler: _AdminCMS_AddUserIPLimitLogin_Handler, + }, + { + MethodName: "RemoveUserIPLimit", + Handler: _AdminCMS_RemoveUserIPLimit_Handler, + }, + { + MethodName: "GetClientInitConfig", + Handler: _AdminCMS_GetClientInitConfig_Handler, + }, + { + MethodName: "SetClientInitConfig", + Handler: _AdminCMS_SetClientInitConfig_Handler, + }, + { + MethodName: "GetUserFriends", + Handler: _AdminCMS_GetUserFriends_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "admin_cms/admin_cms.proto", } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_521fdb68576e364f) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_886b2bcb88d5841f) } -var fileDescriptor_admin_cms_521fdb68576e364f = []byte{ - // 1436 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0x13, 0xc7, - 0x17, 0xd7, 0xda, 0x71, 0x1c, 0x1f, 0x93, 0x90, 0x1c, 0x12, 0x58, 0x0c, 0x7f, 0xfe, 0xce, 0x16, - 0xaa, 0xb4, 0xa2, 0x49, 0x15, 0xd4, 0xab, 0x4a, 0x54, 0x21, 0x86, 0xd4, 0x28, 0x86, 0x68, 0x81, - 0x4a, 0x6d, 0x55, 0xac, 0xad, 0x3d, 0xb8, 0xab, 0xe0, 0xdd, 0x61, 0x67, 0x1c, 0x40, 0x55, 0x6f, - 0xb9, 0xe9, 0x7d, 0x2f, 0x7a, 0xd9, 0x17, 0xe8, 0x45, 0x9f, 0xa0, 0x97, 0x7d, 0x8c, 0xaa, 0x2f, - 0x52, 0xcd, 0xcc, 0x7e, 0xcc, 0xec, 0x6e, 0x6c, 0x13, 0x54, 0xee, 0xe6, 0x9c, 0x39, 0x1f, 0x73, - 0x7e, 0xe7, 0x63, 0x66, 0x17, 0x2e, 0x7b, 0xc3, 0xb1, 0x1f, 0xf4, 0x07, 0x63, 0xb6, 0x93, 0xae, - 0xb6, 0x69, 0x14, 0xf2, 0x10, 0x1b, 0x29, 0xa3, 0xb5, 0xf9, 0x90, 0x92, 0xa0, 0xdf, 0xed, 0xed, - 0xd0, 0xe3, 0xd1, 0x8e, 0xdc, 0xdd, 0x61, 0xc3, 0xe3, 0xfe, 0x4b, 0xb6, 0xf3, 0x32, 0x96, 0x76, - 0x6e, 0x03, 0xec, 0x87, 0xe3, 0x71, 0x18, 0xb8, 0x84, 0x51, 0xb4, 0xa1, 0x4e, 0xa2, 0x68, 0x3f, - 0x1c, 0x12, 0xdb, 0x6a, 0x5b, 0x5b, 0x35, 0x37, 0x21, 0xf1, 0x22, 0x2c, 0x92, 0x28, 0xea, 0xb1, - 0x91, 0x5d, 0x69, 0x5b, 0x5b, 0x0d, 0x37, 0xa6, 0x9c, 0x01, 0x2c, 0xef, 0x09, 0x7f, 0x87, 0xe1, - 0xc8, 0x0f, 0x5c, 0xf2, 0x02, 0xdb, 0xd0, 0x7c, 0x48, 0x49, 0xe4, 0x71, 0x3f, 0x0c, 0xba, 0x1d, - 0x69, 0xa6, 0xe1, 0xea, 0x2c, 0xe1, 0x44, 0xaa, 0x74, 0x3b, 0xb1, 0xad, 0x84, 0x14, 0x4e, 0x1e, - 0x91, 0x41, 0x44, 0xb8, 0x5d, 0x55, 0x4e, 0x14, 0xe5, 0x7c, 0x07, 0x2b, 0xba, 0x13, 0x46, 0x71, - 0x1d, 0x6a, 0x3c, 0x3c, 0x26, 0x41, 0x6c, 0x5f, 0x11, 0xf8, 0x19, 0xc0, 0x20, 0x0d, 0x46, 0x1a, - 0x6f, 0xee, 0x6e, 0x6c, 0x67, 0x00, 0x65, 0x91, 0xba, 0x9a, 0xa0, 0x43, 0x60, 0x73, 0x6f, 0x38, - 0x7c, 0xc2, 0x48, 0xe4, 0x92, 0x91, 0xcf, 0x38, 0x89, 0xf6, 0x86, 0xc3, 0x7b, 0x91, 0x4f, 0x82, - 0x61, 0xb7, 0x73, 0xe8, 0x33, 0x1e, 0xc7, 0x15, 0x16, 0xe3, 0xd2, 0x58, 0x78, 0x0d, 0x60, 0xc2, - 0x48, 0xa4, 0x54, 0xec, 0x4a, 0xbb, 0xba, 0xd5, 0x70, 0x35, 0x8e, 0xf3, 0x2d, 0x38, 0xb3, 0xdc, - 0x30, 0x9a, 0x8b, 0xc1, 0x9a, 0x37, 0x86, 0x37, 0x16, 0x5c, 0x77, 0xc9, 0x70, 0x32, 0x20, 0xef, - 0x1c, 0xc7, 0x55, 0x68, 0xa4, 0xa4, 0x04, 0xb1, 0xe6, 0x66, 0x8c, 0x5c, 0x94, 0xd5, 0x42, 0x94, - 0x4f, 0xe1, 0xc6, 0x1c, 0xe7, 0x38, 0x7b, 0xa0, 0x3f, 0x5b, 0xb0, 0x79, 0x40, 0xf8, 0x3b, 0x47, - 0xd9, 0x01, 0xa0, 0xde, 0xc8, 0x0f, 0xb2, 0x30, 0x9b, 0xbb, 0xd7, 0xb7, 0x19, 0x89, 0x4e, 0x48, - 0xd4, 0xf7, 0xa8, 0xdf, 0xa7, 0x5e, 0xe4, 0x8d, 0xd9, 0xb6, 0x4b, 0x5e, 0x4c, 0x08, 0xe3, 0x47, - 0xa9, 0xac, 0xab, 0xe9, 0x39, 0xff, 0x58, 0xe0, 0xcc, 0x3a, 0x0d, 0xa3, 0xf8, 0x05, 0x9c, 0x93, - 0x10, 0x05, 0xcf, 0x42, 0x09, 0x9b, 0xd5, 0xae, 0x6e, 0x35, 0x77, 0xaf, 0x94, 0xb8, 0x7b, 0x12, - 0x8b, 0xb9, 0x86, 0x02, 0xde, 0x2d, 0x39, 0xed, 0x8d, 0xd2, 0xd3, 0x32, 0x1a, 0x06, 0x8c, 0x94, - 0x1f, 0x37, 0x87, 0x79, 0x75, 0x5e, 0xcc, 0x7f, 0xab, 0xc0, 0xca, 0x01, 0xe1, 0xfb, 0x3f, 0x78, - 0xfc, 0x30, 0x1c, 0x31, 0x01, 0xb0, 0x0d, 0xf5, 0xfd, 0x30, 0xe0, 0x24, 0xe0, 0x31, 0xb8, 0x09, - 0xa9, 0x9a, 0x58, 0x44, 0x9f, 0x4c, 0x0a, 0x45, 0x09, 0xbe, 0x4b, 0x06, 0x27, 0xdd, 0x4e, 0xd2, - 0xdc, 0x8a, 0xc2, 0x16, 0x2c, 0x09, 0x89, 0xc7, 0xfe, 0x98, 0xd8, 0x0b, 0x72, 0x27, 0xa5, 0x45, - 0x1a, 0x1f, 0x11, 0xc6, 0xfc, 0x30, 0x78, 0xfc, 0x9a, 0x12, 0xbb, 0x26, 0x8b, 0x51, 0x67, 0x09, - 0x89, 0xd8, 0xb1, 0x94, 0x58, 0x54, 0x12, 0x1a, 0x4b, 0x24, 0x3a, 0x43, 0xc3, 0xae, 0xbf, 0x4d, - 0xa2, 0xb3, 0x75, 0x7e, 0xac, 0x2d, 0x15, 0xc6, 0x9a, 0xf3, 0xfb, 0x02, 0xd4, 0x63, 0x84, 0xd4, - 0xb9, 0x85, 0x83, 0x1e, 0x1b, 0x65, 0xe5, 0xa7, 0xb1, 0xe4, 0xb9, 0x9f, 0xfb, 0x24, 0xe0, 0x4a, - 0x42, 0x41, 0xa5, 0xb3, 0x34, 0x1c, 0xab, 0xa7, 0xe0, 0xb8, 0x60, 0xe0, 0x68, 0x43, 0x7d, 0x14, - 0x85, 0x13, 0xda, 0xed, 0x48, 0x9c, 0x1a, 0x6e, 0x42, 0xa2, 0x03, 0xe7, 0x22, 0x32, 0x38, 0x79, - 0xe0, 0x0f, 0x8e, 0x03, 0x6f, 0xac, 0x40, 0x6a, 0xb8, 0x06, 0x0f, 0x3f, 0x86, 0x55, 0x61, 0x9f, - 0x44, 0x47, 0xcf, 0x3d, 0xfe, 0x2c, 0x8c, 0xc6, 0xdd, 0x8e, 0xc4, 0xaa, 0xe6, 0x16, 0xf8, 0xf8, - 0x21, 0xac, 0x28, 0x5e, 0x6a, 0x51, 0xc1, 0x91, 0xe3, 0xe2, 0x75, 0x58, 0x56, 0x9c, 0x7b, 0xde, - 0x80, 0x3c, 0x71, 0x0f, 0xed, 0x86, 0x14, 0x33, 0x99, 0x62, 0xdc, 0x1c, 0x88, 0x83, 0x3e, 0x10, - 0x86, 0x40, 0x4a, 0x64, 0x8c, 0x7c, 0x05, 0x34, 0x8b, 0x15, 0x60, 0x43, 0xbd, 0xc7, 0x46, 0xf7, - 0xa2, 0x70, 0x6c, 0x9f, 0x53, 0x77, 0x56, 0x4c, 0xe6, 0x6b, 0x63, 0xb9, 0x58, 0x1b, 0x5a, 0x15, - 0xaf, 0x14, 0xab, 0x98, 0x7b, 0x7c, 0xc2, 0xec, 0xf3, 0x52, 0x2d, 0xa6, 0x8c, 0x6a, 0x5d, 0x6d, - 0x5b, 0x5b, 0x55, 0xad, 0x5a, 0xaf, 0x01, 0xec, 0x47, 0xc4, 0xe3, 0x44, 0xee, 0xae, 0xc9, 0x5d, - 0x8d, 0x83, 0x2b, 0x50, 0xb9, 0xfb, 0xca, 0x46, 0xe9, 0xa8, 0x72, 0xf7, 0x95, 0xf3, 0xb7, 0x05, - 0xe7, 0x8d, 0xb6, 0x62, 0x14, 0xb7, 0x61, 0x29, 0xa1, 0xe3, 0x29, 0x81, 0x7a, 0x7f, 0xaa, 0x2d, - 0x37, 0x95, 0x11, 0x83, 0xe1, 0xe8, 0xac, 0x83, 0xc1, 0x2c, 0xef, 0xc4, 0xe4, 0x83, 0xc9, 0x58, - 0x56, 0x9c, 0x80, 0x2a, 0x63, 0x89, 0xd1, 0x91, 0x4d, 0x07, 0x59, 0x7a, 0xa7, 0x8f, 0x8e, 0x6c, - 0xed, 0xdc, 0x82, 0x65, 0x81, 0x9c, 0xcf, 0xb8, 0x3f, 0x90, 0x83, 0x03, 0x61, 0xe1, 0x99, 0xc8, - 0x95, 0xea, 0x09, 0xb9, 0x16, 0xc0, 0xf0, 0x30, 0xee, 0x81, 0x0a, 0x0f, 0x1d, 0x0e, 0xab, 0x07, - 0x84, 0xef, 0x0d, 0xb8, 0x7f, 0x12, 0x5f, 0x23, 0x2f, 0xf0, 0x76, 0xce, 0x50, 0x7c, 0x63, 0xd8, - 0xda, 0x11, 0x8c, 0x7d, 0x37, 0xe7, 0x37, 0xd7, 0xc0, 0x95, 0x62, 0x03, 0x3f, 0x85, 0x25, 0xe5, - 0x8c, 0x51, 0x91, 0x66, 0x51, 0xc6, 0xb2, 0x26, 0xd5, 0x49, 0x53, 0x5a, 0x94, 0x86, 0x9c, 0xd2, - 0xc3, 0x64, 0xc0, 0x29, 0x4a, 0xa4, 0xbf, 0x47, 0x18, 0xf3, 0x46, 0x24, 0x83, 0x50, 0xe3, 0x38, - 0x13, 0x58, 0xcb, 0x45, 0xc5, 0x28, 0x7e, 0x04, 0x35, 0xb1, 0x4e, 0x92, 0x7d, 0x41, 0x0b, 0x27, - 0x91, 0x71, 0x95, 0x44, 0x2e, 0x03, 0x95, 0x79, 0x33, 0xa0, 0xbb, 0x95, 0x7d, 0xf5, 0x7e, 0xd0, - 0xfc, 0xd5, 0x8a, 0xfb, 0x5a, 0x86, 0x69, 0x34, 0xb9, 0x95, 0x6f, 0x72, 0x1b, 0xea, 0x92, 0x48, - 0x21, 0x4d, 0xc8, 0x59, 0x98, 0x9e, 0xb5, 0x2a, 0x5f, 0x03, 0xe6, 0x31, 0x61, 0x14, 0x6f, 0xc2, - 0xa2, 0x24, 0x92, 0x64, 0xac, 0x6b, 0x86, 0x52, 0x29, 0x37, 0x96, 0x39, 0x6b, 0x3a, 0x6e, 0x41, - 0xb3, 0xe3, 0x71, 0x71, 0x78, 0x79, 0xb1, 0x23, 0x2c, 0x08, 0x32, 0x69, 0x07, 0xb1, 0xc6, 0x55, - 0xa8, 0x8a, 0x68, 0xd5, 0xd3, 0x4b, 0x2c, 0x9d, 0x1f, 0xe1, 0xd2, 0x01, 0xe1, 0x71, 0xdc, 0x66, - 0x26, 0xfe, 0xfb, 0x4c, 0xfe, 0x59, 0x01, 0xbb, 0xdc, 0xbb, 0xc4, 0x6c, 0xed, 0x28, 0xf2, 0x4f, - 0x3c, 0x4e, 0xb4, 0x3c, 0xa9, 0x6f, 0x87, 0xe2, 0x06, 0x6e, 0xc1, 0x79, 0x89, 0x9e, 0x26, 0xab, - 0xa2, 0xcc, 0xb3, 0xf1, 0x10, 0x36, 0x0a, 0xea, 0xe9, 0x8b, 0xb3, 0xb9, 0x7b, 0x51, 0x0b, 0x4f, - 0x83, 0xd3, 0x2d, 0x57, 0xc2, 0x2f, 0xe1, 0x42, 0xce, 0x81, 0xb4, 0xb5, 0x30, 0xd5, 0x56, 0x99, - 0x4a, 0x2e, 0xeb, 0xb5, 0xf9, 0x0b, 0x6e, 0xe3, 0x80, 0x70, 0x69, 0xf0, 0x7d, 0xa7, 0xef, 0x8f, - 0x0a, 0x5c, 0x2c, 0xf3, 0xcd, 0xa8, 0xb8, 0xf4, 0xbb, 0xc1, 0x20, 0x22, 0x1e, 0x53, 0x5d, 0x90, - 0xe5, 0xae, 0xc0, 0x17, 0x97, 0xf9, 0xe3, 0x90, 0x7b, 0xcf, 0x53, 0x41, 0x95, 0x38, 0x93, 0x89, - 0xf7, 0x61, 0x3d, 0xaf, 0x39, 0x47, 0xd6, 0x4a, 0x75, 0xb0, 0x03, 0x6b, 0x86, 0xf1, 0x39, 0x52, - 0x56, 0x54, 0x38, 0x6b, 0xc2, 0x5e, 0xc1, 0x7a, 0xfc, 0xae, 0x7f, 0xdf, 0xf9, 0xfa, 0xa5, 0x2a, - 0x6b, 0x25, 0xef, 0x9a, 0x51, 0xd1, 0x3d, 0x09, 0x50, 0x62, 0x37, 0xcb, 0x56, 0x9e, 0x2d, 0x92, - 0x95, 0xdd, 0x33, 0x5a, 0xb2, 0x0c, 0xa6, 0x78, 0x17, 0x4a, 0xbc, 0x12, 0x21, 0x35, 0x5e, 0x0d, - 0x9e, 0xe8, 0x9c, 0x9c, 0xf1, 0x79, 0x3a, 0xa7, 0x44, 0x45, 0xa4, 0xd3, 0x70, 0x2f, 0xed, 0xd4, - 0xa6, 0xa7, 0xb3, 0xa0, 0x80, 0x77, 0x60, 0x55, 0x3f, 0x9f, 0x34, 0xb2, 0x38, 0xd5, 0x48, 0x41, - 0x3e, 0x57, 0x12, 0xf5, 0x39, 0x4b, 0x62, 0xf7, 0xaf, 0x3a, 0x2c, 0x49, 0xa1, 0xfd, 0xde, 0x23, - 0xdc, 0x03, 0xc8, 0x7e, 0x49, 0xa0, 0x9e, 0x7e, 0xe3, 0x77, 0x48, 0xeb, 0xf2, 0x29, 0x3b, 0x8c, - 0xe2, 0x4f, 0x70, 0x6d, 0xfa, 0xff, 0x00, 0xbc, 0x69, 0x28, 0xcf, 0xf8, 0x43, 0xd1, 0xfa, 0xe4, - 0x2d, 0xa4, 0x19, 0xc5, 0x37, 0x16, 0x6c, 0xce, 0xfc, 0x52, 0xc7, 0x1d, 0xcd, 0xe8, 0x3c, 0xff, - 0x17, 0x5a, 0x9f, 0xbe, 0x9d, 0x82, 0xc2, 0x61, 0xfa, 0x27, 0xb4, 0x81, 0xc3, 0xcc, 0x6f, 0x7f, - 0x03, 0x87, 0x39, 0xbe, 0xcd, 0x3b, 0xd0, 0xd4, 0x1e, 0xe1, 0x78, 0xd9, 0xd4, 0xd6, 0xbe, 0x79, - 0x5b, 0xad, 0xd3, 0xb6, 0x18, 0xc5, 0xfb, 0xb0, 0x6c, 0x3c, 0xee, 0xf0, 0x8a, 0x29, 0x6c, 0x3c, - 0x66, 0x5b, 0x57, 0x4f, 0xdf, 0x64, 0x14, 0x7b, 0xf2, 0x6b, 0x5b, 0x7b, 0x9d, 0x60, 0xa9, 0x7c, - 0xf2, 0x98, 0x6b, 0xfd, 0x6f, 0xca, 0x2e, 0xa3, 0xd8, 0x97, 0xa3, 0xac, 0x70, 0x7d, 0xa3, 0x63, - 0xaa, 0x95, 0xbd, 0x2e, 0x5a, 0x1f, 0xcc, 0x94, 0x61, 0x14, 0xbf, 0x96, 0xaf, 0xa9, 0xdc, 0x05, - 0x83, 0x6d, 0x53, 0xb5, 0x78, 0xf7, 0xb5, 0x36, 0x67, 0x48, 0x30, 0x8a, 0x5f, 0xc9, 0xc7, 0xab, - 0x39, 0x0b, 0xf1, 0xff, 0xc5, 0x04, 0x9b, 0x86, 0xdb, 0xd3, 0x05, 0x18, 0xbd, 0x73, 0xe9, 0x9b, - 0x8d, 0xed, 0xec, 0xcf, 0xe9, 0xe7, 0xe9, 0xea, 0xfb, 0x45, 0xf9, 0x5b, 0xf4, 0xd6, 0xbf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x9c, 0x40, 0xb4, 0xf6, 0x61, 0x15, 0x00, 0x00, +var fileDescriptor_admin_cms_886b2bcb88d5841f = []byte{ + // 2119 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x1a, 0x4d, 0x6f, 0x23, 0x49, + 0x55, 0xed, 0x8f, 0x24, 0x7e, 0x9e, 0x7c, 0x55, 0x3e, 0xc6, 0xe9, 0xd9, 0x1d, 0x92, 0x66, 0x66, + 0x15, 0xd0, 0x92, 0xa0, 0x8c, 0xb8, 0x2c, 0xd2, 0xa0, 0x6c, 0xbc, 0x31, 0x1e, 0x25, 0x59, 0xd3, + 0x9e, 0x59, 0x09, 0x58, 0x36, 0xf4, 0xda, 0x15, 0x6f, 0x2b, 0x71, 0x77, 0x4d, 0x57, 0x3b, 0x3b, + 0x23, 0xc4, 0x75, 0x2e, 0x5c, 0x38, 0x81, 0xc4, 0x11, 0x71, 0xe3, 0xc0, 0x01, 0x89, 0x3b, 0xbf, + 0x83, 0x03, 0x42, 0xfc, 0x0a, 0x6e, 0xa8, 0xaa, 0xfa, 0xa3, 0xaa, 0xba, 0x6d, 0xf7, 0x74, 0x46, + 0x73, 0x73, 0xbd, 0x7a, 0xf5, 0xbe, 0xdf, 0xab, 0x57, 0xaf, 0x0d, 0x3b, 0xce, 0x70, 0xec, 0x7a, + 0x97, 0x83, 0x31, 0x3d, 0x4c, 0x7e, 0x1d, 0x90, 0xc0, 0x0f, 0x7d, 0xd4, 0x48, 0x00, 0xe6, 0xde, + 0xe7, 0x04, 0x7b, 0x97, 0xdd, 0xf3, 0x43, 0x72, 0x3d, 0x3a, 0xe4, 0xbb, 0x87, 0x74, 0x78, 0x7d, + 0xf9, 0x2d, 0x3d, 0xfc, 0x36, 0xc2, 0xb6, 0x9e, 0x02, 0x9c, 0xf8, 0xe3, 0xb1, 0xef, 0xd9, 0x98, + 0x12, 0xd4, 0x82, 0x45, 0x1c, 0x04, 0x27, 0xfe, 0x10, 0xb7, 0x8c, 0x5d, 0x63, 0xbf, 0x6e, 0xc7, + 0x4b, 0xb4, 0x0d, 0x0b, 0x38, 0x08, 0xce, 0xe9, 0xa8, 0x55, 0xd9, 0x35, 0xf6, 0x1b, 0x76, 0xb4, + 0xb2, 0x06, 0xb0, 0x7c, 0xcc, 0xf8, 0x9d, 0xf9, 0x23, 0xd7, 0xb3, 0xf1, 0x4b, 0xb4, 0x0b, 0x4d, + 0x9f, 0xe0, 0xc0, 0x09, 0x5d, 0xdf, 0xeb, 0xb6, 0x39, 0x99, 0x86, 0x2d, 0x83, 0x18, 0x13, 0x2e, + 0x62, 0xb7, 0x1d, 0xd1, 0x8a, 0x97, 0x8c, 0x09, 0xc5, 0x83, 0x00, 0x87, 0xad, 0xaa, 0x60, 0x22, + 0x56, 0xd6, 0xaf, 0x60, 0x45, 0x66, 0x42, 0x09, 0xda, 0x84, 0x7a, 0xe8, 0x5f, 0x63, 0x2f, 0xa2, + 0x2f, 0x16, 0xe8, 0x47, 0x00, 0x83, 0x44, 0x19, 0x4e, 0xbc, 0x79, 0xb4, 0x75, 0x90, 0x1a, 0x28, + 0xd5, 0xd4, 0x96, 0x10, 0x2d, 0x0c, 0x7b, 0xc7, 0xc3, 0xe1, 0x0b, 0x8a, 0x03, 0x1b, 0x8f, 0x5c, + 0x1a, 0xe2, 0xe0, 0x78, 0x38, 0x3c, 0x0d, 0x5c, 0xec, 0x0d, 0xbb, 0xed, 0x33, 0x97, 0x86, 0xc5, + 0xf4, 0x7a, 0x08, 0x30, 0xa1, 0x38, 0x10, 0x47, 0x5a, 0x95, 0xdd, 0xea, 0x7e, 0xc3, 0x96, 0x20, + 0xd6, 0x2f, 0xc1, 0x9a, 0xc7, 0x86, 0x12, 0x4d, 0x07, 0xa3, 0xa8, 0x0e, 0x6f, 0x0c, 0x78, 0x64, + 0xe3, 0xe1, 0x64, 0x80, 0xef, 0xac, 0xc7, 0x07, 0xd0, 0x48, 0x96, 0xdc, 0x88, 0x75, 0x3b, 0x05, + 0x68, 0x5a, 0x56, 0x33, 0x5a, 0x7e, 0x05, 0x8f, 0x0b, 0xc8, 0x51, 0x5e, 0xd1, 0xdf, 0x19, 0xb0, + 0xd7, 0xc1, 0xe1, 0x9d, 0xb5, 0x6c, 0x03, 0x10, 0x67, 0xe4, 0x7a, 0xa9, 0x9a, 0xcd, 0xa3, 0x47, + 0x07, 0x14, 0x07, 0xb7, 0x38, 0xb8, 0x74, 0x88, 0x7b, 0x49, 0x9c, 0xc0, 0x19, 0xd3, 0x03, 0x1b, + 0xbf, 0x9c, 0x60, 0x1a, 0xf6, 0x12, 0x5c, 0x5b, 0x3a, 0x67, 0xfd, 0xd7, 0x00, 0x6b, 0x9e, 0x34, + 0x94, 0xa0, 0x9f, 0xc0, 0x3d, 0x6e, 0x22, 0xef, 0xca, 0xe7, 0x66, 0x33, 0x76, 0xab, 0xfb, 0xcd, + 0xa3, 0x07, 0x39, 0xec, 0x5e, 0x44, 0x68, 0xb6, 0x72, 0x00, 0x7d, 0x96, 0x23, 0xed, 0xe3, 0x5c, + 0x69, 0x29, 0xf1, 0x3d, 0x8a, 0xf3, 0xc5, 0xd5, 0x6c, 0x5e, 0x2d, 0x6a, 0xf3, 0x3f, 0x57, 0x60, + 0xa5, 0x83, 0xc3, 0x93, 0x6f, 0x9c, 0xf0, 0xcc, 0x1f, 0x51, 0x66, 0xe0, 0x16, 0x2c, 0x0e, 0x7c, + 0x2f, 0xc4, 0x5e, 0x18, 0x19, 0x37, 0x5e, 0x8a, 0x24, 0x66, 0xda, 0xc7, 0x95, 0x42, 0xac, 0x18, + 0x3c, 0xc0, 0x83, 0xdb, 0x6e, 0x3b, 0x4e, 0x6e, 0xb1, 0x42, 0x26, 0x2c, 0x31, 0x8c, 0xe7, 0xee, + 0x18, 0xb7, 0x6a, 0x7c, 0x27, 0x59, 0x33, 0x37, 0x52, 0x4c, 0xa9, 0xeb, 0x7b, 0xcf, 0x5f, 0x13, + 0xdc, 0xaa, 0xf3, 0x60, 0x94, 0x41, 0x0c, 0x23, 0x62, 0xcc, 0x31, 0x16, 0x04, 0x86, 0x04, 0xd2, + 0x1c, 0xbd, 0x58, 0xce, 0xd1, 0x7a, 0x40, 0x2d, 0x65, 0x02, 0xca, 0xfa, 0x5b, 0x0d, 0x16, 0x23, + 0x0b, 0x09, 0xb9, 0x19, 0x83, 0x73, 0x3a, 0x4a, 0xc3, 0x4f, 0x02, 0x71, 0xb9, 0x6f, 0x5c, 0xec, + 0x85, 0x02, 0x43, 0x98, 0x4a, 0x06, 0x49, 0x76, 0xac, 0x4e, 0xb1, 0x63, 0x4d, 0xb1, 0x63, 0x0b, + 0x16, 0x47, 0x81, 0x3f, 0x21, 0xdd, 0x36, 0xb7, 0x53, 0xc3, 0x8e, 0x97, 0xc8, 0x82, 0x7b, 0x0c, + 0xe7, 0xc2, 0x1d, 0x5c, 0x7b, 0xce, 0x58, 0x18, 0xa9, 0x61, 0x2b, 0x30, 0xf4, 0x7d, 0x58, 0x63, + 0xf4, 0x71, 0xd0, 0xbb, 0x71, 0xc2, 0x2b, 0x3f, 0x18, 0x77, 0xdb, 0xdc, 0x56, 0x75, 0x3b, 0x03, + 0x47, 0x1f, 0xc1, 0x8a, 0x80, 0x25, 0x14, 0x85, 0x39, 0x34, 0x28, 0x7a, 0x04, 0xcb, 0x02, 0x72, + 0xea, 0x0c, 0xf0, 0x0b, 0xfb, 0xac, 0xd5, 0xe0, 0x68, 0x2a, 0x90, 0x95, 0x1b, 0x2e, 0xe8, 0x05, + 0x23, 0x04, 0x1c, 0x23, 0x05, 0xe8, 0x11, 0xd0, 0xcc, 0x46, 0x40, 0x0b, 0x16, 0xc7, 0x74, 0x74, + 0x1a, 0xf8, 0xe3, 0xd6, 0x3d, 0x71, 0x67, 0x45, 0x4b, 0x3d, 0x36, 0x96, 0xb3, 0xb1, 0x21, 0x45, + 0xf1, 0x4a, 0x36, 0x8a, 0x43, 0x27, 0x9c, 0xd0, 0xd6, 0x2a, 0x3f, 0x16, 0xad, 0x94, 0x68, 0x5d, + 0xdb, 0x35, 0xf6, 0xab, 0x52, 0xb4, 0x3e, 0x04, 0x18, 0x04, 0xd8, 0x09, 0x31, 0xdf, 0x5d, 0xe7, + 0xbb, 0x12, 0x04, 0xad, 0x40, 0x05, 0xbf, 0x6a, 0x21, 0xce, 0xa8, 0x82, 0x5f, 0x59, 0xff, 0x31, + 0x60, 0x55, 0x49, 0x2b, 0x4a, 0xd0, 0x01, 0x2c, 0x0d, 0xa2, 0x75, 0x54, 0x25, 0x90, 0x9c, 0x9f, + 0x62, 0xcb, 0x4e, 0x70, 0xde, 0x55, 0x61, 0x60, 0xa6, 0x8a, 0x48, 0x5e, 0x4c, 0xc6, 0x3c, 0xe2, + 0x98, 0xa9, 0x52, 0x90, 0x56, 0x3a, 0x6a, 0x45, 0x4b, 0xc7, 0x13, 0x58, 0xee, 0x87, 0x4e, 0xe8, + 0xd2, 0xd0, 0x1d, 0xf0, 0xc2, 0x81, 0xa0, 0x76, 0xc5, 0x7c, 0x25, 0x72, 0x82, 0xff, 0x66, 0x86, + 0x09, 0xfd, 0x28, 0x07, 0x2a, 0xa1, 0x6f, 0x85, 0xb0, 0xd6, 0xc1, 0xe1, 0xf1, 0x20, 0x74, 0x6f, + 0xa3, 0x6b, 0xe4, 0x25, 0x7a, 0x0a, 0xcb, 0x54, 0x26, 0x14, 0xdd, 0x18, 0x2d, 0x49, 0x04, 0x85, + 0x91, 0xad, 0xa2, 0xeb, 0x09, 0x5c, 0xc9, 0x26, 0xf0, 0x57, 0xb0, 0x24, 0x98, 0x51, 0xc2, 0xdc, + 0xec, 0xb9, 0x83, 0x6b, 0x1e, 0x93, 0x42, 0xd2, 0x64, 0xcd, 0x42, 0x43, 0xdc, 0x77, 0x71, 0x81, + 0x13, 0x2b, 0xe6, 0xfe, 0x31, 0xa6, 0xd4, 0x19, 0xe1, 0xd4, 0x84, 0x12, 0xc4, 0x9a, 0xc0, 0xba, + 0xa6, 0x15, 0x25, 0xe8, 0x7b, 0x50, 0x67, 0xbf, 0x63, 0x67, 0x6f, 0x48, 0xea, 0xc4, 0x38, 0xb6, + 0xc0, 0x28, 0xdb, 0xdd, 0xc8, 0x6c, 0x3b, 0x2c, 0xaf, 0xde, 0x8f, 0x35, 0xff, 0x64, 0x40, 0x23, + 0x62, 0x47, 0x09, 0x4b, 0xf2, 0x4e, 0x92, 0xe4, 0xc2, 0xa0, 0x29, 0x80, 0xa5, 0x21, 0x5f, 0x74, + 0x87, 0x71, 0x47, 0x18, 0x2d, 0x99, 0x4d, 0xcf, 0x33, 0x36, 0x4d, 0x21, 0x65, 0xa3, 0xf2, 0x35, + 0x20, 0xdd, 0x26, 0x94, 0xa0, 0x8f, 0x61, 0x81, 0x2f, 0x62, 0x67, 0x6c, 0x4a, 0x84, 0x12, 0x2c, + 0x3b, 0xc2, 0x29, 0xeb, 0x8e, 0x27, 0xd0, 0x6c, 0x3b, 0x21, 0x13, 0x9e, 0x5f, 0xec, 0x08, 0x6a, + 0x6c, 0x19, 0xa7, 0x03, 0xfb, 0x8d, 0xd6, 0xa0, 0xca, 0xb4, 0x15, 0xad, 0x17, 0xfb, 0x69, 0xfd, + 0x06, 0xee, 0x77, 0x70, 0x18, 0xe9, 0xad, 0xe6, 0xd3, 0x53, 0x2d, 0xc1, 0xe6, 0x7b, 0xb2, 0xaf, + 0x7b, 0xf2, 0xf3, 0xac, 0x27, 0x25, 0x90, 0xf5, 0xcf, 0x0a, 0xb4, 0xf2, 0xb9, 0x73, 0x9b, 0xad, + 0xf7, 0x02, 0xf7, 0xd6, 0x09, 0xb1, 0xe4, 0x27, 0xf1, 0x76, 0xc8, 0x6e, 0xa0, 0x7d, 0x58, 0xe5, + 0xd6, 0x93, 0x70, 0x85, 0x96, 0x3a, 0x18, 0x9d, 0xc1, 0x56, 0xe6, 0x78, 0xd2, 0x71, 0x36, 0x8f, + 0xb6, 0x25, 0xf5, 0x24, 0x73, 0xda, 0xf9, 0x87, 0xd0, 0x4f, 0x61, 0x43, 0x63, 0xc0, 0x69, 0xd5, + 0x66, 0xd2, 0xca, 0x3b, 0xa2, 0x79, 0xbd, 0x5e, 0x3c, 0xe0, 0xb6, 0x3a, 0x38, 0xe4, 0x04, 0xdf, + 0xb7, 0xfb, 0xfe, 0x5e, 0x81, 0xed, 0x3c, 0xde, 0x94, 0xb0, 0x4b, 0xbf, 0xeb, 0xb1, 0x0b, 0x8a, + 0x8a, 0x2c, 0x48, 0x7d, 0x97, 0x81, 0xb3, 0xcb, 0xfc, 0xb9, 0x1f, 0x3a, 0x37, 0x09, 0xa2, 0x70, + 0x9c, 0x0a, 0x44, 0xcf, 0x60, 0x53, 0x3f, 0x59, 0xc0, 0x6b, 0xb9, 0x67, 0x50, 0x1b, 0xd6, 0x15, + 0xe2, 0x05, 0x5c, 0x96, 0x3d, 0x50, 0xd6, 0x61, 0xaf, 0x60, 0x33, 0xea, 0xeb, 0xdf, 0xb7, 0xbf, + 0xfe, 0x50, 0xe5, 0xb1, 0xa2, 0xb3, 0xa6, 0x84, 0x65, 0x4f, 0x6c, 0x28, 0xb6, 0x9b, 0x7a, 0x4b, + 0x07, 0x33, 0x67, 0xa5, 0xf7, 0x8c, 0xe4, 0x2c, 0x05, 0xc8, 0xfa, 0x42, 0x6e, 0xaf, 0x18, 0x49, + 0x94, 0x57, 0x05, 0xc6, 0x32, 0x47, 0x23, 0x5e, 0x24, 0x73, 0x72, 0x8e, 0x30, 0x77, 0x2a, 0xec, + 0x39, 0x9d, 0xfa, 0x6c, 0x77, 0x66, 0x0e, 0xa0, 0x4f, 0x61, 0x4d, 0x96, 0x8f, 0x13, 0x59, 0x98, + 0x49, 0x24, 0x83, 0xaf, 0x85, 0xc4, 0x62, 0xd1, 0x90, 0x78, 0x09, 0x3b, 0x1d, 0xec, 0x31, 0x47, + 0xe1, 0xae, 0x77, 0xeb, 0x86, 0xdc, 0x61, 0x27, 0xfe, 0x10, 0x17, 0x1e, 0x7b, 0x0c, 0xfc, 0x21, + 0x3e, 0xc3, 0xf1, 0xa3, 0x3a, 0x5e, 0xc6, 0x3b, 0xa9, 0x0b, 0xe2, 0xa5, 0xd5, 0x07, 0x73, 0x1a, + 0xcb, 0xf2, 0x2f, 0xe8, 0xbf, 0x1a, 0x3c, 0xc0, 0x54, 0x82, 0xb4, 0x98, 0x12, 0x08, 0x6a, 0x4c, + 0xb6, 0x28, 0x6e, 0xf9, 0x6f, 0xa9, 0x55, 0xae, 0x2a, 0xad, 0xb2, 0xfa, 0xf0, 0xaa, 0x95, 0x7c, + 0x61, 0xff, 0xc5, 0x80, 0x15, 0x57, 0x11, 0x95, 0xbd, 0x3f, 0x54, 0x48, 0x24, 0xa9, 0x8e, 0xa7, + 0xf6, 0xe3, 0xc2, 0xe8, 0x72, 0x3f, 0x6e, 0xc2, 0xd2, 0x8d, 0x43, 0x43, 0xbe, 0x2b, 0x44, 0x4f, + 0xd6, 0x52, 0x93, 0x57, 0x53, 0x9a, 0xbc, 0x54, 0xd9, 0xba, 0xac, 0xac, 0xf5, 0x2f, 0x83, 0x57, + 0xd9, 0x8c, 0x51, 0x29, 0x41, 0x27, 0xb0, 0xaa, 0x0a, 0x16, 0xf7, 0x17, 0x3b, 0x92, 0xaf, 0x54, + 0x0c, 0x5b, 0x3f, 0xc1, 0xfa, 0xfc, 0x5e, 0xd9, 0x3e, 0xbf, 0x77, 0xe7, 0x01, 0xc0, 0x29, 0xa0, + 0x9f, 0x4d, 0x70, 0xf0, 0xba, 0xdb, 0x8b, 0xa7, 0x1c, 0xc5, 0xc2, 0x65, 0x05, 0x2a, 0xdd, 0x5e, + 0xdc, 0xd8, 0x77, 0x7b, 0xd6, 0x3f, 0x0c, 0xd8, 0xc8, 0x10, 0xa2, 0x24, 0xc2, 0x33, 0x62, 0x3c, + 0x46, 0x39, 0xde, 0x4f, 0xab, 0x97, 0x0c, 0x62, 0x7e, 0xe8, 0x2b, 0x41, 0x27, 0x56, 0xda, 0x78, + 0xaa, 0xa6, 0x8f, 0xa7, 0xca, 0x5e, 0x07, 0x97, 0xb0, 0x7c, 0x3c, 0x1c, 0x76, 0x7b, 0x67, 0xee, + 0xd8, 0x0d, 0x4b, 0xe9, 0xce, 0x5a, 0xe0, 0x1b, 0x76, 0x5a, 0x0a, 0xb7, 0x14, 0x60, 0x75, 0x60, + 0x45, 0x66, 0x50, 0x3e, 0xbb, 0xdb, 0xb0, 0x66, 0xe3, 0xb1, 0x7f, 0x8b, 0xef, 0x22, 0xac, 0xf5, + 0x0c, 0xd6, 0x35, 0x2a, 0xe5, 0x25, 0xfa, 0x02, 0x4c, 0xee, 0x73, 0x3e, 0xda, 0x6a, 0x47, 0x04, + 0xdf, 0x62, 0x5e, 0x3c, 0xe5, 0xbd, 0x65, 0xbd, 0x80, 0x26, 0x27, 0x29, 0x08, 0x4a, 0x68, 0x86, + 0x92, 0xb1, 0xba, 0x1f, 0xd4, 0xaa, 0x50, 0xd5, 0xab, 0x82, 0xf5, 0x7b, 0x03, 0x1e, 0x4c, 0x95, + 0x97, 0x12, 0xf4, 0x09, 0xdc, 0x93, 0xd8, 0xc6, 0xb9, 0xbc, 0xad, 0x3d, 0xdc, 0x62, 0xbb, 0x29, + 0xb8, 0x65, 0xdf, 0x0c, 0x5f, 0xc3, 0x76, 0x34, 0x39, 0xd6, 0xad, 0x37, 0x4d, 0xe9, 0xb9, 0xef, + 0xb3, 0xc8, 0x2c, 0xd5, 0xc4, 0xe3, 0x3d, 0xb8, 0x9f, 0xcb, 0xa3, 0xbc, 0xdf, 0x7f, 0x0d, 0x9b, + 0x22, 0x86, 0x64, 0x7b, 0xbc, 0x53, 0x99, 0x2f, 0x60, 0x2b, 0x87, 0x43, 0x79, 0x89, 0x3f, 0xe1, + 0x35, 0xfc, 0x84, 0x0f, 0xe1, 0xba, 0x9e, 0x1b, 0x9e, 0xf8, 0xde, 0x95, 0x3b, 0x2a, 0x14, 0xa5, + 0xcc, 0x7e, 0xb9, 0x67, 0xcb, 0x4b, 0x33, 0x84, 0xed, 0x7e, 0x49, 0x69, 0x58, 0xab, 0x38, 0x74, + 0xe9, 0xc0, 0xbf, 0xc5, 0x41, 0xcf, 0x19, 0xf1, 0xe1, 0x9b, 0xb0, 0xa7, 0x0e, 0x66, 0x72, 0xf7, + 0xdf, 0xad, 0xdc, 0xff, 0x36, 0xf8, 0xc4, 0x81, 0xf9, 0x44, 0x0c, 0xc2, 0xe9, 0x9d, 0xf2, 0x9c, + 0xb5, 0xa9, 0x57, 0x9c, 0x8e, 0x48, 0xc8, 0xc8, 0xff, 0x0a, 0x8c, 0xb5, 0x04, 0xe9, 0x9a, 0x0f, + 0x19, 0xc4, 0xb5, 0xad, 0x41, 0xb5, 0x9e, 0xa4, 0x5e, 0xb2, 0x27, 0xf9, 0x9f, 0xc1, 0xe7, 0x07, + 0x8a, 0x86, 0x94, 0x68, 0xb3, 0x38, 0xa3, 0xec, 0x2c, 0xee, 0xb3, 0x58, 0x97, 0xe4, 0x73, 0x41, + 0x85, 0x97, 0x98, 0x0f, 0x73, 0x48, 0x9d, 0x26, 0x88, 0xb6, 0x76, 0x88, 0xd5, 0x39, 0x01, 0xb9, + 0x98, 0x8c, 0xe3, 0x5b, 0x52, 0x82, 0x94, 0x1c, 0x9d, 0x1c, 0xfd, 0x71, 0x15, 0x96, 0x38, 0xd2, + 0xc9, 0x79, 0x1f, 0x1d, 0x03, 0xa4, 0x1f, 0xe6, 0x90, 0xfc, 0x08, 0x52, 0x3e, 0x0a, 0x9a, 0x3b, + 0x53, 0x76, 0x28, 0x41, 0xbf, 0x85, 0x87, 0xb3, 0xbf, 0x8a, 0xa1, 0x8f, 0x95, 0xc3, 0x73, 0xbe, + 0xd3, 0x99, 0x3f, 0x78, 0x0b, 0x6c, 0x4a, 0xd0, 0x1b, 0x03, 0xf6, 0xe6, 0x7e, 0xaf, 0x42, 0x87, + 0x12, 0xd1, 0x22, 0x5f, 0xd9, 0xcc, 0x1f, 0xbe, 0xdd, 0x01, 0x61, 0x87, 0xd9, 0x1f, 0x92, 0x14, + 0x3b, 0xcc, 0xfd, 0x02, 0xa6, 0xd8, 0xa1, 0xc0, 0x17, 0xaa, 0x36, 0x34, 0xa5, 0x51, 0x34, 0xda, + 0x51, 0x4f, 0x4b, 0x5f, 0x7e, 0x4c, 0x73, 0xda, 0x16, 0x25, 0xe8, 0x19, 0x2c, 0x2b, 0x23, 0x4e, + 0xf4, 0x40, 0x45, 0x56, 0x46, 0xba, 0xe6, 0x07, 0xd3, 0x37, 0x29, 0x41, 0xe7, 0xfc, 0x9b, 0x93, + 0x34, 0xa3, 0x43, 0xb9, 0xf8, 0xf1, 0x48, 0xd3, 0xfc, 0x70, 0xc6, 0x2e, 0x25, 0xe8, 0x92, 0x3f, + 0xe8, 0x33, 0x43, 0x2c, 0x64, 0xa9, 0xc7, 0xf2, 0x66, 0x6c, 0xe6, 0x77, 0xe7, 0xe2, 0x50, 0x82, + 0x7e, 0xce, 0x6b, 0x82, 0x36, 0x66, 0x41, 0xbb, 0xea, 0xd1, 0xec, 0x04, 0xc8, 0xdc, 0x9b, 0x83, + 0x41, 0x09, 0xfa, 0x22, 0x29, 0xa8, 0x12, 0xe5, 0xef, 0x64, 0x1d, 0xac, 0x12, 0xde, 0x9d, 0x8d, + 0x40, 0x09, 0xc2, 0xec, 0xbe, 0xcb, 0x7b, 0x5e, 0xa2, 0x47, 0xca, 0xd9, 0x29, 0x8f, 0x5e, 0xf3, + 0x71, 0x01, 0xac, 0xc4, 0x32, 0xda, 0xd3, 0x48, 0xb7, 0x4c, 0xf6, 0x39, 0xaa, 0x5b, 0x26, 0xef, + 0x6d, 0xd5, 0x83, 0x55, 0xed, 0x3d, 0x81, 0xe4, 0x38, 0xc8, 0x3e, 0x5a, 0xcc, 0x87, 0xb3, 0xb6, + 0x29, 0x11, 0x25, 0x2d, 0x6e, 0xc4, 0xb5, 0x92, 0x26, 0x3d, 0x00, 0xb4, 0x92, 0xa6, 0x74, 0xee, + 0xcf, 0x60, 0x59, 0x69, 0x9e, 0x95, 0x2c, 0xd0, 0x9b, 0x73, 0x25, 0x0b, 0xb2, 0x3d, 0xf7, 0x37, + 0x70, 0x7f, 0x4a, 0x33, 0x8a, 0x1e, 0xeb, 0x9a, 0xe4, 0x36, 0xd8, 0xe6, 0x47, 0x45, 0xd0, 0x28, + 0x41, 0x5f, 0xc2, 0x46, 0x4e, 0x03, 0x88, 0xf6, 0xb2, 0xf5, 0x54, 0xe7, 0x60, 0xcd, 0x43, 0x11, + 0x21, 0x9c, 0x69, 0xd5, 0x94, 0x10, 0xce, 0x6b, 0x15, 0x95, 0x10, 0xce, 0xef, 0xf4, 0xbe, 0x84, + 0x8d, 0x9c, 0xb6, 0x0b, 0x69, 0xa1, 0x93, 0xd3, 0x44, 0x99, 0xd6, 0x3c, 0x14, 0x41, 0xbd, 0x3f, + 0x87, 0x7a, 0x7f, 0x3e, 0xf5, 0x69, 0xfd, 0x95, 0xa8, 0x70, 0x52, 0x17, 0xa1, 0x57, 0x38, 0xb5, + 0x85, 0xd2, 0x2b, 0x9c, 0xd6, 0x7e, 0x7c, 0x7a, 0xff, 0x17, 0x5b, 0x07, 0xe9, 0xbf, 0x81, 0x7e, + 0x9c, 0xfc, 0xfa, 0x7a, 0x81, 0xff, 0xd5, 0xe7, 0xc9, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xec, + 0x87, 0x51, 0x01, 0x35, 0x24, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index c0118d7ba..442369ac4 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -10,9 +10,9 @@ message CommonResp { } message AdminLoginReq { - string OperationID = 1; - string AdminID = 2; - string Secret = 3; + string operationID = 1; + string adminID = 2; + string secret = 3; } @@ -52,43 +52,43 @@ message GetUserRegisterAddFriendIDListResp { } message GetChatLogsReq { - string Content = 1; - string SendID = 2; - string RecvID = 3; - string SendTime = 4; - int32 SessionType = 5; - int32 ContentType = 6; - server_api_params.RequestPagination Pagination = 7; - string OperationID = 8; + string content = 1; + string sendID = 2; + string recvID = 3; + string sendTime = 4; + int32 sessionType = 5; + int32 contentType = 6; + server_api_params.RequestPagination pagination = 7; + string operationID = 8; } message ChatLog { - string ServerMsgID = 1; - string ClientMsgID = 2; - string SendID = 3; - string RecvID = 4; + string serverMsgID = 1; + string clientMsgID = 2; + string sendID = 3; + string recvID = 4; string groupID = 5; string recvNickname = 6; - int32 SenderPlatformID = 7; - string SenderNickname = 8; - string SenderFaceURL = 9; - string GroupName = 10; - int32 SessionType = 11; - int32 MsgFrom = 12; - int32 ContentType = 13; - string Content = 14; - int32 Status = 15; - int64 SendTime = 16; - int64 CreateTime = 17; - string Ex = 18; + int32 senderPlatformID = 7; + string senderNickname = 8; + string senderFaceURL = 9; + string groupName = 10; + int32 sessionType = 11; + int32 msgFrom = 12; + int32 contentType = 13; + string content = 14; + int32 status = 15; + int64 sendTime = 16; + int64 createTime = 17; + string ex = 18; } message GetChatLogsResp { - repeated ChatLog ChatLogs = 1; - server_api_params.ResponsePagination Pagination = 2; - int32 ChatLogsNum = 3; - CommonResp CommonResp = 4; + repeated ChatLog chatLogs = 1; + server_api_params.ResponsePagination pagination = 2; + int32 chatLogsNum = 3; + CommonResp commonResp = 4; } @@ -98,36 +98,36 @@ message StatisticsReq { } message GetActiveUserReq{ - StatisticsReq StatisticsReq = 1; - string OperationID = 2; + StatisticsReq statisticsReq = 1; + string operationID = 2; } message UserResp{ - string NickName = 1; - string UserId = 2; - int32 MessageNum = 3; + string nickName = 1; + string userID = 2; + int32 messageNum = 3; } message GetActiveUserResp { repeated UserResp Users = 1; - CommonResp CommonResp = 2; + CommonResp commonResp = 2; } message GetActiveGroupReq{ - StatisticsReq StatisticsReq = 1; - string OperationID = 2; + StatisticsReq statisticsReq = 1; + string operationID = 2; } message GroupResp { string GroupName = 1; string GroupId = 2; int32 MessageNum = 3; - CommonResp CommonResp = 4; + CommonResp commonResp = 4; } message GetActiveGroupResp { repeated GroupResp Groups = 1; - CommonResp CommonResp = 2; + CommonResp commonResp = 2; } message DateNumList { @@ -147,7 +147,7 @@ message GetMessageStatisticsResp { int32 GroupMessageNum = 2; repeated DateNumList PrivateMessageNumList = 3; repeated DateNumList GroupMessageNumList = 4; - CommonResp CommonResp = 5; + CommonResp commonResp = 5; } message GetGroupStatisticsReq { @@ -161,7 +161,7 @@ message GetGroupStatisticsResp { int32 TotalGroupNum = 2; repeated DateNumList IncreaseGroupNumList = 3; repeated DateNumList TotalGroupNumList = 4; - CommonResp CommonResp = 5; + CommonResp commonResp = 5; } message GetUserStatisticsReq { @@ -176,7 +176,139 @@ message GetUserStatisticsResp { repeated DateNumList IncreaseUserNumList = 4; repeated DateNumList ActiveUserNumList = 5; repeated DateNumList TotalUserNumList = 6; - CommonResp CommonResp = 7; + CommonResp commonResp = 7; +} + +message GenerateInvitationCodeReq { + string operationID = 1; + int32 codeLen = 2; + int32 codeNum = 3; +} + +message GenerateInvitationCodeResp { + CommonResp commonResp = 1; +} + +message GetInvitationCodesReq { + string operationID = 1; + string code = 2; + int32 status = 3; + server_api_params.RequestPagination pagination = 4; +} + +message invitationCode { + string invitationCode = 1; + int32 createTime = 2; + int32 lastTime = 3; + string userID = 4; + int32 status = 5; +} + +message GetInvitationCodesResp { + repeated invitationCode invitationCodes = 1; + server_api_params.ResponsePagination Pagination = 2; + CommonResp commonResp = 3; +} + +message QueryIPRegisterReq { + string operationID = 1; + string IP = 2; +} + +message QueryIPRegisterResp { + string IP = 1; + int32 RegisterNum = 2; + int32 Status = 3; + repeated string userIDList = 4; + CommonResp commonResp = 5; +} + +message AddIPLimitReq { + string operationID = 1; + string IP = 2; + int32 limitTime = 3; +} + +message AddIPLimitResp { + CommonResp commonResp = 1; +} + +message RemoveIPLimitReq { + string operationID = 1; + string IP = 2; +} + +message RemoveIPLimitResp { + CommonResp commonResp = 1; +} + +message QueryUserIDIPLimitLoginReq { + string operationID = 1; + string userID = 2; +} + +message UserIPLimit { + string userID = 1; + string IP = 2; + int32 createTime = 3; +} + +message QueryUserIDIPLimitLoginResp { + repeated UserIPLimit UserIPLimits = 1; + CommonResp commonResp = 2; +} + +message AddUserIPLimitLoginReq { + string userID = 1; + string operationID = 2; + string IP = 3; +} + +message AddUserIPLimitLoginResp { + CommonResp commonResp = 1; +} + +message RemoveUserIPLimitReq { + string userID = 1; + string operationID = 2; + string IP = 3; +} + +message RemoveUserIPLimitResp { + CommonResp commonResp = 1; +} + +message GetClientInitConfigReq { + string operationID = 1; +} + +message GetClientInitConfigResp { + CommonResp commonResp = 1; +} + +message SetClientInitConfigReq { + string operationID = 1; + string discoverPageURL = 2; +} + +message SetClientInitConfigResp { + CommonResp commonResp = 1; +} + +message GetUserFriendsReq { + string operationID = 1; + string userID = 2; + string friendUserID = 3; + string friendUserName = 4; + server_api_params.RequestPagination pagination = 5; +} + + +message GetUserFriendsResp { + server_api_params.ResponsePagination pagination = 1; + repeated server_api_params.FriendInfo friendInfoList = 2; + int32 friendNums = 3; + CommonResp commonResp = 4; } service adminCMS { @@ -193,4 +325,19 @@ service adminCMS { rpc GetMessageStatistics(GetMessageStatisticsReq) returns(GetMessageStatisticsResp); rpc GetGroupStatistics(GetGroupStatisticsReq) returns(GetGroupStatisticsResp); rpc GetUserStatistics(GetUserStatisticsReq) returns(GetUserStatisticsResp); + + rpc GenerateInvitationCode(GenerateInvitationCodeReq) returns(GenerateInvitationCodeResp); + rpc GetInvitationCodes(GetInvitationCodesReq) returns(GetInvitationCodesResp); + + rpc QueryIPRegister(QueryIPRegisterReq) returns(QueryIPRegisterResp); + rpc AddIPLimit(AddIPLimitReq) returns(AddIPLimitResp); + rpc RemoveIPLimit(RemoveIPLimitReq) returns(RemoveIPLimitResp); + rpc QueryUserIDIPLimitLogin(QueryUserIDIPLimitLoginReq) returns(QueryUserIDIPLimitLoginResp); + rpc AddUserIPLimitLogin(AddUserIPLimitLoginReq) returns(AddUserIPLimitLoginResp); + rpc RemoveUserIPLimit(RemoveUserIPLimitReq) returns(RemoveUserIPLimitResp); + + rpc GetClientInitConfig(GetClientInitConfigReq) returns(GetClientInitConfigResp); + rpc SetClientInitConfig(SetClientInitConfigReq) returns(SetClientInitConfigResp); + + rpc GetUserFriends(GetUserFriendsReq) returns(GetUserFriendsResp); } From a317ebd8e7c710dbec0958dadc4ac835d706d672 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 11:26:25 +0800 Subject: [PATCH 38/56] cms --- internal/api/auth/auth.go | 2 +- internal/api/user/user.go | 11 +++---- pkg/base_info/manage_api_struct.go | 29 ++++++++++++++----- pkg/base_info/public_struct.go | 25 +++++++--------- .../im_mysql_model/friend_model.go | 2 +- .../mysql_model/im_mysql_model/message_cms.go | 3 +- 6 files changed, 39 insertions(+), 33 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index f1a0551a6..73a071548 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -77,7 +77,7 @@ func UserRegister(c *gin.Context) { return } - pbDataToken := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID, LoginIp: params.CreateIp} + pbDataToken := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} replyToken, err := client.UserToken(context.Background(), pbDataToken) if err != nil { errMsg := req.OperationID + " " + " client.UserToken failed " + err.Error() + pbDataToken.String() diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 152783f1c..7b73df7fd 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -497,13 +497,10 @@ func GetUsers(c *gin.Context) { return } for _, v := range respPb.UserList { - resp.Data.UserList = append(resp.Data.UserList, &struct { - open_im_sdk.UserInfo - IsBlock bool "json:\"isBlock\"" - }{ - IsBlock: v.IsBlock, - UserInfo: *v.User, - }) + user := api.CMSUser{} + utils.CopyStructFields(&user, v.User) + user.IsBlock = v.IsBlock + resp.Data.UserList = append(resp.Data.UserList, &user) } resp.CommResp.ErrCode = respPb.CommonResp.ErrCode resp.CommResp.ErrMsg = respPb.CommonResp.ErrMsg diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 47cd20ba2..fedab9caa 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -102,15 +102,30 @@ type GetUsersReq struct { ShowNumber int32 `json:"showNumber" binding:"required"` } +type CMSUser struct { + UserID string `json:"userID"` + Nickname string `json:"nickname"` + FaceURL string `json:"faceURL"` + Gender int32 `json:"gender"` + PhoneNumber string `json:"phoneNumber"` + Birth uint32 `json:"birth"` + Email string `json:"email"` + Ex string `json:"ex"` + CreateIp string `json:"createIp"` + CreateTime uint32 `json:"createTime"` + LastLoginIp string `json:"LastLoginIp"` + LastLoginTime uint32 `json:"LastLoginTime"` + AppMangerLevel int32 `json:"appMangerLevel"` + GlobalRecvMsgOpt int32 `json:"globalRecvMsgOpt"` + IsBlock bool `json:"isBlock"` +} + type GetUsersResp struct { CommResp Data struct { - UserList []*struct { - server_api_params.UserInfo - IsBlock bool `json:"isBlock"` - } `json:"userList"` - TotalNum int32 `json:"totalNum"` - CurrentPage int32 `json:"currentPage"` - ShowNumber int32 `json:"showNumber"` + UserList []*CMSUser `json:"userList"` + TotalNum int32 `json:"totalNum"` + CurrentPage int32 `json:"currentPage"` + ShowNumber int32 `json:"showNumber"` } `json:"data"` } diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 5df606b28..b3b918b45 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -7,21 +7,16 @@ import ( ) type ApiUserInfo struct { - UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` - Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` - FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` - Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` - PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth uint32 `json:"birth" binding:"omitempty"` - Email string `json:"email" binding:"omitempty,max=64"` - CreateIp string `json:"createIp" binding:"omitempty,max=15"` - CreateTime int64 `json:"createTime"` - LastLoginIp string `json:"LastLoginIp" binding:"omitempty,max=15"` - LastLoginTime int64 `json:"lastLoginTime"` - LoginTimes int32 `json:"loginTimes" binding:"omitempty"` - LoginLimit int32 `json:"loginLimit" binding:"omitempty"` - Ex string `json:"ex" binding:"omitempty,max=1024"` - InvitationCode string `json:"invitationCode" binding:"omitempty"` + UserID string `json:"userID" binding:"required,min=1,max=64" swaggo:"true,用户ID,"` + Nickname string `json:"nickname" binding:"omitempty,min=1,max=64" swaggo:"true,my id,19"` + FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` + Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` + PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` + Birth uint32 `json:"birth" binding:"omitempty"` + Email string `json:"email" binding:"omitempty,max=64"` + CreateTime int64 `json:"createTime"` + LoginLimit int32 `json:"loginLimit" binding:"omitempty"` + Ex string `json:"ex" binding:"omitempty,max=1024"` } //type Conversation struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index 5115bf4d3..7b64fd2cc 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -77,7 +77,7 @@ func GetFriendByIDCMS(ownerUserID, friendUserID string) (friendUser *FriendUser, err = db.DB.MysqlDB.DefaultGormDB().Table("friends"). Select("friends.*, users.name"). Where("friends.owner_user_id=? and friends.friend_user_id=?", ownerUserID, friendUserID). - Joins("left join friends on friends.friend_user_id = users.user_id"). + Joins("left join users on friends.friend_user_id = users.user_id"). Take(friendUser).Error return friendUser, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 2b7e74673..e2210225a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -37,7 +37,6 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, } func GetChatLogCount(chatLog db.ChatLog) (int64, error) { - var chatLogs []db.ChatLog var count int64 db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs") if chatLog.Content != "" { @@ -62,6 +61,6 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) } - err := db.Find(&chatLogs).Count(&count).Error + err := db.Count(&count).Error return count, err } From 06e48516bbe5be625afef11b7f766744400a154f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 11:28:01 +0800 Subject: [PATCH 39/56] cms --- internal/demo/register/set_password.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 5b7deae4f..714c56f05 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -108,9 +108,9 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.Nickname = params.Nickname openIMRegisterReq.Secret = config.Config.Secret openIMRegisterReq.FaceURL = params.FaceURL - openIMRegisterReq.CreateIp = ip - openIMRegisterReq.LastLoginIp = ip - openIMRegisterReq.InvitationCode = params.InvitationCode + // openIMRegisterReq.CreateIp = ip + // openIMRegisterReq.LastLoginIp = ip + // openIMRegisterReq.InvitationCode = params.InvitationCode openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) bMsg, err := http2.Post(url, openIMRegisterReq, 2) From a372ef3faad7e0776f26f83c06c58c540c260c78 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 11:35:20 +0800 Subject: [PATCH 40/56] cms --- pkg/common/db/mysql_model/im_mysql_model/friend_model.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/message_cms.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index 7b64fd2cc..96b1e3c82 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -63,7 +63,7 @@ func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumbe db := db.DB.MysqlDB.DefaultGormDB().Table("friends"). Select("friends.*, users.name"). Where("friends.owner_user_id=?", ownerUserID).Limit(int(showNumber)). - Joins("left join friends on friends.friend_user_id = users.user_id"). + Joins("left join users on friends.friend_user_id = users.user_id"). Offset(int(showNumber * (pageNumber - 1))) if friendUserName != "" { db = db.Where("users.name like ?", fmt.Sprintf("%%%s%%", friendUserName)) diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index e2210225a..7e74c83c4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -13,7 +13,7 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs"). Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))) if chatLog.Content != "" { - db = db.Where(" name like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) + db = db.Where(" content like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } if chatLog.SessionType == 1 { db = db.Where("session_type = ?", chatLog.SessionType) @@ -40,7 +40,7 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { var count int64 db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs") if chatLog.Content != "" { - db = db.Where(" name like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) + db = db.Where(" content like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } if chatLog.SessionType != 0 { db = db.Where("session_type = ?", chatLog.SessionType) From 49f05d334df6e26b8e2fa81ac9ecbe5aca698547 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 12:01:10 +0800 Subject: [PATCH 41/56] cms --- internal/rpc/admin_cms/admin_cms.go | 2 +- .../db/mysql_model/im_mysql_model/message_cms.go | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 1590a502e..4a71cbc60 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -621,7 +621,7 @@ func (s *adminCMSServer) GetUserFriends(_ context.Context, req *pbAdminCMS.GetUs resp.FriendInfoList = append(resp.FriendInfoList, friendInfo) } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) - return nil, nil + return resp, nil } func (s *adminCMSServer) GenerateInvitationCode(_ context.Context, req *pbAdminCMS.GenerateInvitationCodeReq) (*pbAdminCMS.GenerateInvitationCodeResp, error) { diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 7e74c83c4..a32f1730b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -12,6 +12,9 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, var chatLogs []db.ChatLog db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs"). Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))) + if chatLog.SendTime.Unix() > 0 { + db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) + } if chatLog.Content != "" { db = db.Where(" content like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } @@ -29,9 +32,7 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, if chatLog.RecvID != "" { db = db.Where("recv_id = ?", chatLog.RecvID) } - if chatLog.SendTime.Unix() > 0 { - db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) - } + err := db.Find(&chatLogs).Error return chatLogs, err } @@ -39,6 +40,10 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, func GetChatLogCount(chatLog db.ChatLog) (int64, error) { var count int64 db := db.DB.MysqlDB.DefaultGormDB().Table("chat_logs") + if chatLog.SendTime.Unix() > 0 { + log.NewDebug("", utils.GetSelfFuncName(), chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) + db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) + } if chatLog.Content != "" { db = db.Where(" content like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } @@ -56,10 +61,6 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { if chatLog.RecvID != "" { db = db.Where("recv_id = ?", chatLog.RecvID) } - if chatLog.SendTime.Unix() > 0 { - log.NewDebug("", utils.GetSelfFuncName(), chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) - db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) - } err := db.Count(&count).Error return count, err From 9f4c3672490927ac8485c52aad5128798765666d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 14:57:08 +0800 Subject: [PATCH 42/56] cms --- internal/rpc/admin_cms/admin_cms.go | 6 +++++- pkg/common/db/mysql_model/im_mysql_model/friend_model.go | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 4a71cbc60..1e40a872c 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -596,6 +596,7 @@ func (s *adminCMSServer) GetUserFriends(_ context.Context, req *pbAdminCMS.GetUs friend, err := imdb.GetFriendByIDCMS(req.UserID, req.FriendUserID) if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err, req.UserID, req.FriendUserID) return resp, nil } log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID, req.FriendUserID) @@ -604,14 +605,17 @@ func (s *adminCMSServer) GetUserFriends(_ context.Context, req *pbAdminCMS.GetUs return resp, nil } friendList = append(friendList, friend) + resp.FriendNums = 1 } else { - friendList, err = imdb.GetUserFriendsCMS(req.UserID, req.FriendUserName, req.Pagination.PageNumber, req.Pagination.ShowNumber) + var count int64 + friendList, count, err = imdb.GetUserFriendsCMS(req.UserID, req.FriendUserName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserID, req.FriendUserName, req.Pagination.PageNumber, req.Pagination.ShowNumber) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrMsg = err.Error() return resp, nil } + resp.FriendNums = int32(count) } for _, v := range friendList { friendInfo := &server_api_params.FriendInfo{} diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go index 96b1e3c82..7cae9f9d0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_model.go @@ -59,7 +59,7 @@ type FriendUser struct { Nickname string `gorm:"column:name;size:255"` } -func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumber int32) (friendUserList []*FriendUser, err error) { +func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumber int32) (friendUserList []*FriendUser, count int64, err error) { db := db.DB.MysqlDB.DefaultGormDB().Table("friends"). Select("friends.*, users.name"). Where("friends.owner_user_id=?", ownerUserID).Limit(int(showNumber)). @@ -68,6 +68,9 @@ func GetUserFriendsCMS(ownerUserID, friendUserName string, pageNumber, showNumbe if friendUserName != "" { db = db.Where("users.name like ?", fmt.Sprintf("%%%s%%", friendUserName)) } + if err = db.Count(&count).Error; err != nil { + return + } err = db.Find(&friendUserList).Error return } From 6dfbb90b8015cb7e3824eed8adce529ab7433974 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 2 Sep 2022 17:22:27 +0800 Subject: [PATCH 43/56] fix signal --- internal/push/logic/push_to_client.go | 6 +++++- pkg/common/db/RedisModel.go | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index c91c93f16..aa3c367e4 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -79,10 +79,14 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } } if pushMsg.MsgData.ContentType == constant.SignalingNotification { - if err := db.DB.HandleSignalInfo(pushMsg.OperationID, pushMsg.MsgData); err != nil { + isSend, err := db.DB.HandleSignalInfo(pushMsg.OperationID, pushMsg.MsgData, pushMsg.PushToUserID) + if err != nil { log.NewError(pushMsg.OperationID, utils.GetSelfFuncName(), err.Error(), pushMsg.MsgData) return } + if !isSend { + return + } } customContent := OpenIMContent{ SessionType: int(pushMsg.MsgData.SessionType), diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 1f81fc3ef..79db918bc 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -258,10 +258,10 @@ func (d *DataBases) CleanUpOneUserAllMsgFromRedis(userID string, operationID str return nil } -func (d *DataBases) HandleSignalInfo(operationID string, msg *pbCommon.MsgData) error { +func (d *DataBases) HandleSignalInfo(operationID string, msg *pbCommon.MsgData, pushToUserID string) (isSend bool, err error) { req := &pbRtc.SignalReq{} if err := proto.Unmarshal(msg.Content, req); err != nil { - return err + return false, err } //log.NewDebug(pushMsg.OperationID, utils.GetSelfFuncName(), "SignalReq: ", req.String()) var inviteeUserIDList []string @@ -273,37 +273,40 @@ func (d *DataBases) HandleSignalInfo(operationID string, msg *pbCommon.MsgData) case *pbRtc.SignalReq_InviteInGroup: inviteeUserIDList = signalInfo.InviteInGroup.Invitation.InviteeUserIDList isInviteSignal = true + if !utils.IsContain(pushToUserID, inviteeUserIDList) { + return false, nil + } case *pbRtc.SignalReq_HungUp, *pbRtc.SignalReq_Cancel, *pbRtc.SignalReq_Reject, *pbRtc.SignalReq_Accept: - return errors.New("signalInfo do not need offlinePush") + return false, errors.New("signalInfo do not need offlinePush") default: log2.NewDebug(operationID, utils.GetSelfFuncName(), "req invalid type", string(msg.Content)) - return nil + return false, nil } if isInviteSignal { - log2.NewInfo(operationID, utils.GetSelfFuncName(), "invite userID list:", inviteeUserIDList) + log2.NewDebug(operationID, utils.GetSelfFuncName(), "invite userID list:", inviteeUserIDList) for _, userID := range inviteeUserIDList { log2.NewInfo(operationID, utils.GetSelfFuncName(), "invite userID:", userID) timeout, err := strconv.Atoi(config.Config.Rtc.SignalTimeout) if err != nil { - return err + return false, err } keyList := SignalListCache + userID err = d.RDB.LPush(context.Background(), keyList, msg.ClientMsgID).Err() if err != nil { - return err + return false, err } err = d.RDB.Expire(context.Background(), keyList, time.Duration(timeout)*time.Second).Err() if err != nil { - return err + return false, err } key := SignalCache + msg.ClientMsgID err = d.RDB.Set(context.Background(), key, msg.Content, time.Duration(timeout)*time.Second).Err() if err != nil { - return err + return false, err } } } - return nil + return true, nil } func (d *DataBases) GetSignalInfoFromCacheByClientMsgID(clientMsgID string) (invitationInfo *pbRtc.SignalInviteReq, err error) { From 05b5a0ada32da670b473be80e1a0047ded1b7b8e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 5 Sep 2022 17:52:43 +0800 Subject: [PATCH 44/56] add --- cmd/open_im_demo/main.go | 5 + internal/api/auth/auth.go | 9 +- internal/demo/register/check_login.go | 81 +++ internal/demo/register/set_password.go | 51 +- internal/rpc/auth/auth.go | 46 -- .../db/mysql_model/im_mysql_model/ip_model.go | 12 + .../mysql_model/im_mysql_model/user_model.go | 3 - pkg/proto/sdk_ws/ws.pb.go | 673 ++++++++---------- pkg/proto/sdk_ws/ws.proto | 12 +- 9 files changed, 438 insertions(+), 454 deletions(-) create mode 100644 internal/demo/register/check_login.go diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index f0639fc6d..988f04809 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" + "github.com/gin-gonic/gin" ) @@ -31,6 +32,7 @@ func main() { authRouterGroup.POST("/password", register.SetPassword) authRouterGroup.POST("/login", register.Login) authRouterGroup.POST("/reset_password", register.ResetPassword) + authRouterGroup.POST("/check_login", register.CheckLoginLimit) } demoRouterGroup := r.Group("/auth") { @@ -39,7 +41,10 @@ func main() { demoRouterGroup.POST("/password", register.SetPassword) demoRouterGroup.POST("/login", register.Login) demoRouterGroup.POST("/reset_password", register.ResetPassword) + demoRouterGroup.POST("/check_login", register.CheckLoginLimit) } + + //deprecated cmsRouterGroup := r.Group("/cms_admin") { cmsRouterGroup.POST("/generate_invitation_code", register.GenerateInvitationCode) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 73a071548..cec540537 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -3,7 +3,6 @@ package apiAuth import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -67,13 +66,7 @@ func UserRegister(c *gin.Context) { if reply.CommonResp.ErrCode != 0 { errMsg := req.OperationID + " " + " UserRegister failed " + reply.CommonResp.ErrMsg + req.String() log.NewError(req.OperationID, errMsg) - if reply.CommonResp.ErrCode == constant.RegisterLimit { - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) - } else if reply.CommonResp.ErrCode == constant.InvitationError { - c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) - } else { - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) - } + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg}) return } diff --git a/internal/demo/register/check_login.go b/internal/demo/register/check_login.go new file mode 100644 index 000000000..818cd6c27 --- /dev/null +++ b/internal/demo/register/check_login.go @@ -0,0 +1,81 @@ +package register + +import ( + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "net/http" + + "github.com/gin-gonic/gin" +) + +type CheckLoginLimitReq struct { + OperationID string `json:"operationID"` + UserID string `json:"userID"` +} + +type CheckLoginLimitResp struct { +} + +func CheckLoginLimit(c *gin.Context) { + req := CheckLoginLimitReq{} + if err := c.BindJSON(&req); err != nil { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrArgs, "errMsg": err.Error()}) + return + } + ip := c.Request.Header.Get("X-Forward-For") + if ip == "" { + ip = c.ClientIP() + } + user, err := imdb.GetUserIPLimit(req.UserID) + if err != nil { + errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.UserID + log.NewError(req.OperationID, errMsg) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": errMsg}) + } + + if err := imdb.UpdateIpReocord(req.UserID, ip); err != nil { + log.NewError(req.OperationID, err.Error(), req.UserID, ip) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": err.Error()}) + return + } + + var Limited bool + var LimitError error + Limited, LimitError = imdb.IsLimitLoginIp(ip) + if LimitError != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), LimitError, ip) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError}) + return + } + if Limited { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), Limited, ip, req.UserID) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.LoginLimit, "errMsg": "ip limited Login"}) + return + } + Limited, LimitError = imdb.IsLimitUserLoginIp(user.UserID, ip) + if LimitError != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), LimitError, ip) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError}) + return + } + if Limited { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), Limited, ip, req.UserID) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.LoginLimit, "errMsg": "user ip limited Login"}) + return + } + Limited, LimitError = imdb.UserIsBlock(user.UserID) + if LimitError != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), LimitError, user.UserID) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError}) + return + } + if Limited { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), Limited, ip, req.UserID) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.LoginLimit, "errMsg": "user is block"}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": ""}) +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 714c56f05..f2cf70d39 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -8,6 +8,7 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "encoding/json" @@ -41,28 +42,33 @@ func SetPassword(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } - ip := c.Request.Header.Get("X-Forward-For") if ip == "" { ip = c.ClientIP() } log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "ip:", ip) - Limited, LimitError := imdb.IsLimitRegisterIp(ip) - if LimitError != nil { - log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError.Error()}) - return - } - if Limited { - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.RegisterLimit, "errMsg": "limited"}) - return - } + ok, opUserID, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), params.OperationID) + if !ok || !utils.IsContain(opUserID, config.Config.Manager.AppManagerUid) { + Limited, LimitError := imdb.IsLimitRegisterIp(ip) + if LimitError != nil { + log.Error(params.OperationID, utils.GetSelfFuncName(), LimitError, ip) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": LimitError.Error()}) + return + } + if Limited { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.RegisterLimit, "errMsg": "limited"}) + return + } + } + openIMRegisterReq := api.UserRegisterReq{} var account string if params.Email != "" { account = params.Email + openIMRegisterReq.Email = params.Email } else if params.PhoneNumber != "" { account = params.PhoneNumber + openIMRegisterReq.PhoneNumber = params.PhoneNumber } else { account = params.UserID } @@ -84,7 +90,7 @@ func SetPassword(c *gin.Context) { if config.Config.Demo.NeedInvitationCode && params.InvitationCode != "" { err := imdb.CheckInvitationCode(params.InvitationCode) if err != nil { - c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "InvitationCode error"}) return } } @@ -99,18 +105,13 @@ func SetPassword(c *gin.Context) { } else { userID = params.UserID } - url := config.Config.Demo.ImAPIURL + "/auth/user_register" - openIMRegisterReq := api.UserRegisterReq{} openIMRegisterReq.OperationID = params.OperationID openIMRegisterReq.Platform = params.Platform openIMRegisterReq.UserID = userID openIMRegisterReq.Nickname = params.Nickname openIMRegisterReq.Secret = config.Config.Secret openIMRegisterReq.FaceURL = params.FaceURL - // openIMRegisterReq.CreateIp = ip - // openIMRegisterReq.LastLoginIp = ip - // openIMRegisterReq.InvitationCode = params.InvitationCode openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) bMsg, err := http2.Post(url, openIMRegisterReq, 2) @@ -124,14 +125,10 @@ func SetPassword(c *gin.Context) { log.NewError(params.OperationID, "request openIM register error", account, "err", "resp: ", openIMRegisterResp.ErrCode) if err != nil { log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register limit"}) + return } - if openIMRegisterResp.ErrCode == constant.RegisterLimit { - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterLimit, "errMsg": "用户注册被限制"}) - return - } else if openIMRegisterResp.ErrCode == constant.InvitationError { - c.JSON(http.StatusOK, gin.H{"errCode": constant.InvitationError, "errMsg": "邀请码错误"}) - return - } else { + if openIMRegisterResp.ErrCode != 0 { c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg}) return } @@ -150,8 +147,11 @@ func SetPassword(c *gin.Context) { imdb.FinishInvitationCode(params.InvitationCode, userID) } } + if err := imdb.InsertIpRecord(userID, ip); err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), userID, ip, err.Error()) + } - log.Info(params.OperationID, "end setPassword", account, params.Password) + log.Info(params.OperationID, "end setuserInfo", account, params.Password) // demo onboarding if params.UserID == "" && config.Config.Demo.OnboardProcess { select { @@ -168,6 +168,7 @@ func SetPassword(c *gin.Context) { } } + // register add friend select { case ChImportFriend <- &pbFriend.ImportFriendReq{ OperationID: params.OperationID, diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 0e2b4d2af..a9ab75569 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -29,70 +29,24 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } log.Debug(req.OperationID, "copy ", user, req.UserInfo) - Limited, LimitError := imdb.IsLimitRegisterIp(req.UserInfo.CreateIp) - if LimitError != nil { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.RegisterLimit, ErrMsg: "Register Limit"}}, nil - } err := imdb.UserRegister(user) if err != nil { - if err == constant.InvitationMsg { - return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.InvitationError, ErrMsg: "邀请码错误"}}, nil - } errMsg := req.OperationID + " imdb.UserRegister failed " + err.Error() + user.UserID log.NewError(req.OperationID, errMsg, user) return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc return ", pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{}}) return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{}}, nil } func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc args ", req.String()) - - if config.Config.Demo.UseIPLimit { - user, err := imdb.GetUserIPLimit(req.FromUserID) - if err != nil { - errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.FromUserID - log.NewError(req.OperationID, errMsg) - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil - } - - var Limited bool - var LimitError error - Limited, LimitError = imdb.IsLimitLoginIp(req.LoginIp) - if LimitError != nil { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil - } - Limited, LimitError = imdb.IsLimitUserLoginIp(user.UserID, req.LoginIp) - if LimitError != nil { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil - } - Limited, LimitError = imdb.UserIsBlock(user.UserID) - if LimitError != nil { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: LimitError.Error()}}, nil - } - if Limited { - return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.LoginLimit, ErrMsg: "limited Login"}}, nil - } - } - tokens, expTime, err := token_verify.CreateToken(req.FromUserID, int(req.Platform)) if err != nil { errMsg := req.OperationID + " token_verify.CreateToken failed " + err.Error() + req.FromUserID + utils.Int32ToString(req.Platform) log.NewError(req.OperationID, errMsg) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: errMsg}}, nil } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " rpc return ", pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}) return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index cea844496..7213bdced 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -74,3 +74,15 @@ func GetRegisterUserNum(ip string) ([]string, error) { err := db.DB.MysqlDB.DefaultGormDB().Model(&db.Register{}).Where("register_ip=?", ip).Pluck("user_id", &userIDList).Error return userIDList, err } + +func InsertIpRecord(userID, createIp string) error { + record := &db.UserIpRecord{UserID: userID, CreateIp: createIp, LastLoginTime: time.Now(), LoginTimes: 1} + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpRecord{}).Create(record).Error + return err +} + +func UpdateIpReocord(userID, ip string) error { + record := &db.UserIpRecord{UserID: userID, LastLoginIp: ip, LastLoginTime: time.Now()} + err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpRecord{}).Updates(record).Updates("login_times = login_times + 1").Error + return err +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index 4605fd5a8..caf76744c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -43,9 +43,6 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } - // user.LastLoginTime = time.Now() - // user.LoginTimes = 0 - // user.LastLoginIp = user.CreateIp err := db.DB.MysqlDB.DefaultGormDB().Table("users").Create(&user).Error if err != nil { return err diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5e99b623f..71dd88c26 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{0} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{1} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{2} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{3} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -492,15 +492,9 @@ type UserInfo struct { Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - CreateIp string `protobuf:"bytes,9,opt,name=createIp" json:"createIp,omitempty"` - CreateTime uint32 `protobuf:"varint,10,opt,name=createTime" json:"createTime,omitempty"` - LastLoginIp string `protobuf:"bytes,11,opt,name=LastLoginIp" json:"LastLoginIp,omitempty"` - LastLoginTime uint32 `protobuf:"varint,12,opt,name=LastLoginTime" json:"LastLoginTime,omitempty"` - LoginTimes int32 `protobuf:"varint,13,opt,name=LoginTimes" json:"LoginTimes,omitempty"` - LoginLimit int32 `protobuf:"varint,14,opt,name=LoginLimit" json:"LoginLimit,omitempty"` - AppMangerLevel int32 `protobuf:"varint,15,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - GlobalRecvMsgOpt int32 `protobuf:"varint,16,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` - InvitationCode string `protobuf:"bytes,17,opt,name=invitationCode" json:"invitationCode,omitempty"` + CreateTime uint32 `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"` + AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + GlobalRecvMsgOpt int32 `protobuf:"varint,11,opt,name=globalRecvMsgOpt" json:"globalRecvMsgOpt,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -510,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{4} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -586,13 +580,6 @@ func (m *UserInfo) GetEx() string { return "" } -func (m *UserInfo) GetCreateIp() string { - if m != nil { - return m.CreateIp - } - return "" -} - func (m *UserInfo) GetCreateTime() uint32 { if m != nil { return m.CreateTime @@ -600,34 +587,6 @@ func (m *UserInfo) GetCreateTime() uint32 { return 0 } -func (m *UserInfo) GetLastLoginIp() string { - if m != nil { - return m.LastLoginIp - } - return "" -} - -func (m *UserInfo) GetLastLoginTime() uint32 { - if m != nil { - return m.LastLoginTime - } - return 0 -} - -func (m *UserInfo) GetLoginTimes() int32 { - if m != nil { - return m.LoginTimes - } - return 0 -} - -func (m *UserInfo) GetLoginLimit() int32 { - if m != nil { - return m.LoginLimit - } - return 0 -} - func (m *UserInfo) GetAppMangerLevel() int32 { if m != nil { return m.AppMangerLevel @@ -642,13 +601,6 @@ func (m *UserInfo) GetGlobalRecvMsgOpt() int32 { return 0 } -func (m *UserInfo) GetInvitationCode() string { - if m != nil { - return m.InvitationCode - } - return "" -} - type FriendInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` @@ -666,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{5} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -751,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{6} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -834,7 +786,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{7} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -956,7 +908,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{8} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1101,7 +1053,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{9} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1212,7 +1164,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{10} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1326,7 +1278,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{11} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1407,7 +1359,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{12} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1453,7 +1405,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{13} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1502,7 +1454,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{14} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1561,7 +1513,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{15} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1599,7 +1551,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{16} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1640,7 +1592,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{17} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1701,7 +1653,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_ws_9506eea4334b9b75, []int{18} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1754,7 +1706,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{19} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1803,7 +1755,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_ws_9506eea4334b9b75, []int{20} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1871,7 +1823,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{21} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1944,7 +1896,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{22} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2133,7 +2085,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{23} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2201,7 +2153,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{24} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2258,7 +2210,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{25} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2327,7 +2279,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{26} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2382,7 +2334,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{27} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2438,7 +2390,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{28} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2493,7 +2445,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{29} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2548,7 +2500,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{30} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2604,7 +2556,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{31} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2667,7 +2619,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{32} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2730,7 +2682,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{33} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2792,7 +2744,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{34} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2846,7 +2798,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{35} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2902,7 +2854,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{36} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2971,7 +2923,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{37} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -3032,7 +2984,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{38} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -3086,7 +3038,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{39} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3141,7 +3093,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{40} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3201,7 +3153,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{41} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3248,7 +3200,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{42} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3301,7 +3253,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{43} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3347,7 +3299,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{44} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3387,7 +3339,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{45} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3434,7 +3386,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{46} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3482,7 +3434,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{47} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3535,7 +3487,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{48} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3573,7 +3525,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{49} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3611,7 +3563,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{50} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3649,7 +3601,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{51} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3688,7 +3640,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{52} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3728,7 +3680,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{53} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3775,7 +3727,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{54} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3830,7 +3782,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{55} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3884,7 +3836,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{56} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3930,7 +3882,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{57} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3984,7 +3936,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{58} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4282,7 +4234,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{59} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4581,7 +4533,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{60} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4684,7 +4636,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{61} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4739,7 +4691,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{62} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4800,7 +4752,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{63} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4855,7 +4807,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{64} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4916,7 +4868,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{65} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4971,7 +4923,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{66} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -5029,7 +4981,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{67} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -5064,7 +5016,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{68} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -5132,7 +5084,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{69} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5186,7 +5138,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{70} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5237,7 +5189,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{71} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5272,7 +5224,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{72} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5337,7 +5289,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{73} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5369,7 +5321,7 @@ func (m *SignalGetRoomByGroupIDReq) Reset() { *m = SignalGetRoomByGroupI func (m *SignalGetRoomByGroupIDReq) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReq) ProtoMessage() {} func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{74} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{74} } func (m *SignalGetRoomByGroupIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReq.Unmarshal(m, b) @@ -5418,7 +5370,7 @@ func (m *SignalGetRoomByGroupIDReply) Reset() { *m = SignalGetRoomByGrou func (m *SignalGetRoomByGroupIDReply) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReply) ProtoMessage() {} func (*SignalGetRoomByGroupIDReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{75} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{75} } func (m *SignalGetRoomByGroupIDReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReply.Unmarshal(m, b) @@ -5487,7 +5439,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{76} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{76} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5547,7 +5499,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{77} + return fileDescriptor_ws_28f8f8e2747ce3c8, []int{77} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5666,239 +5618,234 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9506eea4334b9b75) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_28f8f8e2747ce3c8) } -var fileDescriptor_ws_9506eea4334b9b75 = []byte{ - // 3681 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0xcd, 0x6f, 0x1c, 0xc7, - 0xb1, 0x7f, 0x33, 0xfb, 0x41, 0x6e, 0x2d, 0x3f, 0x96, 0x23, 0x99, 0x5e, 0xd3, 0xb2, 0x1e, 0xdf, - 0x58, 0xb0, 0xfd, 0xf4, 0xfc, 0xa8, 0x07, 0xf9, 0xd9, 0x78, 0xcf, 0x1f, 0x0a, 0x44, 0xd2, 0xa2, - 0x68, 0x93, 0x22, 0x3d, 0x2b, 0xd9, 0x81, 0x6d, 0x40, 0x1e, 0xee, 0x34, 0x97, 0x63, 0xce, 0x4e, - 0x0f, 0xe7, 0x83, 0x12, 0x73, 0x09, 0x90, 0x00, 0x41, 0x90, 0x43, 0x72, 0x49, 0x10, 0x20, 0xc7, - 0x5c, 0x82, 0x04, 0x81, 0x11, 0x04, 0x49, 0x90, 0x43, 0x10, 0xe4, 0x90, 0x5b, 0x2e, 0x39, 0xe4, - 0x96, 0x43, 0x82, 0x9c, 0xf3, 0x0f, 0x04, 0x09, 0xe0, 0xa0, 0xbb, 0x7a, 0x66, 0xba, 0x67, 0x66, - 0xc9, 0x15, 0x41, 0x58, 0x32, 0x94, 0x1b, 0xab, 0xa6, 0xab, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xd5, - 0x1f, 0x4b, 0x98, 0x8d, 0x9c, 0xfd, 0xbb, 0xf7, 0xa2, 0x2b, 0xf7, 0xa2, 0xa5, 0x20, 0xa4, 0x31, - 0x35, 0xe6, 0x22, 0x12, 0x1e, 0x92, 0xf0, 0xae, 0x1d, 0xb8, 0x77, 0x03, 0x3b, 0xb4, 0x87, 0xd1, - 0xc2, 0xf3, 0x5b, 0x01, 0xf1, 0xef, 0xae, 0x6f, 0x5e, 0x09, 0xf6, 0x07, 0x57, 0x78, 0xab, 0x2b, - 0xa9, 0x54, 0x68, 0x07, 0x01, 0x09, 0x85, 0xac, 0xf9, 0xa7, 0x3a, 0xb4, 0xd6, 0x42, 0x9a, 0x04, - 0xeb, 0xfe, 0x2e, 0x35, 0xba, 0x30, 0x31, 0xe0, 0xc4, 0x6a, 0x57, 0x5b, 0xd4, 0x5e, 0x68, 0x59, - 0x29, 0x69, 0x5c, 0x80, 0x16, 0xff, 0xf3, 0x96, 0x3d, 0x24, 0x5d, 0x9d, 0x7f, 0xcb, 0x19, 0x86, - 0x09, 0x53, 0x3e, 0x8d, 0xdd, 0x5d, 0xb7, 0x6f, 0xc7, 0x2e, 0xf5, 0xbb, 0x35, 0xde, 0x40, 0xe1, - 0xb1, 0x36, 0xae, 0x1f, 0x87, 0xd4, 0x49, 0xfa, 0xbc, 0x4d, 0x1d, 0xdb, 0xc8, 0x3c, 0xd6, 0xff, - 0xae, 0xdd, 0x27, 0x77, 0xac, 0x8d, 0x6e, 0x03, 0xfb, 0x17, 0xa4, 0xb1, 0x08, 0x6d, 0x7a, 0xcf, - 0x27, 0xe1, 0x9d, 0x88, 0x84, 0xeb, 0xab, 0xdd, 0x26, 0xff, 0x2a, 0xb3, 0x8c, 0x8b, 0x00, 0xfd, - 0x90, 0xd8, 0x31, 0xb9, 0xed, 0x0e, 0x49, 0x77, 0x62, 0x51, 0x7b, 0x61, 0xda, 0x92, 0x38, 0x4c, - 0xc3, 0x90, 0x0c, 0x77, 0x48, 0xb8, 0x42, 0x13, 0x3f, 0xee, 0x4e, 0xf2, 0x06, 0x32, 0xcb, 0x98, - 0x01, 0x9d, 0xdc, 0xef, 0xb6, 0xb8, 0x6a, 0x9d, 0xdc, 0x37, 0xe6, 0xa1, 0x19, 0xc5, 0x76, 0x9c, - 0x44, 0x5d, 0x58, 0xd4, 0x5e, 0x68, 0x58, 0x82, 0x32, 0x2e, 0xc1, 0x34, 0xd7, 0x4b, 0x53, 0x6b, - 0xda, 0x5c, 0x44, 0x65, 0x66, 0x1e, 0xbb, 0x7d, 0x14, 0x90, 0xee, 0x14, 0x57, 0x90, 0x33, 0x8c, - 0xcb, 0xd0, 0xf1, 0x09, 0x71, 0xde, 0x25, 0x61, 0xee, 0xb5, 0x69, 0xde, 0xa8, 0xc4, 0x37, 0x9e, - 0x83, 0x19, 0x8f, 0xd2, 0xfd, 0x4d, 0x6e, 0x2a, 0x8b, 0x53, 0x77, 0x86, 0xb7, 0x2c, 0x70, 0x8d, - 0x17, 0x61, 0xce, 0x0e, 0x02, 0xef, 0x08, 0x59, 0x37, 0x42, 0x97, 0xf8, 0x4e, 0x77, 0x96, 0x37, - 0x2d, 0x7f, 0x30, 0x5e, 0x81, 0x79, 0x39, 0x3e, 0x77, 0x02, 0x27, 0xf5, 0x5d, 0x87, 0xbb, 0x66, - 0xc4, 0x57, 0x63, 0x09, 0x0c, 0xe5, 0x0b, 0xba, 0x60, 0x8e, 0xbb, 0xa0, 0xe2, 0x8b, 0xf9, 0xed, - 0x1a, 0xcc, 0x66, 0x08, 0xbb, 0x41, 0xc3, 0x1e, 0x89, 0x1f, 0x61, 0x9c, 0x21, 0x06, 0x9a, 0x19, - 0x06, 0xd6, 0x2a, 0xe2, 0xc4, 0xb0, 0xd5, 0xbe, 0xfa, 0xf4, 0xd2, 0x80, 0xd2, 0x81, 0x47, 0x70, - 0x22, 0xed, 0x24, 0xbb, 0x4b, 0xeb, 0x7e, 0xfc, 0xd2, 0xd5, 0x77, 0x6d, 0x2f, 0x21, 0x15, 0x41, - 0x5c, 0x29, 0x05, 0x71, 0xf2, 0x64, 0x35, 0xc5, 0x08, 0xaf, 0x57, 0x45, 0xb8, 0x75, 0xb2, 0x9e, - 0xb2, 0x94, 0xf9, 0xa9, 0x0e, 0xe7, 0x78, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x13, 0x52, 0xc0, 0x3c, - 0x34, 0x13, 0x0c, 0x36, 0xc6, 0x45, 0x50, 0x2c, 0x64, 0x21, 0xf5, 0xc8, 0x06, 0x39, 0x24, 0x1e, - 0x8f, 0x48, 0xc3, 0xca, 0x19, 0xc6, 0x02, 0x4c, 0x7e, 0x4c, 0x5d, 0x9f, 0x03, 0xab, 0xce, 0x3f, - 0x66, 0x34, 0xfb, 0xe6, 0xbb, 0xfd, 0x7d, 0x9f, 0xc5, 0x1a, 0xe3, 0x90, 0xd1, 0x72, 0x88, 0x9a, - 0x6a, 0x88, 0x9e, 0x83, 0x19, 0x3b, 0x08, 0x36, 0x6d, 0x7f, 0x40, 0x42, 0xec, 0x74, 0x02, 0xa7, - 0x83, 0xca, 0x65, 0x09, 0x81, 0xf5, 0xd4, 0xa3, 0x49, 0xd8, 0x27, 0xdc, 0xdb, 0x0d, 0x4b, 0xe2, - 0x30, 0x3d, 0x34, 0x20, 0xa1, 0x34, 0x8f, 0x71, 0xea, 0x17, 0xb8, 0x02, 0x12, 0x90, 0x41, 0x82, - 0x25, 0x92, 0x24, 0x26, 0x6f, 0xfa, 0x0e, 0x1f, 0x54, 0x5b, 0x24, 0x92, 0x9c, 0xc5, 0x12, 0x84, - 0xeb, 0x1f, 0xba, 0x71, 0x96, 0xae, 0xa6, 0x30, 0x41, 0x28, 0x4c, 0xf3, 0x6b, 0x1a, 0xcc, 0x6c, - 0x27, 0x3b, 0x9e, 0xdb, 0xe7, 0x0c, 0xe6, 0xfc, 0xdc, 0xc5, 0x9a, 0xe2, 0x62, 0xd9, 0x51, 0xfa, - 0x68, 0x47, 0xd5, 0x54, 0x47, 0xcd, 0x43, 0x73, 0x40, 0x7c, 0x87, 0x84, 0xc2, 0xf1, 0x82, 0x12, - 0x03, 0x6a, 0xa4, 0x03, 0x32, 0xbf, 0x59, 0x87, 0xc9, 0xcf, 0xd8, 0x84, 0x45, 0x68, 0x07, 0x7b, - 0xd4, 0x27, 0xb7, 0x12, 0x06, 0x3e, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x63, 0xc7, 0x0d, 0xe3, - 0x3d, 0x1e, 0xfd, 0x69, 0x0b, 0x09, 0xc6, 0x25, 0x43, 0xdb, 0xc5, 0x90, 0xb7, 0x2c, 0x24, 0xc4, - 0x80, 0x26, 0xb3, 0x08, 0x2d, 0xc0, 0x24, 0x26, 0xfe, 0xf5, 0x40, 0xc4, 0x34, 0xa3, 0x0b, 0xcb, - 0x04, 0x54, 0x2d, 0x13, 0x1b, 0x76, 0x14, 0x6f, 0xd0, 0x81, 0xeb, 0xaf, 0x07, 0x22, 0xb5, 0xcb, - 0x2c, 0x16, 0xdd, 0x8c, 0xe4, 0x4a, 0xa6, 0xb8, 0x12, 0x95, 0xc9, 0xfa, 0xc9, 0x88, 0x48, 0xa4, - 0x76, 0x89, 0x93, 0x7d, 0xdf, 0x70, 0x87, 0x6e, 0x2c, 0x12, 0xba, 0xc4, 0xa9, 0x40, 0xf9, 0x6c, - 0x25, 0xca, 0x2f, 0x43, 0x67, 0xe0, 0xd1, 0x1d, 0xdb, 0xb3, 0x48, 0xff, 0x70, 0x33, 0x1a, 0x6c, - 0x05, 0x31, 0x4f, 0xe0, 0x0d, 0xab, 0xc4, 0x67, 0x3a, 0x39, 0x04, 0x79, 0x46, 0x5a, 0xa1, 0x0e, - 0x11, 0x69, 0xbb, 0xc0, 0x35, 0xff, 0xa6, 0x01, 0x60, 0x9a, 0xe0, 0x90, 0x28, 0xac, 0xbd, 0x5a, - 0x79, 0xed, 0x9d, 0x87, 0x66, 0x48, 0x86, 0x76, 0xb8, 0x9f, 0xa6, 0x06, 0xa4, 0x0a, 0xce, 0xae, - 0x95, 0x9c, 0xfd, 0x1a, 0xc0, 0x2e, 0xef, 0x87, 0xe9, 0xe1, 0x10, 0x61, 0x89, 0xac, 0x54, 0xce, - 0x2c, 0xa5, 0xe8, 0xb4, 0xa4, 0xe6, 0x2c, 0xef, 0xd8, 0x8e, 0x23, 0xa6, 0x77, 0x03, 0xf3, 0x4e, - 0xc6, 0xa8, 0x98, 0xdd, 0xcd, 0x63, 0x66, 0xf7, 0x44, 0x36, 0x19, 0xfe, 0xaa, 0x41, 0x6b, 0xd9, - 0xb3, 0xfb, 0xfb, 0x63, 0x0e, 0x5d, 0x1d, 0xa2, 0x5e, 0x1a, 0xe2, 0x1a, 0x4c, 0xef, 0x30, 0x75, - 0xe9, 0x10, 0xb8, 0x17, 0xda, 0x57, 0xff, 0xa3, 0x62, 0x94, 0x6a, 0x32, 0xb0, 0x54, 0x39, 0x75, - 0xb8, 0xf5, 0x93, 0x87, 0xdb, 0x38, 0x66, 0xb8, 0xd9, 0xfa, 0x66, 0x7e, 0xb7, 0x06, 0x53, 0x7c, - 0x19, 0xb0, 0xc8, 0x41, 0x42, 0xa2, 0xd8, 0x78, 0x03, 0x26, 0x93, 0xd4, 0x54, 0x6d, 0x5c, 0x53, - 0x33, 0x11, 0xe3, 0x55, 0xb1, 0x7e, 0x73, 0x79, 0x9d, 0xcb, 0x5f, 0xa8, 0x90, 0xcf, 0x0a, 0x02, - 0x2b, 0x6f, 0xce, 0x56, 0xee, 0x3d, 0xdb, 0x77, 0x3c, 0x62, 0x91, 0x28, 0xf1, 0x62, 0xb1, 0x96, - 0x28, 0x3c, 0x44, 0xda, 0xc1, 0x66, 0x34, 0x10, 0xeb, 0xba, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, - 0x84, 0x43, 0xcf, 0x19, 0x2c, 0x41, 0x85, 0xe4, 0x80, 0x47, 0x08, 0xd3, 0x49, 0x4a, 0xe6, 0x7d, - 0x0a, 0xaf, 0x21, 0x10, 0x14, 0x1e, 0x0b, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x8e, 0x12, 0xa7, 0x54, - 0x37, 0xaa, 0x0b, 0x0f, 0x94, 0x16, 0x9e, 0xd2, 0xf2, 0xd0, 0xae, 0x5a, 0x1e, 0xfe, 0x58, 0x83, - 0x69, 0x9c, 0x84, 0x69, 0x68, 0x2e, 0xb2, 0xd9, 0x42, 0x87, 0x0a, 0x16, 0x25, 0x0e, 0x1b, 0x0b, - 0xa3, 0x6e, 0xa9, 0x69, 0x5a, 0xe1, 0x31, 0x40, 0x33, 0xfa, 0x86, 0x92, 0xae, 0x65, 0x56, 0xda, - 0xcb, 0x9a, 0x9c, 0xb6, 0x25, 0x0e, 0x4b, 0xae, 0x31, 0x55, 0x30, 0x96, 0xd1, 0x4c, 0x36, 0xa6, - 0x59, 0xff, 0x88, 0x32, 0x89, 0xc3, 0xa2, 0x14, 0xd3, 0xb4, 0x6f, 0x74, 0x75, 0xce, 0x40, 0xcd, - 0xa2, 0x5f, 0x5c, 0xae, 0x33, 0xba, 0x84, 0x8d, 0xd6, 0xb1, 0xd8, 0x00, 0x05, 0x1b, 0xea, 0x14, - 0x6d, 0x97, 0xa6, 0xe8, 0x25, 0x98, 0x46, 0x3d, 0x85, 0xe5, 0x5a, 0x61, 0xaa, 0x08, 0x9b, 0x2e, - 0x22, 0x4c, 0xc5, 0xc8, 0xcc, 0x08, 0x8c, 0xcc, 0x66, 0xf3, 0xee, 0xa7, 0x3a, 0xc0, 0x2a, 0x09, - 0xec, 0x30, 0x1e, 0x12, 0x3f, 0x66, 0xc3, 0x73, 0x32, 0x2a, 0x0b, 0xae, 0xc2, 0x93, 0x57, 0x59, - 0x5d, 0x5d, 0x65, 0x0d, 0xa8, 0x73, 0x87, 0x63, 0x34, 0xf9, 0xdf, 0xcc, 0x99, 0x81, 0x1d, 0xa2, - 0x36, 0x9c, 0x2a, 0x19, 0xcd, 0x56, 0x51, 0x1a, 0x3a, 0x62, 0xdd, 0x6d, 0x58, 0x48, 0xb0, 0x14, - 0x92, 0xf7, 0xc7, 0x77, 0x2d, 0x4d, 0x5c, 0x71, 0x54, 0xee, 0x89, 0x1b, 0xad, 0xcb, 0xd0, 0x89, - 0x92, 0x9d, 0x7c, 0x70, 0xb7, 0x92, 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0xc0, 0x58, - 0xa3, 0x16, 0x6f, 0x94, 0x33, 0x8a, 0x95, 0x97, 0xf9, 0x63, 0x1d, 0x3a, 0x5b, 0xe1, 0xc0, 0xf6, - 0xdd, 0x2f, 0x65, 0x3b, 0x8c, 0x53, 0x15, 0x2c, 0x8b, 0xd0, 0x26, 0xfe, 0xc0, 0x73, 0xa3, 0xbd, - 0x5b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0xfa, 0xa8, 0x92, 0xa6, 0xa1, 0x94, 0x34, 0xf3, 0xd0, - 0x1c, 0xd2, 0x1d, 0xd7, 0x4b, 0x71, 0x2f, 0x28, 0x8e, 0x79, 0xe2, 0x11, 0x5e, 0xdb, 0x64, 0x98, - 0x4f, 0x19, 0x79, 0x99, 0x33, 0x59, 0x59, 0xe6, 0xb4, 0xe4, 0x32, 0xe7, 0xa4, 0xd2, 0x05, 0xdd, - 0xd5, 0xce, 0xdc, 0xf5, 0x1b, 0x0d, 0x3a, 0xb9, 0xbb, 0xb1, 0xce, 0x1f, 0xe9, 0xae, 0x22, 0x02, - 0xf5, 0x0a, 0x04, 0x66, 0xb8, 0xa9, 0xc9, 0xb8, 0x61, 0x48, 0xa3, 0x91, 0x2b, 0x6d, 0xb6, 0x32, - 0x9a, 0xf5, 0xe6, 0x11, 0x5b, 0x72, 0x16, 0x52, 0xd2, 0xd6, 0xba, 0xa9, 0x6c, 0xad, 0x8b, 0xab, - 0xf1, 0x2f, 0x35, 0x38, 0xcf, 0xa2, 0x5c, 0x1a, 0xc6, 0x16, 0x74, 0x68, 0x01, 0x09, 0x62, 0xb9, - 0x7a, 0xb6, 0x62, 0xb9, 0x29, 0x82, 0xc6, 0x2a, 0x09, 0x33, 0x85, 0x4e, 0xa1, 0x13, 0xb1, 0x7e, - 0x55, 0x29, 0x2c, 0xda, 0x63, 0x95, 0x84, 0xcd, 0x5f, 0x69, 0xd0, 0xc1, 0x05, 0x52, 0x9a, 0xe7, - 0x67, 0x6e, 0xf6, 0x7b, 0x70, 0xbe, 0xd8, 0xf3, 0x86, 0x1b, 0xc5, 0x5d, 0x7d, 0xb1, 0x36, 0xae, - 0xe9, 0x95, 0x0a, 0xd8, 0x5c, 0x7b, 0x72, 0x3b, 0xf1, 0xbc, 0x4d, 0x12, 0x45, 0xf6, 0x80, 0x2c, - 0x1f, 0xf5, 0xc8, 0x01, 0xfb, 0x60, 0x91, 0x83, 0x91, 0x18, 0x62, 0xd5, 0x12, 0x2f, 0x37, 0x5c, - 0xea, 0x67, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, 0xa7, 0x5b, 0x5b, 0xac, 0xb1, 0x85, 0x58, - 0x90, 0xc6, 0x47, 0x30, 0xc5, 0x2b, 0x01, 0xd1, 0x4d, 0xb7, 0xce, 0x07, 0xf0, 0x7a, 0x65, 0xed, - 0x51, 0x69, 0x15, 0xd6, 0x14, 0x82, 0x7e, 0xd3, 0x8f, 0xc3, 0x23, 0x4b, 0xd1, 0xb8, 0xf0, 0x01, - 0xcc, 0x95, 0x9a, 0x18, 0x1d, 0xa8, 0xed, 0x93, 0x23, 0x31, 0x0e, 0xf6, 0xa7, 0xf1, 0x3f, 0xd0, - 0x38, 0x64, 0x9b, 0x66, 0x11, 0xfd, 0x85, 0x0a, 0x0b, 0x84, 0xcd, 0x16, 0x36, 0x7c, 0x55, 0xff, - 0x3f, 0xcd, 0x7c, 0x36, 0x1b, 0x98, 0x3c, 0x46, 0x4d, 0x19, 0xa3, 0xf9, 0x36, 0xb4, 0x37, 0xa3, - 0xc1, 0xaa, 0x1d, 0xdb, 0xbc, 0xe1, 0xeb, 0xd0, 0x1e, 0xe6, 0x24, 0x6f, 0x5c, 0xdd, 0x9f, 0x10, - 0xb2, 0xe4, 0xe6, 0xe6, 0xef, 0x75, 0xe8, 0x56, 0xbb, 0x22, 0x0a, 0x98, 0x0d, 0x24, 0x0c, 0x79, - 0x89, 0xaf, 0xf1, 0x09, 0x96, 0x92, 0x2c, 0x76, 0x24, 0x0c, 0xd9, 0x1a, 0x26, 0x4a, 0x75, 0xa4, - 0x8c, 0x25, 0xa8, 0x7b, 0x69, 0x58, 0x8e, 0xb7, 0x82, 0xb7, 0x33, 0x86, 0xd0, 0xe1, 0xde, 0x95, - 0x06, 0x24, 0x62, 0x76, 0x7d, 0xec, 0x98, 0x45, 0x01, 0x06, 0x4d, 0xd2, 0x81, 0x81, 0x2b, 0xa9, - 0x5e, 0xe8, 0xc3, 0x13, 0x95, 0x4d, 0x2b, 0x02, 0xf8, 0xbf, 0x6a, 0x00, 0x2f, 0x8e, 0x1e, 0x4a, - 0x31, 0x88, 0x01, 0x18, 0x6b, 0x24, 0xde, 0xb4, 0xef, 0x5f, 0xf7, 0x9d, 0x4d, 0xd7, 0xef, 0x91, - 0x03, 0x86, 0xf6, 0x45, 0x68, 0x8b, 0x23, 0x90, 0x2c, 0x4c, 0x2d, 0x4b, 0x66, 0x8d, 0x3c, 0x19, - 0x29, 0xcc, 0x87, 0x5a, 0x69, 0x3e, 0x98, 0xd7, 0x60, 0x4a, 0xee, 0x8e, 0x2f, 0x22, 0xf6, 0xfd, - 0x1e, 0x39, 0xe0, 0x03, 0x9a, 0xb6, 0x04, 0xc5, 0xf9, 0xbc, 0x85, 0xd8, 0x61, 0x08, 0xca, 0xfc, - 0x9d, 0x0e, 0xe7, 0x4a, 0x26, 0x47, 0xc1, 0x83, 0xea, 0x91, 0xf1, 0x52, 0x1b, 0x85, 0x97, 0xba, - 0x82, 0x97, 0x7d, 0x98, 0xc3, 0x20, 0x49, 0x5d, 0x77, 0x1b, 0x1c, 0x00, 0x6f, 0x54, 0x15, 0xfc, - 0x65, 0x23, 0x45, 0xec, 0x25, 0x2e, 0x06, 0xbf, 0xac, 0x77, 0x81, 0xc0, 0x7c, 0x75, 0xe3, 0x8a, - 0xf0, 0xbf, 0xac, 0x86, 0xff, 0xdf, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, 0xff, 0x00, 0x66, 0x59, - 0x52, 0xed, 0x11, 0xdf, 0xd9, 0x8c, 0x06, 0xdc, 0x91, 0x8b, 0xd0, 0x46, 0xf9, 0xcd, 0x68, 0x90, - 0x6f, 0x00, 0x25, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0x96, 0x3c, 0x79, 0x0b, 0x91, 0xf4, 0x24, 0x16, - 0x5b, 0x20, 0x23, 0x22, 0x4e, 0x8b, 0x98, 0x77, 0x6b, 0x56, 0x46, 0x9b, 0xbf, 0x68, 0xc2, 0x84, - 0x40, 0x23, 0x5f, 0x14, 0xd9, 0x9e, 0x3b, 0x4b, 0xab, 0x48, 0x61, 0x5d, 0xdb, 0x3f, 0xcc, 0xe1, - 0x85, 0x94, 0x7c, 0x54, 0x57, 0x53, 0x8f, 0xea, 0x0a, 0x36, 0xd5, 0xcb, 0x36, 0x15, 0xc6, 0xd5, - 0x28, 0x8f, 0x8b, 0x95, 0x71, 0xbc, 0xb2, 0xd9, 0xf6, 0xec, 0x78, 0x97, 0x86, 0x43, 0xb1, 0x85, - 0x6e, 0x58, 0x25, 0x3e, 0x2b, 0x1d, 0x91, 0x97, 0xd5, 0xfe, 0xb8, 0x84, 0x17, 0xb8, 0xac, 0xd2, - 0x46, 0x4e, 0xba, 0x07, 0xc0, 0x33, 0x1b, 0x95, 0x89, 0xb6, 0x45, 0x91, 0x4b, 0x7d, 0x5e, 0x85, - 0x62, 0xa9, 0x2f, 0xb3, 0xd8, 0xc8, 0x87, 0xd1, 0xe0, 0x46, 0x48, 0x87, 0x62, 0x7b, 0x95, 0x92, - 0x7c, 0xe4, 0xd4, 0x8f, 0xd3, 0x0a, 0xb6, 0x8d, 0xb2, 0x12, 0x8b, 0xc9, 0x0a, 0x92, 0xd7, 0xf9, - 0x53, 0x56, 0x4a, 0x32, 0x2c, 0x45, 0xe4, 0x40, 0x14, 0xef, 0xec, 0x4f, 0x25, 0x72, 0xb3, 0x6a, - 0xe4, 0x0a, 0xd5, 0x58, 0x87, 0x7f, 0x95, 0xab, 0xb1, 0xbc, 0xc4, 0x99, 0x53, 0x4a, 0x9c, 0xeb, - 0x30, 0x41, 0x03, 0x36, 0xfd, 0xa3, 0xae, 0xc1, 0xa7, 0xcb, 0xf3, 0xa3, 0x13, 0xd4, 0xd2, 0x16, - 0xb6, 0xc4, 0x89, 0x91, 0xca, 0x19, 0x1b, 0x30, 0x4b, 0x77, 0x77, 0x3d, 0xd7, 0x27, 0xdb, 0x49, - 0xb4, 0xc7, 0xb7, 0xda, 0xe7, 0x38, 0xd8, 0xcd, 0xaa, 0x22, 0x42, 0x6d, 0x69, 0x15, 0x45, 0x59, - 0xe5, 0x67, 0xc7, 0xb8, 0xc9, 0xe1, 0x09, 0xee, 0x3c, 0x4f, 0x70, 0x0a, 0x8f, 0x9f, 0x79, 0x4a, - 0x89, 0xfe, 0x09, 0xee, 0x38, 0x99, 0x85, 0x5a, 0x62, 0xbb, 0xbf, 0x47, 0xf8, 0xa1, 0x51, 0x77, - 0x1e, 0xeb, 0x47, 0x99, 0x27, 0xaa, 0xbb, 0x27, 0xd3, 0xea, 0x6e, 0xe1, 0x55, 0x98, 0x92, 0x07, - 0x58, 0x31, 0x99, 0xcf, 0xcb, 0x93, 0x79, 0x52, 0x9e, 0xab, 0xdf, 0xd1, 0x60, 0xb6, 0x30, 0x34, - 0xd6, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0d, 0x48, 0xb0, 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x98, 0x3c, - 0xfc, 0x6f, 0x61, 0x49, 0x2d, 0xdb, 0xb2, 0x9b, 0x30, 0xe5, 0x6e, 0xf5, 0x98, 0xa2, 0x1e, 0x4d, - 0x7c, 0x27, 0xbb, 0x34, 0x90, 0x78, 0x7c, 0xdb, 0xbe, 0xd5, 0x5b, 0xb6, 0x9d, 0x01, 0xc1, 0x2b, - 0xa4, 0x06, 0xb7, 0x49, 0x65, 0x9a, 0x0e, 0x4c, 0xde, 0x76, 0x83, 0x68, 0x85, 0x0e, 0x87, 0x0c, - 0x02, 0x0e, 0x89, 0x59, 0x1d, 0xaf, 0x71, 0x87, 0x09, 0x8a, 0x79, 0xd3, 0x21, 0xbb, 0x76, 0xe2, - 0xc5, 0xac, 0x69, 0x9a, 0x32, 0x24, 0x16, 0x3f, 0x42, 0x88, 0xa8, 0xbf, 0x8a, 0xd2, 0x68, 0xa7, - 0xc4, 0x31, 0x7f, 0xab, 0x43, 0x87, 0x67, 0xc4, 0x15, 0x0e, 0x38, 0x87, 0x0b, 0x5d, 0x85, 0x06, - 0x4f, 0x00, 0xa2, 0xa2, 0x3c, 0xfe, 0xdc, 0x05, 0x9b, 0x1a, 0xd7, 0xa0, 0x49, 0x03, 0x5e, 0x86, - 0x62, 0xba, 0x7c, 0x6e, 0x94, 0x90, 0x7a, 0x4d, 0x60, 0x09, 0x29, 0xe3, 0x06, 0xc0, 0x30, 0xaf, - 0x3a, 0xb1, 0x78, 0x18, 0x57, 0x87, 0x24, 0xc9, 0x9c, 0x9b, 0xad, 0x8b, 0xd9, 0x5d, 0x41, 0xcd, - 0x52, 0x99, 0xc6, 0x2d, 0x98, 0xe1, 0x66, 0x6f, 0xa5, 0x07, 0x70, 0x3c, 0x06, 0xe3, 0xf7, 0x58, - 0x90, 0x36, 0xbf, 0xaf, 0x09, 0x37, 0xb2, 0xaf, 0x3d, 0x82, 0xbe, 0xcf, 0x5d, 0xa2, 0x9d, 0xca, - 0x25, 0x0b, 0x30, 0x39, 0x4c, 0xa4, 0xf3, 0xc0, 0x9a, 0x95, 0xd1, 0x79, 0x88, 0x6a, 0x63, 0x87, - 0xc8, 0xfc, 0x81, 0x06, 0xdd, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xd7, 0x83, 0xc0, 0x13, 0x57, 0x4a, - 0xa7, 0x8e, 0xf9, 0x17, 0xa0, 0x65, 0xa3, 0x1a, 0x3f, 0x16, 0x61, 0x1f, 0xe3, 0x8c, 0x2f, 0x97, - 0x91, 0x0e, 0x5a, 0x6a, 0xf2, 0x41, 0x8b, 0xf9, 0x89, 0x06, 0x33, 0xe8, 0x94, 0x77, 0x12, 0x37, - 0x3e, 0xb5, 0x7d, 0xcb, 0x30, 0x79, 0x90, 0xb8, 0xf1, 0x29, 0x50, 0x99, 0xc9, 0x95, 0xf1, 0x54, - 0xab, 0xc0, 0x93, 0xf9, 0x13, 0x0d, 0x2e, 0x14, 0xdd, 0x7a, 0xbd, 0xdf, 0x27, 0xc1, 0xc3, 0x9c, - 0x52, 0xca, 0x41, 0x53, 0xbd, 0x70, 0xd0, 0x54, 0x69, 0xb2, 0x45, 0x3e, 0x26, 0xfd, 0x47, 0xd7, - 0xe4, 0xaf, 0xea, 0xf0, 0xd4, 0x5a, 0x36, 0xf1, 0x6e, 0x87, 0xb6, 0x1f, 0xed, 0x92, 0x30, 0x7c, - 0x88, 0xf6, 0x6e, 0xc0, 0xb4, 0x4f, 0xee, 0xe5, 0x36, 0x89, 0xe9, 0x38, 0xae, 0x1a, 0x55, 0x78, - 0xbc, 0xdc, 0x65, 0xfe, 0x43, 0x83, 0x0e, 0xea, 0x79, 0xdb, 0xed, 0xef, 0x3f, 0xc4, 0xc1, 0xdf, - 0x82, 0x99, 0x7d, 0x6e, 0x01, 0xa3, 0x4e, 0x91, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x53, 0x0d, - 0xe6, 0xd2, 0x9b, 0xec, 0x43, 0xf7, 0x61, 0x82, 0x75, 0x1b, 0x66, 0xf1, 0xa4, 0xfd, 0xb4, 0x0e, - 0x28, 0x8a, 0x8f, 0xe9, 0x81, 0x9f, 0x6b, 0x30, 0x8b, 0x9a, 0xde, 0xf4, 0x63, 0x12, 0x9e, 0x7a, - 0xfc, 0x37, 0xa1, 0x4d, 0xfc, 0x38, 0xb4, 0xfd, 0xd3, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, - 0x89, 0x06, 0x06, 0x57, 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x62, 0xe8, 0xc6, 0x33, 0xf8, - 0x7b, 0x3a, 0x9c, 0x97, 0xb4, 0x6c, 0x26, 0xf1, 0xa3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, - 0xc8, 0xf7, 0xa0, 0xe3, 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, - 0xf1, 0xe2, 0x68, 0xda, 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, - 0xc7, 0xc6, 0x45, 0xe6, 0x8f, 0x34, 0x98, 0xc1, 0x26, 0x8f, 0xfe, 0x90, 0xd9, 0x5a, 0x8f, 0x40, - 0xfe, 0xdc, 0x44, 0x89, 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x8f, 0x2e, 0xb4, 0x6e, 0x42, - 0xbb, 0xbf, 0x67, 0xfb, 0x83, 0x53, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x52, 0x3e, 0xb4, 0x5f, - 0xc1, 0x4f, 0x7c, 0xf8, 0x2f, 0x15, 0x86, 0x72, 0xec, 0x3b, 0x87, 0x07, 0x73, 0xfa, 0x3e, 0xcc, - 0xe1, 0x4d, 0xb1, 0x54, 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, - 0xaa, 0x2f, 0x09, 0xc4, 0x1b, 0xbb, 0xfc, 0x25, 0xc1, 0x45, 0x00, 0xdb, 0x71, 0xde, 0xa3, 0xa1, - 0xe3, 0xfa, 0x69, 0x81, 0x2f, 0x71, 0xcc, 0xb7, 0x60, 0xea, 0x46, 0x48, 0x87, 0xb7, 0xa5, 0x3b, - 0xdf, 0x63, 0x6f, 0xa5, 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0x3f, 0x84, 0x27, 0x4a, 0x86, - 0x73, 0x67, 0xad, 0xe0, 0x55, 0x76, 0xda, 0x89, 0x80, 0x4c, 0xd5, 0x59, 0x9e, 0x6c, 0x8b, 0xa5, - 0x08, 0x99, 0x5f, 0xd1, 0xe0, 0x99, 0x92, 0xfa, 0xeb, 0x41, 0x10, 0xd2, 0x43, 0x11, 0x93, 0xb3, - 0xe8, 0x46, 0x2d, 0x7e, 0xf5, 0x62, 0xf1, 0x5b, 0x69, 0x84, 0x52, 0xb0, 0x7f, 0x06, 0x46, 0xfc, - 0x50, 0x83, 0x59, 0x61, 0x84, 0xe3, 0x88, 0x6e, 0x5f, 0x86, 0x26, 0x3e, 0xa6, 0x11, 0x1d, 0x3e, - 0x53, 0xd9, 0x61, 0xfa, 0x08, 0xc8, 0x12, 0x8d, 0xcb, 0x88, 0xd4, 0xab, 0x66, 0xd4, 0xff, 0x67, - 0x60, 0x1f, 0xfb, 0xb9, 0x8b, 0x10, 0x30, 0xbf, 0x98, 0x82, 0x79, 0x95, 0x78, 0xe4, 0x2c, 0x7d, - 0x64, 0xde, 0x81, 0x19, 0xfe, 0xb2, 0x27, 0xf7, 0xc1, 0x99, 0xa8, 0x7d, 0x0f, 0x3a, 0x5c, 0xed, - 0x99, 0xdb, 0x9b, 0xcd, 0x0e, 0xe6, 0x1f, 0x39, 0x95, 0x9c, 0x89, 0xf6, 0xff, 0x86, 0x73, 0xa9, - 0xef, 0xf1, 0x75, 0x2f, 0xea, 0x1e, 0x71, 0xb7, 0x67, 0x7e, 0x04, 0xf3, 0x2b, 0xd4, 0x3f, 0x24, - 0x61, 0xa4, 0x3c, 0x08, 0x46, 0x09, 0x65, 0xf2, 0x0b, 0xca, 0x58, 0x02, 0xa3, 0x2f, 0x49, 0x88, - 0xd3, 0x45, 0x9d, 0x9f, 0x2e, 0x56, 0x7c, 0x31, 0x3f, 0x86, 0x05, 0xb9, 0x87, 0x1e, 0x89, 0xb7, - 0x43, 0xf7, 0x50, 0xea, 0x45, 0x1c, 0x82, 0x6b, 0xca, 0x21, 0x78, 0x7e, 0x68, 0xae, 0x2b, 0x87, - 0xe6, 0x17, 0xa0, 0xe5, 0x46, 0x42, 0x01, 0x07, 0xe1, 0xa4, 0x95, 0x33, 0x4c, 0x1b, 0xe6, 0x30, - 0x5c, 0xe2, 0x52, 0x8a, 0x77, 0xb1, 0x00, 0x93, 0x88, 0xc1, 0xac, 0x93, 0x8c, 0x1e, 0x79, 0xc5, - 0x33, 0xf2, 0x42, 0xd3, 0xec, 0xc1, 0x9c, 0x78, 0xb8, 0xb3, 0x6d, 0x0f, 0x5c, 0x1f, 0x93, 0xf2, - 0x45, 0x80, 0xc0, 0x1e, 0xa4, 0xcf, 0x1e, 0xf1, 0x6a, 0x4e, 0xe2, 0xb0, 0xef, 0xd1, 0x1e, 0xbd, - 0x27, 0xbe, 0xeb, 0xf8, 0x3d, 0xe7, 0x98, 0xef, 0x82, 0x61, 0x91, 0x28, 0xa0, 0x7e, 0x44, 0x24, - 0xad, 0x8b, 0xd0, 0x5e, 0x49, 0xc2, 0x90, 0xf8, 0xac, 0xab, 0xf4, 0x2d, 0x9c, 0xcc, 0x62, 0x7a, - 0x7b, 0xb9, 0x5e, 0x3c, 0xc6, 0x97, 0x38, 0xe6, 0xdf, 0x6b, 0xd0, 0xea, 0xb9, 0x03, 0xdf, 0xf6, - 0x2c, 0x72, 0x60, 0xbc, 0x0e, 0x4d, 0xdc, 0xe2, 0x08, 0x64, 0x55, 0x1d, 0x2b, 0x63, 0x6b, 0xdc, - 0xcb, 0x59, 0xe4, 0xe0, 0xe6, 0xbf, 0x59, 0x42, 0xc6, 0x78, 0x27, 0x7d, 0xde, 0xb4, 0x8e, 0x47, - 0x56, 0x62, 0xbd, 0xfb, 0xcf, 0x13, 0x94, 0x88, 0xd6, 0xa8, 0x4b, 0xd5, 0xc0, 0x0c, 0xea, 0xf3, - 0x12, 0x48, 0xa4, 0x93, 0xd1, 0x06, 0x61, 0xa5, 0x24, 0x0c, 0x42, 0x19, 0x26, 0x6d, 0xf3, 0x43, - 0x1d, 0xb1, 0xb2, 0x8f, 0x96, 0xc6, 0xb3, 0x1f, 0x21, 0x8d, 0x32, 0x4c, 0x7a, 0x2f, 0xf1, 0x07, - 0x77, 0x02, 0x71, 0xd6, 0x38, 0x5a, 0xfa, 0x26, 0x6f, 0x26, 0xa4, 0x51, 0x86, 0x49, 0x87, 0x3c, - 0xd9, 0x73, 0xa7, 0x1f, 0x27, 0x8d, 0x6b, 0x82, 0x90, 0x46, 0x19, 0xe3, 0x7d, 0xe8, 0xac, 0x91, - 0xd8, 0xa2, 0x74, 0xb8, 0x7c, 0xb4, 0x26, 0xae, 0x7a, 0xf0, 0xf5, 0xf9, 0x8b, 0x23, 0xf5, 0x14, - 0x05, 0x50, 0x63, 0x49, 0xcf, 0x72, 0x0b, 0x26, 0x02, 0xfb, 0xc8, 0xa3, 0xb6, 0x63, 0x7e, 0xa3, - 0x0e, 0x90, 0x1a, 0x11, 0xf1, 0xa2, 0x4b, 0x09, 0xff, 0xa5, 0x13, 0xc3, 0x1f, 0x78, 0x47, 0x12, - 0x00, 0x7a, 0xd5, 0x00, 0xf8, 0xaf, 0x71, 0x01, 0x80, 0xda, 0x0a, 0x10, 0xb8, 0x56, 0x80, 0xc0, - 0xa5, 0x13, 0x21, 0x20, 0x8c, 0x12, 0x20, 0xb8, 0x56, 0x00, 0xc1, 0xa5, 0x13, 0x41, 0x20, 0xe4, - 0x05, 0x0c, 0xae, 0x15, 0x60, 0x70, 0xe9, 0x44, 0x18, 0x08, 0x79, 0x01, 0x84, 0x6b, 0x05, 0x20, - 0x5c, 0x3a, 0x11, 0x08, 0x42, 0x5e, 0x40, 0xe1, 0xc3, 0x91, 0x50, 0x58, 0x7a, 0x00, 0x28, 0xa0, - 0xce, 0x63, 0xc1, 0xf0, 0x07, 0x1d, 0x66, 0xd6, 0xb3, 0xf7, 0xc0, 0xfc, 0x5e, 0xa5, 0xf4, 0x60, - 0x51, 0xab, 0x78, 0xb0, 0x68, 0xbc, 0x08, 0x73, 0xc8, 0x20, 0xd2, 0x65, 0x12, 0xa6, 0xfb, 0xf2, - 0x07, 0x7e, 0x7d, 0x96, 0x44, 0x31, 0x1d, 0xae, 0xda, 0xb1, 0x9d, 0x96, 0x99, 0x39, 0x47, 0xbe, - 0xdc, 0xac, 0x97, 0x7e, 0x87, 0x10, 0x52, 0x3a, 0xcc, 0x6e, 0x2d, 0x05, 0xc5, 0x24, 0x62, 0x77, - 0x48, 0x68, 0x12, 0x8b, 0x04, 0x97, 0x92, 0xf8, 0xca, 0xcc, 0x71, 0x6d, 0x7e, 0x25, 0x28, 0x9e, - 0x60, 0x65, 0x0c, 0x9e, 0x93, 0xf3, 0x2b, 0x4e, 0xf1, 0x3b, 0x81, 0x9c, 0x33, 0xc6, 0x75, 0x24, - 0xff, 0xc9, 0x89, 0x1b, 0xbb, 0xf2, 0xd3, 0xac, 0x86, 0xa5, 0xf0, 0xcc, 0xbf, 0x68, 0x70, 0x6e, - 0xdb, 0x0e, 0x63, 0xb7, 0xef, 0x06, 0xb6, 0x1f, 0x6f, 0x92, 0xd8, 0xe6, 0xe3, 0x54, 0x1e, 0xcc, - 0x6a, 0x0f, 0xf6, 0x60, 0x76, 0x1b, 0x66, 0x07, 0xea, 0x5e, 0xeb, 0x01, 0xb7, 0x49, 0x45, 0x71, - 0xe5, 0xf5, 0x6f, 0xed, 0x81, 0x5f, 0xff, 0x9a, 0x5f, 0xd7, 0x61, 0xb6, 0xb0, 0x30, 0x1c, 0xbb, - 0xaa, 0x5e, 0x07, 0xc8, 0x9f, 0x9e, 0x1f, 0x73, 0x15, 0xa1, 0xe2, 0xd1, 0x92, 0x84, 0xaa, 0xee, - 0x42, 0x6b, 0xa7, 0xbf, 0x0b, 0xbd, 0x09, 0xed, 0x20, 0x0f, 0xd2, 0x31, 0x3b, 0xc1, 0x8a, 0x50, - 0x5a, 0xb2, 0xa8, 0xf9, 0x01, 0xcc, 0x95, 0x72, 0x24, 0xbf, 0xa0, 0xa4, 0xfb, 0xc4, 0xcf, 0x2e, - 0x28, 0x19, 0x21, 0x01, 0x5a, 0x2f, 0x02, 0xda, 0x73, 0x0f, 0xe5, 0x9f, 0x55, 0x08, 0xd2, 0xfc, - 0x96, 0x0e, 0xf3, 0xd5, 0x6b, 0xe7, 0xe3, 0xea, 0xee, 0x1d, 0xe8, 0x8e, 0x5a, 0x4b, 0xce, 0xcc, - 0xeb, 0x39, 0xba, 0xb3, 0x2a, 0xe3, 0x71, 0x75, 0xf7, 0xb9, 0x14, 0xdd, 0xd2, 0x62, 0x6b, 0xfe, - 0x2c, 0xf3, 0x4f, 0x56, 0x47, 0x3d, 0xa6, 0xfe, 0x31, 0x2e, 0x43, 0x07, 0x87, 0x29, 0x3d, 0x9e, - 0xc1, 0xb2, 0xbc, 0xc4, 0xcf, 0x33, 0x85, 0x54, 0x78, 0x9c, 0x19, 0x66, 0x7f, 0xad, 0xa5, 0x31, - 0xc9, 0xaa, 0xd3, 0xcf, 0x55, 0x4c, 0x72, 0xa4, 0x49, 0x65, 0x95, 0x84, 0xb4, 0xac, 0x6a, 0xfe, - 0x17, 0xd2, 0x4e, 0x46, 0x5a, 0xe6, 0x4b, 0xa9, 0xc4, 0x34, 0xdf, 0x81, 0xa7, 0x46, 0x6e, 0x1c, - 0x8e, 0x75, 0xaa, 0x54, 0xa1, 0xe9, 0x4a, 0x85, 0x66, 0xfe, 0x59, 0x83, 0xa7, 0x8f, 0xa9, 0x40, - 0x0b, 0xe1, 0xd0, 0x4e, 0x13, 0x8e, 0x57, 0x60, 0x9e, 0xfa, 0x2b, 0xd4, 0xf7, 0x49, 0x3f, 0x76, - 0xfd, 0x41, 0xa9, 0xe2, 0x1c, 0xf1, 0x35, 0x9f, 0x57, 0xb5, 0xea, 0x79, 0x55, 0x1f, 0x35, 0xaf, - 0x1a, 0xea, 0xbc, 0xfa, 0x32, 0x4c, 0xaf, 0x12, 0x6f, 0x33, 0x1a, 0xa4, 0x6f, 0xa2, 0xcf, 0xf4, - 0xf0, 0xa0, 0xf8, 0x72, 0xb4, 0x5e, 0x7e, 0x39, 0xba, 0x0c, 0x33, 0xb2, 0x01, 0xa7, 0x79, 0xf3, - 0xbb, 0x7c, 0xe1, 0xfd, 0x85, 0x25, 0xf1, 0x7f, 0x01, 0x5e, 0x2b, 0x79, 0x7f, 0xa7, 0xc9, 0x7f, - 0x49, 0xfc, 0xd2, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x80, 0x2b, 0x62, 0xc9, 0x70, 0x40, 0x00, - 0x00, +var fileDescriptor_ws_28f8f8e2747ce3c8 = []byte{ + // 3613 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x57, + 0xd5, 0xff, 0xaa, 0xfa, 0x61, 0xf7, 0x69, 0x3f, 0xda, 0x35, 0x13, 0xa7, 0xe3, 0x4c, 0xe6, 0x33, + 0x95, 0x51, 0x12, 0x86, 0xe0, 0x41, 0x13, 0x12, 0x41, 0x1e, 0x83, 0xc6, 0x76, 0xc6, 0x33, 0xc9, + 0xf8, 0x91, 0xea, 0x99, 0x04, 0x25, 0x91, 0x26, 0xe5, 0xae, 0xeb, 0x76, 0xc5, 0xd5, 0x75, 0xcb, + 0xf5, 0xf0, 0x8c, 0xd9, 0x20, 0x81, 0x84, 0x10, 0x1b, 0x36, 0x20, 0x24, 0x96, 0x6c, 0x10, 0x08, + 0x45, 0x08, 0x01, 0x62, 0x81, 0x10, 0x42, 0xec, 0xd8, 0xb0, 0x60, 0xc7, 0x02, 0xc4, 0x9a, 0x7f, + 0x00, 0x81, 0x14, 0x74, 0xef, 0xb9, 0x55, 0x75, 0x6f, 0x55, 0xb5, 0xdd, 0x63, 0x59, 0x99, 0x89, + 0x86, 0x5d, 0x9f, 0x53, 0xf7, 0x9c, 0x7b, 0xee, 0x39, 0xbf, 0x7b, 0xee, 0xb9, 0x8f, 0x86, 0xd9, + 0xc8, 0xd9, 0xbb, 0x73, 0x37, 0xba, 0x74, 0x37, 0x5a, 0x0a, 0x42, 0x1a, 0x53, 0x63, 0x2e, 0x22, + 0xe1, 0x01, 0x09, 0xef, 0xd8, 0x81, 0x7b, 0x27, 0xb0, 0x43, 0x7b, 0x18, 0x2d, 0x3c, 0xbb, 0x19, + 0x10, 0xff, 0xce, 0x8d, 0xf5, 0x4b, 0xc1, 0xde, 0xe0, 0x12, 0x6f, 0x75, 0x29, 0x95, 0x0a, 0xed, + 0x20, 0x20, 0xa1, 0x90, 0x35, 0xff, 0x56, 0x87, 0xd6, 0x5a, 0x48, 0x93, 0xe0, 0x86, 0xbf, 0x43, + 0x8d, 0x2e, 0x4c, 0x0c, 0x38, 0xb1, 0xda, 0xd5, 0x16, 0xb5, 0xe7, 0x5a, 0x56, 0x4a, 0x1a, 0xe7, + 0xa0, 0xc5, 0x7f, 0x6e, 0xd8, 0x43, 0xd2, 0xd5, 0xf9, 0xb7, 0x9c, 0x61, 0x98, 0x30, 0xe5, 0xd3, + 0xd8, 0xdd, 0x71, 0xfb, 0x76, 0xec, 0x52, 0xbf, 0x5b, 0xe3, 0x0d, 0x14, 0x1e, 0x6b, 0xe3, 0xfa, + 0x71, 0x48, 0x9d, 0xa4, 0xcf, 0xdb, 0xd4, 0xb1, 0x8d, 0xcc, 0x63, 0xfd, 0xef, 0xd8, 0x7d, 0x72, + 0xdb, 0xba, 0xd9, 0x6d, 0x60, 0xff, 0x82, 0x34, 0x16, 0xa1, 0x4d, 0xef, 0xfa, 0x24, 0xbc, 0x1d, + 0x91, 0xf0, 0xc6, 0x6a, 0xb7, 0xc9, 0xbf, 0xca, 0x2c, 0xe3, 0x3c, 0x40, 0x3f, 0x24, 0x76, 0x4c, + 0x6e, 0xb9, 0x43, 0xd2, 0x9d, 0x58, 0xd4, 0x9e, 0x9b, 0xb6, 0x24, 0x0e, 0xd3, 0x30, 0x24, 0xc3, + 0x6d, 0x12, 0xae, 0xd0, 0xc4, 0x8f, 0xbb, 0x93, 0xbc, 0x81, 0xcc, 0x32, 0x66, 0x40, 0x27, 0xf7, + 0xba, 0x2d, 0xae, 0x5a, 0x27, 0xf7, 0x8c, 0x79, 0x68, 0x46, 0xb1, 0x1d, 0x27, 0x51, 0x17, 0x16, + 0xb5, 0xe7, 0x1a, 0x96, 0xa0, 0x8c, 0x0b, 0x30, 0xcd, 0xf5, 0xd2, 0xd4, 0x9a, 0x36, 0x17, 0x51, + 0x99, 0x99, 0xc7, 0x6e, 0x1d, 0x06, 0xa4, 0x3b, 0xc5, 0x15, 0xe4, 0x0c, 0xe3, 0x22, 0x74, 0x7c, + 0x42, 0x9c, 0xb7, 0x49, 0x98, 0x7b, 0x6d, 0x9a, 0x37, 0x2a, 0xf1, 0x8d, 0x67, 0x60, 0xc6, 0xa3, + 0x74, 0x6f, 0x9d, 0x9b, 0xca, 0xe2, 0xd4, 0x9d, 0xe1, 0x2d, 0x0b, 0x5c, 0xe3, 0x79, 0x98, 0xb3, + 0x83, 0xc0, 0x3b, 0x44, 0xd6, 0xb5, 0xd0, 0x25, 0xbe, 0xd3, 0x9d, 0xe5, 0x4d, 0xcb, 0x1f, 0x8c, + 0x97, 0x60, 0x5e, 0x8e, 0xcf, 0xed, 0xc0, 0x49, 0x7d, 0xd7, 0xe1, 0xae, 0x19, 0xf1, 0xd5, 0x58, + 0x02, 0x43, 0xf9, 0x82, 0x2e, 0x98, 0xe3, 0x2e, 0xa8, 0xf8, 0x62, 0x7e, 0xaf, 0x06, 0xb3, 0x19, + 0xc2, 0xae, 0xd1, 0xb0, 0x47, 0xe2, 0x87, 0x18, 0x67, 0x88, 0x81, 0x66, 0x86, 0x81, 0xb5, 0x8a, + 0x38, 0x31, 0x6c, 0xb5, 0x2f, 0x3f, 0xb9, 0x34, 0xa0, 0x74, 0xe0, 0x11, 0x9c, 0x48, 0xdb, 0xc9, + 0xce, 0xd2, 0x0d, 0x3f, 0x7e, 0xe1, 0xf2, 0xdb, 0xb6, 0x97, 0x90, 0x8a, 0x20, 0xae, 0x94, 0x82, + 0x38, 0x79, 0xbc, 0x9a, 0x62, 0x84, 0x6f, 0x54, 0x45, 0xb8, 0x75, 0xbc, 0x9e, 0xb2, 0x94, 0xf9, + 0xb1, 0x0e, 0x67, 0x78, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x63, 0x52, 0xc0, 0x3c, 0x34, 0x13, 0x0c, + 0x36, 0xc6, 0x45, 0x50, 0x2c, 0x64, 0x21, 0xf5, 0xc8, 0x4d, 0x72, 0x40, 0x3c, 0x1e, 0x91, 0x86, + 0x95, 0x33, 0x8c, 0x05, 0x98, 0xfc, 0x90, 0xba, 0x3e, 0x07, 0x56, 0x9d, 0x7f, 0xcc, 0x68, 0xf6, + 0xcd, 0x77, 0xfb, 0x7b, 0x3e, 0x8b, 0x35, 0xc6, 0x21, 0xa3, 0xe5, 0x10, 0x35, 0xd5, 0x10, 0x3d, + 0x03, 0x33, 0x76, 0x10, 0xac, 0xdb, 0xfe, 0x80, 0x84, 0xd8, 0xe9, 0x04, 0x4e, 0x07, 0x95, 0xcb, + 0x12, 0x02, 0xeb, 0xa9, 0x47, 0x93, 0xb0, 0x4f, 0xb8, 0xb7, 0x1b, 0x96, 0xc4, 0x61, 0x7a, 0x68, + 0x40, 0x42, 0x69, 0x1e, 0xe3, 0xd4, 0x2f, 0x70, 0x05, 0x24, 0x20, 0x83, 0x04, 0x4b, 0x24, 0x49, + 0x4c, 0x5e, 0xf7, 0x1d, 0x3e, 0xa8, 0xb6, 0x48, 0x24, 0x39, 0x8b, 0x25, 0x08, 0xd7, 0x3f, 0x70, + 0xe3, 0x2c, 0x5d, 0x4d, 0x61, 0x82, 0x50, 0x98, 0xe6, 0xb7, 0x34, 0x98, 0xd9, 0x4a, 0xb6, 0x3d, + 0xb7, 0xcf, 0x19, 0xcc, 0xf9, 0xb9, 0x8b, 0x35, 0xc5, 0xc5, 0xb2, 0xa3, 0xf4, 0xd1, 0x8e, 0xaa, + 0xa9, 0x8e, 0x9a, 0x87, 0xe6, 0x80, 0xf8, 0x0e, 0x09, 0x85, 0xe3, 0x05, 0x25, 0x06, 0xd4, 0x48, + 0x07, 0x64, 0xfe, 0x41, 0x87, 0xc9, 0x4f, 0xd8, 0x84, 0x45, 0x68, 0x07, 0xbb, 0xd4, 0x27, 0x1b, + 0x09, 0x03, 0x9f, 0xb0, 0x45, 0x66, 0x19, 0x67, 0xa1, 0xb1, 0xed, 0x86, 0xf1, 0x2e, 0x8f, 0xfe, + 0xb4, 0x85, 0x04, 0xe3, 0x92, 0xa1, 0xed, 0x62, 0xc8, 0x5b, 0x16, 0x12, 0x62, 0x40, 0x93, 0x59, + 0x84, 0xd4, 0xa5, 0xa0, 0x55, 0x5a, 0x0a, 0xca, 0x08, 0x82, 0x4a, 0x04, 0x5d, 0x84, 0xce, 0xc0, + 0xa3, 0xdb, 0xb6, 0x67, 0x91, 0xfe, 0xc1, 0x7a, 0x34, 0xd8, 0x0c, 0x62, 0x1e, 0xee, 0x86, 0x55, + 0xe2, 0x9b, 0xff, 0xd2, 0x00, 0x70, 0x6a, 0x71, 0x37, 0x16, 0xd6, 0x2b, 0xad, 0xbc, 0x5e, 0xcd, + 0x43, 0x33, 0x24, 0x43, 0x3b, 0xdc, 0x4b, 0xa7, 0x13, 0x52, 0x05, 0xe3, 0x6b, 0x25, 0xe3, 0x5f, + 0x01, 0xd8, 0xe1, 0xfd, 0x30, 0x3d, 0xdc, 0xad, 0x6c, 0xf2, 0x97, 0x4a, 0x80, 0xa5, 0x34, 0xa2, + 0x96, 0xd4, 0x9c, 0xcd, 0x55, 0xdb, 0x71, 0xc4, 0x94, 0x68, 0xe0, 0x5c, 0xcd, 0x18, 0x15, 0x33, + 0xa2, 0x79, 0xc4, 0x8c, 0x98, 0xc8, 0x00, 0xf4, 0x4f, 0x0d, 0x5a, 0xcb, 0x9e, 0xdd, 0xdf, 0x1b, + 0x73, 0xe8, 0xea, 0x10, 0xf5, 0xd2, 0x10, 0xd7, 0x60, 0x7a, 0x9b, 0xa9, 0x4b, 0x87, 0xc0, 0xbd, + 0xd0, 0xbe, 0xfc, 0x99, 0x8a, 0x51, 0xaa, 0x13, 0xc8, 0x52, 0xe5, 0xd4, 0xe1, 0xd6, 0x8f, 0x1f, + 0x6e, 0xe3, 0x88, 0xe1, 0x66, 0x6b, 0x82, 0xf9, 0x83, 0x1a, 0x4c, 0xf1, 0xd4, 0x69, 0x91, 0xfd, + 0x84, 0x44, 0xb1, 0xf1, 0x1a, 0x4c, 0x26, 0xa9, 0xa9, 0xda, 0xb8, 0xa6, 0x66, 0x22, 0xc6, 0xcb, + 0x62, 0xcd, 0xe3, 0xf2, 0x3a, 0x97, 0x3f, 0x57, 0x21, 0x9f, 0x2d, 0xa2, 0x56, 0xde, 0x9c, 0xad, + 0x76, 0xbb, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x22, 0xff, 0x2a, 0x3c, 0x44, 0xda, + 0xfe, 0x7a, 0x34, 0x10, 0x6b, 0xa1, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, 0x84, 0x43, 0xcf, 0x19, + 0x6c, 0x52, 0x87, 0x64, 0x9f, 0x47, 0x08, 0xa7, 0x60, 0x4a, 0xe6, 0x7d, 0x0a, 0xaf, 0x21, 0x10, + 0x14, 0x1e, 0x0b, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x5b, 0x12, 0xa7, 0x54, 0x6b, 0xa9, 0xc9, 0x1a, + 0x4a, 0xc9, 0xba, 0x94, 0x52, 0xdb, 0x55, 0x29, 0xf5, 0xaf, 0x35, 0x98, 0xc6, 0x49, 0x98, 0x86, + 0xe6, 0x3c, 0x9b, 0x2d, 0x74, 0xa8, 0x60, 0x51, 0xe2, 0xb0, 0xb1, 0x30, 0x6a, 0x43, 0x4d, 0x6d, + 0x0a, 0x8f, 0x01, 0x9a, 0xd1, 0xd7, 0x94, 0x14, 0x27, 0xb3, 0xd2, 0x5e, 0xd6, 0xe4, 0x54, 0x27, + 0x71, 0x58, 0xf2, 0x8c, 0xa9, 0x82, 0xb1, 0x8c, 0x66, 0xb2, 0x31, 0xcd, 0xfa, 0x47, 0x94, 0x49, + 0x1c, 0x16, 0xa5, 0x98, 0xa6, 0x7d, 0xa3, 0xab, 0x73, 0x06, 0x6a, 0x16, 0xfd, 0xe2, 0x12, 0x97, + 0xd1, 0x25, 0x6c, 0xb4, 0x8e, 0xc4, 0x06, 0x28, 0xd8, 0x50, 0xa7, 0x68, 0xbb, 0x34, 0x45, 0x2f, + 0xc0, 0x34, 0xea, 0x29, 0x2c, 0x71, 0x0a, 0x53, 0x45, 0xd8, 0x74, 0x11, 0x61, 0x2a, 0x46, 0x66, + 0x46, 0x60, 0x64, 0x36, 0x9b, 0x77, 0xbf, 0xd0, 0x01, 0x56, 0x49, 0x60, 0x87, 0xf1, 0x90, 0xf8, + 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x59, 0x70, 0x15, 0x9e, 0xbc, 0x32, 0xe9, 0xea, 0xca, 0x64, 0x40, + 0x9d, 0x3b, 0x1c, 0xa3, 0xc9, 0x7f, 0x33, 0x67, 0x06, 0x76, 0x88, 0xda, 0x70, 0xaa, 0x64, 0x34, + 0x5b, 0x79, 0x68, 0xe8, 0x88, 0xb5, 0xaa, 0x61, 0x21, 0xc1, 0x52, 0x48, 0xde, 0x1f, 0xaf, 0xf4, + 0x9b, 0xb8, 0x92, 0xa8, 0xdc, 0x63, 0x37, 0x27, 0x17, 0xa1, 0x13, 0x25, 0xdb, 0xf9, 0xe0, 0x36, + 0x92, 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0x5a, 0x58, 0x23, 0x5c, 0xdc, 0x72, 0x46, + 0xb1, 0x5a, 0x31, 0x7f, 0xa6, 0x43, 0x67, 0x33, 0x1c, 0xd8, 0xbe, 0xfb, 0xb5, 0xac, 0x2a, 0x3f, + 0xd1, 0x22, 0xbf, 0x08, 0x6d, 0xe2, 0x0f, 0x3c, 0x37, 0xda, 0xdd, 0xc8, 0xfd, 0x26, 0xb3, 0x64, + 0x67, 0xd7, 0x47, 0x95, 0x01, 0x0d, 0xa5, 0x0c, 0x98, 0x87, 0xe6, 0x90, 0x6e, 0xbb, 0x5e, 0x8a, + 0x7b, 0x41, 0x71, 0xcc, 0x13, 0x8f, 0xf0, 0x7a, 0x20, 0xc3, 0x7c, 0xca, 0xc8, 0x4b, 0x83, 0xc9, + 0xca, 0xd2, 0xa0, 0x25, 0x97, 0x06, 0xaa, 0xe3, 0xa1, 0xe4, 0x78, 0x74, 0x57, 0x3b, 0x73, 0xd7, + 0xef, 0x35, 0xe8, 0xe4, 0xee, 0xc6, 0xda, 0x78, 0xa4, 0xbb, 0x8a, 0x08, 0xd4, 0x2b, 0x10, 0x98, + 0xe1, 0xa6, 0x26, 0xe3, 0x86, 0x21, 0x8d, 0x46, 0xae, 0xb4, 0x41, 0xc9, 0x68, 0xd6, 0x9b, 0x47, + 0x6c, 0xc9, 0x59, 0x48, 0x49, 0xdb, 0xd1, 0xa6, 0xb2, 0x1d, 0x2d, 0xae, 0xc6, 0xbf, 0xd1, 0xe0, + 0x2c, 0x8b, 0x72, 0x69, 0x18, 0x9b, 0xd0, 0xa1, 0x05, 0x24, 0x88, 0xe5, 0xea, 0xe9, 0x8a, 0xe5, + 0xa6, 0x08, 0x1a, 0xab, 0x24, 0xcc, 0x14, 0x3a, 0x85, 0x4e, 0xc4, 0xfa, 0x55, 0xa5, 0xb0, 0x68, + 0x8f, 0x55, 0x12, 0x36, 0x7f, 0xab, 0x41, 0x07, 0x17, 0x48, 0x69, 0x9e, 0x9f, 0xba, 0xd9, 0xef, + 0xc0, 0xd9, 0x62, 0xcf, 0x37, 0xdd, 0x28, 0xee, 0xea, 0x8b, 0xb5, 0x71, 0x4d, 0xaf, 0x54, 0xc0, + 0xe6, 0xda, 0xe3, 0x5b, 0x89, 0xe7, 0xad, 0x93, 0x28, 0xb2, 0x07, 0x64, 0xf9, 0xb0, 0x47, 0xf6, + 0xd9, 0x07, 0x8b, 0xec, 0x8f, 0xc4, 0x10, 0xab, 0x96, 0x78, 0xb9, 0xe1, 0x52, 0x3f, 0x83, 0x90, + 0xcc, 0x62, 0xd3, 0x2a, 0x42, 0x3d, 0xdd, 0xda, 0x62, 0x8d, 0x2d, 0xc4, 0x82, 0x34, 0x3e, 0x80, + 0x29, 0x5e, 0x09, 0x88, 0x6e, 0xba, 0x75, 0x3e, 0x80, 0x57, 0x2b, 0x6b, 0x8f, 0x4a, 0xab, 0xb0, + 0xa6, 0x10, 0xf4, 0xeb, 0x7e, 0x1c, 0x1e, 0x5a, 0x8a, 0xc6, 0x85, 0xf7, 0x60, 0xae, 0xd4, 0xc4, + 0xe8, 0x40, 0x6d, 0x8f, 0x1c, 0x8a, 0x71, 0xb0, 0x9f, 0xc6, 0x17, 0xa0, 0x71, 0xc0, 0x36, 0x9a, + 0x22, 0xfa, 0x0b, 0x15, 0x16, 0x08, 0x9b, 0x2d, 0x6c, 0xf8, 0xb2, 0xfe, 0x25, 0xcd, 0x7c, 0x3a, + 0x1b, 0x98, 0x3c, 0x46, 0x4d, 0x19, 0xa3, 0xf9, 0x26, 0xb4, 0xd7, 0xa3, 0xc1, 0xaa, 0x1d, 0xdb, + 0xbc, 0xe1, 0xab, 0xd0, 0x1e, 0xe6, 0x24, 0x6f, 0x5c, 0xdd, 0x9f, 0x10, 0xb2, 0xe4, 0xe6, 0xe6, + 0x9f, 0x75, 0xe8, 0x56, 0xbb, 0x22, 0x0a, 0x98, 0x0d, 0x24, 0x0c, 0x57, 0xa8, 0x43, 0xf8, 0xd0, + 0x1a, 0x56, 0x4a, 0xb2, 0xd8, 0x91, 0x30, 0x64, 0x6b, 0x98, 0x28, 0xd5, 0x91, 0x32, 0x96, 0xa0, + 0xee, 0xa5, 0x61, 0x39, 0xda, 0x0a, 0xde, 0xce, 0x18, 0x42, 0x87, 0x7b, 0x57, 0x1a, 0x90, 0x88, + 0xd9, 0xd5, 0xb1, 0x63, 0x16, 0x05, 0x18, 0x34, 0x49, 0x07, 0x06, 0xae, 0xa4, 0x7a, 0xa1, 0x0f, + 0x8f, 0x55, 0x36, 0xad, 0x08, 0xe0, 0x17, 0xd5, 0x00, 0x9e, 0x1f, 0x3d, 0x94, 0x62, 0x10, 0x03, + 0x30, 0xd6, 0x48, 0xbc, 0x6e, 0xdf, 0xbb, 0xea, 0x3b, 0xeb, 0xae, 0xdf, 0x23, 0xfb, 0x0c, 0xed, + 0x8b, 0xd0, 0x16, 0xc7, 0x06, 0x59, 0x98, 0x5a, 0x96, 0xcc, 0x1a, 0x79, 0x9a, 0x50, 0x98, 0x0f, + 0xb5, 0xd2, 0x7c, 0x30, 0xaf, 0xc0, 0x94, 0xdc, 0x1d, 0x5f, 0x44, 0xec, 0x7b, 0x3d, 0xb2, 0xcf, + 0x07, 0x34, 0x6d, 0x09, 0x8a, 0xf3, 0x79, 0x0b, 0xb1, 0xc3, 0x10, 0x94, 0xf9, 0x27, 0x1d, 0xce, + 0x94, 0x4c, 0x8e, 0x82, 0xfb, 0xd5, 0x23, 0xe3, 0xa5, 0x36, 0x0a, 0x2f, 0x75, 0x05, 0x2f, 0x7b, + 0x30, 0x87, 0x41, 0x92, 0xba, 0xee, 0x36, 0x38, 0x00, 0x5e, 0xab, 0x2a, 0xf8, 0xcb, 0x46, 0x8a, + 0xd8, 0x4b, 0x5c, 0x0c, 0x7e, 0x59, 0xef, 0x02, 0x81, 0xf9, 0xea, 0xc6, 0x15, 0xe1, 0x7f, 0x51, + 0x0d, 0xff, 0xff, 0x57, 0x85, 0x5f, 0xb6, 0x44, 0x8a, 0xff, 0x3e, 0xcc, 0xb2, 0xa4, 0xda, 0x23, + 0xbe, 0xb3, 0x1e, 0x0d, 0xb8, 0x23, 0x17, 0xa1, 0x8d, 0xf2, 0xeb, 0xd1, 0x20, 0xdf, 0x00, 0x4a, + 0x2c, 0xd6, 0xa2, 0xef, 0xb9, 0x2c, 0x79, 0xf2, 0x16, 0x22, 0xe9, 0x49, 0x2c, 0xb6, 0x40, 0x46, + 0x44, 0x9c, 0xb0, 0x30, 0xef, 0xd6, 0xac, 0x8c, 0x36, 0x7f, 0xdd, 0x84, 0x09, 0x81, 0x46, 0xbe, + 0x28, 0xb2, 0x3d, 0x77, 0x96, 0x56, 0x91, 0xc2, 0xba, 0xb6, 0x7f, 0x90, 0xc3, 0x0b, 0x29, 0xf9, + 0x78, 0xab, 0xa6, 0x1e, 0x6f, 0x15, 0x6c, 0xaa, 0x97, 0x6d, 0x2a, 0x8c, 0xab, 0x51, 0x1e, 0x17, + 0x2b, 0xe3, 0x78, 0x65, 0xb3, 0xe5, 0xd9, 0xf1, 0x0e, 0x0d, 0x87, 0x62, 0x0b, 0xdd, 0xb0, 0x4a, + 0x7c, 0x56, 0x3a, 0x22, 0x2f, 0xab, 0xfd, 0x71, 0x09, 0x2f, 0x70, 0x59, 0xa5, 0x8d, 0x9c, 0x74, + 0x0f, 0x80, 0xe7, 0x1c, 0x2a, 0x13, 0x6d, 0x8b, 0x22, 0x97, 0xfa, 0xbc, 0x0a, 0xc5, 0x52, 0x5f, + 0x66, 0xb1, 0x91, 0x0f, 0xa3, 0xc1, 0xb5, 0x90, 0x0e, 0xc5, 0xf6, 0x2a, 0x25, 0xf9, 0xc8, 0xa9, + 0x1f, 0xa7, 0x15, 0x2c, 0x9e, 0x70, 0xc8, 0x2c, 0x26, 0x2b, 0x48, 0x5e, 0xe7, 0x4f, 0x59, 0x29, + 0xc9, 0xb0, 0x14, 0x91, 0x7d, 0x51, 0xbc, 0xb3, 0x9f, 0x4a, 0xe4, 0x66, 0xd5, 0xc8, 0x15, 0xaa, + 0xb1, 0x0e, 0xff, 0x2a, 0x57, 0x63, 0x79, 0x89, 0x33, 0xa7, 0x94, 0x38, 0x57, 0x61, 0x82, 0x06, + 0x6c, 0xfa, 0x47, 0x5d, 0x83, 0x4f, 0x97, 0x67, 0x47, 0x27, 0xa8, 0xa5, 0x4d, 0x6c, 0x89, 0x13, + 0x23, 0x95, 0x33, 0x6e, 0xc2, 0x2c, 0xdd, 0xd9, 0xf1, 0x5c, 0x9f, 0x6c, 0x25, 0xd1, 0x2e, 0xdf, + 0x6a, 0x9f, 0xe1, 0x60, 0x37, 0xab, 0x8a, 0x08, 0xb5, 0xa5, 0x55, 0x14, 0x65, 0x95, 0x9f, 0x1d, + 0xe3, 0x26, 0x87, 0x27, 0xb8, 0xb3, 0x3c, 0xc1, 0x29, 0x3c, 0x7e, 0x4e, 0x28, 0x25, 0xfa, 0xc7, + 0xb8, 0xe3, 0x64, 0x16, 0x6a, 0x89, 0xed, 0xfe, 0x2e, 0xe1, 0x87, 0x46, 0xdd, 0x79, 0xac, 0x1f, + 0x65, 0x9e, 0xa8, 0xee, 0x1e, 0x4f, 0xab, 0xbb, 0x85, 0x97, 0x61, 0x4a, 0x1e, 0x60, 0xc5, 0x64, + 0x3e, 0x2b, 0x4f, 0xe6, 0x49, 0x79, 0xae, 0x7e, 0x5f, 0x83, 0xd9, 0xc2, 0xd0, 0x58, 0xeb, 0xd8, + 0x8d, 0x3d, 0x22, 0x34, 0x20, 0xc1, 0x76, 0x47, 0x0e, 0x89, 0xfa, 0x62, 0xf2, 0xf0, 0xdf, 0xc2, + 0x92, 0x5a, 0xb6, 0x65, 0x37, 0x61, 0xca, 0xdd, 0xec, 0x31, 0x45, 0x3d, 0x9a, 0xf8, 0x4e, 0x76, + 0xd0, 0x2e, 0xf1, 0xf8, 0xb6, 0x7d, 0xb3, 0xb7, 0x6c, 0x3b, 0x03, 0x82, 0xd7, 0x2e, 0x0d, 0x6e, + 0x93, 0xca, 0x34, 0x1d, 0x98, 0xbc, 0xe5, 0x06, 0xd1, 0x0a, 0x1d, 0x0e, 0x19, 0x04, 0x1c, 0x12, + 0xb3, 0x3a, 0x5e, 0xe3, 0x0e, 0x13, 0x14, 0xf3, 0xa6, 0x43, 0x76, 0xec, 0xc4, 0x8b, 0x59, 0xd3, + 0x34, 0x65, 0x48, 0x2c, 0x7e, 0x84, 0x10, 0x51, 0x7f, 0x15, 0xa5, 0xd1, 0x4e, 0x89, 0x63, 0xfe, + 0x51, 0x87, 0x0e, 0xcf, 0x88, 0x2b, 0x1c, 0x70, 0x0e, 0x17, 0xba, 0x0c, 0x0d, 0x9e, 0x00, 0x44, + 0x45, 0x79, 0xf4, 0xb9, 0x0b, 0x36, 0x35, 0xae, 0x40, 0x93, 0x06, 0xbc, 0x0c, 0xc5, 0x74, 0xf9, + 0xcc, 0x28, 0x21, 0xf5, 0x68, 0xdd, 0x12, 0x52, 0xc6, 0x35, 0x80, 0x61, 0x5e, 0x75, 0x62, 0xf1, + 0x30, 0xae, 0x0e, 0x49, 0x92, 0x39, 0x37, 0x5b, 0x17, 0xb3, 0xf3, 0xf5, 0x9a, 0xa5, 0x32, 0x8d, + 0x0d, 0x98, 0xe1, 0x66, 0x6f, 0xa6, 0x07, 0x70, 0x3c, 0x06, 0xe3, 0xf7, 0x58, 0x90, 0x36, 0x7f, + 0xa4, 0x09, 0x37, 0xb2, 0xaf, 0x3d, 0x82, 0xbe, 0xcf, 0x5d, 0xa2, 0x9d, 0xc8, 0x25, 0x0b, 0x30, + 0x39, 0x4c, 0xa4, 0xf3, 0xc0, 0x9a, 0x95, 0xd1, 0x79, 0x88, 0x6a, 0x63, 0x87, 0xc8, 0xfc, 0xb1, + 0x06, 0xdd, 0x37, 0xa8, 0xeb, 0xf3, 0x0f, 0x57, 0x83, 0xc0, 0x13, 0xd7, 0x30, 0x27, 0x8e, 0xf9, + 0x57, 0xa0, 0x65, 0xa3, 0x1a, 0x3f, 0x16, 0x61, 0x1f, 0xe3, 0x8c, 0x2f, 0x97, 0x91, 0x0e, 0x5a, + 0x6a, 0xf2, 0x41, 0x8b, 0xf9, 0x91, 0x06, 0x33, 0xe8, 0x94, 0xb7, 0x12, 0x37, 0x3e, 0xb1, 0x7d, + 0xcb, 0x30, 0xb9, 0x9f, 0xb8, 0xf1, 0x09, 0x50, 0x99, 0xc9, 0x95, 0xf1, 0x54, 0xab, 0xc0, 0x93, + 0xf9, 0x73, 0x0d, 0xce, 0x15, 0xdd, 0x7a, 0xb5, 0xdf, 0x27, 0xc1, 0x83, 0x9c, 0x52, 0xca, 0x41, + 0x53, 0xbd, 0x70, 0xd0, 0x54, 0x69, 0xb2, 0x45, 0x3e, 0x24, 0xfd, 0x87, 0xd7, 0xe4, 0x6f, 0xea, + 0xf0, 0xc4, 0x5a, 0x36, 0xf1, 0x6e, 0x85, 0xb6, 0x1f, 0xed, 0x90, 0x30, 0x7c, 0x80, 0xf6, 0xde, + 0x84, 0x69, 0x9f, 0xdc, 0xcd, 0x6d, 0x12, 0xd3, 0x71, 0x5c, 0x35, 0xaa, 0xf0, 0x78, 0xb9, 0xcb, + 0xfc, 0x8f, 0x06, 0x1d, 0xd4, 0xf3, 0xa6, 0xdb, 0xdf, 0x7b, 0x80, 0x83, 0xdf, 0x80, 0x99, 0x3d, + 0x6e, 0x01, 0xa3, 0x4e, 0x90, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x63, 0x0d, 0xe6, 0xd2, 0xdb, + 0xdf, 0x03, 0xf7, 0x41, 0x82, 0x75, 0x0b, 0x66, 0xf1, 0xa4, 0xfd, 0xa4, 0x0e, 0x28, 0x8a, 0x8f, + 0xe9, 0x81, 0x5f, 0x69, 0x30, 0x8b, 0x9a, 0x5e, 0xf7, 0x63, 0x12, 0x9e, 0x78, 0xfc, 0xd7, 0xa1, + 0x4d, 0xfc, 0x38, 0xb4, 0xfd, 0x93, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, 0x91, 0x06, 0x06, + 0x57, 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x60, 0xe8, 0xc6, 0x33, 0xf8, 0x87, 0x3a, 0x9c, + 0x95, 0xb4, 0xac, 0x27, 0xf1, 0xc3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, 0xc8, 0xf7, 0xa0, + 0xe3, 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, 0xf1, 0xe2, 0x68, + 0xda, 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, 0x47, 0xc6, 0x45, + 0xe6, 0x4f, 0x35, 0x98, 0xc1, 0x26, 0x0f, 0xff, 0x90, 0xd9, 0x5a, 0x8f, 0x40, 0xfe, 0xd4, 0x44, + 0x89, 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x0f, 0x2f, 0xb4, 0xae, 0x43, 0xbb, 0xbf, 0x6b, + 0xfb, 0x83, 0x13, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5c, 0x3e, 0xb4, 0x5f, 0xc1, 0x4f, 0x7c, + 0xf8, 0x2f, 0x14, 0x86, 0x72, 0xe4, 0x3b, 0x87, 0xfb, 0x73, 0xfa, 0x1e, 0xcc, 0xe1, 0x4d, 0xb1, + 0x54, 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, 0xaa, 0x2f, 0x09, + 0xc4, 0xbb, 0xb4, 0xfc, 0x25, 0xc1, 0x79, 0x00, 0xdb, 0x71, 0xde, 0xa1, 0xa1, 0xe3, 0xfa, 0x69, + 0x81, 0x2f, 0x71, 0xcc, 0x37, 0x60, 0xea, 0x5a, 0x48, 0x87, 0xb7, 0xa4, 0x3b, 0xdf, 0x23, 0x6f, + 0xa5, 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0xdf, 0x87, 0xc7, 0x4a, 0x86, 0x73, 0x67, 0xad, + 0xe0, 0x55, 0x76, 0xda, 0x89, 0x80, 0x4c, 0xd5, 0x59, 0x9e, 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0xdf, + 0xd0, 0xe0, 0xa9, 0x92, 0xfa, 0xab, 0x41, 0x10, 0xd2, 0x03, 0x11, 0x93, 0xd3, 0xe8, 0x46, 0x2d, + 0x7e, 0xf5, 0x62, 0xf1, 0x5b, 0x69, 0x84, 0x52, 0xb0, 0x7f, 0x02, 0x46, 0xfc, 0x44, 0x83, 0x59, + 0x61, 0x84, 0xe3, 0x88, 0x6e, 0x5f, 0x84, 0x26, 0x3e, 0xa6, 0x11, 0x1d, 0x3e, 0x55, 0xd9, 0x61, + 0xfa, 0x08, 0xc8, 0x12, 0x8d, 0xcb, 0x88, 0xd4, 0xab, 0x66, 0xd4, 0x97, 0x33, 0xb0, 0x8f, 0xfd, + 0xdc, 0x45, 0x08, 0x98, 0x5f, 0x4d, 0xc1, 0xbc, 0x4a, 0x3c, 0x72, 0x9a, 0x3e, 0x32, 0x6f, 0xc3, + 0x0c, 0x7f, 0xd9, 0x93, 0xfb, 0xe0, 0x54, 0xd4, 0xbe, 0x03, 0x1d, 0xae, 0xf6, 0xd4, 0xed, 0xcd, + 0x66, 0x07, 0xf3, 0x8f, 0x9c, 0x4a, 0x4e, 0x45, 0xfb, 0xe7, 0xe1, 0x4c, 0xea, 0x7b, 0x7c, 0x11, + 0x8b, 0xba, 0x47, 0xdc, 0xed, 0x99, 0x1f, 0xc0, 0xfc, 0x0a, 0xf5, 0x0f, 0x48, 0x18, 0x29, 0x8f, + 0x68, 0x51, 0x42, 0x99, 0xfc, 0x82, 0x32, 0x96, 0xc0, 0xe8, 0x4b, 0x12, 0xe2, 0x74, 0x51, 0xe7, + 0xa7, 0x8b, 0x15, 0x5f, 0xcc, 0x0f, 0x61, 0x41, 0xee, 0xa1, 0x47, 0xe2, 0xad, 0xd0, 0x3d, 0x90, + 0x7a, 0x11, 0x87, 0xe0, 0x9a, 0x72, 0x08, 0x9e, 0x1f, 0x9a, 0xeb, 0xca, 0xa1, 0xf9, 0x39, 0x68, + 0xb9, 0x91, 0x50, 0xc0, 0x41, 0x38, 0x69, 0xe5, 0x0c, 0xd3, 0x86, 0x39, 0x0c, 0x97, 0xb8, 0x94, + 0xe2, 0x5d, 0x2c, 0xc0, 0x24, 0x62, 0x30, 0xeb, 0x24, 0xa3, 0x47, 0x5e, 0xf1, 0x8c, 0xbc, 0xd0, + 0x34, 0x7b, 0x30, 0x27, 0x1e, 0xee, 0x6c, 0xd9, 0x03, 0xd7, 0xc7, 0xa4, 0x7c, 0x1e, 0x20, 0xb0, + 0x07, 0xe9, 0x53, 0x41, 0xbc, 0x9a, 0x93, 0x38, 0xec, 0x7b, 0xb4, 0x4b, 0xef, 0x8a, 0xef, 0x3a, + 0x7e, 0xcf, 0x39, 0xe6, 0xdb, 0x60, 0x58, 0x24, 0x0a, 0xa8, 0x1f, 0x11, 0x49, 0xeb, 0x22, 0xb4, + 0x57, 0x92, 0x30, 0x24, 0x3e, 0xeb, 0x2a, 0x7d, 0x0b, 0x27, 0xb3, 0x98, 0xde, 0x5e, 0xae, 0x17, + 0x8f, 0xf1, 0x25, 0x8e, 0xf9, 0xef, 0x1a, 0xb4, 0x7a, 0xee, 0xc0, 0xb7, 0x3d, 0x8b, 0xec, 0x1b, + 0xaf, 0x42, 0x13, 0xb7, 0x38, 0x02, 0x59, 0x55, 0xc7, 0xca, 0xd8, 0x1a, 0xf7, 0x72, 0x16, 0xd9, + 0xbf, 0xfe, 0x7f, 0x96, 0x90, 0x31, 0xde, 0x4a, 0x9f, 0x37, 0xdd, 0xc0, 0x23, 0x2b, 0xb1, 0xde, + 0x7d, 0xf6, 0x18, 0x25, 0xa2, 0x35, 0xea, 0x52, 0x35, 0x30, 0x83, 0xfa, 0xbc, 0x04, 0x12, 0xe9, + 0x64, 0xb4, 0x41, 0x58, 0x29, 0x09, 0x83, 0x50, 0x86, 0x49, 0xdb, 0xfc, 0x50, 0x47, 0xac, 0xec, + 0xa3, 0xa5, 0xf1, 0xec, 0x47, 0x48, 0xa3, 0x0c, 0x93, 0xde, 0x4d, 0xfc, 0xc1, 0xed, 0x40, 0x9c, + 0x35, 0x8e, 0x96, 0xbe, 0xce, 0x9b, 0x09, 0x69, 0x94, 0x61, 0xd2, 0x21, 0x4f, 0xf6, 0xdc, 0xe9, + 0x47, 0x49, 0xe3, 0x9a, 0x20, 0xa4, 0x51, 0xc6, 0x78, 0x17, 0x3a, 0x6b, 0x24, 0xb6, 0x28, 0x1d, + 0x2e, 0x1f, 0xae, 0x89, 0xab, 0x1e, 0x7c, 0xb1, 0xfd, 0xfc, 0x48, 0x3d, 0x45, 0x01, 0xd4, 0x58, + 0xd2, 0xb3, 0xdc, 0x82, 0x89, 0xc0, 0x3e, 0xf4, 0xa8, 0xed, 0x98, 0xdf, 0xa9, 0x03, 0xa4, 0x46, + 0x44, 0xbc, 0xe8, 0x52, 0xc2, 0x7f, 0xe1, 0xd8, 0xf0, 0x07, 0xde, 0xa1, 0x04, 0x80, 0x5e, 0x35, + 0x00, 0x3e, 0x37, 0x2e, 0x00, 0x50, 0x5b, 0x01, 0x02, 0x57, 0x0a, 0x10, 0xb8, 0x70, 0x2c, 0x04, + 0x84, 0x51, 0x02, 0x04, 0x57, 0x0a, 0x20, 0xb8, 0x70, 0x2c, 0x08, 0x84, 0xbc, 0x80, 0xc1, 0x95, + 0x02, 0x0c, 0x2e, 0x1c, 0x0b, 0x03, 0x21, 0x2f, 0x80, 0x70, 0xa5, 0x00, 0x84, 0x0b, 0xc7, 0x02, + 0x41, 0xc8, 0x0b, 0x28, 0xbc, 0x3f, 0x12, 0x0a, 0x4b, 0xf7, 0x01, 0x05, 0xd4, 0x79, 0x24, 0x18, + 0xfe, 0xa2, 0xc3, 0x0c, 0x0f, 0x08, 0xe6, 0x66, 0x7f, 0x87, 0x96, 0x1f, 0x2c, 0x6a, 0x15, 0x0f, + 0x16, 0x8d, 0xe7, 0x61, 0x0e, 0x19, 0x44, 0xba, 0x4c, 0xc2, 0x74, 0x5f, 0xfe, 0xc0, 0xaf, 0xcf, + 0x92, 0x28, 0xa6, 0xc3, 0x55, 0x3b, 0xb6, 0xd3, 0x32, 0x33, 0xe7, 0xc8, 0x97, 0x9b, 0xf5, 0xd2, + 0xdb, 0xfd, 0x90, 0xd2, 0x61, 0x76, 0x6b, 0x29, 0x28, 0x26, 0x11, 0xbb, 0x43, 0x42, 0x93, 0x58, + 0x24, 0xb8, 0x94, 0xc4, 0x57, 0x66, 0x8e, 0x6b, 0xf3, 0x2b, 0x41, 0xf1, 0x04, 0x2b, 0x63, 0xf0, + 0x9c, 0x9c, 0x5f, 0x71, 0x8a, 0xb7, 0xf5, 0x39, 0x67, 0x8c, 0xeb, 0x48, 0xfe, 0x37, 0x0d, 0x37, + 0x76, 0xe5, 0xa7, 0x59, 0x0d, 0x4b, 0xe1, 0x99, 0xff, 0xd0, 0xe0, 0xcc, 0x96, 0x1d, 0xc6, 0x6e, + 0xdf, 0x0d, 0x6c, 0x3f, 0x5e, 0x27, 0xb1, 0xcd, 0xc7, 0xa9, 0x3c, 0x98, 0xd5, 0xee, 0xef, 0xc1, + 0xec, 0x16, 0xcc, 0x0e, 0xd4, 0xbd, 0xd6, 0x7d, 0x6e, 0x93, 0x8a, 0xe2, 0xca, 0xeb, 0xdf, 0xda, + 0x7d, 0xbf, 0xfe, 0x35, 0xbf, 0xad, 0xc3, 0x6c, 0x61, 0x61, 0x38, 0x72, 0x55, 0xbd, 0x0a, 0xe0, + 0x66, 0x50, 0x3b, 0xe2, 0x2a, 0x42, 0xc5, 0xa3, 0x25, 0x09, 0x55, 0xdd, 0x85, 0xd6, 0x4e, 0x7e, + 0x17, 0x7a, 0x1d, 0xda, 0x41, 0x1e, 0xa4, 0x23, 0x76, 0x82, 0x15, 0xa1, 0xb4, 0x64, 0x51, 0xf3, + 0x3d, 0x98, 0x2b, 0xe5, 0x48, 0x7e, 0x41, 0x49, 0xf7, 0x88, 0x9f, 0x5d, 0x50, 0x32, 0x42, 0x02, + 0xb4, 0x5e, 0x04, 0xb4, 0xe7, 0x1e, 0xc8, 0x7f, 0x45, 0x10, 0xa4, 0xf9, 0x5d, 0x1d, 0xe6, 0xab, + 0xd7, 0xce, 0x47, 0xd5, 0xdd, 0xdb, 0xd0, 0x1d, 0xb5, 0x96, 0x9c, 0x9a, 0xd7, 0x73, 0x74, 0x67, + 0x55, 0xc6, 0xa3, 0xea, 0xee, 0x33, 0x29, 0xba, 0xa5, 0xc5, 0xd6, 0xfc, 0x65, 0xe6, 0x9f, 0xac, + 0x8e, 0x7a, 0x44, 0xfd, 0x63, 0x5c, 0x84, 0x0e, 0x0e, 0x53, 0x7a, 0x3c, 0x83, 0x65, 0x79, 0x89, + 0x9f, 0x67, 0x0a, 0xa9, 0xf0, 0x38, 0x35, 0xcc, 0xfe, 0x4e, 0x4b, 0x63, 0x92, 0x55, 0xa7, 0x9f, + 0xaa, 0x98, 0xe4, 0x48, 0x93, 0xca, 0x2a, 0x09, 0x69, 0x59, 0xd5, 0xfc, 0x3f, 0xa4, 0x1d, 0x8f, + 0xb4, 0xcc, 0x97, 0x52, 0x89, 0x69, 0xbe, 0x05, 0x4f, 0x8c, 0xdc, 0x38, 0x1c, 0xe9, 0x54, 0xa9, + 0x42, 0xd3, 0x95, 0x0a, 0xcd, 0xfc, 0xbb, 0x06, 0x4f, 0x1e, 0x51, 0x81, 0x16, 0xc2, 0xa1, 0x9d, + 0x24, 0x1c, 0x2f, 0xc1, 0x3c, 0xf5, 0x57, 0xa8, 0xef, 0x93, 0x7e, 0xec, 0xfa, 0x83, 0x52, 0xc5, + 0x39, 0xe2, 0x6b, 0x3e, 0xaf, 0x6a, 0xd5, 0xf3, 0xaa, 0x3e, 0x6a, 0x5e, 0x35, 0xd4, 0x79, 0xf5, + 0x75, 0x98, 0x5e, 0x25, 0xde, 0x7a, 0x34, 0x48, 0xdf, 0x44, 0x9f, 0xea, 0xe1, 0x41, 0xf1, 0xe5, + 0x68, 0xbd, 0xfc, 0x72, 0x74, 0x19, 0x66, 0x64, 0x03, 0x4e, 0xf2, 0xe6, 0x77, 0xf9, 0xdc, 0xbb, + 0x0b, 0x4b, 0xe2, 0xbf, 0xf4, 0xaf, 0x94, 0xbc, 0xbf, 0xdd, 0xe4, 0xff, 0xbe, 0x7d, 0xe1, 0xbf, + 0x01, 0x00, 0x00, 0xff, 0xff, 0xce, 0x8c, 0x10, 0x95, 0xa4, 0x3f, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 226ac5dcf..6ff3be38c 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -72,15 +72,9 @@ message UserInfo{ uint32 birth = 6; string email = 7; string ex = 8; - string createIp = 9; - uint32 createTime = 10; - string LastLoginIp =11; - uint32 LastLoginTime = 12; - int32 LoginTimes = 13; - int32 LoginLimit = 14; - int32 appMangerLevel = 15; - int32 globalRecvMsgOpt = 16; - string invitationCode = 17; + uint32 createTime = 9; + int32 appMangerLevel = 10; + int32 globalRecvMsgOpt = 11; } message FriendInfo{ From 6c8b115479a148f7ebab3b432e7e1cb0b0e64a69 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 5 Sep 2022 19:07:16 +0800 Subject: [PATCH 45/56] conversation unread modify --- internal/rpc/conversation/conversaion.go | 2 +- internal/rpc/msg/conversation_notification.go | 7 +- pkg/proto/sdk_ws/ws.pb.go | 642 +++++++++--------- pkg/proto/sdk_ws/ws.proto | 3 + 4 files changed, 333 insertions(+), 321 deletions(-) diff --git a/internal/rpc/conversation/conversaion.go b/internal/rpc/conversation/conversaion.go index ae1cb06e7..ef86dee3d 100644 --- a/internal/rpc/conversation/conversaion.go +++ b/internal/rpc/conversation/conversaion.go @@ -117,7 +117,7 @@ func (rpc *rpcConversation) ModifyConversationField(c context.Context, req *pbCo if err = rocksCache.DelConversationFromCache(v, req.Conversation.ConversationID); err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), v, req.Conversation.ConversationID, err.Error()) } - chat.ConversationUnreadChangeNotification(req.OperationID, v, req.Conversation.ConversationID) + chat.ConversationUnreadChangeNotification(req.OperationID, v, req.Conversation.ConversationID, conversation.UpdateUnreadCountTime) } } diff --git a/internal/rpc/msg/conversation_notification.go b/internal/rpc/msg/conversation_notification.go index c79f28a65..22e1dedc7 100644 --- a/internal/rpc/msg/conversation_notification.go +++ b/internal/rpc/msg/conversation_notification.go @@ -70,11 +70,12 @@ func ConversationChangeNotification(operationID, userID string) { } //会话未读数同步 -func ConversationUnreadChangeNotification(operationID, userID, conversationID string) { +func ConversationUnreadChangeNotification(operationID, userID, conversationID string, updateUnreadCountTime int64) { log.NewInfo(operationID, utils.GetSelfFuncName()) ConversationChangedTips := &open_im_sdk.ConversationUpdateTips{ - UserID: userID, - ConversationIDList: []string{conversationID}, + UserID: userID, + ConversationIDList: []string{conversationID}, + UpdateUnreadCountTime: updateUnreadCountTime, } var tips open_im_sdk.TipsComm tips.DefaultTips = config.Config.Notification.ConversationOptUpdate.DefaultTips.Tips diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5e99b623f..d3d4f7a02 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{0} + return fileDescriptor_ws_e0da77577e3c5842, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{1} + return fileDescriptor_ws_e0da77577e3c5842, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{2} + return fileDescriptor_ws_e0da77577e3c5842, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{3} + return fileDescriptor_ws_e0da77577e3c5842, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -510,7 +510,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{4} + return fileDescriptor_ws_e0da77577e3c5842, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -666,7 +666,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{5} + return fileDescriptor_ws_e0da77577e3c5842, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -751,7 +751,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{6} + return fileDescriptor_ws_e0da77577e3c5842, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -834,7 +834,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{7} + return fileDescriptor_ws_e0da77577e3c5842, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -956,7 +956,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{8} + return fileDescriptor_ws_e0da77577e3c5842, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1101,7 +1101,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{9} + return fileDescriptor_ws_e0da77577e3c5842, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{10} + return fileDescriptor_ws_e0da77577e3c5842, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1326,7 +1326,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{11} + return fileDescriptor_ws_e0da77577e3c5842, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1407,7 +1407,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{12} + return fileDescriptor_ws_e0da77577e3c5842, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1453,7 +1453,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{13} + return fileDescriptor_ws_e0da77577e3c5842, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1502,7 +1502,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{14} + return fileDescriptor_ws_e0da77577e3c5842, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1561,7 +1561,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{15} + return fileDescriptor_ws_e0da77577e3c5842, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1599,7 +1599,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{16} + return fileDescriptor_ws_e0da77577e3c5842, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1640,7 +1640,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{17} + return fileDescriptor_ws_e0da77577e3c5842, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1701,7 +1701,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_ws_9506eea4334b9b75, []int{18} + return fileDescriptor_ws_e0da77577e3c5842, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1754,7 +1754,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{19} + return fileDescriptor_ws_e0da77577e3c5842, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1803,7 +1803,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_ws_9506eea4334b9b75, []int{20} + return fileDescriptor_ws_e0da77577e3c5842, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1871,7 +1871,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{21} + return fileDescriptor_ws_e0da77577e3c5842, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1944,7 +1944,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{22} + return fileDescriptor_ws_e0da77577e3c5842, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2133,7 +2133,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{23} + return fileDescriptor_ws_e0da77577e3c5842, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2201,7 +2201,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{24} + return fileDescriptor_ws_e0da77577e3c5842, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2258,7 +2258,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{25} + return fileDescriptor_ws_e0da77577e3c5842, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2327,7 +2327,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{26} + return fileDescriptor_ws_e0da77577e3c5842, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2382,7 +2382,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{27} + return fileDescriptor_ws_e0da77577e3c5842, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2438,7 +2438,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{28} + return fileDescriptor_ws_e0da77577e3c5842, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2493,7 +2493,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{29} + return fileDescriptor_ws_e0da77577e3c5842, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2548,7 +2548,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{30} + return fileDescriptor_ws_e0da77577e3c5842, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2604,7 +2604,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{31} + return fileDescriptor_ws_e0da77577e3c5842, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2667,7 +2667,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{32} + return fileDescriptor_ws_e0da77577e3c5842, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2730,7 +2730,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{33} + return fileDescriptor_ws_e0da77577e3c5842, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2792,7 +2792,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{34} + return fileDescriptor_ws_e0da77577e3c5842, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2846,7 +2846,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{35} + return fileDescriptor_ws_e0da77577e3c5842, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2902,7 +2902,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{36} + return fileDescriptor_ws_e0da77577e3c5842, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2971,7 +2971,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{37} + return fileDescriptor_ws_e0da77577e3c5842, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -3032,7 +3032,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{38} + return fileDescriptor_ws_e0da77577e3c5842, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -3086,7 +3086,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{39} + return fileDescriptor_ws_e0da77577e3c5842, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3141,7 +3141,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{40} + return fileDescriptor_ws_e0da77577e3c5842, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3201,7 +3201,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{41} + return fileDescriptor_ws_e0da77577e3c5842, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3248,7 +3248,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{42} + return fileDescriptor_ws_e0da77577e3c5842, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3301,7 +3301,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{43} + return fileDescriptor_ws_e0da77577e3c5842, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3347,7 +3347,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{44} + return fileDescriptor_ws_e0da77577e3c5842, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3387,7 +3387,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{45} + return fileDescriptor_ws_e0da77577e3c5842, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3434,7 +3434,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{46} + return fileDescriptor_ws_e0da77577e3c5842, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3482,7 +3482,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{47} + return fileDescriptor_ws_e0da77577e3c5842, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3535,7 +3535,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{48} + return fileDescriptor_ws_e0da77577e3c5842, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3573,7 +3573,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{49} + return fileDescriptor_ws_e0da77577e3c5842, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3611,7 +3611,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{50} + return fileDescriptor_ws_e0da77577e3c5842, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3649,7 +3649,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{51} + return fileDescriptor_ws_e0da77577e3c5842, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3688,7 +3688,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{52} + return fileDescriptor_ws_e0da77577e3c5842, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3717,18 +3717,19 @@ func (m *UserInfoUpdatedTips) GetUserID() string { // ////////////////////conversation///////////////////// type ConversationUpdateTips struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` + UpdateUnreadCountTime int64 `protobuf:"varint,3,opt,name=updateUnreadCountTime" json:"updateUnreadCountTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} } func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{53} + return fileDescriptor_ws_e0da77577e3c5842, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3762,6 +3763,13 @@ func (m *ConversationUpdateTips) GetConversationIDList() []string { return nil } +func (m *ConversationUpdateTips) GetUpdateUnreadCountTime() int64 { + if m != nil { + return m.UpdateUnreadCountTime + } + return 0 +} + type ConversationSetPrivateTips struct { RecvID string `protobuf:"bytes,1,opt,name=recvID" json:"recvID,omitempty"` SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` @@ -3775,7 +3783,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{54} + return fileDescriptor_ws_e0da77577e3c5842, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3830,7 +3838,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{55} + return fileDescriptor_ws_e0da77577e3c5842, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3884,7 +3892,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{56} + return fileDescriptor_ws_e0da77577e3c5842, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3930,7 +3938,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{57} + return fileDescriptor_ws_e0da77577e3c5842, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3984,7 +3992,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{58} + return fileDescriptor_ws_e0da77577e3c5842, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4282,7 +4290,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{59} + return fileDescriptor_ws_e0da77577e3c5842, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4581,7 +4589,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{60} + return fileDescriptor_ws_e0da77577e3c5842, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4684,7 +4692,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{61} + return fileDescriptor_ws_e0da77577e3c5842, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4739,7 +4747,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{62} + return fileDescriptor_ws_e0da77577e3c5842, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4800,7 +4808,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{63} + return fileDescriptor_ws_e0da77577e3c5842, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4855,7 +4863,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{64} + return fileDescriptor_ws_e0da77577e3c5842, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4916,7 +4924,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{65} + return fileDescriptor_ws_e0da77577e3c5842, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4971,7 +4979,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{66} + return fileDescriptor_ws_e0da77577e3c5842, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -5029,7 +5037,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{67} + return fileDescriptor_ws_e0da77577e3c5842, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -5064,7 +5072,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{68} + return fileDescriptor_ws_e0da77577e3c5842, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -5132,7 +5140,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{69} + return fileDescriptor_ws_e0da77577e3c5842, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5186,7 +5194,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{70} + return fileDescriptor_ws_e0da77577e3c5842, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5237,7 +5245,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{71} + return fileDescriptor_ws_e0da77577e3c5842, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5272,7 +5280,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{72} + return fileDescriptor_ws_e0da77577e3c5842, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5337,7 +5345,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{73} + return fileDescriptor_ws_e0da77577e3c5842, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5369,7 +5377,7 @@ func (m *SignalGetRoomByGroupIDReq) Reset() { *m = SignalGetRoomByGroupI func (m *SignalGetRoomByGroupIDReq) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReq) ProtoMessage() {} func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{74} + return fileDescriptor_ws_e0da77577e3c5842, []int{74} } func (m *SignalGetRoomByGroupIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReq.Unmarshal(m, b) @@ -5418,7 +5426,7 @@ func (m *SignalGetRoomByGroupIDReply) Reset() { *m = SignalGetRoomByGrou func (m *SignalGetRoomByGroupIDReply) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReply) ProtoMessage() {} func (*SignalGetRoomByGroupIDReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{75} + return fileDescriptor_ws_e0da77577e3c5842, []int{75} } func (m *SignalGetRoomByGroupIDReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReply.Unmarshal(m, b) @@ -5487,7 +5495,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{76} + return fileDescriptor_ws_e0da77577e3c5842, []int{76} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5547,7 +5555,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9506eea4334b9b75, []int{77} + return fileDescriptor_ws_e0da77577e3c5842, []int{77} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5666,239 +5674,239 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9506eea4334b9b75) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_e0da77577e3c5842) } -var fileDescriptor_ws_9506eea4334b9b75 = []byte{ - // 3681 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0xcd, 0x6f, 0x1c, 0xc7, - 0xb1, 0x7f, 0x33, 0xfb, 0x41, 0x6e, 0x2d, 0x3f, 0x96, 0x23, 0x99, 0x5e, 0xd3, 0xb2, 0x1e, 0xdf, - 0x58, 0xb0, 0xfd, 0xf4, 0xfc, 0xa8, 0x07, 0xf9, 0xd9, 0x78, 0xcf, 0x1f, 0x0a, 0x44, 0xd2, 0xa2, - 0x68, 0x93, 0x22, 0x3d, 0x2b, 0xd9, 0x81, 0x6d, 0x40, 0x1e, 0xee, 0x34, 0x97, 0x63, 0xce, 0x4e, - 0x0f, 0xe7, 0x83, 0x12, 0x73, 0x09, 0x90, 0x00, 0x41, 0x90, 0x43, 0x72, 0x49, 0x10, 0x20, 0xc7, - 0x5c, 0x82, 0x04, 0x81, 0x11, 0x04, 0x49, 0x90, 0x43, 0x10, 0xe4, 0x90, 0x5b, 0x2e, 0x39, 0xe4, - 0x96, 0x43, 0x82, 0x9c, 0xf3, 0x0f, 0x04, 0x09, 0xe0, 0xa0, 0xbb, 0x7a, 0x66, 0xba, 0x67, 0x66, - 0xc9, 0x15, 0x41, 0x58, 0x32, 0x94, 0x1b, 0xab, 0xa6, 0xab, 0xba, 0xba, 0xea, 0xd7, 0xd5, 0xd5, - 0x1f, 0x4b, 0x98, 0x8d, 0x9c, 0xfd, 0xbb, 0xf7, 0xa2, 0x2b, 0xf7, 0xa2, 0xa5, 0x20, 0xa4, 0x31, - 0x35, 0xe6, 0x22, 0x12, 0x1e, 0x92, 0xf0, 0xae, 0x1d, 0xb8, 0x77, 0x03, 0x3b, 0xb4, 0x87, 0xd1, - 0xc2, 0xf3, 0x5b, 0x01, 0xf1, 0xef, 0xae, 0x6f, 0x5e, 0x09, 0xf6, 0x07, 0x57, 0x78, 0xab, 0x2b, - 0xa9, 0x54, 0x68, 0x07, 0x01, 0x09, 0x85, 0xac, 0xf9, 0xa7, 0x3a, 0xb4, 0xd6, 0x42, 0x9a, 0x04, - 0xeb, 0xfe, 0x2e, 0x35, 0xba, 0x30, 0x31, 0xe0, 0xc4, 0x6a, 0x57, 0x5b, 0xd4, 0x5e, 0x68, 0x59, - 0x29, 0x69, 0x5c, 0x80, 0x16, 0xff, 0xf3, 0x96, 0x3d, 0x24, 0x5d, 0x9d, 0x7f, 0xcb, 0x19, 0x86, - 0x09, 0x53, 0x3e, 0x8d, 0xdd, 0x5d, 0xb7, 0x6f, 0xc7, 0x2e, 0xf5, 0xbb, 0x35, 0xde, 0x40, 0xe1, - 0xb1, 0x36, 0xae, 0x1f, 0x87, 0xd4, 0x49, 0xfa, 0xbc, 0x4d, 0x1d, 0xdb, 0xc8, 0x3c, 0xd6, 0xff, - 0xae, 0xdd, 0x27, 0x77, 0xac, 0x8d, 0x6e, 0x03, 0xfb, 0x17, 0xa4, 0xb1, 0x08, 0x6d, 0x7a, 0xcf, - 0x27, 0xe1, 0x9d, 0x88, 0x84, 0xeb, 0xab, 0xdd, 0x26, 0xff, 0x2a, 0xb3, 0x8c, 0x8b, 0x00, 0xfd, - 0x90, 0xd8, 0x31, 0xb9, 0xed, 0x0e, 0x49, 0x77, 0x62, 0x51, 0x7b, 0x61, 0xda, 0x92, 0x38, 0x4c, - 0xc3, 0x90, 0x0c, 0x77, 0x48, 0xb8, 0x42, 0x13, 0x3f, 0xee, 0x4e, 0xf2, 0x06, 0x32, 0xcb, 0x98, - 0x01, 0x9d, 0xdc, 0xef, 0xb6, 0xb8, 0x6a, 0x9d, 0xdc, 0x37, 0xe6, 0xa1, 0x19, 0xc5, 0x76, 0x9c, - 0x44, 0x5d, 0x58, 0xd4, 0x5e, 0x68, 0x58, 0x82, 0x32, 0x2e, 0xc1, 0x34, 0xd7, 0x4b, 0x53, 0x6b, - 0xda, 0x5c, 0x44, 0x65, 0x66, 0x1e, 0xbb, 0x7d, 0x14, 0x90, 0xee, 0x14, 0x57, 0x90, 0x33, 0x8c, - 0xcb, 0xd0, 0xf1, 0x09, 0x71, 0xde, 0x25, 0x61, 0xee, 0xb5, 0x69, 0xde, 0xa8, 0xc4, 0x37, 0x9e, - 0x83, 0x19, 0x8f, 0xd2, 0xfd, 0x4d, 0x6e, 0x2a, 0x8b, 0x53, 0x77, 0x86, 0xb7, 0x2c, 0x70, 0x8d, - 0x17, 0x61, 0xce, 0x0e, 0x02, 0xef, 0x08, 0x59, 0x37, 0x42, 0x97, 0xf8, 0x4e, 0x77, 0x96, 0x37, - 0x2d, 0x7f, 0x30, 0x5e, 0x81, 0x79, 0x39, 0x3e, 0x77, 0x02, 0x27, 0xf5, 0x5d, 0x87, 0xbb, 0x66, - 0xc4, 0x57, 0x63, 0x09, 0x0c, 0xe5, 0x0b, 0xba, 0x60, 0x8e, 0xbb, 0xa0, 0xe2, 0x8b, 0xf9, 0xed, - 0x1a, 0xcc, 0x66, 0x08, 0xbb, 0x41, 0xc3, 0x1e, 0x89, 0x1f, 0x61, 0x9c, 0x21, 0x06, 0x9a, 0x19, - 0x06, 0xd6, 0x2a, 0xe2, 0xc4, 0xb0, 0xd5, 0xbe, 0xfa, 0xf4, 0xd2, 0x80, 0xd2, 0x81, 0x47, 0x70, - 0x22, 0xed, 0x24, 0xbb, 0x4b, 0xeb, 0x7e, 0xfc, 0xd2, 0xd5, 0x77, 0x6d, 0x2f, 0x21, 0x15, 0x41, - 0x5c, 0x29, 0x05, 0x71, 0xf2, 0x64, 0x35, 0xc5, 0x08, 0xaf, 0x57, 0x45, 0xb8, 0x75, 0xb2, 0x9e, - 0xb2, 0x94, 0xf9, 0xa9, 0x0e, 0xe7, 0x78, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x13, 0x52, 0xc0, 0x3c, - 0x34, 0x13, 0x0c, 0x36, 0xc6, 0x45, 0x50, 0x2c, 0x64, 0x21, 0xf5, 0xc8, 0x06, 0x39, 0x24, 0x1e, - 0x8f, 0x48, 0xc3, 0xca, 0x19, 0xc6, 0x02, 0x4c, 0x7e, 0x4c, 0x5d, 0x9f, 0x03, 0xab, 0xce, 0x3f, - 0x66, 0x34, 0xfb, 0xe6, 0xbb, 0xfd, 0x7d, 0x9f, 0xc5, 0x1a, 0xe3, 0x90, 0xd1, 0x72, 0x88, 0x9a, - 0x6a, 0x88, 0x9e, 0x83, 0x19, 0x3b, 0x08, 0x36, 0x6d, 0x7f, 0x40, 0x42, 0xec, 0x74, 0x02, 0xa7, - 0x83, 0xca, 0x65, 0x09, 0x81, 0xf5, 0xd4, 0xa3, 0x49, 0xd8, 0x27, 0xdc, 0xdb, 0x0d, 0x4b, 0xe2, - 0x30, 0x3d, 0x34, 0x20, 0xa1, 0x34, 0x8f, 0x71, 0xea, 0x17, 0xb8, 0x02, 0x12, 0x90, 0x41, 0x82, - 0x25, 0x92, 0x24, 0x26, 0x6f, 0xfa, 0x0e, 0x1f, 0x54, 0x5b, 0x24, 0x92, 0x9c, 0xc5, 0x12, 0x84, - 0xeb, 0x1f, 0xba, 0x71, 0x96, 0xae, 0xa6, 0x30, 0x41, 0x28, 0x4c, 0xf3, 0x6b, 0x1a, 0xcc, 0x6c, - 0x27, 0x3b, 0x9e, 0xdb, 0xe7, 0x0c, 0xe6, 0xfc, 0xdc, 0xc5, 0x9a, 0xe2, 0x62, 0xd9, 0x51, 0xfa, - 0x68, 0x47, 0xd5, 0x54, 0x47, 0xcd, 0x43, 0x73, 0x40, 0x7c, 0x87, 0x84, 0xc2, 0xf1, 0x82, 0x12, - 0x03, 0x6a, 0xa4, 0x03, 0x32, 0xbf, 0x59, 0x87, 0xc9, 0xcf, 0xd8, 0x84, 0x45, 0x68, 0x07, 0x7b, - 0xd4, 0x27, 0xb7, 0x12, 0x06, 0x3e, 0x61, 0x8b, 0xcc, 0x32, 0xce, 0x43, 0x63, 0xc7, 0x0d, 0xe3, - 0x3d, 0x1e, 0xfd, 0x69, 0x0b, 0x09, 0xc6, 0x25, 0x43, 0xdb, 0xc5, 0x90, 0xb7, 0x2c, 0x24, 0xc4, - 0x80, 0x26, 0xb3, 0x08, 0x2d, 0xc0, 0x24, 0x26, 0xfe, 0xf5, 0x40, 0xc4, 0x34, 0xa3, 0x0b, 0xcb, - 0x04, 0x54, 0x2d, 0x13, 0x1b, 0x76, 0x14, 0x6f, 0xd0, 0x81, 0xeb, 0xaf, 0x07, 0x22, 0xb5, 0xcb, - 0x2c, 0x16, 0xdd, 0x8c, 0xe4, 0x4a, 0xa6, 0xb8, 0x12, 0x95, 0xc9, 0xfa, 0xc9, 0x88, 0x48, 0xa4, - 0x76, 0x89, 0x93, 0x7d, 0xdf, 0x70, 0x87, 0x6e, 0x2c, 0x12, 0xba, 0xc4, 0xa9, 0x40, 0xf9, 0x6c, - 0x25, 0xca, 0x2f, 0x43, 0x67, 0xe0, 0xd1, 0x1d, 0xdb, 0xb3, 0x48, 0xff, 0x70, 0x33, 0x1a, 0x6c, - 0x05, 0x31, 0x4f, 0xe0, 0x0d, 0xab, 0xc4, 0x67, 0x3a, 0x39, 0x04, 0x79, 0x46, 0x5a, 0xa1, 0x0e, - 0x11, 0x69, 0xbb, 0xc0, 0x35, 0xff, 0xa6, 0x01, 0x60, 0x9a, 0xe0, 0x90, 0x28, 0xac, 0xbd, 0x5a, - 0x79, 0xed, 0x9d, 0x87, 0x66, 0x48, 0x86, 0x76, 0xb8, 0x9f, 0xa6, 0x06, 0xa4, 0x0a, 0xce, 0xae, - 0x95, 0x9c, 0xfd, 0x1a, 0xc0, 0x2e, 0xef, 0x87, 0xe9, 0xe1, 0x10, 0x61, 0x89, 0xac, 0x54, 0xce, - 0x2c, 0xa5, 0xe8, 0xb4, 0xa4, 0xe6, 0x2c, 0xef, 0xd8, 0x8e, 0x23, 0xa6, 0x77, 0x03, 0xf3, 0x4e, - 0xc6, 0xa8, 0x98, 0xdd, 0xcd, 0x63, 0x66, 0xf7, 0x44, 0x36, 0x19, 0xfe, 0xaa, 0x41, 0x6b, 0xd9, - 0xb3, 0xfb, 0xfb, 0x63, 0x0e, 0x5d, 0x1d, 0xa2, 0x5e, 0x1a, 0xe2, 0x1a, 0x4c, 0xef, 0x30, 0x75, - 0xe9, 0x10, 0xb8, 0x17, 0xda, 0x57, 0xff, 0xa3, 0x62, 0x94, 0x6a, 0x32, 0xb0, 0x54, 0x39, 0x75, - 0xb8, 0xf5, 0x93, 0x87, 0xdb, 0x38, 0x66, 0xb8, 0xd9, 0xfa, 0x66, 0x7e, 0xb7, 0x06, 0x53, 0x7c, - 0x19, 0xb0, 0xc8, 0x41, 0x42, 0xa2, 0xd8, 0x78, 0x03, 0x26, 0x93, 0xd4, 0x54, 0x6d, 0x5c, 0x53, - 0x33, 0x11, 0xe3, 0x55, 0xb1, 0x7e, 0x73, 0x79, 0x9d, 0xcb, 0x5f, 0xa8, 0x90, 0xcf, 0x0a, 0x02, - 0x2b, 0x6f, 0xce, 0x56, 0xee, 0x3d, 0xdb, 0x77, 0x3c, 0x62, 0x91, 0x28, 0xf1, 0x62, 0xb1, 0x96, - 0x28, 0x3c, 0x44, 0xda, 0xc1, 0x66, 0x34, 0x10, 0xeb, 0xba, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, - 0x84, 0x43, 0xcf, 0x19, 0x2c, 0x41, 0x85, 0xe4, 0x80, 0x47, 0x08, 0xd3, 0x49, 0x4a, 0xe6, 0x7d, - 0x0a, 0xaf, 0x21, 0x10, 0x14, 0x1e, 0x0b, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x8e, 0x12, 0xa7, 0x54, - 0x37, 0xaa, 0x0b, 0x0f, 0x94, 0x16, 0x9e, 0xd2, 0xf2, 0xd0, 0xae, 0x5a, 0x1e, 0xfe, 0x58, 0x83, - 0x69, 0x9c, 0x84, 0x69, 0x68, 0x2e, 0xb2, 0xd9, 0x42, 0x87, 0x0a, 0x16, 0x25, 0x0e, 0x1b, 0x0b, - 0xa3, 0x6e, 0xa9, 0x69, 0x5a, 0xe1, 0x31, 0x40, 0x33, 0xfa, 0x86, 0x92, 0xae, 0x65, 0x56, 0xda, - 0xcb, 0x9a, 0x9c, 0xb6, 0x25, 0x0e, 0x4b, 0xae, 0x31, 0x55, 0x30, 0x96, 0xd1, 0x4c, 0x36, 0xa6, - 0x59, 0xff, 0x88, 0x32, 0x89, 0xc3, 0xa2, 0x14, 0xd3, 0xb4, 0x6f, 0x74, 0x75, 0xce, 0x40, 0xcd, - 0xa2, 0x5f, 0x5c, 0xae, 0x33, 0xba, 0x84, 0x8d, 0xd6, 0xb1, 0xd8, 0x00, 0x05, 0x1b, 0xea, 0x14, - 0x6d, 0x97, 0xa6, 0xe8, 0x25, 0x98, 0x46, 0x3d, 0x85, 0xe5, 0x5a, 0x61, 0xaa, 0x08, 0x9b, 0x2e, - 0x22, 0x4c, 0xc5, 0xc8, 0xcc, 0x08, 0x8c, 0xcc, 0x66, 0xf3, 0xee, 0xa7, 0x3a, 0xc0, 0x2a, 0x09, - 0xec, 0x30, 0x1e, 0x12, 0x3f, 0x66, 0xc3, 0x73, 0x32, 0x2a, 0x0b, 0xae, 0xc2, 0x93, 0x57, 0x59, - 0x5d, 0x5d, 0x65, 0x0d, 0xa8, 0x73, 0x87, 0x63, 0x34, 0xf9, 0xdf, 0xcc, 0x99, 0x81, 0x1d, 0xa2, - 0x36, 0x9c, 0x2a, 0x19, 0xcd, 0x56, 0x51, 0x1a, 0x3a, 0x62, 0xdd, 0x6d, 0x58, 0x48, 0xb0, 0x14, - 0x92, 0xf7, 0xc7, 0x77, 0x2d, 0x4d, 0x5c, 0x71, 0x54, 0xee, 0x89, 0x1b, 0xad, 0xcb, 0xd0, 0x89, - 0x92, 0x9d, 0x7c, 0x70, 0xb7, 0x92, 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0xc0, 0x58, - 0xa3, 0x16, 0x6f, 0x94, 0x33, 0x8a, 0x95, 0x97, 0xf9, 0x63, 0x1d, 0x3a, 0x5b, 0xe1, 0xc0, 0xf6, - 0xdd, 0x2f, 0x65, 0x3b, 0x8c, 0x53, 0x15, 0x2c, 0x8b, 0xd0, 0x26, 0xfe, 0xc0, 0x73, 0xa3, 0xbd, - 0x5b, 0xb9, 0xdf, 0x64, 0x96, 0xec, 0xec, 0xfa, 0xa8, 0x92, 0xa6, 0xa1, 0x94, 0x34, 0xf3, 0xd0, - 0x1c, 0xd2, 0x1d, 0xd7, 0x4b, 0x71, 0x2f, 0x28, 0x8e, 0x79, 0xe2, 0x11, 0x5e, 0xdb, 0x64, 0x98, - 0x4f, 0x19, 0x79, 0x99, 0x33, 0x59, 0x59, 0xe6, 0xb4, 0xe4, 0x32, 0xe7, 0xa4, 0xd2, 0x05, 0xdd, - 0xd5, 0xce, 0xdc, 0xf5, 0x1b, 0x0d, 0x3a, 0xb9, 0xbb, 0xb1, 0xce, 0x1f, 0xe9, 0xae, 0x22, 0x02, - 0xf5, 0x0a, 0x04, 0x66, 0xb8, 0xa9, 0xc9, 0xb8, 0x61, 0x48, 0xa3, 0x91, 0x2b, 0x6d, 0xb6, 0x32, - 0x9a, 0xf5, 0xe6, 0x11, 0x5b, 0x72, 0x16, 0x52, 0xd2, 0xd6, 0xba, 0xa9, 0x6c, 0xad, 0x8b, 0xab, - 0xf1, 0x2f, 0x35, 0x38, 0xcf, 0xa2, 0x5c, 0x1a, 0xc6, 0x16, 0x74, 0x68, 0x01, 0x09, 0x62, 0xb9, - 0x7a, 0xb6, 0x62, 0xb9, 0x29, 0x82, 0xc6, 0x2a, 0x09, 0x33, 0x85, 0x4e, 0xa1, 0x13, 0xb1, 0x7e, - 0x55, 0x29, 0x2c, 0xda, 0x63, 0x95, 0x84, 0xcd, 0x5f, 0x69, 0xd0, 0xc1, 0x05, 0x52, 0x9a, 0xe7, - 0x67, 0x6e, 0xf6, 0x7b, 0x70, 0xbe, 0xd8, 0xf3, 0x86, 0x1b, 0xc5, 0x5d, 0x7d, 0xb1, 0x36, 0xae, - 0xe9, 0x95, 0x0a, 0xd8, 0x5c, 0x7b, 0x72, 0x3b, 0xf1, 0xbc, 0x4d, 0x12, 0x45, 0xf6, 0x80, 0x2c, - 0x1f, 0xf5, 0xc8, 0x01, 0xfb, 0x60, 0x91, 0x83, 0x91, 0x18, 0x62, 0xd5, 0x12, 0x2f, 0x37, 0x5c, - 0xea, 0x67, 0x10, 0x92, 0x59, 0x6c, 0x5a, 0x45, 0xa8, 0xa7, 0x5b, 0x5b, 0xac, 0xb1, 0x85, 0x58, - 0x90, 0xc6, 0x47, 0x30, 0xc5, 0x2b, 0x01, 0xd1, 0x4d, 0xb7, 0xce, 0x07, 0xf0, 0x7a, 0x65, 0xed, - 0x51, 0x69, 0x15, 0xd6, 0x14, 0x82, 0x7e, 0xd3, 0x8f, 0xc3, 0x23, 0x4b, 0xd1, 0xb8, 0xf0, 0x01, - 0xcc, 0x95, 0x9a, 0x18, 0x1d, 0xa8, 0xed, 0x93, 0x23, 0x31, 0x0e, 0xf6, 0xa7, 0xf1, 0x3f, 0xd0, - 0x38, 0x64, 0x9b, 0x66, 0x11, 0xfd, 0x85, 0x0a, 0x0b, 0x84, 0xcd, 0x16, 0x36, 0x7c, 0x55, 0xff, - 0x3f, 0xcd, 0x7c, 0x36, 0x1b, 0x98, 0x3c, 0x46, 0x4d, 0x19, 0xa3, 0xf9, 0x36, 0xb4, 0x37, 0xa3, - 0xc1, 0xaa, 0x1d, 0xdb, 0xbc, 0xe1, 0xeb, 0xd0, 0x1e, 0xe6, 0x24, 0x6f, 0x5c, 0xdd, 0x9f, 0x10, - 0xb2, 0xe4, 0xe6, 0xe6, 0xef, 0x75, 0xe8, 0x56, 0xbb, 0x22, 0x0a, 0x98, 0x0d, 0x24, 0x0c, 0x79, - 0x89, 0xaf, 0xf1, 0x09, 0x96, 0x92, 0x2c, 0x76, 0x24, 0x0c, 0xd9, 0x1a, 0x26, 0x4a, 0x75, 0xa4, - 0x8c, 0x25, 0xa8, 0x7b, 0x69, 0x58, 0x8e, 0xb7, 0x82, 0xb7, 0x33, 0x86, 0xd0, 0xe1, 0xde, 0x95, - 0x06, 0x24, 0x62, 0x76, 0x7d, 0xec, 0x98, 0x45, 0x01, 0x06, 0x4d, 0xd2, 0x81, 0x81, 0x2b, 0xa9, - 0x5e, 0xe8, 0xc3, 0x13, 0x95, 0x4d, 0x2b, 0x02, 0xf8, 0xbf, 0x6a, 0x00, 0x2f, 0x8e, 0x1e, 0x4a, - 0x31, 0x88, 0x01, 0x18, 0x6b, 0x24, 0xde, 0xb4, 0xef, 0x5f, 0xf7, 0x9d, 0x4d, 0xd7, 0xef, 0x91, - 0x03, 0x86, 0xf6, 0x45, 0x68, 0x8b, 0x23, 0x90, 0x2c, 0x4c, 0x2d, 0x4b, 0x66, 0x8d, 0x3c, 0x19, - 0x29, 0xcc, 0x87, 0x5a, 0x69, 0x3e, 0x98, 0xd7, 0x60, 0x4a, 0xee, 0x8e, 0x2f, 0x22, 0xf6, 0xfd, - 0x1e, 0x39, 0xe0, 0x03, 0x9a, 0xb6, 0x04, 0xc5, 0xf9, 0xbc, 0x85, 0xd8, 0x61, 0x08, 0xca, 0xfc, - 0x9d, 0x0e, 0xe7, 0x4a, 0x26, 0x47, 0xc1, 0x83, 0xea, 0x91, 0xf1, 0x52, 0x1b, 0x85, 0x97, 0xba, - 0x82, 0x97, 0x7d, 0x98, 0xc3, 0x20, 0x49, 0x5d, 0x77, 0x1b, 0x1c, 0x00, 0x6f, 0x54, 0x15, 0xfc, - 0x65, 0x23, 0x45, 0xec, 0x25, 0x2e, 0x06, 0xbf, 0xac, 0x77, 0x81, 0xc0, 0x7c, 0x75, 0xe3, 0x8a, - 0xf0, 0xbf, 0xac, 0x86, 0xff, 0xdf, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, 0xff, 0x00, 0x66, 0x59, - 0x52, 0xed, 0x11, 0xdf, 0xd9, 0x8c, 0x06, 0xdc, 0x91, 0x8b, 0xd0, 0x46, 0xf9, 0xcd, 0x68, 0x90, - 0x6f, 0x00, 0x25, 0x16, 0x6b, 0xd1, 0xf7, 0x5c, 0x96, 0x3c, 0x79, 0x0b, 0x91, 0xf4, 0x24, 0x16, - 0x5b, 0x20, 0x23, 0x22, 0x4e, 0x8b, 0x98, 0x77, 0x6b, 0x56, 0x46, 0x9b, 0xbf, 0x68, 0xc2, 0x84, - 0x40, 0x23, 0x5f, 0x14, 0xd9, 0x9e, 0x3b, 0x4b, 0xab, 0x48, 0x61, 0x5d, 0xdb, 0x3f, 0xcc, 0xe1, - 0x85, 0x94, 0x7c, 0x54, 0x57, 0x53, 0x8f, 0xea, 0x0a, 0x36, 0xd5, 0xcb, 0x36, 0x15, 0xc6, 0xd5, - 0x28, 0x8f, 0x8b, 0x95, 0x71, 0xbc, 0xb2, 0xd9, 0xf6, 0xec, 0x78, 0x97, 0x86, 0x43, 0xb1, 0x85, - 0x6e, 0x58, 0x25, 0x3e, 0x2b, 0x1d, 0x91, 0x97, 0xd5, 0xfe, 0xb8, 0x84, 0x17, 0xb8, 0xac, 0xd2, - 0x46, 0x4e, 0xba, 0x07, 0xc0, 0x33, 0x1b, 0x95, 0x89, 0xb6, 0x45, 0x91, 0x4b, 0x7d, 0x5e, 0x85, - 0x62, 0xa9, 0x2f, 0xb3, 0xd8, 0xc8, 0x87, 0xd1, 0xe0, 0x46, 0x48, 0x87, 0x62, 0x7b, 0x95, 0x92, - 0x7c, 0xe4, 0xd4, 0x8f, 0xd3, 0x0a, 0xb6, 0x8d, 0xb2, 0x12, 0x8b, 0xc9, 0x0a, 0x92, 0xd7, 0xf9, - 0x53, 0x56, 0x4a, 0x32, 0x2c, 0x45, 0xe4, 0x40, 0x14, 0xef, 0xec, 0x4f, 0x25, 0x72, 0xb3, 0x6a, - 0xe4, 0x0a, 0xd5, 0x58, 0x87, 0x7f, 0x95, 0xab, 0xb1, 0xbc, 0xc4, 0x99, 0x53, 0x4a, 0x9c, 0xeb, - 0x30, 0x41, 0x03, 0x36, 0xfd, 0xa3, 0xae, 0xc1, 0xa7, 0xcb, 0xf3, 0xa3, 0x13, 0xd4, 0xd2, 0x16, - 0xb6, 0xc4, 0x89, 0x91, 0xca, 0x19, 0x1b, 0x30, 0x4b, 0x77, 0x77, 0x3d, 0xd7, 0x27, 0xdb, 0x49, - 0xb4, 0xc7, 0xb7, 0xda, 0xe7, 0x38, 0xd8, 0xcd, 0xaa, 0x22, 0x42, 0x6d, 0x69, 0x15, 0x45, 0x59, - 0xe5, 0x67, 0xc7, 0xb8, 0xc9, 0xe1, 0x09, 0xee, 0x3c, 0x4f, 0x70, 0x0a, 0x8f, 0x9f, 0x79, 0x4a, - 0x89, 0xfe, 0x09, 0xee, 0x38, 0x99, 0x85, 0x5a, 0x62, 0xbb, 0xbf, 0x47, 0xf8, 0xa1, 0x51, 0x77, - 0x1e, 0xeb, 0x47, 0x99, 0x27, 0xaa, 0xbb, 0x27, 0xd3, 0xea, 0x6e, 0xe1, 0x55, 0x98, 0x92, 0x07, - 0x58, 0x31, 0x99, 0xcf, 0xcb, 0x93, 0x79, 0x52, 0x9e, 0xab, 0xdf, 0xd1, 0x60, 0xb6, 0x30, 0x34, - 0xd6, 0x3a, 0x76, 0x63, 0x8f, 0x08, 0x0d, 0x48, 0xb0, 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x98, 0x3c, - 0xfc, 0x6f, 0x61, 0x49, 0x2d, 0xdb, 0xb2, 0x9b, 0x30, 0xe5, 0x6e, 0xf5, 0x98, 0xa2, 0x1e, 0x4d, - 0x7c, 0x27, 0xbb, 0x34, 0x90, 0x78, 0x7c, 0xdb, 0xbe, 0xd5, 0x5b, 0xb6, 0x9d, 0x01, 0xc1, 0x2b, - 0xa4, 0x06, 0xb7, 0x49, 0x65, 0x9a, 0x0e, 0x4c, 0xde, 0x76, 0x83, 0x68, 0x85, 0x0e, 0x87, 0x0c, - 0x02, 0x0e, 0x89, 0x59, 0x1d, 0xaf, 0x71, 0x87, 0x09, 0x8a, 0x79, 0xd3, 0x21, 0xbb, 0x76, 0xe2, - 0xc5, 0xac, 0x69, 0x9a, 0x32, 0x24, 0x16, 0x3f, 0x42, 0x88, 0xa8, 0xbf, 0x8a, 0xd2, 0x68, 0xa7, - 0xc4, 0x31, 0x7f, 0xab, 0x43, 0x87, 0x67, 0xc4, 0x15, 0x0e, 0x38, 0x87, 0x0b, 0x5d, 0x85, 0x06, - 0x4f, 0x00, 0xa2, 0xa2, 0x3c, 0xfe, 0xdc, 0x05, 0x9b, 0x1a, 0xd7, 0xa0, 0x49, 0x03, 0x5e, 0x86, - 0x62, 0xba, 0x7c, 0x6e, 0x94, 0x90, 0x7a, 0x4d, 0x60, 0x09, 0x29, 0xe3, 0x06, 0xc0, 0x30, 0xaf, - 0x3a, 0xb1, 0x78, 0x18, 0x57, 0x87, 0x24, 0xc9, 0x9c, 0x9b, 0xad, 0x8b, 0xd9, 0x5d, 0x41, 0xcd, - 0x52, 0x99, 0xc6, 0x2d, 0x98, 0xe1, 0x66, 0x6f, 0xa5, 0x07, 0x70, 0x3c, 0x06, 0xe3, 0xf7, 0x58, - 0x90, 0x36, 0xbf, 0xaf, 0x09, 0x37, 0xb2, 0xaf, 0x3d, 0x82, 0xbe, 0xcf, 0x5d, 0xa2, 0x9d, 0xca, - 0x25, 0x0b, 0x30, 0x39, 0x4c, 0xa4, 0xf3, 0xc0, 0x9a, 0x95, 0xd1, 0x79, 0x88, 0x6a, 0x63, 0x87, - 0xc8, 0xfc, 0x81, 0x06, 0xdd, 0xb7, 0xa8, 0xeb, 0xf3, 0x0f, 0xd7, 0x83, 0xc0, 0x13, 0x57, 0x4a, - 0xa7, 0x8e, 0xf9, 0x17, 0xa0, 0x65, 0xa3, 0x1a, 0x3f, 0x16, 0x61, 0x1f, 0xe3, 0x8c, 0x2f, 0x97, - 0x91, 0x0e, 0x5a, 0x6a, 0xf2, 0x41, 0x8b, 0xf9, 0x89, 0x06, 0x33, 0xe8, 0x94, 0x77, 0x12, 0x37, - 0x3e, 0xb5, 0x7d, 0xcb, 0x30, 0x79, 0x90, 0xb8, 0xf1, 0x29, 0x50, 0x99, 0xc9, 0x95, 0xf1, 0x54, - 0xab, 0xc0, 0x93, 0xf9, 0x13, 0x0d, 0x2e, 0x14, 0xdd, 0x7a, 0xbd, 0xdf, 0x27, 0xc1, 0xc3, 0x9c, - 0x52, 0xca, 0x41, 0x53, 0xbd, 0x70, 0xd0, 0x54, 0x69, 0xb2, 0x45, 0x3e, 0x26, 0xfd, 0x47, 0xd7, - 0xe4, 0xaf, 0xea, 0xf0, 0xd4, 0x5a, 0x36, 0xf1, 0x6e, 0x87, 0xb6, 0x1f, 0xed, 0x92, 0x30, 0x7c, - 0x88, 0xf6, 0x6e, 0xc0, 0xb4, 0x4f, 0xee, 0xe5, 0x36, 0x89, 0xe9, 0x38, 0xae, 0x1a, 0x55, 0x78, - 0xbc, 0xdc, 0x65, 0xfe, 0x43, 0x83, 0x0e, 0xea, 0x79, 0xdb, 0xed, 0xef, 0x3f, 0xc4, 0xc1, 0xdf, - 0x82, 0x99, 0x7d, 0x6e, 0x01, 0xa3, 0x4e, 0x91, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x53, 0x0d, - 0xe6, 0xd2, 0x9b, 0xec, 0x43, 0xf7, 0x61, 0x82, 0x75, 0x1b, 0x66, 0xf1, 0xa4, 0xfd, 0xb4, 0x0e, - 0x28, 0x8a, 0x8f, 0xe9, 0x81, 0x9f, 0x6b, 0x30, 0x8b, 0x9a, 0xde, 0xf4, 0x63, 0x12, 0x9e, 0x7a, - 0xfc, 0x37, 0xa1, 0x4d, 0xfc, 0x38, 0xb4, 0xfd, 0xd3, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, - 0x89, 0x06, 0x06, 0x57, 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x62, 0xe8, 0xc6, 0x33, 0xf8, - 0x7b, 0x3a, 0x9c, 0x97, 0xb4, 0x6c, 0x26, 0xf1, 0xa3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, - 0xc8, 0xf7, 0xa0, 0xe3, 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, - 0xf1, 0xe2, 0x68, 0xda, 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, - 0xc7, 0xc6, 0x45, 0xe6, 0x8f, 0x34, 0x98, 0xc1, 0x26, 0x8f, 0xfe, 0x90, 0xd9, 0x5a, 0x8f, 0x40, - 0xfe, 0xdc, 0x44, 0x89, 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x8f, 0x2e, 0xb4, 0x6e, 0x42, - 0xbb, 0xbf, 0x67, 0xfb, 0x83, 0x53, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x52, 0x3e, 0xb4, 0x5f, - 0xc1, 0x4f, 0x7c, 0xf8, 0x2f, 0x15, 0x86, 0x72, 0xec, 0x3b, 0x87, 0x07, 0x73, 0xfa, 0x3e, 0xcc, - 0xe1, 0x4d, 0xb1, 0x54, 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, - 0xaa, 0x2f, 0x09, 0xc4, 0x1b, 0xbb, 0xfc, 0x25, 0xc1, 0x45, 0x00, 0xdb, 0x71, 0xde, 0xa3, 0xa1, - 0xe3, 0xfa, 0x69, 0x81, 0x2f, 0x71, 0xcc, 0xb7, 0x60, 0xea, 0x46, 0x48, 0x87, 0xb7, 0xa5, 0x3b, - 0xdf, 0x63, 0x6f, 0xa5, 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0x3f, 0x84, 0x27, 0x4a, 0x86, - 0x73, 0x67, 0xad, 0xe0, 0x55, 0x76, 0xda, 0x89, 0x80, 0x4c, 0xd5, 0x59, 0x9e, 0x6c, 0x8b, 0xa5, - 0x08, 0x99, 0x5f, 0xd1, 0xe0, 0x99, 0x92, 0xfa, 0xeb, 0x41, 0x10, 0xd2, 0x43, 0x11, 0x93, 0xb3, - 0xe8, 0x46, 0x2d, 0x7e, 0xf5, 0x62, 0xf1, 0x5b, 0x69, 0x84, 0x52, 0xb0, 0x7f, 0x06, 0x46, 0xfc, - 0x50, 0x83, 0x59, 0x61, 0x84, 0xe3, 0x88, 0x6e, 0x5f, 0x86, 0x26, 0x3e, 0xa6, 0x11, 0x1d, 0x3e, - 0x53, 0xd9, 0x61, 0xfa, 0x08, 0xc8, 0x12, 0x8d, 0xcb, 0x88, 0xd4, 0xab, 0x66, 0xd4, 0xff, 0x67, - 0x60, 0x1f, 0xfb, 0xb9, 0x8b, 0x10, 0x30, 0xbf, 0x98, 0x82, 0x79, 0x95, 0x78, 0xe4, 0x2c, 0x7d, - 0x64, 0xde, 0x81, 0x19, 0xfe, 0xb2, 0x27, 0xf7, 0xc1, 0x99, 0xa8, 0x7d, 0x0f, 0x3a, 0x5c, 0xed, - 0x99, 0xdb, 0x9b, 0xcd, 0x0e, 0xe6, 0x1f, 0x39, 0x95, 0x9c, 0x89, 0xf6, 0xff, 0x86, 0x73, 0xa9, - 0xef, 0xf1, 0x75, 0x2f, 0xea, 0x1e, 0x71, 0xb7, 0x67, 0x7e, 0x04, 0xf3, 0x2b, 0xd4, 0x3f, 0x24, - 0x61, 0xa4, 0x3c, 0x08, 0x46, 0x09, 0x65, 0xf2, 0x0b, 0xca, 0x58, 0x02, 0xa3, 0x2f, 0x49, 0x88, - 0xd3, 0x45, 0x9d, 0x9f, 0x2e, 0x56, 0x7c, 0x31, 0x3f, 0x86, 0x05, 0xb9, 0x87, 0x1e, 0x89, 0xb7, - 0x43, 0xf7, 0x50, 0xea, 0x45, 0x1c, 0x82, 0x6b, 0xca, 0x21, 0x78, 0x7e, 0x68, 0xae, 0x2b, 0x87, - 0xe6, 0x17, 0xa0, 0xe5, 0x46, 0x42, 0x01, 0x07, 0xe1, 0xa4, 0x95, 0x33, 0x4c, 0x1b, 0xe6, 0x30, - 0x5c, 0xe2, 0x52, 0x8a, 0x77, 0xb1, 0x00, 0x93, 0x88, 0xc1, 0xac, 0x93, 0x8c, 0x1e, 0x79, 0xc5, - 0x33, 0xf2, 0x42, 0xd3, 0xec, 0xc1, 0x9c, 0x78, 0xb8, 0xb3, 0x6d, 0x0f, 0x5c, 0x1f, 0x93, 0xf2, - 0x45, 0x80, 0xc0, 0x1e, 0xa4, 0xcf, 0x1e, 0xf1, 0x6a, 0x4e, 0xe2, 0xb0, 0xef, 0xd1, 0x1e, 0xbd, - 0x27, 0xbe, 0xeb, 0xf8, 0x3d, 0xe7, 0x98, 0xef, 0x82, 0x61, 0x91, 0x28, 0xa0, 0x7e, 0x44, 0x24, - 0xad, 0x8b, 0xd0, 0x5e, 0x49, 0xc2, 0x90, 0xf8, 0xac, 0xab, 0xf4, 0x2d, 0x9c, 0xcc, 0x62, 0x7a, - 0x7b, 0xb9, 0x5e, 0x3c, 0xc6, 0x97, 0x38, 0xe6, 0xdf, 0x6b, 0xd0, 0xea, 0xb9, 0x03, 0xdf, 0xf6, - 0x2c, 0x72, 0x60, 0xbc, 0x0e, 0x4d, 0xdc, 0xe2, 0x08, 0x64, 0x55, 0x1d, 0x2b, 0x63, 0x6b, 0xdc, - 0xcb, 0x59, 0xe4, 0xe0, 0xe6, 0xbf, 0x59, 0x42, 0xc6, 0x78, 0x27, 0x7d, 0xde, 0xb4, 0x8e, 0x47, - 0x56, 0x62, 0xbd, 0xfb, 0xcf, 0x13, 0x94, 0x88, 0xd6, 0xa8, 0x4b, 0xd5, 0xc0, 0x0c, 0xea, 0xf3, - 0x12, 0x48, 0xa4, 0x93, 0xd1, 0x06, 0x61, 0xa5, 0x24, 0x0c, 0x42, 0x19, 0x26, 0x6d, 0xf3, 0x43, - 0x1d, 0xb1, 0xb2, 0x8f, 0x96, 0xc6, 0xb3, 0x1f, 0x21, 0x8d, 0x32, 0x4c, 0x7a, 0x2f, 0xf1, 0x07, - 0x77, 0x02, 0x71, 0xd6, 0x38, 0x5a, 0xfa, 0x26, 0x6f, 0x26, 0xa4, 0x51, 0x86, 0x49, 0x87, 0x3c, - 0xd9, 0x73, 0xa7, 0x1f, 0x27, 0x8d, 0x6b, 0x82, 0x90, 0x46, 0x19, 0xe3, 0x7d, 0xe8, 0xac, 0x91, - 0xd8, 0xa2, 0x74, 0xb8, 0x7c, 0xb4, 0x26, 0xae, 0x7a, 0xf0, 0xf5, 0xf9, 0x8b, 0x23, 0xf5, 0x14, - 0x05, 0x50, 0x63, 0x49, 0xcf, 0x72, 0x0b, 0x26, 0x02, 0xfb, 0xc8, 0xa3, 0xb6, 0x63, 0x7e, 0xa3, - 0x0e, 0x90, 0x1a, 0x11, 0xf1, 0xa2, 0x4b, 0x09, 0xff, 0xa5, 0x13, 0xc3, 0x1f, 0x78, 0x47, 0x12, - 0x00, 0x7a, 0xd5, 0x00, 0xf8, 0xaf, 0x71, 0x01, 0x80, 0xda, 0x0a, 0x10, 0xb8, 0x56, 0x80, 0xc0, - 0xa5, 0x13, 0x21, 0x20, 0x8c, 0x12, 0x20, 0xb8, 0x56, 0x00, 0xc1, 0xa5, 0x13, 0x41, 0x20, 0xe4, - 0x05, 0x0c, 0xae, 0x15, 0x60, 0x70, 0xe9, 0x44, 0x18, 0x08, 0x79, 0x01, 0x84, 0x6b, 0x05, 0x20, - 0x5c, 0x3a, 0x11, 0x08, 0x42, 0x5e, 0x40, 0xe1, 0xc3, 0x91, 0x50, 0x58, 0x7a, 0x00, 0x28, 0xa0, - 0xce, 0x63, 0xc1, 0xf0, 0x07, 0x1d, 0x66, 0xd6, 0xb3, 0xf7, 0xc0, 0xfc, 0x5e, 0xa5, 0xf4, 0x60, - 0x51, 0xab, 0x78, 0xb0, 0x68, 0xbc, 0x08, 0x73, 0xc8, 0x20, 0xd2, 0x65, 0x12, 0xa6, 0xfb, 0xf2, - 0x07, 0x7e, 0x7d, 0x96, 0x44, 0x31, 0x1d, 0xae, 0xda, 0xb1, 0x9d, 0x96, 0x99, 0x39, 0x47, 0xbe, - 0xdc, 0xac, 0x97, 0x7e, 0x87, 0x10, 0x52, 0x3a, 0xcc, 0x6e, 0x2d, 0x05, 0xc5, 0x24, 0x62, 0x77, - 0x48, 0x68, 0x12, 0x8b, 0x04, 0x97, 0x92, 0xf8, 0xca, 0xcc, 0x71, 0x6d, 0x7e, 0x25, 0x28, 0x9e, - 0x60, 0x65, 0x0c, 0x9e, 0x93, 0xf3, 0x2b, 0x4e, 0xf1, 0x3b, 0x81, 0x9c, 0x33, 0xc6, 0x75, 0x24, - 0xff, 0xc9, 0x89, 0x1b, 0xbb, 0xf2, 0xd3, 0xac, 0x86, 0xa5, 0xf0, 0xcc, 0xbf, 0x68, 0x70, 0x6e, - 0xdb, 0x0e, 0x63, 0xb7, 0xef, 0x06, 0xb6, 0x1f, 0x6f, 0x92, 0xd8, 0xe6, 0xe3, 0x54, 0x1e, 0xcc, - 0x6a, 0x0f, 0xf6, 0x60, 0x76, 0x1b, 0x66, 0x07, 0xea, 0x5e, 0xeb, 0x01, 0xb7, 0x49, 0x45, 0x71, - 0xe5, 0xf5, 0x6f, 0xed, 0x81, 0x5f, 0xff, 0x9a, 0x5f, 0xd7, 0x61, 0xb6, 0xb0, 0x30, 0x1c, 0xbb, - 0xaa, 0x5e, 0x07, 0xc8, 0x9f, 0x9e, 0x1f, 0x73, 0x15, 0xa1, 0xe2, 0xd1, 0x92, 0x84, 0xaa, 0xee, - 0x42, 0x6b, 0xa7, 0xbf, 0x0b, 0xbd, 0x09, 0xed, 0x20, 0x0f, 0xd2, 0x31, 0x3b, 0xc1, 0x8a, 0x50, - 0x5a, 0xb2, 0xa8, 0xf9, 0x01, 0xcc, 0x95, 0x72, 0x24, 0xbf, 0xa0, 0xa4, 0xfb, 0xc4, 0xcf, 0x2e, - 0x28, 0x19, 0x21, 0x01, 0x5a, 0x2f, 0x02, 0xda, 0x73, 0x0f, 0xe5, 0x9f, 0x55, 0x08, 0xd2, 0xfc, - 0x96, 0x0e, 0xf3, 0xd5, 0x6b, 0xe7, 0xe3, 0xea, 0xee, 0x1d, 0xe8, 0x8e, 0x5a, 0x4b, 0xce, 0xcc, - 0xeb, 0x39, 0xba, 0xb3, 0x2a, 0xe3, 0x71, 0x75, 0xf7, 0xb9, 0x14, 0xdd, 0xd2, 0x62, 0x6b, 0xfe, - 0x2c, 0xf3, 0x4f, 0x56, 0x47, 0x3d, 0xa6, 0xfe, 0x31, 0x2e, 0x43, 0x07, 0x87, 0x29, 0x3d, 0x9e, - 0xc1, 0xb2, 0xbc, 0xc4, 0xcf, 0x33, 0x85, 0x54, 0x78, 0x9c, 0x19, 0x66, 0x7f, 0xad, 0xa5, 0x31, - 0xc9, 0xaa, 0xd3, 0xcf, 0x55, 0x4c, 0x72, 0xa4, 0x49, 0x65, 0x95, 0x84, 0xb4, 0xac, 0x6a, 0xfe, - 0x17, 0xd2, 0x4e, 0x46, 0x5a, 0xe6, 0x4b, 0xa9, 0xc4, 0x34, 0xdf, 0x81, 0xa7, 0x46, 0x6e, 0x1c, - 0x8e, 0x75, 0xaa, 0x54, 0xa1, 0xe9, 0x4a, 0x85, 0x66, 0xfe, 0x59, 0x83, 0xa7, 0x8f, 0xa9, 0x40, - 0x0b, 0xe1, 0xd0, 0x4e, 0x13, 0x8e, 0x57, 0x60, 0x9e, 0xfa, 0x2b, 0xd4, 0xf7, 0x49, 0x3f, 0x76, - 0xfd, 0x41, 0xa9, 0xe2, 0x1c, 0xf1, 0x35, 0x9f, 0x57, 0xb5, 0xea, 0x79, 0x55, 0x1f, 0x35, 0xaf, - 0x1a, 0xea, 0xbc, 0xfa, 0x32, 0x4c, 0xaf, 0x12, 0x6f, 0x33, 0x1a, 0xa4, 0x6f, 0xa2, 0xcf, 0xf4, - 0xf0, 0xa0, 0xf8, 0x72, 0xb4, 0x5e, 0x7e, 0x39, 0xba, 0x0c, 0x33, 0xb2, 0x01, 0xa7, 0x79, 0xf3, - 0xbb, 0x7c, 0xe1, 0xfd, 0x85, 0x25, 0xf1, 0x7f, 0x01, 0x5e, 0x2b, 0x79, 0x7f, 0xa7, 0xc9, 0x7f, - 0x49, 0xfc, 0xd2, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x80, 0x2b, 0x62, 0xc9, 0x70, 0x40, 0x00, - 0x00, +var fileDescriptor_ws_e0da77577e3c5842 = []byte{ + // 3695 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5c, 0xcd, 0x6f, 0x24, 0x47, + 0x15, 0xa7, 0xe7, 0xcb, 0x9e, 0x37, 0xfe, 0x18, 0xf7, 0xee, 0x3a, 0x13, 0x67, 0xb3, 0x98, 0xce, + 0x2a, 0x09, 0x4b, 0xf0, 0xa2, 0xcd, 0x87, 0x20, 0x1f, 0x8b, 0xd6, 0x76, 0xd6, 0xeb, 0xc4, 0x5e, + 0x3b, 0x3d, 0xbb, 0x09, 0x4a, 0x22, 0x2d, 0xed, 0xe9, 0xf2, 0xb8, 0xe3, 0x9e, 0xae, 0x76, 0x7f, + 0x78, 0xd7, 0x5c, 0x90, 0x40, 0x42, 0x88, 0x03, 0x5c, 0xf8, 0x90, 0x38, 0x72, 0x41, 0x20, 0x14, + 0x21, 0x04, 0x88, 0x03, 0x42, 0x1c, 0xb8, 0x71, 0xe1, 0xc0, 0x8d, 0x03, 0x88, 0x33, 0xff, 0x00, + 0x02, 0x29, 0xa8, 0xea, 0x55, 0x77, 0x57, 0x75, 0xf7, 0x8c, 0x67, 0x2d, 0x2b, 0xbb, 0xd1, 0x72, + 0xf3, 0x7b, 0x5d, 0xef, 0xd5, 0xab, 0xf7, 0x7e, 0xf5, 0xea, 0xd5, 0xc7, 0x18, 0x66, 0x43, 0x7b, + 0xff, 0xce, 0xdd, 0xf0, 0xf2, 0xdd, 0x70, 0xc9, 0x0f, 0x68, 0x44, 0xf5, 0xb9, 0x90, 0x04, 0x87, + 0x24, 0xb8, 0x63, 0xf9, 0xce, 0x1d, 0xdf, 0x0a, 0xac, 0x41, 0xb8, 0xf0, 0xcc, 0x96, 0x4f, 0xbc, + 0x3b, 0xeb, 0x9b, 0x97, 0xfd, 0xfd, 0xfe, 0x65, 0xde, 0xea, 0x72, 0x22, 0x15, 0x58, 0xbe, 0x4f, + 0x02, 0x21, 0x6b, 0xfc, 0xbd, 0x06, 0xcd, 0xb5, 0x80, 0xc6, 0xfe, 0xba, 0xb7, 0x4b, 0xf5, 0x0e, + 0x4c, 0xf4, 0x39, 0xb1, 0xda, 0xd1, 0x16, 0xb5, 0x67, 0x9b, 0x66, 0x42, 0xea, 0xe7, 0xa1, 0xc9, + 0xff, 0xbc, 0x69, 0x0d, 0x48, 0xa7, 0xc2, 0xbf, 0x65, 0x0c, 0xdd, 0x80, 0x29, 0x8f, 0x46, 0xce, + 0xae, 0xd3, 0xb3, 0x22, 0x87, 0x7a, 0x9d, 0x2a, 0x6f, 0xa0, 0xf0, 0x58, 0x1b, 0xc7, 0x8b, 0x02, + 0x6a, 0xc7, 0x3d, 0xde, 0xa6, 0x86, 0x6d, 0x64, 0x1e, 0xeb, 0x7f, 0xd7, 0xea, 0x91, 0xdb, 0xe6, + 0x46, 0xa7, 0x8e, 0xfd, 0x0b, 0x52, 0x5f, 0x84, 0x16, 0xbd, 0xeb, 0x91, 0xe0, 0x76, 0x48, 0x82, + 0xf5, 0xd5, 0x4e, 0x83, 0x7f, 0x95, 0x59, 0xfa, 0x05, 0x80, 0x5e, 0x40, 0xac, 0x88, 0xdc, 0x72, + 0x06, 0xa4, 0x33, 0xb1, 0xa8, 0x3d, 0x3b, 0x6d, 0x4a, 0x1c, 0xa6, 0x61, 0x40, 0x06, 0x3b, 0x24, + 0x58, 0xa1, 0xb1, 0x17, 0x75, 0x26, 0x79, 0x03, 0x99, 0xa5, 0xcf, 0x40, 0x85, 0xdc, 0xeb, 0x34, + 0xb9, 0xea, 0x0a, 0xb9, 0xa7, 0xcf, 0x43, 0x23, 0x8c, 0xac, 0x28, 0x0e, 0x3b, 0xb0, 0xa8, 0x3d, + 0x5b, 0x37, 0x05, 0xa5, 0x5f, 0x84, 0x69, 0xae, 0x97, 0x26, 0xd6, 0xb4, 0xb8, 0x88, 0xca, 0x4c, + 0x3d, 0x76, 0xeb, 0xc8, 0x27, 0x9d, 0x29, 0xae, 0x20, 0x63, 0xe8, 0x97, 0xa0, 0xed, 0x11, 0x62, + 0xbf, 0x4d, 0x82, 0xcc, 0x6b, 0xd3, 0xbc, 0x51, 0x81, 0xaf, 0x3f, 0x0d, 0x33, 0x2e, 0xa5, 0xfb, + 0x9b, 0xdc, 0x54, 0x16, 0xa7, 0xce, 0x0c, 0x6f, 0x99, 0xe3, 0xea, 0xcf, 0xc1, 0x9c, 0xe5, 0xfb, + 0xee, 0x11, 0xb2, 0xae, 0x07, 0x0e, 0xf1, 0xec, 0xce, 0x2c, 0x6f, 0x5a, 0xfc, 0xa0, 0xbf, 0x04, + 0xf3, 0x72, 0x7c, 0x6e, 0xfb, 0x76, 0xe2, 0xbb, 0x36, 0x77, 0xcd, 0x90, 0xaf, 0xfa, 0x12, 0xe8, + 0xca, 0x17, 0x74, 0xc1, 0x1c, 0x77, 0x41, 0xc9, 0x17, 0xe3, 0xfb, 0x55, 0x98, 0x4d, 0x11, 0x76, + 0x9d, 0x06, 0x5d, 0x12, 0x3d, 0xc4, 0x38, 0x43, 0x0c, 0x34, 0x52, 0x0c, 0xac, 0x95, 0xc4, 0x89, + 0x61, 0xab, 0x75, 0xe5, 0x89, 0xa5, 0x3e, 0xa5, 0x7d, 0x97, 0xe0, 0x44, 0xda, 0x89, 0x77, 0x97, + 0xd6, 0xbd, 0xe8, 0xf9, 0x2b, 0x6f, 0x5b, 0x6e, 0x4c, 0x4a, 0x82, 0xb8, 0x52, 0x08, 0xe2, 0xe4, + 0xf1, 0x6a, 0xf2, 0x11, 0x5e, 0x2f, 0x8b, 0x70, 0xf3, 0x78, 0x3d, 0x45, 0x29, 0xe3, 0xa3, 0x0a, + 0x9c, 0xe1, 0x61, 0x11, 0xdc, 0xd8, 0x75, 0x8f, 0x49, 0x01, 0xf3, 0xd0, 0x88, 0x31, 0xd8, 0x18, + 0x17, 0x41, 0xb1, 0x90, 0x05, 0xd4, 0x25, 0x1b, 0xe4, 0x90, 0xb8, 0x3c, 0x22, 0x75, 0x33, 0x63, + 0xe8, 0x0b, 0x30, 0xf9, 0x01, 0x75, 0x3c, 0x0e, 0xac, 0x1a, 0xff, 0x98, 0xd2, 0xec, 0x9b, 0xe7, + 0xf4, 0xf6, 0x3d, 0x16, 0x6b, 0x8c, 0x43, 0x4a, 0xcb, 0x21, 0x6a, 0xa8, 0x21, 0x7a, 0x1a, 0x66, + 0x2c, 0xdf, 0xdf, 0xb4, 0xbc, 0x3e, 0x09, 0xb0, 0xd3, 0x09, 0x9c, 0x0e, 0x2a, 0x97, 0x25, 0x04, + 0xd6, 0x53, 0x97, 0xc6, 0x41, 0x8f, 0x70, 0x6f, 0xd7, 0x4d, 0x89, 0xc3, 0xf4, 0x50, 0x9f, 0x04, + 0xd2, 0x3c, 0xc6, 0xa9, 0x9f, 0xe3, 0x0a, 0x48, 0x40, 0x0a, 0x09, 0x96, 0x48, 0xe2, 0x88, 0xbc, + 0xee, 0xd9, 0x7c, 0x50, 0x2d, 0x91, 0x48, 0x32, 0x16, 0x4b, 0x10, 0x8e, 0x77, 0xe8, 0x44, 0x69, + 0xba, 0x9a, 0xc2, 0x04, 0xa1, 0x30, 0x8d, 0x6f, 0x69, 0x30, 0xb3, 0x1d, 0xef, 0xb8, 0x4e, 0x8f, + 0x33, 0x98, 0xf3, 0x33, 0x17, 0x6b, 0x8a, 0x8b, 0x65, 0x47, 0x55, 0x86, 0x3b, 0xaa, 0xaa, 0x3a, + 0x6a, 0x1e, 0x1a, 0x7d, 0xe2, 0xd9, 0x24, 0x10, 0x8e, 0x17, 0x94, 0x18, 0x50, 0x3d, 0x19, 0x90, + 0xf1, 0xdd, 0x1a, 0x4c, 0x7e, 0xcc, 0x26, 0x2c, 0x42, 0xcb, 0xdf, 0xa3, 0x1e, 0xb9, 0x19, 0x33, + 0xf0, 0x09, 0x5b, 0x64, 0x96, 0x7e, 0x16, 0xea, 0x3b, 0x4e, 0x10, 0xed, 0xf1, 0xe8, 0x4f, 0x9b, + 0x48, 0x30, 0x2e, 0x19, 0x58, 0x0e, 0x86, 0xbc, 0x69, 0x22, 0x21, 0x06, 0x34, 0x99, 0x46, 0x68, + 0x01, 0x26, 0x31, 0xf1, 0xaf, 0xfb, 0x22, 0xa6, 0x29, 0x9d, 0x5b, 0x26, 0xa0, 0x6c, 0x99, 0xd8, + 0xb0, 0xc2, 0x68, 0x83, 0xf6, 0x1d, 0x6f, 0xdd, 0x17, 0xa9, 0x5d, 0x66, 0xb1, 0xe8, 0xa6, 0x24, + 0x57, 0x32, 0xc5, 0x95, 0xa8, 0x4c, 0xd6, 0x4f, 0x4a, 0x84, 0x22, 0xb5, 0x4b, 0x9c, 0xf4, 0xfb, + 0x86, 0x33, 0x70, 0x22, 0x91, 0xd0, 0x25, 0x4e, 0x09, 0xca, 0x67, 0x4b, 0x51, 0x7e, 0x09, 0xda, + 0x7d, 0x97, 0xee, 0x58, 0xae, 0x49, 0x7a, 0x87, 0x9b, 0x61, 0x7f, 0xcb, 0x8f, 0x78, 0x02, 0xaf, + 0x9b, 0x05, 0x3e, 0xd3, 0xc9, 0x21, 0xc8, 0x33, 0xd2, 0x0a, 0xb5, 0x89, 0x48, 0xdb, 0x39, 0xae, + 0xf1, 0x6f, 0x0d, 0x00, 0xd3, 0x04, 0x87, 0x44, 0x6e, 0xed, 0xd5, 0x8a, 0x6b, 0xef, 0x3c, 0x34, + 0x02, 0x32, 0xb0, 0x82, 0xfd, 0x24, 0x35, 0x20, 0x95, 0x73, 0x76, 0xb5, 0xe0, 0xec, 0x57, 0x00, + 0x76, 0x79, 0x3f, 0x4c, 0x0f, 0x87, 0x08, 0x4b, 0x64, 0x85, 0x72, 0x66, 0x29, 0x41, 0xa7, 0x29, + 0x35, 0x67, 0x79, 0xc7, 0xb2, 0x6d, 0x31, 0xbd, 0xeb, 0x98, 0x77, 0x52, 0x46, 0xc9, 0xec, 0x6e, + 0x8c, 0x98, 0xdd, 0x13, 0xe9, 0x64, 0xf8, 0x97, 0x06, 0xcd, 0x65, 0xd7, 0xea, 0xed, 0x8f, 0x39, + 0x74, 0x75, 0x88, 0x95, 0xc2, 0x10, 0xd7, 0x60, 0x7a, 0x87, 0xa9, 0x4b, 0x86, 0xc0, 0xbd, 0xd0, + 0xba, 0xf2, 0x99, 0x92, 0x51, 0xaa, 0xc9, 0xc0, 0x54, 0xe5, 0xd4, 0xe1, 0xd6, 0x8e, 0x1f, 0x6e, + 0x7d, 0xc4, 0x70, 0xd3, 0xf5, 0xcd, 0xf8, 0x51, 0x15, 0xa6, 0xf8, 0x32, 0x60, 0x92, 0x83, 0x98, + 0x84, 0x91, 0xfe, 0x1a, 0x4c, 0xc6, 0x89, 0xa9, 0xda, 0xb8, 0xa6, 0xa6, 0x22, 0xfa, 0xcb, 0x62, + 0xfd, 0xe6, 0xf2, 0x15, 0x2e, 0x7f, 0xbe, 0x44, 0x3e, 0x2d, 0x08, 0xcc, 0xac, 0x39, 0x5b, 0xb9, + 0xf7, 0x2c, 0xcf, 0x76, 0x89, 0x49, 0xc2, 0xd8, 0x8d, 0xc4, 0x5a, 0xa2, 0xf0, 0x10, 0x69, 0x07, + 0x9b, 0x61, 0x5f, 0xac, 0xeb, 0x82, 0x62, 0xde, 0xc1, 0x76, 0xec, 0x13, 0x0e, 0x3d, 0x63, 0xb0, + 0x04, 0x15, 0x90, 0x03, 0x1e, 0x21, 0x4c, 0x27, 0x09, 0x99, 0xf5, 0x29, 0xbc, 0x86, 0x40, 0x50, + 0x78, 0x2c, 0xc4, 0x48, 0x73, 0x05, 0x58, 0x38, 0x4a, 0x9c, 0x42, 0xdd, 0xa8, 0x2e, 0x3c, 0x50, + 0x58, 0x78, 0x0a, 0xcb, 0x43, 0xab, 0x6c, 0x79, 0xf8, 0x5b, 0x15, 0xa6, 0x71, 0x12, 0x26, 0xa1, + 0xb9, 0xc0, 0x66, 0x0b, 0x1d, 0x28, 0x58, 0x94, 0x38, 0x6c, 0x2c, 0x8c, 0xba, 0xa9, 0xa6, 0x69, + 0x85, 0xc7, 0x00, 0xcd, 0xe8, 0xeb, 0x4a, 0xba, 0x96, 0x59, 0x49, 0x2f, 0x6b, 0x72, 0xda, 0x96, + 0x38, 0x2c, 0xb9, 0x46, 0x54, 0xc1, 0x58, 0x4a, 0x33, 0xd9, 0x88, 0xa6, 0xfd, 0x23, 0xca, 0x24, + 0x0e, 0x8b, 0x52, 0x44, 0x93, 0xbe, 0xd1, 0xd5, 0x19, 0x03, 0x35, 0x8b, 0x7e, 0x71, 0xb9, 0x4e, + 0xe9, 0x02, 0x36, 0x9a, 0x23, 0xb1, 0x01, 0x0a, 0x36, 0xd4, 0x29, 0xda, 0x2a, 0x4c, 0xd1, 0x8b, + 0x30, 0x8d, 0x7a, 0x72, 0xcb, 0xb5, 0xc2, 0x54, 0x11, 0x36, 0x9d, 0x47, 0x98, 0x8a, 0x91, 0x99, + 0x21, 0x18, 0x99, 0x4d, 0xe7, 0xdd, 0xaf, 0x2a, 0x00, 0xab, 0xc4, 0xb7, 0x82, 0x68, 0x40, 0xbc, + 0x88, 0x0d, 0xcf, 0x4e, 0xa9, 0x34, 0xb8, 0x0a, 0x4f, 0x5e, 0x65, 0x2b, 0xea, 0x2a, 0xab, 0x43, + 0x8d, 0x3b, 0x1c, 0xa3, 0xc9, 0xff, 0x66, 0xce, 0xf4, 0xad, 0x00, 0xb5, 0xe1, 0x54, 0x49, 0x69, + 0xb6, 0x8a, 0xd2, 0xc0, 0x16, 0xeb, 0x6e, 0xdd, 0x44, 0x82, 0xa5, 0x90, 0xac, 0x3f, 0xbe, 0x6b, + 0x69, 0xe0, 0x8a, 0xa3, 0x72, 0x8f, 0xdd, 0x68, 0x5d, 0x82, 0x76, 0x18, 0xef, 0x64, 0x83, 0xbb, + 0x19, 0x0f, 0xc4, 0xa4, 0x29, 0xf0, 0x99, 0x53, 0x71, 0x07, 0xc6, 0x1a, 0x35, 0x79, 0xa3, 0x8c, + 0x91, 0xaf, 0xbc, 0x8c, 0x5f, 0x54, 0xa0, 0xbd, 0x15, 0xf4, 0x2d, 0xcf, 0xf9, 0x5a, 0xba, 0xc3, + 0x38, 0x51, 0xc1, 0xb2, 0x08, 0x2d, 0xe2, 0xf5, 0x5d, 0x27, 0xdc, 0xbb, 0x99, 0xf9, 0x4d, 0x66, + 0xc9, 0xce, 0xae, 0x0d, 0x2b, 0x69, 0xea, 0x4a, 0x49, 0x33, 0x0f, 0x8d, 0x01, 0xdd, 0x71, 0xdc, + 0x04, 0xf7, 0x82, 0xe2, 0x98, 0x27, 0x2e, 0xe1, 0xb5, 0x4d, 0x8a, 0xf9, 0x84, 0x91, 0x95, 0x39, + 0x93, 0xa5, 0x65, 0x4e, 0x53, 0x2e, 0x73, 0x8e, 0x2b, 0x5d, 0xd0, 0x5d, 0xad, 0xd4, 0x5d, 0x7f, + 0xd4, 0xa0, 0x9d, 0xb9, 0x1b, 0xeb, 0xfc, 0xa1, 0xee, 0xca, 0x23, 0xb0, 0x52, 0x82, 0xc0, 0x14, + 0x37, 0x55, 0x19, 0x37, 0x0c, 0x69, 0x34, 0x74, 0xa4, 0xcd, 0x56, 0x4a, 0xb3, 0xde, 0x5c, 0x62, + 0x49, 0xce, 0x42, 0x4a, 0xda, 0x5a, 0x37, 0x94, 0xad, 0x75, 0x7e, 0x35, 0xfe, 0x9d, 0x06, 0x67, + 0x59, 0x94, 0x0b, 0xc3, 0xd8, 0x82, 0x36, 0xcd, 0x21, 0x41, 0x2c, 0x57, 0x4f, 0x95, 0x2c, 0x37, + 0x79, 0xd0, 0x98, 0x05, 0x61, 0xa6, 0xd0, 0xce, 0x75, 0x22, 0xd6, 0xaf, 0x32, 0x85, 0x79, 0x7b, + 0xcc, 0x82, 0xb0, 0xf1, 0x7b, 0x0d, 0xda, 0xb8, 0x40, 0x4a, 0xf3, 0xfc, 0xd4, 0xcd, 0x7e, 0x07, + 0xce, 0xe6, 0x7b, 0xde, 0x70, 0xc2, 0xa8, 0x53, 0x59, 0xac, 0x8e, 0x6b, 0x7a, 0xa9, 0x02, 0x36, + 0xd7, 0x1e, 0xdb, 0x8e, 0x5d, 0x77, 0x93, 0x84, 0xa1, 0xd5, 0x27, 0xcb, 0x47, 0x5d, 0x72, 0xc0, + 0x3e, 0x98, 0xe4, 0x60, 0x28, 0x86, 0x58, 0xb5, 0xc4, 0xcb, 0x0d, 0x87, 0x7a, 0x29, 0x84, 0x64, + 0x16, 0x9b, 0x56, 0x21, 0xea, 0xe9, 0x54, 0x17, 0xab, 0x6c, 0x21, 0x16, 0xa4, 0xfe, 0x55, 0x98, + 0xe2, 0x95, 0x80, 0xe8, 0xa6, 0x53, 0xe3, 0x03, 0x78, 0xb5, 0xb4, 0xf6, 0x28, 0xb5, 0x0a, 0x6b, + 0x0a, 0x41, 0xbf, 0xee, 0x45, 0xc1, 0x91, 0xa9, 0x68, 0x5c, 0x78, 0x0f, 0xe6, 0x0a, 0x4d, 0xf4, + 0x36, 0x54, 0xf7, 0xc9, 0x91, 0x18, 0x07, 0xfb, 0x53, 0xff, 0x02, 0xd4, 0x0f, 0xd9, 0xa6, 0x59, + 0x44, 0x7f, 0xa1, 0xc4, 0x02, 0x61, 0xb3, 0x89, 0x0d, 0x5f, 0xae, 0x7c, 0x51, 0x33, 0x9e, 0x4a, + 0x07, 0x26, 0x8f, 0x51, 0x53, 0xc6, 0x68, 0xbc, 0x09, 0xad, 0xcd, 0xb0, 0xbf, 0x6a, 0x45, 0x16, + 0x6f, 0xf8, 0x2a, 0xb4, 0x06, 0x19, 0xc9, 0x1b, 0x97, 0xf7, 0x27, 0x84, 0x4c, 0xb9, 0xb9, 0xf1, + 0x97, 0x0a, 0x74, 0xca, 0x5d, 0x11, 0xfa, 0xcc, 0x06, 0x12, 0x04, 0xbc, 0xc4, 0xd7, 0xf8, 0x04, + 0x4b, 0x48, 0x16, 0x3b, 0x12, 0x04, 0x6c, 0x0d, 0x13, 0xa5, 0x3a, 0x52, 0xfa, 0x12, 0xd4, 0xdc, + 0x24, 0x2c, 0xa3, 0xad, 0xe0, 0xed, 0xf4, 0x01, 0xb4, 0xb9, 0x77, 0xa5, 0x01, 0x89, 0x98, 0x5d, + 0x1b, 0x3b, 0x66, 0xa1, 0x8f, 0x41, 0x93, 0x74, 0x60, 0xe0, 0x0a, 0xaa, 0x17, 0x7a, 0x70, 0xae, + 0xb4, 0x69, 0x49, 0x00, 0x5f, 0x50, 0x03, 0x78, 0x61, 0xf8, 0x50, 0xf2, 0x41, 0xf4, 0x41, 0x5f, + 0x23, 0xd1, 0xa6, 0x75, 0xef, 0x9a, 0x67, 0x6f, 0x3a, 0x5e, 0x97, 0x1c, 0x30, 0xb4, 0x2f, 0x42, + 0x4b, 0x1c, 0x81, 0xa4, 0x61, 0x6a, 0x9a, 0x32, 0x6b, 0xe8, 0xc9, 0x48, 0x6e, 0x3e, 0x54, 0x0b, + 0xf3, 0xc1, 0xb8, 0x0a, 0x53, 0x72, 0x77, 0x7c, 0x11, 0xb1, 0xee, 0x75, 0xc9, 0x01, 0x1f, 0xd0, + 0xb4, 0x29, 0x28, 0xce, 0xe7, 0x2d, 0xc4, 0x0e, 0x43, 0x50, 0xc6, 0x9f, 0x2b, 0x70, 0xa6, 0x60, + 0x72, 0xe8, 0xdf, 0xaf, 0x1e, 0x19, 0x2f, 0xd5, 0x61, 0x78, 0xa9, 0x29, 0x78, 0xd9, 0x87, 0x39, + 0x0c, 0x92, 0xd4, 0x75, 0xa7, 0xce, 0x01, 0xf0, 0x5a, 0x59, 0xc1, 0x5f, 0x34, 0x52, 0xc4, 0x5e, + 0xe2, 0x62, 0xf0, 0x8b, 0x7a, 0x17, 0x08, 0xcc, 0x97, 0x37, 0x2e, 0x09, 0xff, 0x8b, 0x6a, 0xf8, + 0x3f, 0x5d, 0x16, 0x7e, 0xd9, 0x12, 0x29, 0xfe, 0x07, 0x30, 0xcb, 0x92, 0x6a, 0x97, 0x78, 0xf6, + 0x66, 0xd8, 0xe7, 0x8e, 0x5c, 0x84, 0x16, 0xca, 0x6f, 0x86, 0xfd, 0x6c, 0x03, 0x28, 0xb1, 0x58, + 0x8b, 0x9e, 0xeb, 0xb0, 0xe4, 0xc9, 0x5b, 0x88, 0xa4, 0x27, 0xb1, 0xd8, 0x02, 0x19, 0x12, 0x71, + 0x5a, 0xc4, 0xbc, 0x5b, 0x35, 0x53, 0xda, 0xf8, 0x6d, 0x03, 0x26, 0x04, 0x1a, 0xf9, 0xa2, 0xc8, + 0xf6, 0xdc, 0x69, 0x5a, 0x45, 0x0a, 0xeb, 0xda, 0xde, 0x61, 0x06, 0x2f, 0xa4, 0xe4, 0xa3, 0xba, + 0xaa, 0x7a, 0x54, 0x97, 0xb3, 0xa9, 0x56, 0xb4, 0x29, 0x37, 0xae, 0x7a, 0x71, 0x5c, 0xac, 0x8c, + 0xe3, 0x95, 0xcd, 0xb6, 0x6b, 0x45, 0xbb, 0x34, 0x18, 0x88, 0x2d, 0x74, 0xdd, 0x2c, 0xf0, 0x59, + 0xe9, 0x88, 0xbc, 0xb4, 0xf6, 0xc7, 0x25, 0x3c, 0xc7, 0x65, 0x95, 0x36, 0x72, 0x92, 0x3d, 0x00, + 0x9e, 0xd9, 0xa8, 0x4c, 0xb4, 0x2d, 0x0c, 0x1d, 0xea, 0xf1, 0x2a, 0x14, 0x4b, 0x7d, 0x99, 0xc5, + 0x46, 0x3e, 0x08, 0xfb, 0xd7, 0x03, 0x3a, 0x10, 0xdb, 0xab, 0x84, 0xe4, 0x23, 0xa7, 0x5e, 0x94, + 0x54, 0xb0, 0x2d, 0x94, 0x95, 0x58, 0x4c, 0x56, 0x90, 0xbc, 0xce, 0x9f, 0x32, 0x13, 0x92, 0x61, + 0x29, 0x24, 0x07, 0xa2, 0x78, 0x67, 0x7f, 0x2a, 0x91, 0x9b, 0x55, 0x23, 0x97, 0xab, 0xc6, 0xda, + 0xfc, 0xab, 0x5c, 0x8d, 0x65, 0x25, 0xce, 0x9c, 0x52, 0xe2, 0x5c, 0x83, 0x09, 0xea, 0xb3, 0xe9, + 0x1f, 0x76, 0x74, 0x3e, 0x5d, 0x9e, 0x19, 0x9e, 0xa0, 0x96, 0xb6, 0xb0, 0x25, 0x4e, 0x8c, 0x44, + 0x4e, 0xdf, 0x80, 0x59, 0xba, 0xbb, 0xeb, 0x3a, 0x1e, 0xd9, 0x8e, 0xc3, 0x3d, 0xbe, 0xd5, 0x3e, + 0xc3, 0xc1, 0x6e, 0x94, 0x15, 0x11, 0x6a, 0x4b, 0x33, 0x2f, 0xca, 0x2a, 0x3f, 0x2b, 0xc2, 0x4d, + 0x0e, 0x4f, 0x70, 0x67, 0x79, 0x82, 0x53, 0x78, 0xfc, 0xcc, 0x53, 0x4a, 0xf4, 0xe7, 0xb8, 0xe3, + 0x64, 0x16, 0x6a, 0x89, 0xac, 0xde, 0x1e, 0xe1, 0x87, 0x46, 0x9d, 0x79, 0xac, 0x1f, 0x65, 0x9e, + 0xa8, 0xee, 0x1e, 0x4b, 0xaa, 0xbb, 0x85, 0x97, 0x61, 0x4a, 0x1e, 0x60, 0xc9, 0x64, 0x3e, 0x2b, + 0x4f, 0xe6, 0x49, 0x79, 0xae, 0xfe, 0x40, 0x83, 0xd9, 0xdc, 0xd0, 0x58, 0xeb, 0xc8, 0x89, 0x5c, + 0x22, 0x34, 0x20, 0xc1, 0x76, 0x47, 0x36, 0x09, 0x7b, 0x62, 0xf2, 0xf0, 0xbf, 0x85, 0x25, 0xd5, + 0x74, 0xcb, 0x6e, 0xc0, 0x94, 0xb3, 0xd5, 0x65, 0x8a, 0xba, 0x34, 0xf6, 0xec, 0xf4, 0xd2, 0x40, + 0xe2, 0xf1, 0x6d, 0xfb, 0x56, 0x77, 0xd9, 0xb2, 0xfb, 0x04, 0xaf, 0x90, 0xea, 0xdc, 0x26, 0x95, + 0x69, 0xd8, 0x30, 0x79, 0xcb, 0xf1, 0xc3, 0x15, 0x3a, 0x18, 0x30, 0x08, 0xd8, 0x24, 0x62, 0x75, + 0xbc, 0xc6, 0x1d, 0x26, 0x28, 0xe6, 0x4d, 0x9b, 0xec, 0x5a, 0xb1, 0x1b, 0xb1, 0xa6, 0x49, 0xca, + 0x90, 0x58, 0xfc, 0x08, 0x21, 0xa4, 0xde, 0x2a, 0x4a, 0xa3, 0x9d, 0x12, 0xc7, 0xf8, 0x53, 0x05, + 0xda, 0x3c, 0x23, 0xae, 0x70, 0xc0, 0xd9, 0x5c, 0xe8, 0x0a, 0xd4, 0x79, 0x02, 0x10, 0x15, 0xe5, + 0xe8, 0x73, 0x17, 0x6c, 0xaa, 0x5f, 0x85, 0x06, 0xf5, 0x79, 0x19, 0x8a, 0xe9, 0xf2, 0xe9, 0x61, + 0x42, 0xea, 0x35, 0x81, 0x29, 0xa4, 0xf4, 0xeb, 0x00, 0x83, 0xac, 0xea, 0xc4, 0xe2, 0x61, 0x5c, + 0x1d, 0x92, 0x24, 0x73, 0x6e, 0xba, 0x2e, 0xa6, 0x77, 0x05, 0x55, 0x53, 0x65, 0xea, 0x37, 0x61, + 0x86, 0x9b, 0xbd, 0x95, 0x1c, 0xc0, 0xf1, 0x18, 0x8c, 0xdf, 0x63, 0x4e, 0xda, 0xf8, 0x89, 0x26, + 0xdc, 0xc8, 0xbe, 0x76, 0x09, 0xfa, 0x3e, 0x73, 0x89, 0x76, 0x22, 0x97, 0x2c, 0xc0, 0xe4, 0x20, + 0x96, 0xce, 0x03, 0xab, 0x66, 0x4a, 0x67, 0x21, 0xaa, 0x8e, 0x1d, 0x22, 0xe3, 0xa7, 0x1a, 0x74, + 0xde, 0xa0, 0x8e, 0xc7, 0x3f, 0x5c, 0xf3, 0x7d, 0x57, 0x5c, 0x29, 0x9d, 0x38, 0xe6, 0x5f, 0x86, + 0xa6, 0x85, 0x6a, 0xbc, 0x48, 0x84, 0x7d, 0x8c, 0x33, 0xbe, 0x4c, 0x46, 0x3a, 0x68, 0xa9, 0xca, + 0x07, 0x2d, 0xc6, 0x87, 0x1a, 0xcc, 0xa0, 0x53, 0xde, 0x8a, 0x9d, 0xe8, 0xc4, 0xf6, 0x2d, 0xc3, + 0xe4, 0x41, 0xec, 0x44, 0x27, 0x40, 0x65, 0x2a, 0x57, 0xc4, 0x53, 0xb5, 0x04, 0x4f, 0xc6, 0x2f, + 0x35, 0x38, 0x9f, 0x77, 0xeb, 0xb5, 0x5e, 0x8f, 0xf8, 0x0f, 0x72, 0x4a, 0x29, 0x07, 0x4d, 0xb5, + 0xdc, 0x41, 0x53, 0xa9, 0xc9, 0x26, 0xf9, 0x80, 0xf4, 0x1e, 0x5e, 0x93, 0xbf, 0x59, 0x81, 0xc7, + 0xd7, 0xd2, 0x89, 0x77, 0x2b, 0xb0, 0xbc, 0x70, 0x97, 0x04, 0xc1, 0x03, 0xb4, 0x77, 0x03, 0xa6, + 0x3d, 0x72, 0x37, 0xb3, 0x49, 0x4c, 0xc7, 0x71, 0xd5, 0xa8, 0xc2, 0xe3, 0xe5, 0x2e, 0xe3, 0xbf, + 0x1a, 0xb4, 0x51, 0xcf, 0x9b, 0x4e, 0x6f, 0xff, 0x01, 0x0e, 0xfe, 0x26, 0xcc, 0xec, 0x73, 0x0b, + 0x18, 0x75, 0x82, 0xb4, 0x9d, 0x93, 0x1e, 0x73, 0xf8, 0x1f, 0x69, 0x30, 0x97, 0xdc, 0x64, 0x1f, + 0x3a, 0x0f, 0x12, 0xac, 0xdb, 0x30, 0x8b, 0x27, 0xed, 0x27, 0x75, 0x40, 0x5e, 0x7c, 0x4c, 0x0f, + 0xfc, 0x46, 0x83, 0x59, 0xd4, 0xf4, 0xba, 0x17, 0x91, 0xe0, 0xc4, 0xe3, 0xbf, 0x01, 0x2d, 0xe2, + 0x45, 0x81, 0xe5, 0x9d, 0x24, 0x43, 0xca, 0xa2, 0x63, 0x26, 0xc9, 0x0f, 0x35, 0xd0, 0xb9, 0xaa, + 0x55, 0x27, 0x1c, 0x38, 0x61, 0xf8, 0x00, 0x43, 0x37, 0x9e, 0xc1, 0x3f, 0xae, 0xc0, 0x59, 0x49, + 0xcb, 0x66, 0x1c, 0x3d, 0xec, 0x26, 0xeb, 0xab, 0xd0, 0x64, 0x35, 0x82, 0x7c, 0x0f, 0x3a, 0x6e, + 0x47, 0x99, 0x20, 0xab, 0x62, 0x39, 0xd1, 0x25, 0x3d, 0xea, 0xd9, 0x21, 0x2f, 0x8e, 0xa6, 0x4d, + 0x85, 0xc7, 0xd2, 0xd0, 0x82, 0xa4, 0x66, 0xc5, 0xf2, 0x7a, 0xc4, 0x7d, 0x64, 0x5c, 0x64, 0xfc, + 0x5c, 0x83, 0x19, 0x6c, 0xf2, 0xf0, 0x0f, 0x99, 0xad, 0xf5, 0x08, 0xe4, 0x4f, 0x4c, 0x94, 0x18, + 0xbc, 0xe6, 0x25, 0x2d, 0x72, 0x5d, 0xfd, 0xf0, 0x42, 0xeb, 0x06, 0xb4, 0x7a, 0x7b, 0x96, 0xd7, + 0x3f, 0x11, 0xb8, 0x64, 0x51, 0x23, 0x82, 0xc7, 0xe4, 0x43, 0xfb, 0x15, 0xfc, 0xc4, 0x87, 0xff, + 0x7c, 0x6e, 0x28, 0x23, 0xdf, 0x39, 0xdc, 0x9f, 0xd3, 0xf7, 0x61, 0x0e, 0x6f, 0x8a, 0xa5, 0x9a, + 0x50, 0xef, 0xc0, 0x84, 0x65, 0xe3, 0xd1, 0x85, 0xc6, 0x85, 0x12, 0x52, 0x7d, 0x49, 0x20, 0xde, + 0xd8, 0x65, 0x2f, 0x09, 0x2e, 0x00, 0x58, 0xb6, 0xfd, 0x0e, 0x0d, 0x6c, 0xc7, 0x4b, 0x0a, 0x7c, + 0x89, 0x63, 0xbc, 0x01, 0x53, 0xd7, 0x03, 0x3a, 0xb8, 0x25, 0xdd, 0xf9, 0x8e, 0xbc, 0x95, 0x96, + 0xef, 0x8b, 0x2b, 0xea, 0x7d, 0xb1, 0xf1, 0x3e, 0x9c, 0x2b, 0x18, 0xce, 0x9d, 0xb5, 0x82, 0x57, + 0xd9, 0x49, 0x27, 0x02, 0x32, 0x65, 0x67, 0x79, 0xb2, 0x2d, 0xa6, 0x22, 0x64, 0x7c, 0x43, 0x83, + 0x27, 0x0b, 0xea, 0xaf, 0xf9, 0x7e, 0x40, 0x0f, 0x45, 0x4c, 0x4e, 0xa3, 0x1b, 0xb5, 0xf8, 0xad, + 0xe4, 0x8b, 0xdf, 0x52, 0x23, 0x94, 0x82, 0xfd, 0x63, 0x30, 0xe2, 0x67, 0x1a, 0xcc, 0x0a, 0x23, + 0x6c, 0x5b, 0x74, 0xfb, 0x22, 0x34, 0xf0, 0x31, 0x8d, 0xe8, 0xf0, 0xc9, 0xd2, 0x0e, 0x93, 0x47, + 0x40, 0xa6, 0x68, 0x5c, 0x44, 0x64, 0xa5, 0x6c, 0x46, 0x7d, 0x29, 0x05, 0xfb, 0xd8, 0xcf, 0x5d, + 0x84, 0x80, 0xf1, 0x95, 0x04, 0xcc, 0xab, 0xc4, 0x25, 0xa7, 0xe9, 0x23, 0xe3, 0x36, 0xcc, 0xf0, + 0x97, 0x3d, 0x99, 0x0f, 0x4e, 0x45, 0xed, 0x3b, 0xd0, 0xe6, 0x6a, 0x4f, 0xdd, 0xde, 0x74, 0x76, + 0x30, 0xff, 0xc8, 0xa9, 0xe4, 0x54, 0xb4, 0x7f, 0x1e, 0xce, 0x24, 0xbe, 0xc7, 0xd7, 0xbd, 0xa8, + 0x7b, 0xc8, 0xdd, 0x9e, 0xf1, 0x43, 0x0d, 0xe6, 0x57, 0xa8, 0x77, 0x48, 0x82, 0x50, 0x79, 0x11, + 0x8c, 0x22, 0xca, 0xec, 0x17, 0x94, 0xbe, 0x04, 0x7a, 0x4f, 0x92, 0x10, 0xc7, 0x8b, 0x15, 0x7e, + 0xbc, 0x58, 0xf2, 0x45, 0x7f, 0x01, 0xce, 0xc5, 0x5c, 0xeb, 0x6d, 0x2f, 0x20, 0x96, 0xcd, 0xcf, + 0xd3, 0xa4, 0xa4, 0x57, 0xfe, 0xd1, 0xf8, 0x00, 0x16, 0x64, 0xbb, 0xba, 0x24, 0xda, 0x0e, 0x9c, + 0x43, 0xc9, 0x36, 0x71, 0x76, 0xae, 0x29, 0x67, 0xe7, 0xd9, 0x59, 0x7b, 0x45, 0x39, 0x6b, 0x3f, + 0x0f, 0x4d, 0x27, 0x14, 0x0a, 0x78, 0xbf, 0x93, 0x66, 0xc6, 0x30, 0x2c, 0x98, 0xc3, 0x28, 0x8b, + 0xbb, 0x2c, 0xde, 0xc5, 0x02, 0x4c, 0x22, 0x74, 0xd3, 0x4e, 0x52, 0x7a, 0xe8, 0xcd, 0xd0, 0xd0, + 0x7b, 0x50, 0xa3, 0x0b, 0x73, 0xe2, 0xbd, 0xcf, 0xb6, 0xd5, 0x77, 0x3c, 0xcc, 0xe5, 0x17, 0x00, + 0x7c, 0xab, 0x9f, 0xbc, 0x96, 0xc4, 0x1b, 0x3d, 0x89, 0xc3, 0xbe, 0x87, 0x7b, 0xf4, 0xae, 0xf8, + 0x5e, 0xc1, 0xef, 0x19, 0xc7, 0x78, 0x1b, 0x74, 0x93, 0x84, 0x3e, 0xf5, 0x42, 0x22, 0x69, 0x5d, + 0x84, 0xd6, 0x4a, 0x1c, 0x04, 0xc4, 0x63, 0x5d, 0x25, 0x4f, 0xe8, 0x64, 0x16, 0xd3, 0xdb, 0xcd, + 0xf4, 0xe2, 0xe9, 0xbf, 0xc4, 0x31, 0xfe, 0x53, 0x85, 0x66, 0xd7, 0xe9, 0x7b, 0x96, 0x6b, 0x92, + 0x03, 0xfd, 0x55, 0x68, 0xe0, 0xce, 0x48, 0x00, 0xb2, 0xec, 0x34, 0x1a, 0x5b, 0xe3, 0x16, 0xd0, + 0x24, 0x07, 0x37, 0x3e, 0x65, 0x0a, 0x19, 0xfd, 0xad, 0xe4, 0x55, 0xd4, 0x3a, 0x9e, 0x74, 0x89, + 0x65, 0xf2, 0xb3, 0xc7, 0x28, 0x11, 0xad, 0x51, 0x97, 0xaa, 0x81, 0x19, 0xd4, 0xe3, 0x95, 0x93, + 0xc8, 0x42, 0xc3, 0x0d, 0xc2, 0x02, 0x4b, 0x18, 0x84, 0x32, 0x4c, 0xda, 0xe2, 0x67, 0x41, 0xa2, + 0x20, 0x18, 0x2e, 0x8d, 0x47, 0x46, 0x42, 0x1a, 0x65, 0x98, 0xf4, 0x5e, 0xec, 0xf5, 0x6f, 0xfb, + 0xe2, 0x88, 0x72, 0xb8, 0xf4, 0x0d, 0xde, 0x4c, 0x48, 0xa3, 0x0c, 0x93, 0x0e, 0xf8, 0x1a, 0xc1, + 0x9d, 0x3e, 0x4a, 0x1a, 0x97, 0x12, 0x21, 0x8d, 0x32, 0xfa, 0xbb, 0xd0, 0x5e, 0x23, 0x91, 0x49, + 0xe9, 0x60, 0xf9, 0x68, 0x4d, 0xdc, 0x10, 0xe1, 0xa3, 0xf5, 0xe7, 0x86, 0xea, 0xc9, 0x0b, 0xa0, + 0xc6, 0x82, 0x9e, 0xe5, 0x26, 0x4c, 0xf8, 0xd6, 0x91, 0x4b, 0x2d, 0xdb, 0xf8, 0x4e, 0x0d, 0x20, + 0x31, 0x22, 0xe4, 0xb5, 0x9a, 0x12, 0xfe, 0x8b, 0xc7, 0x86, 0xdf, 0x77, 0x8f, 0x24, 0x00, 0x74, + 0xcb, 0x01, 0xf0, 0xb9, 0x71, 0x01, 0x80, 0xda, 0x72, 0x10, 0xb8, 0x9a, 0x83, 0xc0, 0xc5, 0x63, + 0x21, 0x20, 0x8c, 0x12, 0x20, 0xb8, 0x9a, 0x03, 0xc1, 0xc5, 0x63, 0x41, 0x20, 0xe4, 0x05, 0x0c, + 0xae, 0xe6, 0x60, 0x70, 0xf1, 0x58, 0x18, 0x08, 0x79, 0x01, 0x84, 0xab, 0x39, 0x20, 0x5c, 0x3c, + 0x16, 0x08, 0x42, 0x5e, 0x40, 0xe1, 0xfd, 0xa1, 0x50, 0x58, 0xba, 0x0f, 0x28, 0xa0, 0xce, 0x91, + 0x60, 0xf8, 0x6b, 0x05, 0x66, 0xd6, 0xd3, 0x67, 0xc4, 0xfc, 0x3a, 0xa6, 0xf0, 0xce, 0x51, 0x2b, + 0x79, 0xe7, 0xa8, 0x3f, 0x07, 0x73, 0xc8, 0x20, 0xd2, 0x1d, 0x14, 0x2e, 0x12, 0xc5, 0x0f, 0xfc, + 0xd6, 0x2d, 0x0e, 0x23, 0x3a, 0x58, 0xb5, 0x22, 0x2b, 0xa9, 0x4e, 0x33, 0x8e, 0x7c, 0x27, 0x5a, + 0x2b, 0xfc, 0x7c, 0x21, 0xa0, 0x74, 0x90, 0x5e, 0x76, 0x0a, 0x8a, 0x49, 0x44, 0xce, 0x80, 0xd0, + 0x38, 0x12, 0x09, 0x2e, 0x21, 0xf1, 0x71, 0x9a, 0xed, 0x58, 0xfc, 0x26, 0x51, 0xbc, 0xdc, 0x4a, + 0x19, 0x3c, 0x27, 0x67, 0x37, 0xa3, 0xe2, 0xe7, 0x05, 0x19, 0x67, 0x8c, 0x5b, 0x4c, 0xfe, 0x4b, + 0x15, 0x27, 0x72, 0xe4, 0x17, 0x5d, 0x75, 0x53, 0xe1, 0x19, 0xff, 0xd4, 0xe0, 0xcc, 0xb6, 0x15, + 0x44, 0x4e, 0xcf, 0xf1, 0x2d, 0x2f, 0xda, 0x24, 0x91, 0xc5, 0xc7, 0xa9, 0xbc, 0xb3, 0xd5, 0xee, + 0xef, 0x9d, 0xed, 0x36, 0xcc, 0xf6, 0xd5, 0x2d, 0xda, 0x7d, 0xee, 0xae, 0xf2, 0xe2, 0xca, 0xa3, + 0xe1, 0xea, 0x7d, 0x3f, 0x1a, 0x36, 0xbe, 0x5d, 0x81, 0xd9, 0xdc, 0xc2, 0x30, 0x72, 0x55, 0xbd, + 0x06, 0x90, 0xbd, 0x58, 0x1f, 0x71, 0x83, 0xa1, 0xe2, 0xd1, 0x94, 0x84, 0xca, 0xae, 0x50, 0xab, + 0x27, 0xbf, 0x42, 0xbd, 0x01, 0x2d, 0x3f, 0x0b, 0xd2, 0x88, 0x0d, 0x64, 0x49, 0x28, 0x4d, 0x59, + 0xd4, 0x78, 0x0f, 0xe6, 0x0a, 0x39, 0x92, 0xdf, 0x6b, 0xd2, 0x7d, 0xe2, 0xa5, 0xf7, 0x9a, 0x8c, + 0x90, 0x00, 0x5d, 0xc9, 0x03, 0xda, 0x75, 0x0e, 0xe5, 0x5f, 0x63, 0x08, 0xd2, 0xf8, 0x5e, 0x05, + 0xe6, 0xcb, 0xd7, 0xce, 0x47, 0xd5, 0xdd, 0x3b, 0xd0, 0x19, 0xb6, 0x96, 0x9c, 0x9a, 0xd7, 0x33, + 0x74, 0xa7, 0x55, 0xc6, 0xa3, 0xea, 0xee, 0x33, 0x09, 0xba, 0xa5, 0xc5, 0xd6, 0xf8, 0x75, 0xea, + 0x9f, 0xb4, 0x8e, 0x7a, 0x44, 0xfd, 0xa3, 0x5f, 0x82, 0x36, 0x0e, 0x53, 0x7a, 0x73, 0x83, 0x65, + 0x79, 0x81, 0x9f, 0x65, 0x0a, 0xa9, 0xf0, 0x38, 0x35, 0xcc, 0xfe, 0x41, 0x4b, 0x62, 0x92, 0x56, + 0xa7, 0x9f, 0xa8, 0x98, 0x64, 0x48, 0x93, 0xca, 0x2a, 0x09, 0x69, 0x69, 0xd5, 0xfc, 0x7f, 0xa4, + 0x1d, 0x8f, 0xb4, 0xd4, 0x97, 0x52, 0x89, 0x69, 0xbc, 0x05, 0x8f, 0x0f, 0xdd, 0x38, 0x8c, 0x74, + 0xaa, 0x54, 0xa1, 0x55, 0x94, 0x0a, 0xcd, 0xf8, 0x87, 0x06, 0x4f, 0x8c, 0xa8, 0x40, 0x73, 0xe1, + 0xd0, 0x4e, 0x12, 0x8e, 0x97, 0x60, 0x9e, 0x7a, 0x2b, 0xd4, 0xf3, 0x48, 0x2f, 0x72, 0xbc, 0x7e, + 0xa1, 0xe2, 0x1c, 0xf2, 0x35, 0x9b, 0x57, 0xd5, 0xf2, 0x79, 0x55, 0x1b, 0x36, 0xaf, 0xea, 0xea, + 0xbc, 0xfa, 0x3a, 0x4c, 0xaf, 0x12, 0x77, 0x33, 0xec, 0x27, 0x4f, 0xa9, 0x4f, 0xf5, 0xf0, 0x20, + 0xff, 0xe0, 0xb4, 0x56, 0x7c, 0x70, 0xba, 0x0c, 0x33, 0xb2, 0x01, 0x27, 0x79, 0x2a, 0xbc, 0x7c, + 0xfe, 0xdd, 0x85, 0x25, 0xf1, 0xef, 0x04, 0x5e, 0x29, 0x78, 0x7f, 0xa7, 0xc1, 0x7f, 0x80, 0xfc, + 0xfc, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x5c, 0xf5, 0x03, 0x91, 0xa7, 0x40, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 226ac5dcf..7bcce082e 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -494,6 +494,9 @@ message UserInfoUpdatedTips{ message ConversationUpdateTips{ string UserID = 1; repeated string conversationIDList = 2; + int64 updateUnreadCountTime = 3; + + } message ConversationSetPrivateTips{ From 82c79bd91c1af21955e5ce173822e0714ef7137d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 5 Sep 2022 21:21:16 +0800 Subject: [PATCH 46/56] conversation unread modify --- pkg/proto/sdk_ws/ws.pb.go | 633 +++++++++++++++++++------------------- 1 file changed, 321 insertions(+), 312 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 71dd88c26..d558df951 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -46,7 +46,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{0} + return fileDescriptor_ws_a63a85d8843f82a8, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GroupInfoForSet) Reset() { *m = GroupInfoForSet{} } func (m *GroupInfoForSet) String() string { return proto.CompactTextString(m) } func (*GroupInfoForSet) ProtoMessage() {} func (*GroupInfoForSet) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{1} + return fileDescriptor_ws_a63a85d8843f82a8, []int{1} } func (m *GroupInfoForSet) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoForSet.Unmarshal(m, b) @@ -309,7 +309,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{2} + return fileDescriptor_ws_a63a85d8843f82a8, []int{2} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{3} + return fileDescriptor_ws_a63a85d8843f82a8, []int{3} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -504,7 +504,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} } func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (*UserInfo) ProtoMessage() {} func (*UserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{4} + return fileDescriptor_ws_a63a85d8843f82a8, []int{4} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -618,7 +618,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} } func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{5} + return fileDescriptor_ws_a63a85d8843f82a8, []int{5} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -703,7 +703,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} } func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{6} + return fileDescriptor_ws_a63a85d8843f82a8, []int{6} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -786,7 +786,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} } func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{7} + return fileDescriptor_ws_a63a85d8843f82a8, []int{7} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -908,7 +908,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} } func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{8} + return fileDescriptor_ws_a63a85d8843f82a8, []int{8} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -1053,7 +1053,7 @@ func (m *Department) Reset() { *m = Department{} } func (m *Department) String() string { return proto.CompactTextString(m) } func (*Department) ProtoMessage() {} func (*Department) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{9} + return fileDescriptor_ws_a63a85d8843f82a8, []int{9} } func (m *Department) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Department.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *OrganizationUser) Reset() { *m = OrganizationUser{} } func (m *OrganizationUser) String() string { return proto.CompactTextString(m) } func (*OrganizationUser) ProtoMessage() {} func (*OrganizationUser) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{10} + return fileDescriptor_ws_a63a85d8843f82a8, []int{10} } func (m *OrganizationUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationUser.Unmarshal(m, b) @@ -1278,7 +1278,7 @@ func (m *DepartmentMember) Reset() { *m = DepartmentMember{} } func (m *DepartmentMember) String() string { return proto.CompactTextString(m) } func (*DepartmentMember) ProtoMessage() {} func (*DepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{11} + return fileDescriptor_ws_a63a85d8843f82a8, []int{11} } func (m *DepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DepartmentMember.Unmarshal(m, b) @@ -1359,7 +1359,7 @@ func (m *UserDepartmentMember) Reset() { *m = UserDepartmentMember{} } func (m *UserDepartmentMember) String() string { return proto.CompactTextString(m) } func (*UserDepartmentMember) ProtoMessage() {} func (*UserDepartmentMember) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{12} + return fileDescriptor_ws_a63a85d8843f82a8, []int{12} } func (m *UserDepartmentMember) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDepartmentMember.Unmarshal(m, b) @@ -1405,7 +1405,7 @@ func (m *UserInDepartment) Reset() { *m = UserInDepartment{} } func (m *UserInDepartment) String() string { return proto.CompactTextString(m) } func (*UserInDepartment) ProtoMessage() {} func (*UserInDepartment) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{13} + return fileDescriptor_ws_a63a85d8843f82a8, []int{13} } func (m *UserInDepartment) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInDepartment.Unmarshal(m, b) @@ -1454,7 +1454,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{14} + return fileDescriptor_ws_a63a85d8843f82a8, []int{14} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -1513,7 +1513,7 @@ func (m *SeqList) Reset() { *m = SeqList{} } func (m *SeqList) String() string { return proto.CompactTextString(m) } func (*SeqList) ProtoMessage() {} func (*SeqList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{15} + return fileDescriptor_ws_a63a85d8843f82a8, []int{15} } func (m *SeqList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SeqList.Unmarshal(m, b) @@ -1551,7 +1551,7 @@ func (m *MsgDataList) Reset() { *m = MsgDataList{} } func (m *MsgDataList) String() string { return proto.CompactTextString(m) } func (*MsgDataList) ProtoMessage() {} func (*MsgDataList) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{16} + return fileDescriptor_ws_a63a85d8843f82a8, []int{16} } func (m *MsgDataList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataList.Unmarshal(m, b) @@ -1592,7 +1592,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{17} + return fileDescriptor_ws_a63a85d8843f82a8, []int{17} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -1653,7 +1653,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_ws_28f8f8e2747ce3c8, []int{18} + return fileDescriptor_ws_a63a85d8843f82a8, []int{18} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1706,7 +1706,7 @@ func (m *MaxAndMinSeq) Reset() { *m = MaxAndMinSeq{} } func (m *MaxAndMinSeq) String() string { return proto.CompactTextString(m) } func (*MaxAndMinSeq) ProtoMessage() {} func (*MaxAndMinSeq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{19} + return fileDescriptor_ws_a63a85d8843f82a8, []int{19} } func (m *MaxAndMinSeq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MaxAndMinSeq.Unmarshal(m, b) @@ -1755,7 +1755,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_ws_28f8f8e2747ce3c8, []int{20} + return fileDescriptor_ws_a63a85d8843f82a8, []int{20} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1823,7 +1823,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{21} + return fileDescriptor_ws_a63a85d8843f82a8, []int{21} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1896,7 +1896,7 @@ func (m *MsgData) Reset() { *m = MsgData{} } func (m *MsgData) String() string { return proto.CompactTextString(m) } func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{22} + return fileDescriptor_ws_a63a85d8843f82a8, []int{22} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -2085,7 +2085,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{23} + return fileDescriptor_ws_a63a85d8843f82a8, []int{23} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -2153,7 +2153,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} } func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (*TipsComm) ProtoMessage() {} func (*TipsComm) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{24} + return fileDescriptor_ws_a63a85d8843f82a8, []int{24} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -2210,7 +2210,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{25} + return fileDescriptor_ws_a63a85d8843f82a8, []int{25} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -2279,7 +2279,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} } func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoSetTips) ProtoMessage() {} func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{26} + return fileDescriptor_ws_a63a85d8843f82a8, []int{26} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -2334,7 +2334,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{27} + return fileDescriptor_ws_a63a85d8843f82a8, []int{27} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2390,7 +2390,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} } func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) } func (*MemberQuitTips) ProtoMessage() {} func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{28} + return fileDescriptor_ws_a63a85d8843f82a8, []int{28} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -2445,7 +2445,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationAcceptedTips) ProtoMessage() {} func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{29} + return fileDescriptor_ws_a63a85d8843f82a8, []int{29} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -2500,7 +2500,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*GroupApplicationRejectedTips) ProtoMessage() {} func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{30} + return fileDescriptor_ws_a63a85d8843f82a8, []int{30} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -2556,7 +2556,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } func (*GroupOwnerTransferredTips) ProtoMessage() {} func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{31} + return fileDescriptor_ws_a63a85d8843f82a8, []int{31} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2619,7 +2619,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{32} + return fileDescriptor_ws_a63a85d8843f82a8, []int{32} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2682,7 +2682,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{33} + return fileDescriptor_ws_a63a85d8843f82a8, []int{33} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2744,7 +2744,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{34} + return fileDescriptor_ws_a63a85d8843f82a8, []int{34} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2798,7 +2798,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} } func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) } func (*GroupDismissedTips) ProtoMessage() {} func (*GroupDismissedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{35} + return fileDescriptor_ws_a63a85d8843f82a8, []int{35} } func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b) @@ -2854,7 +2854,7 @@ func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} } func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberMutedTips) ProtoMessage() {} func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{36} + return fileDescriptor_ws_a63a85d8843f82a8, []int{36} } func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b) @@ -2923,7 +2923,7 @@ func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMut func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberCancelMutedTips) ProtoMessage() {} func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{37} + return fileDescriptor_ws_a63a85d8843f82a8, []int{37} } func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b) @@ -2984,7 +2984,7 @@ func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} } func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupMutedTips) ProtoMessage() {} func (*GroupMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{38} + return fileDescriptor_ws_a63a85d8843f82a8, []int{38} } func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b) @@ -3038,7 +3038,7 @@ func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} } func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) } func (*GroupCancelMutedTips) ProtoMessage() {} func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{39} + return fileDescriptor_ws_a63a85d8843f82a8, []int{39} } func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b) @@ -3093,7 +3093,7 @@ func (m *GroupMemberInfoSetTips) Reset() { *m = GroupMemberInfoSetTips{} func (m *GroupMemberInfoSetTips) String() string { return proto.CompactTextString(m) } func (*GroupMemberInfoSetTips) ProtoMessage() {} func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{40} + return fileDescriptor_ws_a63a85d8843f82a8, []int{40} } func (m *GroupMemberInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberInfoSetTips.Unmarshal(m, b) @@ -3153,7 +3153,7 @@ func (m *OrganizationChangedTips) Reset() { *m = OrganizationChangedTips func (m *OrganizationChangedTips) String() string { return proto.CompactTextString(m) } func (*OrganizationChangedTips) ProtoMessage() {} func (*OrganizationChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{41} + return fileDescriptor_ws_a63a85d8843f82a8, []int{41} } func (m *OrganizationChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OrganizationChangedTips.Unmarshal(m, b) @@ -3200,7 +3200,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} } func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{42} + return fileDescriptor_ws_a63a85d8843f82a8, []int{42} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -3253,7 +3253,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} } func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{43} + return fileDescriptor_ws_a63a85d8843f82a8, []int{43} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -3299,7 +3299,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} } func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationTips) ProtoMessage() {} func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{44} + return fileDescriptor_ws_a63a85d8843f82a8, []int{44} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -3339,7 +3339,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationApprovedTips) ProtoMessage() {} func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{45} + return fileDescriptor_ws_a63a85d8843f82a8, []int{45} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -3386,7 +3386,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationRejectedTips) ProtoMessage() {} func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{46} + return fileDescriptor_ws_a63a85d8843f82a8, []int{46} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -3434,7 +3434,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{47} + return fileDescriptor_ws_a63a85d8843f82a8, []int{47} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -3487,7 +3487,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{48} + return fileDescriptor_ws_a63a85d8843f82a8, []int{48} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -3525,7 +3525,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{49} + return fileDescriptor_ws_a63a85d8843f82a8, []int{49} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -3563,7 +3563,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{50} + return fileDescriptor_ws_a63a85d8843f82a8, []int{50} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -3601,7 +3601,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{51} + return fileDescriptor_ws_a63a85d8843f82a8, []int{51} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -3640,7 +3640,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} } func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*UserInfoUpdatedTips) ProtoMessage() {} func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{52} + return fileDescriptor_ws_a63a85d8843f82a8, []int{52} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -3669,18 +3669,19 @@ func (m *UserInfoUpdatedTips) GetUserID() string { // ////////////////////conversation///////////////////// type ConversationUpdateTips struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` + UpdateUnreadCountTime int64 `protobuf:"varint,3,opt,name=updateUnreadCountTime" json:"updateUnreadCountTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{} } func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) } func (*ConversationUpdateTips) ProtoMessage() {} func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{53} + return fileDescriptor_ws_a63a85d8843f82a8, []int{53} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -3714,6 +3715,13 @@ func (m *ConversationUpdateTips) GetConversationIDList() []string { return nil } +func (m *ConversationUpdateTips) GetUpdateUnreadCountTime() int64 { + if m != nil { + return m.UpdateUnreadCountTime + } + return 0 +} + type ConversationSetPrivateTips struct { RecvID string `protobuf:"bytes,1,opt,name=recvID" json:"recvID,omitempty"` SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"` @@ -3727,7 +3735,7 @@ func (m *ConversationSetPrivateTips) Reset() { *m = ConversationSetPriva func (m *ConversationSetPrivateTips) String() string { return proto.CompactTextString(m) } func (*ConversationSetPrivateTips) ProtoMessage() {} func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{54} + return fileDescriptor_ws_a63a85d8843f82a8, []int{54} } func (m *ConversationSetPrivateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationSetPrivateTips.Unmarshal(m, b) @@ -3782,7 +3790,7 @@ func (m *DeleteMessageTips) Reset() { *m = DeleteMessageTips{} } func (m *DeleteMessageTips) String() string { return proto.CompactTextString(m) } func (*DeleteMessageTips) ProtoMessage() {} func (*DeleteMessageTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{55} + return fileDescriptor_ws_a63a85d8843f82a8, []int{55} } func (m *DeleteMessageTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteMessageTips.Unmarshal(m, b) @@ -3836,7 +3844,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} } func (m *RequestPagination) String() string { return proto.CompactTextString(m) } func (*RequestPagination) ProtoMessage() {} func (*RequestPagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{56} + return fileDescriptor_ws_a63a85d8843f82a8, []int{56} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -3882,7 +3890,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} } func (m *ResponsePagination) String() string { return proto.CompactTextString(m) } func (*ResponsePagination) ProtoMessage() {} func (*ResponsePagination) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{57} + return fileDescriptor_ws_a63a85d8843f82a8, []int{57} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -3936,7 +3944,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} } func (m *SignalReq) String() string { return proto.CompactTextString(m) } func (*SignalReq) ProtoMessage() {} func (*SignalReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{58} + return fileDescriptor_ws_a63a85d8843f82a8, []int{58} } func (m *SignalReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalReq.Unmarshal(m, b) @@ -4234,7 +4242,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} } func (m *SignalResp) String() string { return proto.CompactTextString(m) } func (*SignalResp) ProtoMessage() {} func (*SignalResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{59} + return fileDescriptor_ws_a63a85d8843f82a8, []int{59} } func (m *SignalResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalResp.Unmarshal(m, b) @@ -4533,7 +4541,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} } func (m *InvitationInfo) String() string { return proto.CompactTextString(m) } func (*InvitationInfo) ProtoMessage() {} func (*InvitationInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{60} + return fileDescriptor_ws_a63a85d8843f82a8, []int{60} } func (m *InvitationInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationInfo.Unmarshal(m, b) @@ -4636,7 +4644,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} } func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) } func (*ParticipantMetaData) ProtoMessage() {} func (*ParticipantMetaData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{61} + return fileDescriptor_ws_a63a85d8843f82a8, []int{61} } func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b) @@ -4691,7 +4699,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} } func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteReq) ProtoMessage() {} func (*SignalInviteReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{62} + return fileDescriptor_ws_a63a85d8843f82a8, []int{62} } func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b) @@ -4752,7 +4760,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} } func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteReply) ProtoMessage() {} func (*SignalInviteReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{63} + return fileDescriptor_ws_a63a85d8843f82a8, []int{63} } func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b) @@ -4807,7 +4815,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{} func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReq) ProtoMessage() {} func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{64} + return fileDescriptor_ws_a63a85d8843f82a8, []int{64} } func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b) @@ -4868,7 +4876,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) } func (*SignalInviteInGroupReply) ProtoMessage() {} func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{65} + return fileDescriptor_ws_a63a85d8843f82a8, []int{65} } func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b) @@ -4923,7 +4931,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} } func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) } func (*SignalCancelReq) ProtoMessage() {} func (*SignalCancelReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{66} + return fileDescriptor_ws_a63a85d8843f82a8, []int{66} } func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b) @@ -4981,7 +4989,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} } func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) } func (*SignalCancelReply) ProtoMessage() {} func (*SignalCancelReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{67} + return fileDescriptor_ws_a63a85d8843f82a8, []int{67} } func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b) @@ -5016,7 +5024,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} } func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReq) ProtoMessage() {} func (*SignalAcceptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{68} + return fileDescriptor_ws_a63a85d8843f82a8, []int{68} } func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b) @@ -5084,7 +5092,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} } func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) } func (*SignalAcceptReply) ProtoMessage() {} func (*SignalAcceptReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{69} + return fileDescriptor_ws_a63a85d8843f82a8, []int{69} } func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b) @@ -5138,7 +5146,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} } func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReq) ProtoMessage() {} func (*SignalHungUpReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{70} + return fileDescriptor_ws_a63a85d8843f82a8, []int{70} } func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b) @@ -5189,7 +5197,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} } func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) } func (*SignalHungUpReply) ProtoMessage() {} func (*SignalHungUpReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{71} + return fileDescriptor_ws_a63a85d8843f82a8, []int{71} } func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b) @@ -5224,7 +5232,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} } func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) } func (*SignalRejectReq) ProtoMessage() {} func (*SignalRejectReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{72} + return fileDescriptor_ws_a63a85d8843f82a8, []int{72} } func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b) @@ -5289,7 +5297,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} } func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) } func (*SignalRejectReply) ProtoMessage() {} func (*SignalRejectReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{73} + return fileDescriptor_ws_a63a85d8843f82a8, []int{73} } func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b) @@ -5321,7 +5329,7 @@ func (m *SignalGetRoomByGroupIDReq) Reset() { *m = SignalGetRoomByGroupI func (m *SignalGetRoomByGroupIDReq) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReq) ProtoMessage() {} func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{74} + return fileDescriptor_ws_a63a85d8843f82a8, []int{74} } func (m *SignalGetRoomByGroupIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReq.Unmarshal(m, b) @@ -5370,7 +5378,7 @@ func (m *SignalGetRoomByGroupIDReply) Reset() { *m = SignalGetRoomByGrou func (m *SignalGetRoomByGroupIDReply) String() string { return proto.CompactTextString(m) } func (*SignalGetRoomByGroupIDReply) ProtoMessage() {} func (*SignalGetRoomByGroupIDReply) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{75} + return fileDescriptor_ws_a63a85d8843f82a8, []int{75} } func (m *SignalGetRoomByGroupIDReply) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SignalGetRoomByGroupIDReply.Unmarshal(m, b) @@ -5439,7 +5447,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} } func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) } func (*DelMsgListReq) ProtoMessage() {} func (*DelMsgListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{76} + return fileDescriptor_ws_a63a85d8843f82a8, []int{76} } func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b) @@ -5499,7 +5507,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} } func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) } func (*DelMsgListResp) ProtoMessage() {} func (*DelMsgListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_28f8f8e2747ce3c8, []int{77} + return fileDescriptor_ws_a63a85d8843f82a8, []int{77} } func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b) @@ -5618,234 +5626,235 @@ func init() { proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_28f8f8e2747ce3c8) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a63a85d8843f82a8) } -var fileDescriptor_ws_28f8f8e2747ce3c8 = []byte{ - // 3613 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcb, 0x6f, 0x24, 0x57, - 0xd5, 0xff, 0xaa, 0xfa, 0x61, 0xf7, 0x69, 0x3f, 0xda, 0x35, 0x13, 0xa7, 0xe3, 0x4c, 0xe6, 0x33, - 0x95, 0x51, 0x12, 0x86, 0xe0, 0x41, 0x13, 0x12, 0x41, 0x1e, 0x83, 0xc6, 0x76, 0xc6, 0x33, 0xc9, - 0xf8, 0x91, 0xea, 0x99, 0x04, 0x25, 0x91, 0x26, 0xe5, 0xae, 0xeb, 0x76, 0xc5, 0xd5, 0x75, 0xcb, - 0xf5, 0xf0, 0x8c, 0xd9, 0x20, 0x81, 0x84, 0x10, 0x1b, 0x36, 0x20, 0x24, 0x96, 0x6c, 0x10, 0x08, - 0x45, 0x08, 0x01, 0x62, 0x81, 0x10, 0x42, 0xec, 0xd8, 0xb0, 0x60, 0xc7, 0x02, 0xc4, 0x9a, 0x7f, - 0x00, 0x81, 0x14, 0x74, 0xef, 0xb9, 0x55, 0x75, 0x6f, 0x55, 0xb5, 0xdd, 0x63, 0x59, 0x99, 0x89, - 0x86, 0x5d, 0x9f, 0x53, 0xf7, 0x9c, 0x7b, 0xee, 0x39, 0xbf, 0x7b, 0xee, 0xb9, 0x8f, 0x86, 0xd9, - 0xc8, 0xd9, 0xbb, 0x73, 0x37, 0xba, 0x74, 0x37, 0x5a, 0x0a, 0x42, 0x1a, 0x53, 0x63, 0x2e, 0x22, - 0xe1, 0x01, 0x09, 0xef, 0xd8, 0x81, 0x7b, 0x27, 0xb0, 0x43, 0x7b, 0x18, 0x2d, 0x3c, 0xbb, 0x19, - 0x10, 0xff, 0xce, 0x8d, 0xf5, 0x4b, 0xc1, 0xde, 0xe0, 0x12, 0x6f, 0x75, 0x29, 0x95, 0x0a, 0xed, - 0x20, 0x20, 0xa1, 0x90, 0x35, 0xff, 0x56, 0x87, 0xd6, 0x5a, 0x48, 0x93, 0xe0, 0x86, 0xbf, 0x43, - 0x8d, 0x2e, 0x4c, 0x0c, 0x38, 0xb1, 0xda, 0xd5, 0x16, 0xb5, 0xe7, 0x5a, 0x56, 0x4a, 0x1a, 0xe7, - 0xa0, 0xc5, 0x7f, 0x6e, 0xd8, 0x43, 0xd2, 0xd5, 0xf9, 0xb7, 0x9c, 0x61, 0x98, 0x30, 0xe5, 0xd3, - 0xd8, 0xdd, 0x71, 0xfb, 0x76, 0xec, 0x52, 0xbf, 0x5b, 0xe3, 0x0d, 0x14, 0x1e, 0x6b, 0xe3, 0xfa, - 0x71, 0x48, 0x9d, 0xa4, 0xcf, 0xdb, 0xd4, 0xb1, 0x8d, 0xcc, 0x63, 0xfd, 0xef, 0xd8, 0x7d, 0x72, - 0xdb, 0xba, 0xd9, 0x6d, 0x60, 0xff, 0x82, 0x34, 0x16, 0xa1, 0x4d, 0xef, 0xfa, 0x24, 0xbc, 0x1d, - 0x91, 0xf0, 0xc6, 0x6a, 0xb7, 0xc9, 0xbf, 0xca, 0x2c, 0xe3, 0x3c, 0x40, 0x3f, 0x24, 0x76, 0x4c, - 0x6e, 0xb9, 0x43, 0xd2, 0x9d, 0x58, 0xd4, 0x9e, 0x9b, 0xb6, 0x24, 0x0e, 0xd3, 0x30, 0x24, 0xc3, - 0x6d, 0x12, 0xae, 0xd0, 0xc4, 0x8f, 0xbb, 0x93, 0xbc, 0x81, 0xcc, 0x32, 0x66, 0x40, 0x27, 0xf7, - 0xba, 0x2d, 0xae, 0x5a, 0x27, 0xf7, 0x8c, 0x79, 0x68, 0x46, 0xb1, 0x1d, 0x27, 0x51, 0x17, 0x16, - 0xb5, 0xe7, 0x1a, 0x96, 0xa0, 0x8c, 0x0b, 0x30, 0xcd, 0xf5, 0xd2, 0xd4, 0x9a, 0x36, 0x17, 0x51, - 0x99, 0x99, 0xc7, 0x6e, 0x1d, 0x06, 0xa4, 0x3b, 0xc5, 0x15, 0xe4, 0x0c, 0xe3, 0x22, 0x74, 0x7c, - 0x42, 0x9c, 0xb7, 0x49, 0x98, 0x7b, 0x6d, 0x9a, 0x37, 0x2a, 0xf1, 0x8d, 0x67, 0x60, 0xc6, 0xa3, - 0x74, 0x6f, 0x9d, 0x9b, 0xca, 0xe2, 0xd4, 0x9d, 0xe1, 0x2d, 0x0b, 0x5c, 0xe3, 0x79, 0x98, 0xb3, - 0x83, 0xc0, 0x3b, 0x44, 0xd6, 0xb5, 0xd0, 0x25, 0xbe, 0xd3, 0x9d, 0xe5, 0x4d, 0xcb, 0x1f, 0x8c, - 0x97, 0x60, 0x5e, 0x8e, 0xcf, 0xed, 0xc0, 0x49, 0x7d, 0xd7, 0xe1, 0xae, 0x19, 0xf1, 0xd5, 0x58, - 0x02, 0x43, 0xf9, 0x82, 0x2e, 0x98, 0xe3, 0x2e, 0xa8, 0xf8, 0x62, 0x7e, 0xaf, 0x06, 0xb3, 0x19, - 0xc2, 0xae, 0xd1, 0xb0, 0x47, 0xe2, 0x87, 0x18, 0x67, 0x88, 0x81, 0x66, 0x86, 0x81, 0xb5, 0x8a, - 0x38, 0x31, 0x6c, 0xb5, 0x2f, 0x3f, 0xb9, 0x34, 0xa0, 0x74, 0xe0, 0x11, 0x9c, 0x48, 0xdb, 0xc9, - 0xce, 0xd2, 0x0d, 0x3f, 0x7e, 0xe1, 0xf2, 0xdb, 0xb6, 0x97, 0x90, 0x8a, 0x20, 0xae, 0x94, 0x82, - 0x38, 0x79, 0xbc, 0x9a, 0x62, 0x84, 0x6f, 0x54, 0x45, 0xb8, 0x75, 0xbc, 0x9e, 0xb2, 0x94, 0xf9, - 0xb1, 0x0e, 0x67, 0x78, 0x58, 0x04, 0x37, 0xf1, 0xbc, 0x63, 0x52, 0xc0, 0x3c, 0x34, 0x13, 0x0c, - 0x36, 0xc6, 0x45, 0x50, 0x2c, 0x64, 0x21, 0xf5, 0xc8, 0x4d, 0x72, 0x40, 0x3c, 0x1e, 0x91, 0x86, - 0x95, 0x33, 0x8c, 0x05, 0x98, 0xfc, 0x90, 0xba, 0x3e, 0x07, 0x56, 0x9d, 0x7f, 0xcc, 0x68, 0xf6, - 0xcd, 0x77, 0xfb, 0x7b, 0x3e, 0x8b, 0x35, 0xc6, 0x21, 0xa3, 0xe5, 0x10, 0x35, 0xd5, 0x10, 0x3d, - 0x03, 0x33, 0x76, 0x10, 0xac, 0xdb, 0xfe, 0x80, 0x84, 0xd8, 0xe9, 0x04, 0x4e, 0x07, 0x95, 0xcb, - 0x12, 0x02, 0xeb, 0xa9, 0x47, 0x93, 0xb0, 0x4f, 0xb8, 0xb7, 0x1b, 0x96, 0xc4, 0x61, 0x7a, 0x68, - 0x40, 0x42, 0x69, 0x1e, 0xe3, 0xd4, 0x2f, 0x70, 0x05, 0x24, 0x20, 0x83, 0x04, 0x4b, 0x24, 0x49, - 0x4c, 0x5e, 0xf7, 0x1d, 0x3e, 0xa8, 0xb6, 0x48, 0x24, 0x39, 0x8b, 0x25, 0x08, 0xd7, 0x3f, 0x70, - 0xe3, 0x2c, 0x5d, 0x4d, 0x61, 0x82, 0x50, 0x98, 0xe6, 0xb7, 0x34, 0x98, 0xd9, 0x4a, 0xb6, 0x3d, - 0xb7, 0xcf, 0x19, 0xcc, 0xf9, 0xb9, 0x8b, 0x35, 0xc5, 0xc5, 0xb2, 0xa3, 0xf4, 0xd1, 0x8e, 0xaa, - 0xa9, 0x8e, 0x9a, 0x87, 0xe6, 0x80, 0xf8, 0x0e, 0x09, 0x85, 0xe3, 0x05, 0x25, 0x06, 0xd4, 0x48, - 0x07, 0x64, 0xfe, 0x41, 0x87, 0xc9, 0x4f, 0xd8, 0x84, 0x45, 0x68, 0x07, 0xbb, 0xd4, 0x27, 0x1b, - 0x09, 0x03, 0x9f, 0xb0, 0x45, 0x66, 0x19, 0x67, 0xa1, 0xb1, 0xed, 0x86, 0xf1, 0x2e, 0x8f, 0xfe, - 0xb4, 0x85, 0x04, 0xe3, 0x92, 0xa1, 0xed, 0x62, 0xc8, 0x5b, 0x16, 0x12, 0x62, 0x40, 0x93, 0x59, - 0x84, 0xd4, 0xa5, 0xa0, 0x55, 0x5a, 0x0a, 0xca, 0x08, 0x82, 0x4a, 0x04, 0x5d, 0x84, 0xce, 0xc0, - 0xa3, 0xdb, 0xb6, 0x67, 0x91, 0xfe, 0xc1, 0x7a, 0x34, 0xd8, 0x0c, 0x62, 0x1e, 0xee, 0x86, 0x55, - 0xe2, 0x9b, 0xff, 0xd2, 0x00, 0x70, 0x6a, 0x71, 0x37, 0x16, 0xd6, 0x2b, 0xad, 0xbc, 0x5e, 0xcd, - 0x43, 0x33, 0x24, 0x43, 0x3b, 0xdc, 0x4b, 0xa7, 0x13, 0x52, 0x05, 0xe3, 0x6b, 0x25, 0xe3, 0x5f, - 0x01, 0xd8, 0xe1, 0xfd, 0x30, 0x3d, 0xdc, 0xad, 0x6c, 0xf2, 0x97, 0x4a, 0x80, 0xa5, 0x34, 0xa2, - 0x96, 0xd4, 0x9c, 0xcd, 0x55, 0xdb, 0x71, 0xc4, 0x94, 0x68, 0xe0, 0x5c, 0xcd, 0x18, 0x15, 0x33, - 0xa2, 0x79, 0xc4, 0x8c, 0x98, 0xc8, 0x00, 0xf4, 0x4f, 0x0d, 0x5a, 0xcb, 0x9e, 0xdd, 0xdf, 0x1b, - 0x73, 0xe8, 0xea, 0x10, 0xf5, 0xd2, 0x10, 0xd7, 0x60, 0x7a, 0x9b, 0xa9, 0x4b, 0x87, 0xc0, 0xbd, - 0xd0, 0xbe, 0xfc, 0x99, 0x8a, 0x51, 0xaa, 0x13, 0xc8, 0x52, 0xe5, 0xd4, 0xe1, 0xd6, 0x8f, 0x1f, - 0x6e, 0xe3, 0x88, 0xe1, 0x66, 0x6b, 0x82, 0xf9, 0x83, 0x1a, 0x4c, 0xf1, 0xd4, 0x69, 0x91, 0xfd, - 0x84, 0x44, 0xb1, 0xf1, 0x1a, 0x4c, 0x26, 0xa9, 0xa9, 0xda, 0xb8, 0xa6, 0x66, 0x22, 0xc6, 0xcb, - 0x62, 0xcd, 0xe3, 0xf2, 0x3a, 0x97, 0x3f, 0x57, 0x21, 0x9f, 0x2d, 0xa2, 0x56, 0xde, 0x9c, 0xad, - 0x76, 0xbb, 0xb6, 0xef, 0x78, 0xc4, 0x22, 0x51, 0xe2, 0xc5, 0x22, 0xff, 0x2a, 0x3c, 0x44, 0xda, - 0xfe, 0x7a, 0x34, 0x10, 0x6b, 0xa1, 0xa0, 0x98, 0x77, 0xb0, 0x1d, 0xfb, 0x84, 0x43, 0xcf, 0x19, - 0x6c, 0x52, 0x87, 0x64, 0x9f, 0x47, 0x08, 0xa7, 0x60, 0x4a, 0xe6, 0x7d, 0x0a, 0xaf, 0x21, 0x10, - 0x14, 0x1e, 0x0b, 0x31, 0xd2, 0x5c, 0x01, 0x16, 0x5b, 0x12, 0xa7, 0x54, 0x6b, 0xa9, 0xc9, 0x1a, - 0x4a, 0xc9, 0xba, 0x94, 0x52, 0xdb, 0x55, 0x29, 0xf5, 0xaf, 0x35, 0x98, 0xc6, 0x49, 0x98, 0x86, - 0xe6, 0x3c, 0x9b, 0x2d, 0x74, 0xa8, 0x60, 0x51, 0xe2, 0xb0, 0xb1, 0x30, 0x6a, 0x43, 0x4d, 0x6d, - 0x0a, 0x8f, 0x01, 0x9a, 0xd1, 0xd7, 0x94, 0x14, 0x27, 0xb3, 0xd2, 0x5e, 0xd6, 0xe4, 0x54, 0x27, - 0x71, 0x58, 0xf2, 0x8c, 0xa9, 0x82, 0xb1, 0x8c, 0x66, 0xb2, 0x31, 0xcd, 0xfa, 0x47, 0x94, 0x49, - 0x1c, 0x16, 0xa5, 0x98, 0xa6, 0x7d, 0xa3, 0xab, 0x73, 0x06, 0x6a, 0x16, 0xfd, 0xe2, 0x12, 0x97, - 0xd1, 0x25, 0x6c, 0xb4, 0x8e, 0xc4, 0x06, 0x28, 0xd8, 0x50, 0xa7, 0x68, 0xbb, 0x34, 0x45, 0x2f, - 0xc0, 0x34, 0xea, 0x29, 0x2c, 0x71, 0x0a, 0x53, 0x45, 0xd8, 0x74, 0x11, 0x61, 0x2a, 0x46, 0x66, - 0x46, 0x60, 0x64, 0x36, 0x9b, 0x77, 0xbf, 0xd0, 0x01, 0x56, 0x49, 0x60, 0x87, 0xf1, 0x90, 0xf8, - 0x31, 0x1b, 0x9e, 0x93, 0x51, 0x59, 0x70, 0x15, 0x9e, 0xbc, 0x32, 0xe9, 0xea, 0xca, 0x64, 0x40, - 0x9d, 0x3b, 0x1c, 0xa3, 0xc9, 0x7f, 0x33, 0x67, 0x06, 0x76, 0x88, 0xda, 0x70, 0xaa, 0x64, 0x34, - 0x5b, 0x79, 0x68, 0xe8, 0x88, 0xb5, 0xaa, 0x61, 0x21, 0xc1, 0x52, 0x48, 0xde, 0x1f, 0xaf, 0xf4, - 0x9b, 0xb8, 0x92, 0xa8, 0xdc, 0x63, 0x37, 0x27, 0x17, 0xa1, 0x13, 0x25, 0xdb, 0xf9, 0xe0, 0x36, - 0x92, 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0x5a, 0x58, 0x23, 0x5c, 0xdc, 0x72, 0x46, - 0xb1, 0x5a, 0x31, 0x7f, 0xa6, 0x43, 0x67, 0x33, 0x1c, 0xd8, 0xbe, 0xfb, 0xb5, 0xac, 0x2a, 0x3f, - 0xd1, 0x22, 0xbf, 0x08, 0x6d, 0xe2, 0x0f, 0x3c, 0x37, 0xda, 0xdd, 0xc8, 0xfd, 0x26, 0xb3, 0x64, - 0x67, 0xd7, 0x47, 0x95, 0x01, 0x0d, 0xa5, 0x0c, 0x98, 0x87, 0xe6, 0x90, 0x6e, 0xbb, 0x5e, 0x8a, - 0x7b, 0x41, 0x71, 0xcc, 0x13, 0x8f, 0xf0, 0x7a, 0x20, 0xc3, 0x7c, 0xca, 0xc8, 0x4b, 0x83, 0xc9, - 0xca, 0xd2, 0xa0, 0x25, 0x97, 0x06, 0xaa, 0xe3, 0xa1, 0xe4, 0x78, 0x74, 0x57, 0x3b, 0x73, 0xd7, - 0xef, 0x35, 0xe8, 0xe4, 0xee, 0xc6, 0xda, 0x78, 0xa4, 0xbb, 0x8a, 0x08, 0xd4, 0x2b, 0x10, 0x98, - 0xe1, 0xa6, 0x26, 0xe3, 0x86, 0x21, 0x8d, 0x46, 0xae, 0xb4, 0x41, 0xc9, 0x68, 0xd6, 0x9b, 0x47, - 0x6c, 0xc9, 0x59, 0x48, 0x49, 0xdb, 0xd1, 0xa6, 0xb2, 0x1d, 0x2d, 0xae, 0xc6, 0xbf, 0xd1, 0xe0, - 0x2c, 0x8b, 0x72, 0x69, 0x18, 0x9b, 0xd0, 0xa1, 0x05, 0x24, 0x88, 0xe5, 0xea, 0xe9, 0x8a, 0xe5, - 0xa6, 0x08, 0x1a, 0xab, 0x24, 0xcc, 0x14, 0x3a, 0x85, 0x4e, 0xc4, 0xfa, 0x55, 0xa5, 0xb0, 0x68, - 0x8f, 0x55, 0x12, 0x36, 0x7f, 0xab, 0x41, 0x07, 0x17, 0x48, 0x69, 0x9e, 0x9f, 0xba, 0xd9, 0xef, - 0xc0, 0xd9, 0x62, 0xcf, 0x37, 0xdd, 0x28, 0xee, 0xea, 0x8b, 0xb5, 0x71, 0x4d, 0xaf, 0x54, 0xc0, - 0xe6, 0xda, 0xe3, 0x5b, 0x89, 0xe7, 0xad, 0x93, 0x28, 0xb2, 0x07, 0x64, 0xf9, 0xb0, 0x47, 0xf6, - 0xd9, 0x07, 0x8b, 0xec, 0x8f, 0xc4, 0x10, 0xab, 0x96, 0x78, 0xb9, 0xe1, 0x52, 0x3f, 0x83, 0x90, - 0xcc, 0x62, 0xd3, 0x2a, 0x42, 0x3d, 0xdd, 0xda, 0x62, 0x8d, 0x2d, 0xc4, 0x82, 0x34, 0x3e, 0x80, - 0x29, 0x5e, 0x09, 0x88, 0x6e, 0xba, 0x75, 0x3e, 0x80, 0x57, 0x2b, 0x6b, 0x8f, 0x4a, 0xab, 0xb0, - 0xa6, 0x10, 0xf4, 0xeb, 0x7e, 0x1c, 0x1e, 0x5a, 0x8a, 0xc6, 0x85, 0xf7, 0x60, 0xae, 0xd4, 0xc4, - 0xe8, 0x40, 0x6d, 0x8f, 0x1c, 0x8a, 0x71, 0xb0, 0x9f, 0xc6, 0x17, 0xa0, 0x71, 0xc0, 0x36, 0x9a, - 0x22, 0xfa, 0x0b, 0x15, 0x16, 0x08, 0x9b, 0x2d, 0x6c, 0xf8, 0xb2, 0xfe, 0x25, 0xcd, 0x7c, 0x3a, - 0x1b, 0x98, 0x3c, 0x46, 0x4d, 0x19, 0xa3, 0xf9, 0x26, 0xb4, 0xd7, 0xa3, 0xc1, 0xaa, 0x1d, 0xdb, - 0xbc, 0xe1, 0xab, 0xd0, 0x1e, 0xe6, 0x24, 0x6f, 0x5c, 0xdd, 0x9f, 0x10, 0xb2, 0xe4, 0xe6, 0xe6, - 0x9f, 0x75, 0xe8, 0x56, 0xbb, 0x22, 0x0a, 0x98, 0x0d, 0x24, 0x0c, 0x57, 0xa8, 0x43, 0xf8, 0xd0, - 0x1a, 0x56, 0x4a, 0xb2, 0xd8, 0x91, 0x30, 0x64, 0x6b, 0x98, 0x28, 0xd5, 0x91, 0x32, 0x96, 0xa0, - 0xee, 0xa5, 0x61, 0x39, 0xda, 0x0a, 0xde, 0xce, 0x18, 0x42, 0x87, 0x7b, 0x57, 0x1a, 0x90, 0x88, - 0xd9, 0xd5, 0xb1, 0x63, 0x16, 0x05, 0x18, 0x34, 0x49, 0x07, 0x06, 0xae, 0xa4, 0x7a, 0xa1, 0x0f, - 0x8f, 0x55, 0x36, 0xad, 0x08, 0xe0, 0x17, 0xd5, 0x00, 0x9e, 0x1f, 0x3d, 0x94, 0x62, 0x10, 0x03, - 0x30, 0xd6, 0x48, 0xbc, 0x6e, 0xdf, 0xbb, 0xea, 0x3b, 0xeb, 0xae, 0xdf, 0x23, 0xfb, 0x0c, 0xed, - 0x8b, 0xd0, 0x16, 0xc7, 0x06, 0x59, 0x98, 0x5a, 0x96, 0xcc, 0x1a, 0x79, 0x9a, 0x50, 0x98, 0x0f, - 0xb5, 0xd2, 0x7c, 0x30, 0xaf, 0xc0, 0x94, 0xdc, 0x1d, 0x5f, 0x44, 0xec, 0x7b, 0x3d, 0xb2, 0xcf, - 0x07, 0x34, 0x6d, 0x09, 0x8a, 0xf3, 0x79, 0x0b, 0xb1, 0xc3, 0x10, 0x94, 0xf9, 0x27, 0x1d, 0xce, - 0x94, 0x4c, 0x8e, 0x82, 0xfb, 0xd5, 0x23, 0xe3, 0xa5, 0x36, 0x0a, 0x2f, 0x75, 0x05, 0x2f, 0x7b, - 0x30, 0x87, 0x41, 0x92, 0xba, 0xee, 0x36, 0x38, 0x00, 0x5e, 0xab, 0x2a, 0xf8, 0xcb, 0x46, 0x8a, - 0xd8, 0x4b, 0x5c, 0x0c, 0x7e, 0x59, 0xef, 0x02, 0x81, 0xf9, 0xea, 0xc6, 0x15, 0xe1, 0x7f, 0x51, - 0x0d, 0xff, 0xff, 0x57, 0x85, 0x5f, 0xb6, 0x44, 0x8a, 0xff, 0x3e, 0xcc, 0xb2, 0xa4, 0xda, 0x23, - 0xbe, 0xb3, 0x1e, 0x0d, 0xb8, 0x23, 0x17, 0xa1, 0x8d, 0xf2, 0xeb, 0xd1, 0x20, 0xdf, 0x00, 0x4a, - 0x2c, 0xd6, 0xa2, 0xef, 0xb9, 0x2c, 0x79, 0xf2, 0x16, 0x22, 0xe9, 0x49, 0x2c, 0xb6, 0x40, 0x46, - 0x44, 0x9c, 0xb0, 0x30, 0xef, 0xd6, 0xac, 0x8c, 0x36, 0x7f, 0xdd, 0x84, 0x09, 0x81, 0x46, 0xbe, - 0x28, 0xb2, 0x3d, 0x77, 0x96, 0x56, 0x91, 0xc2, 0xba, 0xb6, 0x7f, 0x90, 0xc3, 0x0b, 0x29, 0xf9, - 0x78, 0xab, 0xa6, 0x1e, 0x6f, 0x15, 0x6c, 0xaa, 0x97, 0x6d, 0x2a, 0x8c, 0xab, 0x51, 0x1e, 0x17, - 0x2b, 0xe3, 0x78, 0x65, 0xb3, 0xe5, 0xd9, 0xf1, 0x0e, 0x0d, 0x87, 0x62, 0x0b, 0xdd, 0xb0, 0x4a, - 0x7c, 0x56, 0x3a, 0x22, 0x2f, 0xab, 0xfd, 0x71, 0x09, 0x2f, 0x70, 0x59, 0xa5, 0x8d, 0x9c, 0x74, - 0x0f, 0x80, 0xe7, 0x1c, 0x2a, 0x13, 0x6d, 0x8b, 0x22, 0x97, 0xfa, 0xbc, 0x0a, 0xc5, 0x52, 0x5f, - 0x66, 0xb1, 0x91, 0x0f, 0xa3, 0xc1, 0xb5, 0x90, 0x0e, 0xc5, 0xf6, 0x2a, 0x25, 0xf9, 0xc8, 0xa9, - 0x1f, 0xa7, 0x15, 0x2c, 0x9e, 0x70, 0xc8, 0x2c, 0x26, 0x2b, 0x48, 0x5e, 0xe7, 0x4f, 0x59, 0x29, - 0xc9, 0xb0, 0x14, 0x91, 0x7d, 0x51, 0xbc, 0xb3, 0x9f, 0x4a, 0xe4, 0x66, 0xd5, 0xc8, 0x15, 0xaa, - 0xb1, 0x0e, 0xff, 0x2a, 0x57, 0x63, 0x79, 0x89, 0x33, 0xa7, 0x94, 0x38, 0x57, 0x61, 0x82, 0x06, - 0x6c, 0xfa, 0x47, 0x5d, 0x83, 0x4f, 0x97, 0x67, 0x47, 0x27, 0xa8, 0xa5, 0x4d, 0x6c, 0x89, 0x13, - 0x23, 0x95, 0x33, 0x6e, 0xc2, 0x2c, 0xdd, 0xd9, 0xf1, 0x5c, 0x9f, 0x6c, 0x25, 0xd1, 0x2e, 0xdf, - 0x6a, 0x9f, 0xe1, 0x60, 0x37, 0xab, 0x8a, 0x08, 0xb5, 0xa5, 0x55, 0x14, 0x65, 0x95, 0x9f, 0x1d, - 0xe3, 0x26, 0x87, 0x27, 0xb8, 0xb3, 0x3c, 0xc1, 0x29, 0x3c, 0x7e, 0x4e, 0x28, 0x25, 0xfa, 0xc7, - 0xb8, 0xe3, 0x64, 0x16, 0x6a, 0x89, 0xed, 0xfe, 0x2e, 0xe1, 0x87, 0x46, 0xdd, 0x79, 0xac, 0x1f, - 0x65, 0x9e, 0xa8, 0xee, 0x1e, 0x4f, 0xab, 0xbb, 0x85, 0x97, 0x61, 0x4a, 0x1e, 0x60, 0xc5, 0x64, - 0x3e, 0x2b, 0x4f, 0xe6, 0x49, 0x79, 0xae, 0x7e, 0x5f, 0x83, 0xd9, 0xc2, 0xd0, 0x58, 0xeb, 0xd8, - 0x8d, 0x3d, 0x22, 0x34, 0x20, 0xc1, 0x76, 0x47, 0x0e, 0x89, 0xfa, 0x62, 0xf2, 0xf0, 0xdf, 0xc2, - 0x92, 0x5a, 0xb6, 0x65, 0x37, 0x61, 0xca, 0xdd, 0xec, 0x31, 0x45, 0x3d, 0x9a, 0xf8, 0x4e, 0x76, - 0xd0, 0x2e, 0xf1, 0xf8, 0xb6, 0x7d, 0xb3, 0xb7, 0x6c, 0x3b, 0x03, 0x82, 0xd7, 0x2e, 0x0d, 0x6e, - 0x93, 0xca, 0x34, 0x1d, 0x98, 0xbc, 0xe5, 0x06, 0xd1, 0x0a, 0x1d, 0x0e, 0x19, 0x04, 0x1c, 0x12, - 0xb3, 0x3a, 0x5e, 0xe3, 0x0e, 0x13, 0x14, 0xf3, 0xa6, 0x43, 0x76, 0xec, 0xc4, 0x8b, 0x59, 0xd3, - 0x34, 0x65, 0x48, 0x2c, 0x7e, 0x84, 0x10, 0x51, 0x7f, 0x15, 0xa5, 0xd1, 0x4e, 0x89, 0x63, 0xfe, - 0x51, 0x87, 0x0e, 0xcf, 0x88, 0x2b, 0x1c, 0x70, 0x0e, 0x17, 0xba, 0x0c, 0x0d, 0x9e, 0x00, 0x44, - 0x45, 0x79, 0xf4, 0xb9, 0x0b, 0x36, 0x35, 0xae, 0x40, 0x93, 0x06, 0xbc, 0x0c, 0xc5, 0x74, 0xf9, - 0xcc, 0x28, 0x21, 0xf5, 0x68, 0xdd, 0x12, 0x52, 0xc6, 0x35, 0x80, 0x61, 0x5e, 0x75, 0x62, 0xf1, - 0x30, 0xae, 0x0e, 0x49, 0x92, 0x39, 0x37, 0x5b, 0x17, 0xb3, 0xf3, 0xf5, 0x9a, 0xa5, 0x32, 0x8d, - 0x0d, 0x98, 0xe1, 0x66, 0x6f, 0xa6, 0x07, 0x70, 0x3c, 0x06, 0xe3, 0xf7, 0x58, 0x90, 0x36, 0x7f, - 0xa4, 0x09, 0x37, 0xb2, 0xaf, 0x3d, 0x82, 0xbe, 0xcf, 0x5d, 0xa2, 0x9d, 0xc8, 0x25, 0x0b, 0x30, - 0x39, 0x4c, 0xa4, 0xf3, 0xc0, 0x9a, 0x95, 0xd1, 0x79, 0x88, 0x6a, 0x63, 0x87, 0xc8, 0xfc, 0xb1, - 0x06, 0xdd, 0x37, 0xa8, 0xeb, 0xf3, 0x0f, 0x57, 0x83, 0xc0, 0x13, 0xd7, 0x30, 0x27, 0x8e, 0xf9, - 0x57, 0xa0, 0x65, 0xa3, 0x1a, 0x3f, 0x16, 0x61, 0x1f, 0xe3, 0x8c, 0x2f, 0x97, 0x91, 0x0e, 0x5a, - 0x6a, 0xf2, 0x41, 0x8b, 0xf9, 0x91, 0x06, 0x33, 0xe8, 0x94, 0xb7, 0x12, 0x37, 0x3e, 0xb1, 0x7d, - 0xcb, 0x30, 0xb9, 0x9f, 0xb8, 0xf1, 0x09, 0x50, 0x99, 0xc9, 0x95, 0xf1, 0x54, 0xab, 0xc0, 0x93, - 0xf9, 0x73, 0x0d, 0xce, 0x15, 0xdd, 0x7a, 0xb5, 0xdf, 0x27, 0xc1, 0x83, 0x9c, 0x52, 0xca, 0x41, - 0x53, 0xbd, 0x70, 0xd0, 0x54, 0x69, 0xb2, 0x45, 0x3e, 0x24, 0xfd, 0x87, 0xd7, 0xe4, 0x6f, 0xea, - 0xf0, 0xc4, 0x5a, 0x36, 0xf1, 0x6e, 0x85, 0xb6, 0x1f, 0xed, 0x90, 0x30, 0x7c, 0x80, 0xf6, 0xde, - 0x84, 0x69, 0x9f, 0xdc, 0xcd, 0x6d, 0x12, 0xd3, 0x71, 0x5c, 0x35, 0xaa, 0xf0, 0x78, 0xb9, 0xcb, - 0xfc, 0x8f, 0x06, 0x1d, 0xd4, 0xf3, 0xa6, 0xdb, 0xdf, 0x7b, 0x80, 0x83, 0xdf, 0x80, 0x99, 0x3d, - 0x6e, 0x01, 0xa3, 0x4e, 0x90, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x63, 0x0d, 0xe6, 0xd2, 0xdb, - 0xdf, 0x03, 0xf7, 0x41, 0x82, 0x75, 0x0b, 0x66, 0xf1, 0xa4, 0xfd, 0xa4, 0x0e, 0x28, 0x8a, 0x8f, - 0xe9, 0x81, 0x5f, 0x69, 0x30, 0x8b, 0x9a, 0x5e, 0xf7, 0x63, 0x12, 0x9e, 0x78, 0xfc, 0xd7, 0xa1, - 0x4d, 0xfc, 0x38, 0xb4, 0xfd, 0x93, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, 0x91, 0x06, 0x06, - 0x57, 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x60, 0xe8, 0xc6, 0x33, 0xf8, 0x87, 0x3a, 0x9c, - 0x95, 0xb4, 0xac, 0x27, 0xf1, 0xc3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, 0xc8, 0xf7, 0xa0, - 0xe3, 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, 0xf1, 0xe2, 0x68, - 0xda, 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, 0x47, 0xc6, 0x45, - 0xe6, 0x4f, 0x35, 0x98, 0xc1, 0x26, 0x0f, 0xff, 0x90, 0xd9, 0x5a, 0x8f, 0x40, 0xfe, 0xd4, 0x44, - 0x89, 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x0f, 0x2f, 0xb4, 0xae, 0x43, 0xbb, 0xbf, 0x6b, - 0xfb, 0x83, 0x13, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x5c, 0x3e, 0xb4, 0x5f, 0xc1, 0x4f, 0x7c, - 0xf8, 0x2f, 0x14, 0x86, 0x72, 0xe4, 0x3b, 0x87, 0xfb, 0x73, 0xfa, 0x1e, 0xcc, 0xe1, 0x4d, 0xb1, - 0x54, 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, 0xaa, 0x2f, 0x09, - 0xc4, 0xbb, 0xb4, 0xfc, 0x25, 0xc1, 0x79, 0x00, 0xdb, 0x71, 0xde, 0xa1, 0xa1, 0xe3, 0xfa, 0x69, - 0x81, 0x2f, 0x71, 0xcc, 0x37, 0x60, 0xea, 0x5a, 0x48, 0x87, 0xb7, 0xa4, 0x3b, 0xdf, 0x23, 0x6f, - 0xa5, 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0xdf, 0x87, 0xc7, 0x4a, 0x86, 0x73, 0x67, 0xad, - 0xe0, 0x55, 0x76, 0xda, 0x89, 0x80, 0x4c, 0xd5, 0x59, 0x9e, 0x6c, 0x8b, 0xa5, 0x08, 0x99, 0xdf, - 0xd0, 0xe0, 0xa9, 0x92, 0xfa, 0xab, 0x41, 0x10, 0xd2, 0x03, 0x11, 0x93, 0xd3, 0xe8, 0x46, 0x2d, - 0x7e, 0xf5, 0x62, 0xf1, 0x5b, 0x69, 0x84, 0x52, 0xb0, 0x7f, 0x02, 0x46, 0xfc, 0x44, 0x83, 0x59, - 0x61, 0x84, 0xe3, 0x88, 0x6e, 0x5f, 0x84, 0x26, 0x3e, 0xa6, 0x11, 0x1d, 0x3e, 0x55, 0xd9, 0x61, - 0xfa, 0x08, 0xc8, 0x12, 0x8d, 0xcb, 0x88, 0xd4, 0xab, 0x66, 0xd4, 0x97, 0x33, 0xb0, 0x8f, 0xfd, - 0xdc, 0x45, 0x08, 0x98, 0x5f, 0x4d, 0xc1, 0xbc, 0x4a, 0x3c, 0x72, 0x9a, 0x3e, 0x32, 0x6f, 0xc3, - 0x0c, 0x7f, 0xd9, 0x93, 0xfb, 0xe0, 0x54, 0xd4, 0xbe, 0x03, 0x1d, 0xae, 0xf6, 0xd4, 0xed, 0xcd, - 0x66, 0x07, 0xf3, 0x8f, 0x9c, 0x4a, 0x4e, 0x45, 0xfb, 0xe7, 0xe1, 0x4c, 0xea, 0x7b, 0x7c, 0x11, - 0x8b, 0xba, 0x47, 0xdc, 0xed, 0x99, 0x1f, 0xc0, 0xfc, 0x0a, 0xf5, 0x0f, 0x48, 0x18, 0x29, 0x8f, - 0x68, 0x51, 0x42, 0x99, 0xfc, 0x82, 0x32, 0x96, 0xc0, 0xe8, 0x4b, 0x12, 0xe2, 0x74, 0x51, 0xe7, - 0xa7, 0x8b, 0x15, 0x5f, 0xcc, 0x0f, 0x61, 0x41, 0xee, 0xa1, 0x47, 0xe2, 0xad, 0xd0, 0x3d, 0x90, - 0x7a, 0x11, 0x87, 0xe0, 0x9a, 0x72, 0x08, 0x9e, 0x1f, 0x9a, 0xeb, 0xca, 0xa1, 0xf9, 0x39, 0x68, - 0xb9, 0x91, 0x50, 0xc0, 0x41, 0x38, 0x69, 0xe5, 0x0c, 0xd3, 0x86, 0x39, 0x0c, 0x97, 0xb8, 0x94, - 0xe2, 0x5d, 0x2c, 0xc0, 0x24, 0x62, 0x30, 0xeb, 0x24, 0xa3, 0x47, 0x5e, 0xf1, 0x8c, 0xbc, 0xd0, - 0x34, 0x7b, 0x30, 0x27, 0x1e, 0xee, 0x6c, 0xd9, 0x03, 0xd7, 0xc7, 0xa4, 0x7c, 0x1e, 0x20, 0xb0, - 0x07, 0xe9, 0x53, 0x41, 0xbc, 0x9a, 0x93, 0x38, 0xec, 0x7b, 0xb4, 0x4b, 0xef, 0x8a, 0xef, 0x3a, - 0x7e, 0xcf, 0x39, 0xe6, 0xdb, 0x60, 0x58, 0x24, 0x0a, 0xa8, 0x1f, 0x11, 0x49, 0xeb, 0x22, 0xb4, - 0x57, 0x92, 0x30, 0x24, 0x3e, 0xeb, 0x2a, 0x7d, 0x0b, 0x27, 0xb3, 0x98, 0xde, 0x5e, 0xae, 0x17, - 0x8f, 0xf1, 0x25, 0x8e, 0xf9, 0xef, 0x1a, 0xb4, 0x7a, 0xee, 0xc0, 0xb7, 0x3d, 0x8b, 0xec, 0x1b, - 0xaf, 0x42, 0x13, 0xb7, 0x38, 0x02, 0x59, 0x55, 0xc7, 0xca, 0xd8, 0x1a, 0xf7, 0x72, 0x16, 0xd9, - 0xbf, 0xfe, 0x7f, 0x96, 0x90, 0x31, 0xde, 0x4a, 0x9f, 0x37, 0xdd, 0xc0, 0x23, 0x2b, 0xb1, 0xde, - 0x7d, 0xf6, 0x18, 0x25, 0xa2, 0x35, 0xea, 0x52, 0x35, 0x30, 0x83, 0xfa, 0xbc, 0x04, 0x12, 0xe9, - 0x64, 0xb4, 0x41, 0x58, 0x29, 0x09, 0x83, 0x50, 0x86, 0x49, 0xdb, 0xfc, 0x50, 0x47, 0xac, 0xec, - 0xa3, 0xa5, 0xf1, 0xec, 0x47, 0x48, 0xa3, 0x0c, 0x93, 0xde, 0x4d, 0xfc, 0xc1, 0xed, 0x40, 0x9c, - 0x35, 0x8e, 0x96, 0xbe, 0xce, 0x9b, 0x09, 0x69, 0x94, 0x61, 0xd2, 0x21, 0x4f, 0xf6, 0xdc, 0xe9, - 0x47, 0x49, 0xe3, 0x9a, 0x20, 0xa4, 0x51, 0xc6, 0x78, 0x17, 0x3a, 0x6b, 0x24, 0xb6, 0x28, 0x1d, - 0x2e, 0x1f, 0xae, 0x89, 0xab, 0x1e, 0x7c, 0xb1, 0xfd, 0xfc, 0x48, 0x3d, 0x45, 0x01, 0xd4, 0x58, - 0xd2, 0xb3, 0xdc, 0x82, 0x89, 0xc0, 0x3e, 0xf4, 0xa8, 0xed, 0x98, 0xdf, 0xa9, 0x03, 0xa4, 0x46, - 0x44, 0xbc, 0xe8, 0x52, 0xc2, 0x7f, 0xe1, 0xd8, 0xf0, 0x07, 0xde, 0xa1, 0x04, 0x80, 0x5e, 0x35, - 0x00, 0x3e, 0x37, 0x2e, 0x00, 0x50, 0x5b, 0x01, 0x02, 0x57, 0x0a, 0x10, 0xb8, 0x70, 0x2c, 0x04, - 0x84, 0x51, 0x02, 0x04, 0x57, 0x0a, 0x20, 0xb8, 0x70, 0x2c, 0x08, 0x84, 0xbc, 0x80, 0xc1, 0x95, - 0x02, 0x0c, 0x2e, 0x1c, 0x0b, 0x03, 0x21, 0x2f, 0x80, 0x70, 0xa5, 0x00, 0x84, 0x0b, 0xc7, 0x02, - 0x41, 0xc8, 0x0b, 0x28, 0xbc, 0x3f, 0x12, 0x0a, 0x4b, 0xf7, 0x01, 0x05, 0xd4, 0x79, 0x24, 0x18, - 0xfe, 0xa2, 0xc3, 0x0c, 0x0f, 0x08, 0xe6, 0x66, 0x7f, 0x87, 0x96, 0x1f, 0x2c, 0x6a, 0x15, 0x0f, - 0x16, 0x8d, 0xe7, 0x61, 0x0e, 0x19, 0x44, 0xba, 0x4c, 0xc2, 0x74, 0x5f, 0xfe, 0xc0, 0xaf, 0xcf, - 0x92, 0x28, 0xa6, 0xc3, 0x55, 0x3b, 0xb6, 0xd3, 0x32, 0x33, 0xe7, 0xc8, 0x97, 0x9b, 0xf5, 0xd2, - 0xdb, 0xfd, 0x90, 0xd2, 0x61, 0x76, 0x6b, 0x29, 0x28, 0x26, 0x11, 0xbb, 0x43, 0x42, 0x93, 0x58, - 0x24, 0xb8, 0x94, 0xc4, 0x57, 0x66, 0x8e, 0x6b, 0xf3, 0x2b, 0x41, 0xf1, 0x04, 0x2b, 0x63, 0xf0, - 0x9c, 0x9c, 0x5f, 0x71, 0x8a, 0xb7, 0xf5, 0x39, 0x67, 0x8c, 0xeb, 0x48, 0xfe, 0x37, 0x0d, 0x37, - 0x76, 0xe5, 0xa7, 0x59, 0x0d, 0x4b, 0xe1, 0x99, 0xff, 0xd0, 0xe0, 0xcc, 0x96, 0x1d, 0xc6, 0x6e, - 0xdf, 0x0d, 0x6c, 0x3f, 0x5e, 0x27, 0xb1, 0xcd, 0xc7, 0xa9, 0x3c, 0x98, 0xd5, 0xee, 0xef, 0xc1, - 0xec, 0x16, 0xcc, 0x0e, 0xd4, 0xbd, 0xd6, 0x7d, 0x6e, 0x93, 0x8a, 0xe2, 0xca, 0xeb, 0xdf, 0xda, - 0x7d, 0xbf, 0xfe, 0x35, 0xbf, 0xad, 0xc3, 0x6c, 0x61, 0x61, 0x38, 0x72, 0x55, 0xbd, 0x0a, 0xe0, - 0x66, 0x50, 0x3b, 0xe2, 0x2a, 0x42, 0xc5, 0xa3, 0x25, 0x09, 0x55, 0xdd, 0x85, 0xd6, 0x4e, 0x7e, - 0x17, 0x7a, 0x1d, 0xda, 0x41, 0x1e, 0xa4, 0x23, 0x76, 0x82, 0x15, 0xa1, 0xb4, 0x64, 0x51, 0xf3, - 0x3d, 0x98, 0x2b, 0xe5, 0x48, 0x7e, 0x41, 0x49, 0xf7, 0x88, 0x9f, 0x5d, 0x50, 0x32, 0x42, 0x02, - 0xb4, 0x5e, 0x04, 0xb4, 0xe7, 0x1e, 0xc8, 0x7f, 0x45, 0x10, 0xa4, 0xf9, 0x5d, 0x1d, 0xe6, 0xab, - 0xd7, 0xce, 0x47, 0xd5, 0xdd, 0xdb, 0xd0, 0x1d, 0xb5, 0x96, 0x9c, 0x9a, 0xd7, 0x73, 0x74, 0x67, - 0x55, 0xc6, 0xa3, 0xea, 0xee, 0x33, 0x29, 0xba, 0xa5, 0xc5, 0xd6, 0xfc, 0x65, 0xe6, 0x9f, 0xac, - 0x8e, 0x7a, 0x44, 0xfd, 0x63, 0x5c, 0x84, 0x0e, 0x0e, 0x53, 0x7a, 0x3c, 0x83, 0x65, 0x79, 0x89, - 0x9f, 0x67, 0x0a, 0xa9, 0xf0, 0x38, 0x35, 0xcc, 0xfe, 0x4e, 0x4b, 0x63, 0x92, 0x55, 0xa7, 0x9f, - 0xaa, 0x98, 0xe4, 0x48, 0x93, 0xca, 0x2a, 0x09, 0x69, 0x59, 0xd5, 0xfc, 0x3f, 0xa4, 0x1d, 0x8f, - 0xb4, 0xcc, 0x97, 0x52, 0x89, 0x69, 0xbe, 0x05, 0x4f, 0x8c, 0xdc, 0x38, 0x1c, 0xe9, 0x54, 0xa9, - 0x42, 0xd3, 0x95, 0x0a, 0xcd, 0xfc, 0xbb, 0x06, 0x4f, 0x1e, 0x51, 0x81, 0x16, 0xc2, 0xa1, 0x9d, - 0x24, 0x1c, 0x2f, 0xc1, 0x3c, 0xf5, 0x57, 0xa8, 0xef, 0x93, 0x7e, 0xec, 0xfa, 0x83, 0x52, 0xc5, - 0x39, 0xe2, 0x6b, 0x3e, 0xaf, 0x6a, 0xd5, 0xf3, 0xaa, 0x3e, 0x6a, 0x5e, 0x35, 0xd4, 0x79, 0xf5, - 0x75, 0x98, 0x5e, 0x25, 0xde, 0x7a, 0x34, 0x48, 0xdf, 0x44, 0x9f, 0xea, 0xe1, 0x41, 0xf1, 0xe5, - 0x68, 0xbd, 0xfc, 0x72, 0x74, 0x19, 0x66, 0x64, 0x03, 0x4e, 0xf2, 0xe6, 0x77, 0xf9, 0xdc, 0xbb, - 0x0b, 0x4b, 0xe2, 0xbf, 0xf4, 0xaf, 0x94, 0xbc, 0xbf, 0xdd, 0xe4, 0xff, 0xbe, 0x7d, 0xe1, 0xbf, - 0x01, 0x00, 0x00, 0xff, 0xff, 0xce, 0x8c, 0x10, 0x95, 0xa4, 0x3f, 0x00, 0x00, +var fileDescriptor_ws_a63a85d8843f82a8 = []byte{ + // 3631 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5b, 0xcd, 0x6f, 0x24, 0x47, + 0x15, 0xa7, 0x7b, 0x3e, 0xec, 0x79, 0xe3, 0x8f, 0x71, 0xef, 0xae, 0x33, 0x71, 0x36, 0x8b, 0xe9, + 0xac, 0x92, 0xb0, 0x04, 0x2f, 0xda, 0x7c, 0x08, 0xf2, 0xb1, 0x68, 0x6d, 0x67, 0xbd, 0x9b, 0xac, + 0xd7, 0x4e, 0xcf, 0x6e, 0x82, 0x92, 0x48, 0x4b, 0x7b, 0xba, 0x3c, 0xee, 0xb8, 0xa7, 0xab, 0xdd, + 0x1f, 0xde, 0x35, 0x17, 0x24, 0x90, 0x10, 0xe2, 0xc2, 0x85, 0x0f, 0x89, 0x23, 0x17, 0x04, 0x42, + 0x11, 0x42, 0x80, 0x38, 0x20, 0x84, 0x10, 0x37, 0x2e, 0x1c, 0xb8, 0x71, 0x00, 0x71, 0xe6, 0x1f, + 0x40, 0x20, 0x05, 0x55, 0xbd, 0xea, 0xee, 0xaa, 0xee, 0x1e, 0x7b, 0xd6, 0xb2, 0xb2, 0x1b, 0x2d, + 0xb7, 0x79, 0xaf, 0xeb, 0xbd, 0x7a, 0xf5, 0xde, 0xaf, 0x5e, 0xbd, 0xfa, 0x18, 0x98, 0x8d, 0x9c, + 0xdd, 0x3b, 0x77, 0xa3, 0x8b, 0x77, 0xa3, 0xa5, 0x20, 0xa4, 0x31, 0x35, 0xe6, 0x22, 0x12, 0xee, + 0x93, 0xf0, 0x8e, 0x1d, 0xb8, 0x77, 0x02, 0x3b, 0xb4, 0x87, 0xd1, 0xc2, 0x33, 0x1b, 0x01, 0xf1, + 0xef, 0x5c, 0x5f, 0xbf, 0x18, 0xec, 0x0e, 0x2e, 0xf2, 0x56, 0x17, 0x53, 0xa9, 0xd0, 0x0e, 0x02, + 0x12, 0x0a, 0x59, 0xf3, 0xef, 0x75, 0x68, 0xad, 0x85, 0x34, 0x09, 0xae, 0xfb, 0xdb, 0xd4, 0xe8, + 0xc2, 0xc4, 0x80, 0x13, 0xab, 0x5d, 0x6d, 0x51, 0x7b, 0xb6, 0x65, 0xa5, 0xa4, 0x71, 0x16, 0x5a, + 0xfc, 0xe7, 0x4d, 0x7b, 0x48, 0xba, 0x3a, 0xff, 0x96, 0x33, 0x0c, 0x13, 0xa6, 0x7c, 0x1a, 0xbb, + 0xdb, 0x6e, 0xdf, 0x8e, 0x5d, 0xea, 0x77, 0x6b, 0xbc, 0x81, 0xc2, 0x63, 0x6d, 0x5c, 0x3f, 0x0e, + 0xa9, 0x93, 0xf4, 0x79, 0x9b, 0x3a, 0xb6, 0x91, 0x79, 0xac, 0xff, 0x6d, 0xbb, 0x4f, 0x6e, 0x5b, + 0x37, 0xba, 0x0d, 0xec, 0x5f, 0x90, 0xc6, 0x22, 0xb4, 0xe9, 0x5d, 0x9f, 0x84, 0xb7, 0x23, 0x12, + 0x5e, 0x5f, 0xed, 0x36, 0xf9, 0x57, 0x99, 0x65, 0x9c, 0x03, 0xe8, 0x87, 0xc4, 0x8e, 0xc9, 0x2d, + 0x77, 0x48, 0xba, 0x13, 0x8b, 0xda, 0xb3, 0xd3, 0x96, 0xc4, 0x61, 0x1a, 0x86, 0x64, 0xb8, 0x45, + 0xc2, 0x15, 0x9a, 0xf8, 0x71, 0x77, 0x92, 0x37, 0x90, 0x59, 0xc6, 0x0c, 0xe8, 0xe4, 0x5e, 0xb7, + 0xc5, 0x55, 0xeb, 0xe4, 0x9e, 0x31, 0x0f, 0xcd, 0x28, 0xb6, 0xe3, 0x24, 0xea, 0xc2, 0xa2, 0xf6, + 0x6c, 0xc3, 0x12, 0x94, 0x71, 0x1e, 0xa6, 0xb9, 0x5e, 0x9a, 0x5a, 0xd3, 0xe6, 0x22, 0x2a, 0x33, + 0xf3, 0xd8, 0xad, 0x83, 0x80, 0x74, 0xa7, 0xb8, 0x82, 0x9c, 0x61, 0x5c, 0x80, 0x8e, 0x4f, 0x88, + 0xf3, 0x36, 0x09, 0x73, 0xaf, 0x4d, 0xf3, 0x46, 0x25, 0xbe, 0xf1, 0x34, 0xcc, 0x78, 0x94, 0xee, + 0xae, 0x73, 0x53, 0x59, 0x9c, 0xba, 0x33, 0xbc, 0x65, 0x81, 0x6b, 0x3c, 0x07, 0x73, 0x76, 0x10, + 0x78, 0x07, 0xc8, 0xba, 0x1a, 0xba, 0xc4, 0x77, 0xba, 0xb3, 0xbc, 0x69, 0xf9, 0x83, 0xf1, 0x12, + 0xcc, 0xcb, 0xf1, 0xb9, 0x1d, 0x38, 0xa9, 0xef, 0x3a, 0xdc, 0x35, 0x23, 0xbe, 0x1a, 0x4b, 0x60, + 0x28, 0x5f, 0xd0, 0x05, 0x73, 0xdc, 0x05, 0x15, 0x5f, 0xcc, 0xef, 0xd5, 0x60, 0x36, 0x43, 0xd8, + 0x55, 0x1a, 0xf6, 0x48, 0xfc, 0x10, 0xe3, 0x0c, 0x31, 0xd0, 0xcc, 0x30, 0xb0, 0x56, 0x11, 0x27, + 0x86, 0xad, 0xf6, 0xa5, 0x27, 0x96, 0x06, 0x94, 0x0e, 0x3c, 0x82, 0x13, 0x69, 0x2b, 0xd9, 0x5e, + 0xba, 0xee, 0xc7, 0xcf, 0x5f, 0x7a, 0xdb, 0xf6, 0x12, 0x52, 0x11, 0xc4, 0x95, 0x52, 0x10, 0x27, + 0x8f, 0x56, 0x53, 0x8c, 0xf0, 0xf5, 0xaa, 0x08, 0xb7, 0x8e, 0xd6, 0x53, 0x96, 0x32, 0x3f, 0xd2, + 0xe1, 0x14, 0x0f, 0x8b, 0xe0, 0x26, 0x9e, 0x77, 0x44, 0x0a, 0x98, 0x87, 0x66, 0x82, 0xc1, 0xc6, + 0xb8, 0x08, 0x8a, 0x85, 0x2c, 0xa4, 0x1e, 0xb9, 0x41, 0xf6, 0x89, 0xc7, 0x23, 0xd2, 0xb0, 0x72, + 0x86, 0xb1, 0x00, 0x93, 0x1f, 0x50, 0xd7, 0xe7, 0xc0, 0xaa, 0xf3, 0x8f, 0x19, 0xcd, 0xbe, 0xf9, + 0x6e, 0x7f, 0xd7, 0x67, 0xb1, 0xc6, 0x38, 0x64, 0xb4, 0x1c, 0xa2, 0xa6, 0x1a, 0xa2, 0xa7, 0x61, + 0xc6, 0x0e, 0x82, 0x75, 0xdb, 0x1f, 0x90, 0x10, 0x3b, 0x9d, 0xc0, 0xe9, 0xa0, 0x72, 0x59, 0x42, + 0x60, 0x3d, 0xf5, 0x68, 0x12, 0xf6, 0x09, 0xf7, 0x76, 0xc3, 0x92, 0x38, 0x4c, 0x0f, 0x0d, 0x48, + 0x28, 0xcd, 0x63, 0x9c, 0xfa, 0x05, 0xae, 0x80, 0x04, 0x64, 0x90, 0x60, 0x89, 0x24, 0x89, 0xc9, + 0xeb, 0xbe, 0xc3, 0x07, 0xd5, 0x16, 0x89, 0x24, 0x67, 0xb1, 0x04, 0xe1, 0xfa, 0xfb, 0x6e, 0x9c, + 0xa5, 0xab, 0x29, 0x4c, 0x10, 0x0a, 0xd3, 0xfc, 0x96, 0x06, 0x33, 0x9b, 0xc9, 0x96, 0xe7, 0xf6, + 0x39, 0x83, 0x39, 0x3f, 0x77, 0xb1, 0xa6, 0xb8, 0x58, 0x76, 0x94, 0x3e, 0xda, 0x51, 0x35, 0xd5, + 0x51, 0xf3, 0xd0, 0x1c, 0x10, 0xdf, 0x21, 0xa1, 0x70, 0xbc, 0xa0, 0xc4, 0x80, 0x1a, 0xe9, 0x80, + 0xcc, 0x3f, 0xea, 0x30, 0xf9, 0x31, 0x9b, 0xb0, 0x08, 0xed, 0x60, 0x87, 0xfa, 0xe4, 0x66, 0xc2, + 0xc0, 0x27, 0x6c, 0x91, 0x59, 0xc6, 0x69, 0x68, 0x6c, 0xb9, 0x61, 0xbc, 0xc3, 0xa3, 0x3f, 0x6d, + 0x21, 0xc1, 0xb8, 0x64, 0x68, 0xbb, 0x18, 0xf2, 0x96, 0x85, 0x84, 0x18, 0xd0, 0x64, 0x16, 0x21, + 0x75, 0x29, 0x68, 0x95, 0x96, 0x82, 0x32, 0x82, 0xa0, 0x12, 0x41, 0x17, 0xa0, 0x33, 0xf0, 0xe8, + 0x96, 0xed, 0x59, 0xa4, 0xbf, 0xbf, 0x1e, 0x0d, 0x36, 0x82, 0x98, 0x87, 0xbb, 0x61, 0x95, 0xf8, + 0xe6, 0xbf, 0x35, 0x00, 0x9c, 0x5a, 0xdc, 0x8d, 0x85, 0xf5, 0x4a, 0x2b, 0xaf, 0x57, 0xf3, 0xd0, + 0x0c, 0xc9, 0xd0, 0x0e, 0x77, 0xd3, 0xe9, 0x84, 0x54, 0xc1, 0xf8, 0x5a, 0xc9, 0xf8, 0x57, 0x00, + 0xb6, 0x79, 0x3f, 0x4c, 0x0f, 0x77, 0x2b, 0x9b, 0xfc, 0xa5, 0x12, 0x60, 0x29, 0x8d, 0xa8, 0x25, + 0x35, 0x67, 0x73, 0xd5, 0x76, 0x1c, 0x31, 0x25, 0x1a, 0x38, 0x57, 0x33, 0x46, 0xc5, 0x8c, 0x68, + 0x1e, 0x32, 0x23, 0x26, 0x32, 0x00, 0xfd, 0x4b, 0x83, 0xd6, 0xb2, 0x67, 0xf7, 0x77, 0xc7, 0x1c, + 0xba, 0x3a, 0x44, 0xbd, 0x34, 0xc4, 0x35, 0x98, 0xde, 0x62, 0xea, 0xd2, 0x21, 0x70, 0x2f, 0xb4, + 0x2f, 0x7d, 0xa6, 0x62, 0x94, 0xea, 0x04, 0xb2, 0x54, 0x39, 0x75, 0xb8, 0xf5, 0xa3, 0x87, 0xdb, + 0x38, 0x64, 0xb8, 0xd9, 0x9a, 0x60, 0xfe, 0xb0, 0x06, 0x53, 0x3c, 0x75, 0x5a, 0x64, 0x2f, 0x21, + 0x51, 0x6c, 0xbc, 0x06, 0x93, 0x49, 0x6a, 0xaa, 0x36, 0xae, 0xa9, 0x99, 0x88, 0xf1, 0xb2, 0x58, + 0xf3, 0xb8, 0xbc, 0xce, 0xe5, 0xcf, 0x56, 0xc8, 0x67, 0x8b, 0xa8, 0x95, 0x37, 0x67, 0xab, 0xdd, + 0x8e, 0xed, 0x3b, 0x1e, 0xb1, 0x48, 0x94, 0x78, 0xb1, 0xc8, 0xbf, 0x0a, 0x0f, 0x91, 0xb6, 0xb7, + 0x1e, 0x0d, 0xc4, 0x5a, 0x28, 0x28, 0xe6, 0x1d, 0x6c, 0xc7, 0x3e, 0xe1, 0xd0, 0x73, 0x06, 0x9b, + 0xd4, 0x21, 0xd9, 0xe3, 0x11, 0xc2, 0x29, 0x98, 0x92, 0x79, 0x9f, 0xc2, 0x6b, 0x08, 0x04, 0x85, + 0xc7, 0x42, 0x8c, 0x34, 0x57, 0x80, 0xc5, 0x96, 0xc4, 0x29, 0xd5, 0x5a, 0x6a, 0xb2, 0x86, 0x52, + 0xb2, 0x2e, 0xa5, 0xd4, 0x76, 0x55, 0x4a, 0xfd, 0x5b, 0x0d, 0xa6, 0x71, 0x12, 0xa6, 0xa1, 0x39, + 0xc7, 0x66, 0x0b, 0x1d, 0x2a, 0x58, 0x94, 0x38, 0x6c, 0x2c, 0x8c, 0xba, 0xa9, 0xa6, 0x36, 0x85, + 0xc7, 0x00, 0xcd, 0xe8, 0xab, 0x4a, 0x8a, 0x93, 0x59, 0x69, 0x2f, 0x6b, 0x72, 0xaa, 0x93, 0x38, + 0x2c, 0x79, 0xc6, 0x54, 0xc1, 0x58, 0x46, 0x33, 0xd9, 0x98, 0x66, 0xfd, 0x23, 0xca, 0x24, 0x0e, + 0x8b, 0x52, 0x4c, 0xd3, 0xbe, 0xd1, 0xd5, 0x39, 0x03, 0x35, 0x8b, 0x7e, 0x71, 0x89, 0xcb, 0xe8, + 0x12, 0x36, 0x5a, 0x87, 0x62, 0x03, 0x14, 0x6c, 0xa8, 0x53, 0xb4, 0x5d, 0x9a, 0xa2, 0xe7, 0x61, + 0x1a, 0xf5, 0x14, 0x96, 0x38, 0x85, 0xa9, 0x22, 0x6c, 0xba, 0x88, 0x30, 0x15, 0x23, 0x33, 0x23, + 0x30, 0x32, 0x9b, 0xcd, 0xbb, 0x5f, 0xea, 0x00, 0xab, 0x24, 0xb0, 0xc3, 0x78, 0x48, 0xfc, 0x98, + 0x0d, 0xcf, 0xc9, 0xa8, 0x2c, 0xb8, 0x0a, 0x4f, 0x5e, 0x99, 0x74, 0x75, 0x65, 0x32, 0xa0, 0xce, + 0x1d, 0x8e, 0xd1, 0xe4, 0xbf, 0x99, 0x33, 0x03, 0x3b, 0x44, 0x6d, 0x38, 0x55, 0x32, 0x9a, 0xad, + 0x3c, 0x34, 0x74, 0xc4, 0x5a, 0xd5, 0xb0, 0x90, 0x60, 0x29, 0x24, 0xef, 0x8f, 0x57, 0xfa, 0x4d, + 0x5c, 0x49, 0x54, 0xee, 0x91, 0x9b, 0x93, 0x0b, 0xd0, 0x89, 0x92, 0xad, 0x7c, 0x70, 0x37, 0x93, + 0xa1, 0x98, 0x34, 0x25, 0x3e, 0x73, 0x2a, 0xee, 0x5a, 0x58, 0x23, 0x5c, 0xdc, 0x72, 0x46, 0xb1, + 0x5a, 0x31, 0x7f, 0xae, 0x43, 0x67, 0x23, 0x1c, 0xd8, 0xbe, 0xfb, 0xb5, 0xac, 0x2a, 0x3f, 0xd6, + 0x22, 0xbf, 0x08, 0x6d, 0xe2, 0x0f, 0x3c, 0x37, 0xda, 0xb9, 0x99, 0xfb, 0x4d, 0x66, 0xc9, 0xce, + 0xae, 0x8f, 0x2a, 0x03, 0x1a, 0x4a, 0x19, 0x30, 0x0f, 0xcd, 0x21, 0xdd, 0x72, 0xbd, 0x14, 0xf7, + 0x82, 0xe2, 0x98, 0x27, 0x1e, 0xe1, 0xf5, 0x40, 0x86, 0xf9, 0x94, 0x91, 0x97, 0x06, 0x93, 0x95, + 0xa5, 0x41, 0x4b, 0x2e, 0x0d, 0x54, 0xc7, 0x43, 0xc9, 0xf1, 0xe8, 0xae, 0x76, 0xe6, 0xae, 0x3f, + 0x68, 0xd0, 0xc9, 0xdd, 0x8d, 0xb5, 0xf1, 0x48, 0x77, 0x15, 0x11, 0xa8, 0x57, 0x20, 0x30, 0xc3, + 0x4d, 0x4d, 0xc6, 0x0d, 0x43, 0x1a, 0x8d, 0x5c, 0x69, 0x83, 0x92, 0xd1, 0xac, 0x37, 0x8f, 0xd8, + 0x92, 0xb3, 0x90, 0x92, 0xb6, 0xa3, 0x4d, 0x65, 0x3b, 0x5a, 0x5c, 0x8d, 0x7f, 0xab, 0xc1, 0x69, + 0x16, 0xe5, 0xd2, 0x30, 0x36, 0xa0, 0x43, 0x0b, 0x48, 0x10, 0xcb, 0xd5, 0x53, 0x15, 0xcb, 0x4d, + 0x11, 0x34, 0x56, 0x49, 0x98, 0x29, 0x74, 0x0a, 0x9d, 0x88, 0xf5, 0xab, 0x4a, 0x61, 0xd1, 0x1e, + 0xab, 0x24, 0x6c, 0xfe, 0x4e, 0x83, 0x0e, 0x2e, 0x90, 0xd2, 0x3c, 0x3f, 0x71, 0xb3, 0xdf, 0x81, + 0xd3, 0xc5, 0x9e, 0x6f, 0xb8, 0x51, 0xdc, 0xd5, 0x17, 0x6b, 0xe3, 0x9a, 0x5e, 0xa9, 0x80, 0xcd, + 0xb5, 0xc7, 0x36, 0x13, 0xcf, 0x5b, 0x27, 0x51, 0x64, 0x0f, 0xc8, 0xf2, 0x41, 0x8f, 0xec, 0xb1, + 0x0f, 0x16, 0xd9, 0x1b, 0x89, 0x21, 0x56, 0x2d, 0xf1, 0x72, 0xc3, 0xa5, 0x7e, 0x06, 0x21, 0x99, + 0xc5, 0xa6, 0x55, 0x84, 0x7a, 0xba, 0xb5, 0xc5, 0x1a, 0x5b, 0x88, 0x05, 0x69, 0x7c, 0x15, 0xa6, + 0x78, 0x25, 0x20, 0xba, 0xe9, 0xd6, 0xf9, 0x00, 0x5e, 0xad, 0xac, 0x3d, 0x2a, 0xad, 0xc2, 0x9a, + 0x42, 0xd0, 0xaf, 0xfb, 0x71, 0x78, 0x60, 0x29, 0x1a, 0x17, 0xde, 0x83, 0xb9, 0x52, 0x13, 0xa3, + 0x03, 0xb5, 0x5d, 0x72, 0x20, 0xc6, 0xc1, 0x7e, 0x1a, 0x5f, 0x80, 0xc6, 0x3e, 0xdb, 0x68, 0x8a, + 0xe8, 0x2f, 0x54, 0x58, 0x20, 0x6c, 0xb6, 0xb0, 0xe1, 0xcb, 0xfa, 0x17, 0x35, 0xf3, 0xa9, 0x6c, + 0x60, 0xf2, 0x18, 0x35, 0x65, 0x8c, 0xe6, 0x9b, 0xd0, 0x5e, 0x8f, 0x06, 0xab, 0x76, 0x6c, 0xf3, + 0x86, 0xaf, 0x42, 0x7b, 0x98, 0x93, 0xbc, 0x71, 0x75, 0x7f, 0x42, 0xc8, 0x92, 0x9b, 0x9b, 0x7f, + 0xd1, 0xa1, 0x5b, 0xed, 0x8a, 0x28, 0x60, 0x36, 0x90, 0x30, 0x5c, 0xa1, 0x0e, 0xe1, 0x43, 0x6b, + 0x58, 0x29, 0xc9, 0x62, 0x47, 0xc2, 0x90, 0xad, 0x61, 0xa2, 0x54, 0x47, 0xca, 0x58, 0x82, 0xba, + 0x97, 0x86, 0xe5, 0x70, 0x2b, 0x78, 0x3b, 0x63, 0x08, 0x1d, 0xee, 0x5d, 0x69, 0x40, 0x22, 0x66, + 0x57, 0xc6, 0x8e, 0x59, 0x14, 0x60, 0xd0, 0x24, 0x1d, 0x18, 0xb8, 0x92, 0xea, 0x85, 0x3e, 0x9c, + 0xa9, 0x6c, 0x5a, 0x11, 0xc0, 0x17, 0xd4, 0x00, 0x9e, 0x1b, 0x3d, 0x94, 0x62, 0x10, 0x03, 0x30, + 0xd6, 0x48, 0xbc, 0x6e, 0xdf, 0xbb, 0xe2, 0x3b, 0xeb, 0xae, 0xdf, 0x23, 0x7b, 0x0c, 0xed, 0x8b, + 0xd0, 0x16, 0xc7, 0x06, 0x59, 0x98, 0x5a, 0x96, 0xcc, 0x1a, 0x79, 0x9a, 0x50, 0x98, 0x0f, 0xb5, + 0xd2, 0x7c, 0x30, 0x2f, 0xc3, 0x94, 0xdc, 0x1d, 0x5f, 0x44, 0xec, 0x7b, 0x3d, 0xb2, 0xc7, 0x07, + 0x34, 0x6d, 0x09, 0x8a, 0xf3, 0x79, 0x0b, 0xb1, 0xc3, 0x10, 0x94, 0xf9, 0x67, 0x1d, 0x4e, 0x95, + 0x4c, 0x8e, 0x82, 0xfb, 0xd5, 0x23, 0xe3, 0xa5, 0x36, 0x0a, 0x2f, 0x75, 0x05, 0x2f, 0xbb, 0x30, + 0x87, 0x41, 0x92, 0xba, 0xee, 0x36, 0x38, 0x00, 0x5e, 0xab, 0x2a, 0xf8, 0xcb, 0x46, 0x8a, 0xd8, + 0x4b, 0x5c, 0x0c, 0x7e, 0x59, 0xef, 0x02, 0x81, 0xf9, 0xea, 0xc6, 0x15, 0xe1, 0x7f, 0x51, 0x0d, + 0xff, 0xa7, 0xab, 0xc2, 0x2f, 0x5b, 0x22, 0xc5, 0x7f, 0x0f, 0x66, 0x59, 0x52, 0xed, 0x11, 0xdf, + 0x59, 0x8f, 0x06, 0xdc, 0x91, 0x8b, 0xd0, 0x46, 0xf9, 0xf5, 0x68, 0x90, 0x6f, 0x00, 0x25, 0x16, + 0x6b, 0xd1, 0xf7, 0x5c, 0x96, 0x3c, 0x79, 0x0b, 0x91, 0xf4, 0x24, 0x16, 0x5b, 0x20, 0x23, 0x22, + 0x4e, 0x58, 0x98, 0x77, 0x6b, 0x56, 0x46, 0x9b, 0xbf, 0x69, 0xc2, 0x84, 0x40, 0x23, 0x5f, 0x14, + 0xd9, 0x9e, 0x3b, 0x4b, 0xab, 0x48, 0x61, 0x5d, 0xdb, 0xdf, 0xcf, 0xe1, 0x85, 0x94, 0x7c, 0xbc, + 0x55, 0x53, 0x8f, 0xb7, 0x0a, 0x36, 0xd5, 0xcb, 0x36, 0x15, 0xc6, 0xd5, 0x28, 0x8f, 0x8b, 0x95, + 0x71, 0xbc, 0xb2, 0xd9, 0xf4, 0xec, 0x78, 0x9b, 0x86, 0x43, 0xb1, 0x85, 0x6e, 0x58, 0x25, 0x3e, + 0x2b, 0x1d, 0x91, 0x97, 0xd5, 0xfe, 0xb8, 0x84, 0x17, 0xb8, 0xac, 0xd2, 0x46, 0x4e, 0xba, 0x07, + 0xc0, 0x73, 0x0e, 0x95, 0x89, 0xb6, 0x45, 0x91, 0x4b, 0x7d, 0x5e, 0x85, 0x62, 0xa9, 0x2f, 0xb3, + 0xd8, 0xc8, 0x87, 0xd1, 0xe0, 0x6a, 0x48, 0x87, 0x62, 0x7b, 0x95, 0x92, 0x7c, 0xe4, 0xd4, 0x8f, + 0xd3, 0x0a, 0x16, 0x4f, 0x38, 0x64, 0x16, 0x93, 0x15, 0x24, 0xaf, 0xf3, 0xa7, 0xac, 0x94, 0x64, + 0x58, 0x8a, 0xc8, 0x9e, 0x28, 0xde, 0xd9, 0x4f, 0x25, 0x72, 0xb3, 0x6a, 0xe4, 0x0a, 0xd5, 0x58, + 0x87, 0x7f, 0x95, 0xab, 0xb1, 0xbc, 0xc4, 0x99, 0x53, 0x4a, 0x9c, 0x2b, 0x30, 0x41, 0x03, 0x36, + 0xfd, 0xa3, 0xae, 0xc1, 0xa7, 0xcb, 0x33, 0xa3, 0x13, 0xd4, 0xd2, 0x06, 0xb6, 0xc4, 0x89, 0x91, + 0xca, 0x19, 0x37, 0x60, 0x96, 0x6e, 0x6f, 0x7b, 0xae, 0x4f, 0x36, 0x93, 0x68, 0x87, 0x6f, 0xb5, + 0x4f, 0x71, 0xb0, 0x9b, 0x55, 0x45, 0x84, 0xda, 0xd2, 0x2a, 0x8a, 0xb2, 0xca, 0xcf, 0x8e, 0x71, + 0x93, 0xc3, 0x13, 0xdc, 0x69, 0x9e, 0xe0, 0x14, 0x1e, 0x3f, 0x27, 0x94, 0x12, 0xfd, 0x19, 0xee, + 0x38, 0x99, 0x85, 0x5a, 0x62, 0xbb, 0xbf, 0x43, 0xf8, 0xa1, 0x51, 0x77, 0x1e, 0xeb, 0x47, 0x99, + 0x27, 0xaa, 0xbb, 0xc7, 0xd2, 0xea, 0x6e, 0xe1, 0x65, 0x98, 0x92, 0x07, 0x58, 0x31, 0x99, 0x4f, + 0xcb, 0x93, 0x79, 0x52, 0x9e, 0xab, 0xdf, 0xd7, 0x60, 0xb6, 0x30, 0x34, 0xd6, 0x3a, 0x76, 0x63, + 0x8f, 0x08, 0x0d, 0x48, 0xb0, 0xdd, 0x91, 0x43, 0xa2, 0xbe, 0x98, 0x3c, 0xfc, 0xb7, 0xb0, 0xa4, + 0x96, 0x6d, 0xd9, 0x4d, 0x98, 0x72, 0x37, 0x7a, 0x4c, 0x51, 0x8f, 0x26, 0xbe, 0x93, 0x1d, 0xb4, + 0x4b, 0x3c, 0xbe, 0x6d, 0xdf, 0xe8, 0x2d, 0xdb, 0xce, 0x80, 0xe0, 0xb5, 0x4b, 0x83, 0xdb, 0xa4, + 0x32, 0x4d, 0x07, 0x26, 0x6f, 0xb9, 0x41, 0xb4, 0x42, 0x87, 0x43, 0x06, 0x01, 0x87, 0xc4, 0xac, + 0x8e, 0xd7, 0xb8, 0xc3, 0x04, 0xc5, 0xbc, 0xe9, 0x90, 0x6d, 0x3b, 0xf1, 0x62, 0xd6, 0x34, 0x4d, + 0x19, 0x12, 0x8b, 0x1f, 0x21, 0x44, 0xd4, 0x5f, 0x45, 0x69, 0xb4, 0x53, 0xe2, 0x98, 0x7f, 0xd2, + 0xa1, 0xc3, 0x33, 0xe2, 0x0a, 0x07, 0x9c, 0xc3, 0x85, 0x2e, 0x41, 0x83, 0x27, 0x00, 0x51, 0x51, + 0x1e, 0x7e, 0xee, 0x82, 0x4d, 0x8d, 0xcb, 0xd0, 0xa4, 0x01, 0x2f, 0x43, 0x31, 0x5d, 0x3e, 0x3d, + 0x4a, 0x48, 0x3d, 0x5a, 0xb7, 0x84, 0x94, 0x71, 0x15, 0x60, 0x98, 0x57, 0x9d, 0x58, 0x3c, 0x8c, + 0xab, 0x43, 0x92, 0x64, 0xce, 0xcd, 0xd6, 0xc5, 0xec, 0x7c, 0xbd, 0x66, 0xa9, 0x4c, 0xe3, 0x26, + 0xcc, 0x70, 0xb3, 0x37, 0xd2, 0x03, 0x38, 0x1e, 0x83, 0xf1, 0x7b, 0x2c, 0x48, 0x9b, 0x3f, 0xd6, + 0x84, 0x1b, 0xd9, 0xd7, 0x1e, 0x41, 0xdf, 0xe7, 0x2e, 0xd1, 0x8e, 0xe5, 0x92, 0x05, 0x98, 0x1c, + 0x26, 0xd2, 0x79, 0x60, 0xcd, 0xca, 0xe8, 0x3c, 0x44, 0xb5, 0xb1, 0x43, 0x64, 0xfe, 0x44, 0x83, + 0xee, 0x1b, 0xd4, 0xf5, 0xf9, 0x87, 0x2b, 0x41, 0xe0, 0x89, 0x6b, 0x98, 0x63, 0xc7, 0xfc, 0xcb, + 0xd0, 0xb2, 0x51, 0x8d, 0x1f, 0x8b, 0xb0, 0x8f, 0x71, 0xc6, 0x97, 0xcb, 0x48, 0x07, 0x2d, 0x35, + 0xf9, 0xa0, 0xc5, 0xfc, 0x50, 0x83, 0x19, 0x74, 0xca, 0x5b, 0x89, 0x1b, 0x1f, 0xdb, 0xbe, 0x65, + 0x98, 0xdc, 0x4b, 0xdc, 0xf8, 0x18, 0xa8, 0xcc, 0xe4, 0xca, 0x78, 0xaa, 0x55, 0xe0, 0xc9, 0xfc, + 0x85, 0x06, 0x67, 0x8b, 0x6e, 0xbd, 0xd2, 0xef, 0x93, 0xe0, 0x41, 0x4e, 0x29, 0xe5, 0xa0, 0xa9, + 0x5e, 0x38, 0x68, 0xaa, 0x34, 0xd9, 0x22, 0x1f, 0x90, 0xfe, 0xc3, 0x6b, 0xf2, 0x37, 0x75, 0x78, + 0x7c, 0x2d, 0x9b, 0x78, 0xb7, 0x42, 0xdb, 0x8f, 0xb6, 0x49, 0x18, 0x3e, 0x40, 0x7b, 0x6f, 0xc0, + 0xb4, 0x4f, 0xee, 0xe6, 0x36, 0x89, 0xe9, 0x38, 0xae, 0x1a, 0x55, 0x78, 0xbc, 0xdc, 0x65, 0xfe, + 0x57, 0x83, 0x0e, 0xea, 0x79, 0xd3, 0xed, 0xef, 0x3e, 0xc0, 0xc1, 0xdf, 0x84, 0x99, 0x5d, 0x6e, + 0x01, 0xa3, 0x8e, 0x91, 0xb6, 0x0b, 0xd2, 0x63, 0x0e, 0xff, 0x23, 0x0d, 0xe6, 0xd2, 0xdb, 0xdf, + 0x7d, 0xf7, 0x41, 0x82, 0x75, 0x13, 0x66, 0xf1, 0xa4, 0xfd, 0xb8, 0x0e, 0x28, 0x8a, 0x8f, 0xe9, + 0x81, 0x5f, 0x6b, 0x30, 0x8b, 0x9a, 0x5e, 0xf7, 0x63, 0x12, 0x1e, 0x7b, 0xfc, 0xd7, 0xa0, 0x4d, + 0xfc, 0x38, 0xb4, 0xfd, 0xe3, 0x64, 0x48, 0x59, 0x74, 0xcc, 0x24, 0xf9, 0xa1, 0x06, 0x06, 0x57, + 0xb5, 0xea, 0x46, 0x43, 0x37, 0x8a, 0x1e, 0x60, 0xe8, 0xc6, 0x33, 0xf8, 0x47, 0x3a, 0x9c, 0x96, + 0xb4, 0xac, 0x27, 0xf1, 0xc3, 0x6e, 0xb2, 0xb1, 0x0a, 0x2d, 0x56, 0x23, 0xc8, 0xf7, 0xa0, 0xe3, + 0x76, 0x94, 0x0b, 0xb2, 0x2a, 0x96, 0x13, 0x3d, 0xd2, 0xa7, 0xbe, 0x13, 0xf1, 0xe2, 0x68, 0xda, + 0x52, 0x78, 0x2c, 0x0d, 0x2d, 0x48, 0x6a, 0x56, 0x6c, 0xbf, 0x4f, 0xbc, 0x47, 0xc6, 0x45, 0xe6, + 0xcf, 0x34, 0x98, 0xc1, 0x26, 0x0f, 0xff, 0x90, 0xd9, 0x5a, 0x8f, 0x40, 0xfe, 0xc4, 0x44, 0x89, + 0xc1, 0x6b, 0x5e, 0xd2, 0x22, 0xd7, 0xd5, 0x0f, 0x2f, 0xb4, 0xae, 0x41, 0xbb, 0xbf, 0x63, 0xfb, + 0x83, 0x63, 0x81, 0x4b, 0x16, 0x35, 0x63, 0x78, 0x4c, 0x3e, 0xb4, 0x5f, 0xc1, 0x4f, 0x7c, 0xf8, + 0xcf, 0x17, 0x86, 0x72, 0xe8, 0x3b, 0x87, 0xfb, 0x73, 0xfa, 0x2e, 0xcc, 0xe1, 0x4d, 0xb1, 0x54, + 0x13, 0x1a, 0x5d, 0x98, 0xb0, 0x1d, 0x3c, 0xba, 0xd0, 0xb8, 0x50, 0x4a, 0xaa, 0x2f, 0x09, 0xc4, + 0xbb, 0xb4, 0xfc, 0x25, 0xc1, 0x39, 0x00, 0xdb, 0x71, 0xde, 0xa1, 0xa1, 0xe3, 0xfa, 0x69, 0x81, + 0x2f, 0x71, 0xcc, 0x37, 0x60, 0xea, 0x6a, 0x48, 0x87, 0xb7, 0xa4, 0x3b, 0xdf, 0x43, 0x6f, 0xa5, + 0xe5, 0xfb, 0x62, 0x5d, 0xbd, 0x2f, 0x36, 0xdf, 0x87, 0x33, 0x25, 0xc3, 0xb9, 0xb3, 0x56, 0xf0, + 0x2a, 0x3b, 0xed, 0x44, 0x40, 0xa6, 0xea, 0x2c, 0x4f, 0xb6, 0xc5, 0x52, 0x84, 0xcc, 0x6f, 0x68, + 0xf0, 0x64, 0x49, 0xfd, 0x95, 0x20, 0x08, 0xe9, 0xbe, 0x88, 0xc9, 0x49, 0x74, 0xa3, 0x16, 0xbf, + 0x7a, 0xb1, 0xf8, 0xad, 0x34, 0x42, 0x29, 0xd8, 0x3f, 0x06, 0x23, 0x7e, 0xaa, 0xc1, 0xac, 0x30, + 0xc2, 0x71, 0x44, 0xb7, 0x2f, 0x42, 0x13, 0x1f, 0xd3, 0x88, 0x0e, 0x9f, 0xac, 0xec, 0x30, 0x7d, + 0x04, 0x64, 0x89, 0xc6, 0x65, 0x44, 0xea, 0x55, 0x33, 0xea, 0x4b, 0x19, 0xd8, 0xc7, 0x7e, 0xee, + 0x22, 0x04, 0xcc, 0xaf, 0xa4, 0x60, 0x5e, 0x25, 0x1e, 0x39, 0x49, 0x1f, 0x99, 0xb7, 0x61, 0x86, + 0xbf, 0xec, 0xc9, 0x7d, 0x70, 0x22, 0x6a, 0xdf, 0x81, 0x0e, 0x57, 0x7b, 0xe2, 0xf6, 0x66, 0xb3, + 0x83, 0xf9, 0x47, 0x4e, 0x25, 0x27, 0xa2, 0xfd, 0xf3, 0x70, 0x2a, 0xf5, 0x3d, 0xbe, 0x88, 0x45, + 0xdd, 0x23, 0xee, 0xf6, 0xcc, 0x1f, 0x68, 0x30, 0xbf, 0x42, 0xfd, 0x7d, 0x12, 0x46, 0xca, 0x2b, + 0x5a, 0x14, 0x51, 0x66, 0xbf, 0xa0, 0x8c, 0x25, 0x30, 0xfa, 0x92, 0x84, 0x38, 0x5e, 0xd4, 0xf9, + 0xf1, 0x62, 0xc5, 0x17, 0xe3, 0x05, 0x38, 0x93, 0x70, 0xad, 0xb7, 0xfd, 0x90, 0xd8, 0x0e, 0x3f, + 0x4f, 0x93, 0x92, 0x5e, 0xf5, 0x47, 0xf3, 0x03, 0x58, 0x90, 0xed, 0xea, 0x91, 0x78, 0x33, 0x74, + 0xf7, 0x25, 0xdb, 0xc4, 0xd9, 0xb9, 0xa6, 0x9c, 0x9d, 0xe7, 0x67, 0xed, 0xba, 0x72, 0xd6, 0x7e, + 0x16, 0x5a, 0x6e, 0x24, 0x14, 0xf0, 0x7e, 0x27, 0xad, 0x9c, 0x61, 0xda, 0x30, 0x87, 0x51, 0x16, + 0x77, 0x59, 0xbc, 0x8b, 0x05, 0x98, 0x44, 0xe8, 0x66, 0x9d, 0x64, 0xf4, 0xc8, 0x9b, 0xa1, 0x91, + 0xf7, 0xa0, 0x66, 0x0f, 0xe6, 0xc4, 0x7b, 0x9f, 0x4d, 0x7b, 0xe0, 0xfa, 0x98, 0xcb, 0xcf, 0x01, + 0x04, 0xf6, 0x20, 0x7d, 0x61, 0x88, 0x37, 0x7a, 0x12, 0x87, 0x7d, 0x8f, 0x76, 0xe8, 0x5d, 0xf1, + 0x5d, 0xc7, 0xef, 0x39, 0xc7, 0x7c, 0x1b, 0x0c, 0x8b, 0x44, 0x01, 0xf5, 0x23, 0x22, 0x69, 0x5d, + 0x84, 0xf6, 0x4a, 0x12, 0x86, 0xc4, 0x67, 0x5d, 0xa5, 0x4f, 0xe8, 0x64, 0x16, 0xd3, 0xdb, 0xcb, + 0xf5, 0xe2, 0xe9, 0xbf, 0xc4, 0x31, 0xff, 0x53, 0x83, 0x56, 0xcf, 0x1d, 0xf8, 0xb6, 0x67, 0x91, + 0x3d, 0xe3, 0x55, 0x68, 0xe2, 0xce, 0x48, 0x00, 0xb2, 0xea, 0x34, 0x1a, 0x5b, 0xe3, 0x16, 0xd0, + 0x22, 0x7b, 0xd7, 0x3e, 0x65, 0x09, 0x19, 0xe3, 0xad, 0xf4, 0x55, 0xd4, 0x75, 0x3c, 0xe9, 0x12, + 0xcb, 0xe4, 0x67, 0x8f, 0x50, 0x22, 0x5a, 0xa3, 0x2e, 0x55, 0x03, 0x33, 0xa8, 0xcf, 0x2b, 0x27, + 0x91, 0x85, 0x46, 0x1b, 0x84, 0x05, 0x96, 0x30, 0x08, 0x65, 0x98, 0xb4, 0xcd, 0xcf, 0x82, 0x44, + 0x41, 0x30, 0x5a, 0x1a, 0x8f, 0x8c, 0x84, 0x34, 0xca, 0x30, 0xe9, 0x9d, 0xc4, 0x1f, 0xdc, 0x0e, + 0xc4, 0x11, 0xe5, 0x68, 0xe9, 0x6b, 0xbc, 0x99, 0x90, 0x46, 0x19, 0x26, 0x1d, 0xf2, 0x35, 0x82, + 0x3b, 0xfd, 0x30, 0x69, 0x5c, 0x4a, 0x84, 0x34, 0xca, 0x18, 0xef, 0x42, 0x67, 0x8d, 0xc4, 0x16, + 0xa5, 0xc3, 0xe5, 0x83, 0x35, 0x71, 0x43, 0x84, 0x0f, 0xbd, 0x9f, 0x1b, 0xa9, 0xa7, 0x28, 0x80, + 0x1a, 0x4b, 0x7a, 0x96, 0x5b, 0x30, 0x11, 0xd8, 0x07, 0x1e, 0xb5, 0x1d, 0xf3, 0x3b, 0x75, 0x80, + 0xd4, 0x88, 0x88, 0xd7, 0x6a, 0x4a, 0xf8, 0xcf, 0x1f, 0x19, 0xfe, 0xc0, 0x3b, 0x90, 0x00, 0xd0, + 0xab, 0x06, 0xc0, 0xe7, 0xc6, 0x05, 0x00, 0x6a, 0x2b, 0x40, 0xe0, 0x72, 0x01, 0x02, 0xe7, 0x8f, + 0x84, 0x80, 0x30, 0x4a, 0x80, 0xe0, 0x72, 0x01, 0x04, 0xe7, 0x8f, 0x04, 0x81, 0x90, 0x17, 0x30, + 0xb8, 0x5c, 0x80, 0xc1, 0xf9, 0x23, 0x61, 0x20, 0xe4, 0x05, 0x10, 0x2e, 0x17, 0x80, 0x70, 0xfe, + 0x48, 0x20, 0x08, 0x79, 0x01, 0x85, 0xf7, 0x47, 0x42, 0x61, 0xe9, 0x3e, 0xa0, 0x80, 0x3a, 0x0f, + 0x05, 0xc3, 0x5f, 0x75, 0x98, 0xe1, 0x01, 0xc1, 0x8c, 0xee, 0x6f, 0xd3, 0xf2, 0x3b, 0x47, 0xad, + 0xe2, 0x9d, 0xa3, 0xf1, 0x1c, 0xcc, 0x21, 0x83, 0x48, 0x77, 0x50, 0xb8, 0x48, 0x94, 0x3f, 0xf0, + 0x5b, 0xb7, 0x24, 0x8a, 0xe9, 0x70, 0xd5, 0x8e, 0xed, 0xb4, 0x3a, 0xcd, 0x39, 0xf2, 0x9d, 0x68, + 0xbd, 0xf4, 0xe4, 0x3f, 0xa4, 0x74, 0x98, 0x5d, 0x76, 0x0a, 0x8a, 0x49, 0xc4, 0xee, 0x90, 0xd0, + 0x24, 0x16, 0x09, 0x2e, 0x25, 0xf1, 0x71, 0x9a, 0xe3, 0xda, 0xfc, 0x26, 0x51, 0xbc, 0xdc, 0xca, + 0x18, 0x3c, 0x27, 0xe7, 0x37, 0xa3, 0xe2, 0x49, 0x7e, 0xce, 0x19, 0xe3, 0x16, 0x93, 0xff, 0xbb, + 0xc3, 0x8d, 0x5d, 0xf9, 0x45, 0x57, 0xc3, 0x52, 0x78, 0xe6, 0x3f, 0x35, 0x38, 0xb5, 0x69, 0x87, + 0xb1, 0xdb, 0x77, 0x03, 0xdb, 0x8f, 0xd7, 0x49, 0x6c, 0xf3, 0x71, 0x2a, 0xef, 0x6c, 0xb5, 0xfb, + 0x7b, 0x67, 0xbb, 0x09, 0xb3, 0x03, 0x75, 0x8b, 0x76, 0x9f, 0xbb, 0xab, 0xa2, 0xb8, 0xf2, 0x68, + 0xb8, 0x76, 0xdf, 0x8f, 0x86, 0xcd, 0x6f, 0xeb, 0x30, 0x5b, 0x58, 0x18, 0x0e, 0x5d, 0x55, 0xaf, + 0x00, 0xb8, 0x19, 0xd4, 0x0e, 0xb9, 0xc1, 0x50, 0xf1, 0x68, 0x49, 0x42, 0x55, 0x57, 0xa8, 0xb5, + 0xe3, 0x5f, 0xa1, 0x5e, 0x83, 0x76, 0x90, 0x07, 0xe9, 0x90, 0x0d, 0x64, 0x45, 0x28, 0x2d, 0x59, + 0xd4, 0x7c, 0x0f, 0xe6, 0x4a, 0x39, 0x92, 0xdf, 0x6b, 0xd2, 0x5d, 0xe2, 0x67, 0xf7, 0x9a, 0x8c, + 0x90, 0x00, 0xad, 0x17, 0x01, 0xed, 0xb9, 0xfb, 0xf2, 0x3f, 0x18, 0x04, 0x69, 0x7e, 0x57, 0x87, + 0xf9, 0xea, 0xb5, 0xf3, 0x51, 0x75, 0xf7, 0x16, 0x74, 0x47, 0xad, 0x25, 0x27, 0xe6, 0xf5, 0x1c, + 0xdd, 0x59, 0x95, 0xf1, 0xa8, 0xba, 0xfb, 0x54, 0x8a, 0x6e, 0x69, 0xb1, 0x35, 0x7f, 0x95, 0xf9, + 0x27, 0xab, 0xa3, 0x1e, 0x51, 0xff, 0x18, 0x17, 0xa0, 0x83, 0xc3, 0x94, 0xde, 0xdc, 0x60, 0x59, + 0x5e, 0xe2, 0xe7, 0x99, 0x42, 0x2a, 0x3c, 0x4e, 0x0c, 0xb3, 0xbf, 0xd7, 0xd2, 0x98, 0x64, 0xd5, + 0xe9, 0x27, 0x2a, 0x26, 0x39, 0xd2, 0xa4, 0xb2, 0x4a, 0x42, 0x5a, 0x56, 0x35, 0xff, 0x1f, 0x69, + 0x47, 0x23, 0x2d, 0xf3, 0xa5, 0x54, 0x62, 0x9a, 0x6f, 0xc1, 0xe3, 0x23, 0x37, 0x0e, 0x87, 0x3a, + 0x55, 0xaa, 0xd0, 0x74, 0xa5, 0x42, 0x33, 0xff, 0xa1, 0xc1, 0x13, 0x87, 0x54, 0xa0, 0x85, 0x70, + 0x68, 0xc7, 0x09, 0xc7, 0x4b, 0x30, 0x4f, 0xfd, 0x15, 0xea, 0xfb, 0xa4, 0x1f, 0xbb, 0xfe, 0xa0, + 0x54, 0x71, 0x8e, 0xf8, 0x9a, 0xcf, 0xab, 0x5a, 0xf5, 0xbc, 0xaa, 0x8f, 0x9a, 0x57, 0x0d, 0x75, + 0x5e, 0x7d, 0x1d, 0xa6, 0x57, 0x89, 0xb7, 0x1e, 0x0d, 0xd2, 0xa7, 0xd4, 0x27, 0x7a, 0x78, 0x50, + 0x7c, 0x70, 0x5a, 0x2f, 0x3f, 0x38, 0x5d, 0x86, 0x19, 0xd9, 0x80, 0xe3, 0x3c, 0x15, 0x5e, 0x3e, + 0xfb, 0xee, 0xc2, 0x92, 0xf8, 0x0b, 0xfe, 0x2b, 0x25, 0xef, 0x6f, 0x35, 0xf9, 0x9f, 0x76, 0x9f, + 0xff, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x40, 0x1d, 0x46, 0x54, 0xdb, 0x3f, 0x00, 0x00, } From 821e704b5b6357bdd63c7a1e5b2aba2449f4089d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 01:14:36 +0800 Subject: [PATCH 47/56] cms --- internal/demo/register/check_login.go | 8 ++++-- internal/demo/register/set_password.go | 1 + pkg/common/db/model_struct.go | 3 ++- .../mysql_model/im_mysql_model/user_model.go | 26 ++++--------------- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/internal/demo/register/check_login.go b/internal/demo/register/check_login.go index 818cd6c27..6592172ca 100644 --- a/internal/demo/register/check_login.go +++ b/internal/demo/register/check_login.go @@ -5,9 +5,11 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" + "errors" "net/http" "github.com/gin-gonic/gin" + "gorm.io/gorm" ) type CheckLoginLimitReq struct { @@ -22,18 +24,20 @@ func CheckLoginLimit(c *gin.Context) { req := CheckLoginLimitReq{} if err := c.BindJSON(&req); err != nil { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrArgs, "errMsg": err.Error()}) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } ip := c.Request.Header.Get("X-Forward-For") if ip == "" { ip = c.ClientIP() } + log.NewDebug(req.OperationID, utils.GetSelfFuncName(), "IP: ", ip) user, err := imdb.GetUserIPLimit(req.UserID) - if err != nil { + if err != nil && !errors.Is(gorm.ErrRecordNotFound, err) { errMsg := req.OperationID + " imdb.GetUserByUserID failed " + err.Error() + req.UserID log.NewError(req.OperationID, errMsg) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.ErrDB.ErrCode, "errMsg": errMsg}) + return } if err := imdb.UpdateIpReocord(req.UserID, ip); err != nil { diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index f2cf70d39..74e93b95e 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -57,6 +57,7 @@ func SetPassword(c *gin.Context) { return } if Limited { + log.NewInfo(params.OperationID, utils.GetSelfFuncName(), "is limited", ip, "params:", params) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.RegisterLimit, "errMsg": "limited"}) return } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 043240532..6b767b6dc 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -189,9 +189,9 @@ type UserIpRecord struct { LastLoginTime time.Time `gorm:"column:last_login_time"` LastLoginIp string `gorm:"column:last_login_ip;size:15"` LoginTimes int32 `gorm:"column:login_times"` - LoginLimit int32 `gorm:"column:login_limit"` } +// ip limit login type IpLimit struct { Ip string `gorm:"column:ip;primary_key;size:15"` LimitRegister int32 `gorm:"column:limit_register;size:1"` @@ -200,6 +200,7 @@ type IpLimit struct { LimitTime time.Time `gorm:"column:limit_time"` } +// ip login type UserIpLimit struct { UserID string `gorm:"column:user_id;primary_key;size:64"` Ip string `gorm:"column:ip;primary_key;size:15"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index caf76744c..a88f83573 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "errors" "fmt" "strconv" "time" @@ -50,11 +51,6 @@ func UserRegister(user db.User) error { return nil } -func DeleteUser(userID string) (i int64) { - i = db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", userID).Delete(db.User{}).RowsAffected - return i -} - func GetAllUser() ([]db.User, error) { var userList []db.User err := db.DB.MysqlDB.DefaultGormDB().Table("users").Find(&userList).Error @@ -165,15 +161,12 @@ func BlockUser(userID, endDisableTime string) error { return err } if end.Before(time.Now()) { - return constant.ErrDB + return errors.New("endDisableTime is before now") } var blockUser db.BlackList db.DB.MysqlDB.DefaultGormDB().Table("black_lists").Where("uid=?", userID).First(&blockUser) if blockUser.UserId != "" { db.DB.MysqlDB.DefaultGormDB().Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) - // if user.LoginLimit != 2 { - // db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) - // } return nil } blockUser = db.BlackList{ @@ -181,21 +174,12 @@ func BlockUser(userID, endDisableTime string) error { BeginDisableTime: time.Now(), EndDisableTime: end, } - result := db.DB.MysqlDB.DefaultGormDB().Create(&blockUser) - if result.Error == nil { - // if user.LoginLimit != 2 { - // db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", blockUser.UserId).Update("login_limit", 2) - // } - } - return result.Error + err = db.DB.MysqlDB.DefaultGormDB().Create(&blockUser).Error + return err } func UnBlockUser(userID string) error { - err := db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userID).Delete(&db.BlackList{}).Error - if err != nil { - return err - } - return db.DB.MysqlDB.DefaultGormDB().Table("users").Where("user_id=?", userID).Update("login_limit", 0).Error + return db.DB.MysqlDB.DefaultGormDB().Where("uid=?", userID).Delete(&db.BlackList{}).Error } type BlockUserInfo struct { From 8d1dd92df703fc85a57f016dafd978e945937ff0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 6 Sep 2022 11:57:22 +0800 Subject: [PATCH 48/56] opid add --- internal/api/third/minio_storage_credential.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index ac4be4273..753d3b182 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -147,13 +147,13 @@ func MinioStorageCredential(c *gin.Context) { } li, err := cr.NewSTSAssumeRole(endpoint, stsOpts) if err != nil { - log.NewError("", utils.GetSelfFuncName(), "NewSTSAssumeRole failed", err.Error(), stsOpts, config.Config.Credential.Minio.Endpoint) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "NewSTSAssumeRole failed", err.Error(), stsOpts, config.Config.Credential.Minio.Endpoint) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } v, err := li.Get() if err != nil { - log.NewError("0", utils.GetSelfFuncName(), "li.Get error", err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "li.Get error", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } From 7208dd6b2a72e1a08a58e7bd5d0fcaf23abce530 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 15:51:18 +0800 Subject: [PATCH 49/56] cms --- internal/api/manage/management_chat.go | 58 ++-- internal/demo/register/invitation_code.go | 9 +- internal/rpc/msg/msg_status.go | 16 +- pkg/common/constant/constant.go | 6 + pkg/common/db/RedisModel.go | 13 +- .../im_mysql_model/invitation_model.go | 12 +- .../db/mysql_model/im_mysql_model/ip_model.go | 10 +- pkg/proto/msg/msg.pb.go | 255 +++++++++--------- pkg/proto/msg/msg.proto | 7 +- 9 files changed, 218 insertions(+), 168 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index b65294379..947a6a8b5 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -216,21 +216,22 @@ func ManagementSendMsg(c *gin.Context) { } client := pbChat.NewMsgClient(etcdConn) log.Info(params.OperationID, "", "api ManagementSendMsg call, api call rpc...") + var status int32 RpcResp, err := client.SendMsg(context.Background(), pbData) 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 - } + status = constant.MsgSendFailed + } else { + status = constant.MsgSendSuccessed } + + respSetSendMsgStatus, err2 := client.SetSendMsgStatus(context.Background(), &pbChat.SetSendMsgStatusReq{OperationID: params.OperationID, Status: status}) + if err2 != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err2.Error()) + } + if respSetSendMsgStatus != nil && respSetSendMsgStatus.ErrCode != 0 { + log.NewError(params.OperationID, utils.GetSelfFuncName(), respSetSendMsgStatus.ErrCode, respSetSendMsgStatus.ErrMsg) + } + 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: open_im_sdk.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} log.Info(params.OperationID, "ManagementSendMsg return", resp) @@ -319,16 +320,26 @@ func ManagementBatchSendMsg(c *gin.Context) { } log.NewInfo(params.OperationID, "Ws call success to ManagementSendMsgReq", params) var msgSendFailedFlag bool - etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMsgName, params.OperationID) if etcdConn == nil { errMsg := params.OperationID + "getcdv3.GetDefaultConn == 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) + respSetSendMsgStatus, err := client.SetSendMsgStatus(context.Background(), &pbChat.SetSendMsgStatusReq{OperationID: params.OperationID, Status: constant.MsgIsSending}) + if err != nil { + log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + if respSetSendMsgStatus.ErrCode != 0 { + log.NewError(params.OperationID, utils.GetSelfFuncName(), "rpc failed", respSetSendMsgStatus) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": respSetSendMsgStatus.ErrMsg}) + return + } + req := &api.ManagementSendMsgReq{ ManagementSendMsg: params.ManagementSendMsg, } @@ -346,7 +357,6 @@ func ManagementBatchSendMsg(c *gin.Context) { for _, recvID := range recvList { pbData.MsgData.RecvID = recvID log.Info(params.OperationID, "", "api ManagementSendMsg call start..., ", pbData.String()) - rpcResp, err := client.SendMsg(context.Background(), pbData) if err != nil { log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) @@ -367,14 +377,18 @@ func ManagementBatchSendMsg(c *gin.Context) { RecvID: recvID, }) } + var status int32 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) - } + status = constant.MsgSendFailed + } else { + status = constant.MsgSendSuccessed + } + respSetSendMsgStatus, err2 := client.SetSendMsgStatus(context.Background(), &pbChat.SetSendMsgStatusReq{OperationID: params.OperationID, Status: status}) + if err2 != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err2.Error()) + } + if respSetSendMsgStatus != nil && resp.ErrCode != 0 { + log.NewError(params.OperationID, utils.GetSelfFuncName(), resp.ErrCode, resp.ErrMsg) } log.NewInfo(params.OperationID, utils.GetSelfFuncName(), "resp: ", resp) diff --git a/internal/demo/register/invitation_code.go b/internal/demo/register/invitation_code.go index c74fc1d30..092f45191 100644 --- a/internal/demo/register/invitation_code.go +++ b/internal/demo/register/invitation_code.go @@ -6,9 +6,10 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" - "github.com/gin-gonic/gin" "net/http" "time" + + "github.com/gin-gonic/gin" ) type InvitationCode struct { @@ -87,7 +88,8 @@ type GetInvitationCodesReq struct { type GetInvitationCodesResp struct { apiStruct.Pagination - Codes []InvitationCode `json:"codes"` + Codes []InvitationCode `json:"codes"` + CodeNums int64 `json:"codeNums"` } func GetInvitationCodes(c *gin.Context) { @@ -98,7 +100,7 @@ func GetInvitationCodes(c *gin.Context) { return } log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req) - codes, err := imdb.GetInvitationCodes(req.ShowNumber, req.PageNumber, req.Status) + codes, count, err := imdb.GetInvitationCodes(req.ShowNumber, req.PageNumber, req.Status) if err != nil { log.NewError(req.OperationID, "GetInvitationCode failed", req.ShowNumber, req.PageNumber, req.Status) c.JSON(http.StatusInternalServerError, gin.H{"errCode": constant.ErrDB, "errMsg": "Verification code error!"}) @@ -115,6 +117,7 @@ func GetInvitationCodes(c *gin.Context) { Status: v.Status, }) } + resp.CodeNums = count log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp:", resp) c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data": resp}) } diff --git a/internal/rpc/msg/msg_status.go b/internal/rpc/msg/msg_status.go index 5d4335d8d..2924134c7 100644 --- a/internal/rpc/msg/msg_status.go +++ b/internal/rpc/msg/msg_status.go @@ -7,13 +7,15 @@ import ( 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) { - resp = &pbMsg.SetSendMsgFailedFlagResp{} +func (rpc *rpcChat) SetSendMsgStatus(_ context.Context, req *pbMsg.SetSendMsgStatusReq) (resp *pbMsg.SetSendMsgStatusResp, err error) { + resp = &pbMsg.SetSendMsgStatusResp{} log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) - if err := db.DB.SetSendMsgFailedFlag(req.OperationID); err != nil { + if err := db.DB.SetSendMsgStatus(req.Status, req.OperationID); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = err.Error() return resp, nil @@ -25,9 +27,11 @@ func (rpc *rpcChat) SetSendMsgFailedFlag(_ context.Context, req *pbMsg.SetSendMs func (rpc *rpcChat) GetSendMsgStatus(_ context.Context, req *pbMsg.GetSendMsgStatusReq) (resp *pbMsg.GetSendMsgStatusResp, err error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp = &pbMsg.GetSendMsgStatusResp{} - if err := db.DB.GetSendMsgStatus(req.OperationID); err != nil { + status, err := db.DB.GetSendMsgStatus(req.OperationID) + if err != nil { + resp.Status = constant.MsgStatusNotExist if err == goRedis.Nil { - resp.Status = 0 + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.OperationID, "not exist") return resp, nil } else { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) @@ -36,7 +40,7 @@ func (rpc *rpcChat) GetSendMsgStatus(_ context.Context, req *pbMsg.GetSendMsgSta return resp, nil } } - resp.Status = 1 + resp.Status = int32(status) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp.String()) return resp, nil } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index c8f9986b4..ecc53ea26 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -229,6 +229,12 @@ const ( WorkMomentCommentNotification = 0 WorkMomentLikeNotification = 1 WorkMomentAtUserNotification = 2 + + // sendMsgStaus + MsgStatusNotExist = 0 + MsgIsSending = 1 + MsgSendSuccessed = 2 + MsgSendFailed = 3 ) const ( diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index ba3ca54d4..95786fe6d 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -398,12 +398,17 @@ func (d *DataBases) GetGetuiToken() (string, error) { return 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) SetSendMsgStatus(status int32, operationID string) error { + return d.RDB.Set(context.Background(), sendMsgFailedFlag+operationID, status, time.Hour*24).Err() } -func (d *DataBases) GetSendMsgStatus(operationID string) error { - return d.RDB.Get(context.Background(), sendMsgFailedFlag+operationID).Err() +func (d *DataBases) GetSendMsgStatus(operationID string) (int, error) { + result, err := d.RDB.Get(context.Background(), sendMsgFailedFlag+operationID).Result() + if err != nil { + return 0, err + } + status, err := strconv.Atoi(result) + return status, err } func (d *DataBases) SetFcmToken(account string, platformid int, fcmToken string, expireTime int64) (err error) { diff --git a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go index 3da3d778f..ddbe974c5 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/invitation_model.go @@ -3,9 +3,10 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" "errors" - "github.com/jinzhu/gorm" "math/rand" "time" + + "github.com/jinzhu/gorm" ) /** @@ -105,9 +106,12 @@ func CreateRandomString(strlen int) string { return string(result) } -func GetInvitationCodes(showNumber, pageNumber, status int32) ([]db.Invitation, error) { +func GetInvitationCodes(showNumber, pageNumber, status int32) ([]db.Invitation, int64, error) { var invitationList []db.Invitation - err := db.DB.MysqlDB.DefaultGormDB().Model(db.Invitation{}).Limit(int(showNumber)).Offset(int(showNumber*(pageNumber-1))).Where("status=?", status). + db := db.DB.MysqlDB.DefaultGormDB().Model(db.Invitation{}).Where("status=?", status) + var count int64 + err := db.Count(&count).Error + err = db.Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))). Order("create_time desc").Find(&invitationList).Error - return invitationList, err + return invitationList, count, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go index 7213bdced..4e1ae6f4a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/ip_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/ip_model.go @@ -81,8 +81,14 @@ func InsertIpRecord(userID, createIp string) error { return err } -func UpdateIpReocord(userID, ip string) error { +func UpdateIpReocord(userID, ip string) (err error) { record := &db.UserIpRecord{UserID: userID, LastLoginIp: ip, LastLoginTime: time.Now()} - err := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpRecord{}).Updates(record).Updates("login_times = login_times + 1").Error + result := db.DB.MysqlDB.DefaultGormDB().Model(&db.UserIpRecord{}).Where("user_id=?", userID).Updates(record).Updates("login_times = login_times + 1") + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + err = InsertIpRecord(userID, ip) + } return err } diff --git a/pkg/proto/msg/msg.pb.go b/pkg/proto/msg/msg.pb.go index 38616ae68..f74b9a705 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_110411abaacf415d, []int{0} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{1} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{2} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{3} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{4} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{5} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{6} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{7} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{8} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{9} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{10} + return fileDescriptor_msg_3997a326608d1183, []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_110411abaacf415d, []int{11} + return fileDescriptor_msg_3997a326608d1183, []int{11} } func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b) @@ -708,45 +708,53 @@ func (m *SetMsgMinSeqResp) GetErrMsg() string { return "" } -type SetSendMsgFailedFlagReq struct { +type SetSendMsgStatusReq struct { OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=status" json:"status,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_110411abaacf415d, []int{12} +func (m *SetSendMsgStatusReq) Reset() { *m = SetSendMsgStatusReq{} } +func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } +func (*SetSendMsgStatusReq) ProtoMessage() {} +func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_3997a326608d1183, []int{12} } -func (m *SetSendMsgFailedFlagReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetSendMsgFailedFlagReq.Unmarshal(m, b) +func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b) } -func (m *SetSendMsgFailedFlagReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetSendMsgFailedFlagReq.Marshal(b, m, deterministic) +func (m *SetSendMsgStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSendMsgStatusReq.Marshal(b, m, deterministic) } -func (dst *SetSendMsgFailedFlagReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetSendMsgFailedFlagReq.Merge(dst, src) +func (dst *SetSendMsgStatusReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSendMsgStatusReq.Merge(dst, src) } -func (m *SetSendMsgFailedFlagReq) XXX_Size() int { - return xxx_messageInfo_SetSendMsgFailedFlagReq.Size(m) +func (m *SetSendMsgStatusReq) XXX_Size() int { + return xxx_messageInfo_SetSendMsgStatusReq.Size(m) } -func (m *SetSendMsgFailedFlagReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetSendMsgFailedFlagReq.DiscardUnknown(m) +func (m *SetSendMsgStatusReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetSendMsgStatusReq.DiscardUnknown(m) } -var xxx_messageInfo_SetSendMsgFailedFlagReq proto.InternalMessageInfo +var xxx_messageInfo_SetSendMsgStatusReq proto.InternalMessageInfo -func (m *SetSendMsgFailedFlagReq) GetOperationID() string { +func (m *SetSendMsgStatusReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -type SetSendMsgFailedFlagResp struct { +func (m *SetSendMsgStatusReq) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + +type SetSendMsgStatusResp 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:"-"` @@ -754,38 +762,38 @@ type SetSendMsgFailedFlagResp struct { 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_110411abaacf415d, []int{13} +func (m *SetSendMsgStatusResp) Reset() { *m = SetSendMsgStatusResp{} } +func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } +func (*SetSendMsgStatusResp) ProtoMessage() {} +func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_3997a326608d1183, []int{13} } -func (m *SetSendMsgFailedFlagResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetSendMsgFailedFlagResp.Unmarshal(m, b) +func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b) } -func (m *SetSendMsgFailedFlagResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetSendMsgFailedFlagResp.Marshal(b, m, deterministic) +func (m *SetSendMsgStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetSendMsgStatusResp.Marshal(b, m, deterministic) } -func (dst *SetSendMsgFailedFlagResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetSendMsgFailedFlagResp.Merge(dst, src) +func (dst *SetSendMsgStatusResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetSendMsgStatusResp.Merge(dst, src) } -func (m *SetSendMsgFailedFlagResp) XXX_Size() int { - return xxx_messageInfo_SetSendMsgFailedFlagResp.Size(m) +func (m *SetSendMsgStatusResp) XXX_Size() int { + return xxx_messageInfo_SetSendMsgStatusResp.Size(m) } -func (m *SetSendMsgFailedFlagResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetSendMsgFailedFlagResp.DiscardUnknown(m) +func (m *SetSendMsgStatusResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetSendMsgStatusResp.DiscardUnknown(m) } -var xxx_messageInfo_SetSendMsgFailedFlagResp proto.InternalMessageInfo +var xxx_messageInfo_SetSendMsgStatusResp proto.InternalMessageInfo -func (m *SetSendMsgFailedFlagResp) GetErrCode() int32 { +func (m *SetSendMsgStatusResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *SetSendMsgFailedFlagResp) GetErrMsg() string { +func (m *SetSendMsgStatusResp) GetErrMsg() string { if m != nil { return m.ErrMsg } @@ -803,7 +811,7 @@ 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_110411abaacf415d, []int{14} + return fileDescriptor_msg_3997a326608d1183, []int{14} } func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b) @@ -843,7 +851,7 @@ 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_110411abaacf415d, []int{15} + return fileDescriptor_msg_3997a326608d1183, []int{15} } func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b) @@ -898,7 +906,7 @@ func (m *DelSuperGroupMsgReq) Reset() { *m = DelSuperGroupMsgReq{} } func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) } func (*DelSuperGroupMsgReq) ProtoMessage() {} func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_110411abaacf415d, []int{16} + return fileDescriptor_msg_3997a326608d1183, []int{16} } func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b) @@ -958,7 +966,7 @@ func (m *DelSuperGroupMsgResp) Reset() { *m = DelSuperGroupMsgResp{} } func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) } func (*DelSuperGroupMsgResp) ProtoMessage() {} func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_110411abaacf415d, []int{17} + return fileDescriptor_msg_3997a326608d1183, []int{17} } func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b) @@ -1005,8 +1013,8 @@ 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((*SetSendMsgStatusReq)(nil), "msg.SetSendMsgStatusReq") + proto.RegisterType((*SetSendMsgStatusResp)(nil), "msg.SetSendMsgStatusResp") proto.RegisterType((*GetSendMsgStatusReq)(nil), "msg.GetSendMsgStatusReq") proto.RegisterType((*GetSendMsgStatusResp)(nil), "msg.GetSendMsgStatusResp") proto.RegisterType((*DelSuperGroupMsgReq)(nil), "msg.DelSuperGroupMsgReq") @@ -1031,7 +1039,7 @@ type MsgClient interface { DelSuperGroupMsg(ctx context.Context, in *DelSuperGroupMsgReq, opts ...grpc.CallOption) (*DelSuperGroupMsgResp, 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) + SetSendMsgStatus(ctx context.Context, in *SetSendMsgStatusReq, opts ...grpc.CallOption) (*SetSendMsgStatusResp, error) GetSendMsgStatus(ctx context.Context, in *GetSendMsgStatusReq, opts ...grpc.CallOption) (*GetSendMsgStatusResp, error) } @@ -1106,9 +1114,9 @@ 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...) +func (c *msgClient) SetSendMsgStatus(ctx context.Context, in *SetSendMsgStatusReq, opts ...grpc.CallOption) (*SetSendMsgStatusResp, error) { + out := new(SetSendMsgStatusResp) + err := grpc.Invoke(ctx, "/msg.msg/SetSendMsgStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1134,7 +1142,7 @@ type MsgServer interface { DelSuperGroupMsg(context.Context, *DelSuperGroupMsgReq) (*DelSuperGroupMsgResp, error) ClearMsg(context.Context, *ClearMsgReq) (*ClearMsgResp, error) SetMsgMinSeq(context.Context, *SetMsgMinSeqReq) (*SetMsgMinSeqResp, error) - SetSendMsgFailedFlag(context.Context, *SetSendMsgFailedFlagReq) (*SetSendMsgFailedFlagResp, error) + SetSendMsgStatus(context.Context, *SetSendMsgStatusReq) (*SetSendMsgStatusResp, error) GetSendMsgStatus(context.Context, *GetSendMsgStatusReq) (*GetSendMsgStatusResp, error) } @@ -1268,20 +1276,20 @@ 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) +func _Msg_SetSendMsgStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetSendMsgStatusReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).SetSendMsgFailedFlag(ctx, in) + return srv.(MsgServer).SetSendMsgStatus(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/msg.msg/SetSendMsgFailedFlag", + FullMethod: "/msg.msg/SetSendMsgStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).SetSendMsgFailedFlag(ctx, req.(*SetSendMsgFailedFlagReq)) + return srv.(MsgServer).SetSendMsgStatus(ctx, req.(*SetSendMsgStatusReq)) } return interceptor(ctx, in, info, handler) } @@ -1337,8 +1345,8 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ Handler: _Msg_SetMsgMinSeq_Handler, }, { - MethodName: "SetSendMsgFailedFlag", - Handler: _Msg_SetSendMsgFailedFlag_Handler, + MethodName: "SetSendMsgStatus", + Handler: _Msg_SetSendMsgStatus_Handler, }, { MethodName: "GetSendMsgStatus", @@ -1349,62 +1357,61 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ Metadata: "msg/msg.proto", } -func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_110411abaacf415d) } +func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_3997a326608d1183) } -var fileDescriptor_msg_110411abaacf415d = []byte{ - // 850 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcd, 0x6f, 0x1b, 0x55, - 0x10, 0xd7, 0xc6, 0xb1, 0xd3, 0xcc, 0x26, 0xb2, 0x79, 0x35, 0x61, 0x59, 0x15, 0xc9, 0x5d, 0x01, - 0xb2, 0x00, 0xd9, 0x92, 0x41, 0xe2, 0x90, 0x0b, 0xb8, 0x6e, 0x43, 0xa4, 0x2e, 0x6d, 0x76, 0xc3, - 0x85, 0x8b, 0xbb, 0xd4, 0x4f, 0xaf, 0xab, 0xec, 0xc7, 0xf3, 0xce, 0x9a, 0xb4, 0x70, 0xe6, 0xc8, - 0x1f, 0xc0, 0x89, 0x1b, 0x47, 0xfe, 0x46, 0xf4, 0x3e, 0x6c, 0xef, 0x57, 0x88, 0xe5, 0x43, 0x8f, - 0x33, 0x3b, 0x6f, 0xe6, 0xf7, 0x9b, 0xf9, 0xbd, 0x79, 0x0b, 0xa7, 0x31, 0xb2, 0x71, 0x8c, 0x6c, - 0xc4, 0xb3, 0x34, 0x4f, 0x49, 0x2b, 0x46, 0x66, 0x3f, 0x7e, 0xc1, 0x69, 0x32, 0xbf, 0x74, 0xc7, - 0xfc, 0x86, 0x8d, 0xa5, 0x7f, 0x8c, 0x8b, 0x9b, 0xf9, 0x2d, 0x8e, 0x6f, 0x51, 0xc5, 0x39, 0xbf, - 0x83, 0xe9, 0x22, 0x9b, 0x05, 0x79, 0x70, 0x9d, 0xba, 0x57, 0xa4, 0x0f, 0xed, 0x3c, 0xbd, 0xa1, - 0x89, 0x65, 0x0c, 0x8c, 0xe1, 0xb1, 0xa7, 0x0c, 0x32, 0x00, 0x33, 0xe5, 0x34, 0x0b, 0xf2, 0x30, - 0x4d, 0x2e, 0x67, 0xd6, 0x81, 0xfc, 0x56, 0x74, 0x91, 0x6f, 0xe0, 0x28, 0x56, 0x69, 0xac, 0xd6, - 0xc0, 0x18, 0x9a, 0x13, 0x7b, 0x84, 0x34, 0xfb, 0x95, 0x66, 0xf3, 0x80, 0x87, 0x73, 0x1e, 0x64, - 0x41, 0x8c, 0x23, 0x5d, 0xc8, 0x5b, 0x87, 0x3a, 0xb4, 0x50, 0x7c, 0x36, 0x2d, 0x26, 0x31, 0x76, - 0x4e, 0x72, 0x3f, 0x38, 0xe7, 0x4f, 0x03, 0xba, 0x2f, 0x57, 0xf8, 0xa6, 0x48, 0x74, 0x00, 0xe6, - 0x8b, 0xc2, 0x29, 0x45, 0xb7, 0xe8, 0x2a, 0xa2, 0x39, 0xd8, 0x1d, 0x8d, 0x03, 0x27, 0x7c, 0x85, - 0x6f, 0xae, 0xd3, 0x9f, 0x90, 0x66, 0x97, 0x33, 0xd9, 0x8d, 0x63, 0xaf, 0xe4, 0x73, 0xfe, 0x31, - 0x80, 0x6c, 0xb1, 0xa4, 0x09, 0x4b, 0xa7, 0xef, 0xdc, 0x2b, 0x62, 0xc1, 0x51, 0x14, 0x60, 0xee, - 0xd3, 0xa5, 0x84, 0x73, 0xe8, 0xad, 0x4d, 0xf2, 0x29, 0x9c, 0x06, 0x8c, 0x65, 0x94, 0x95, 0x49, - 0x96, 0x9d, 0x64, 0x02, 0x66, 0x4c, 0x11, 0x03, 0x46, 0x9f, 0x87, 0x98, 0x5b, 0xad, 0x41, 0x6b, - 0x68, 0x4e, 0x7a, 0x23, 0xa1, 0x89, 0x02, 0x73, 0xaf, 0x18, 0x44, 0x1e, 0xc1, 0x71, 0x9e, 0x85, - 0x8c, 0x49, 0xac, 0x87, 0x32, 0xeb, 0xd6, 0xe1, 0xfc, 0x08, 0xe4, 0x82, 0xe6, 0x6e, 0xf0, 0xf6, - 0xfb, 0x64, 0xe1, 0x86, 0x89, 0x4f, 0x97, 0x1e, 0x5d, 0x92, 0x33, 0xe8, 0x68, 0x72, 0xaa, 0x6b, - 0xda, 0xaa, 0xb6, 0xf4, 0xa0, 0xd6, 0x52, 0xe7, 0x16, 0x1e, 0xd6, 0xf2, 0x21, 0x17, 0xc4, 0x9f, - 0x66, 0xd9, 0x93, 0x74, 0x41, 0x65, 0xc6, 0xb6, 0xb7, 0x36, 0x45, 0xa9, 0xa7, 0x59, 0xe6, 0x22, - 0xd3, 0xd9, 0xb4, 0x25, 0xfc, 0x6e, 0xf0, 0x56, 0x74, 0x4a, 0xf4, 0xf7, 0xd4, 0xd3, 0x96, 0xf4, - 0xcb, 0xbc, 0x92, 0x8b, 0xf0, 0x4b, 0xcb, 0xf9, 0x0d, 0xc0, 0xa7, 0xc9, 0xc2, 0x45, 0x26, 0x08, - 0xbc, 0x5f, 0x91, 0xff, 0x6d, 0x80, 0xb9, 0x29, 0xae, 0xd8, 0xd2, 0x32, 0x5b, 0xba, 0x65, 0x4b, - 0x4b, 0x6c, 0x95, 0x25, 0x90, 0xa9, 0x3a, 0x2e, 0xb2, 0xcd, 0x98, 0x8a, 0x2e, 0x11, 0xf1, 0x3a, - 0x0a, 0x69, 0x92, 0xab, 0x88, 0xb6, 0x8a, 0x28, 0xb8, 0x88, 0x0d, 0x0f, 0x90, 0x26, 0x8b, 0xeb, - 0x30, 0xa6, 0x56, 0x67, 0x60, 0x0c, 0x5b, 0xde, 0xc6, 0x76, 0x5e, 0x83, 0xf9, 0x24, 0xa2, 0x41, - 0xa6, 0xdb, 0x73, 0x06, 0x9d, 0x55, 0x69, 0xbe, 0xca, 0x12, 0x29, 0x52, 0xae, 0x27, 0xaf, 0x00, - 0x6e, 0xec, 0x6a, 0xf3, 0x5a, 0xf5, 0x4b, 0xf8, 0x1d, 0x9c, 0x6c, 0x8b, 0xec, 0xd3, 0x06, 0xe7, - 0x2f, 0x03, 0xba, 0x3e, 0x15, 0x7c, 0x4a, 0x5a, 0x6c, 0xc4, 0x6a, 0xc1, 0x11, 0xcb, 0xd2, 0x15, - 0xdf, 0x40, 0x5d, 0x9b, 0xe2, 0x44, 0xac, 0x24, 0xa2, 0xa5, 0xa3, 0xac, 0x2a, 0x83, 0xc3, 0xfa, - 0xf8, 0x8b, 0xfc, 0xdb, 0x65, 0xfe, 0xce, 0x0c, 0x7a, 0x65, 0x68, 0x7b, 0x31, 0x3c, 0x87, 0x8f, - 0x7c, 0x9a, 0x6b, 0xb1, 0x3c, 0x0b, 0xc2, 0x88, 0x2e, 0x9e, 0x45, 0x81, 0x1c, 0x4a, 0x05, 0x9e, - 0x51, 0x6f, 0xf0, 0x73, 0xb0, 0x9a, 0x0f, 0xef, 0x05, 0xe5, 0x5b, 0x79, 0x55, 0x75, 0x36, 0x3f, - 0x0f, 0xf2, 0x15, 0xee, 0x06, 0xe3, 0x15, 0xf4, 0xeb, 0x07, 0xf7, 0x92, 0xfd, 0x19, 0x74, 0x50, - 0x9e, 0x97, 0x93, 0x6a, 0x7b, 0xda, 0x72, 0xfe, 0x30, 0xe0, 0xe1, 0x8c, 0x46, 0xfe, 0x8a, 0xd3, - 0xec, 0x42, 0x4c, 0x55, 0xeb, 0xb6, 0x38, 0x1f, 0xa3, 0xa2, 0xcf, 0xad, 0x4e, 0x0e, 0xee, 0xd2, - 0x49, 0xab, 0xac, 0x93, 0x7b, 0xf5, 0xe0, 0xfc, 0x00, 0xfd, 0x3a, 0x8c, 0x7d, 0x98, 0x4e, 0xfe, - 0x6d, 0x83, 0x78, 0xaf, 0xc9, 0x2b, 0xe8, 0x56, 0xf6, 0x23, 0xf9, 0xac, 0x61, 0xc5, 0xd4, 0x77, - 0xb2, 0xfd, 0xf9, 0x2e, 0x61, 0xc8, 0x49, 0x0a, 0xfd, 0x97, 0xab, 0x28, 0x72, 0xd5, 0x13, 0x30, - 0x7d, 0xe7, 0xd3, 0xa5, 0x7c, 0x07, 0xbe, 0x68, 0x38, 0xdf, 0x14, 0x28, 0x6a, 0x7d, 0xb9, 0x73, - 0x2c, 0x72, 0xf2, 0x15, 0x1c, 0x69, 0x2d, 0x90, 0xae, 0x7c, 0x8a, 0xb6, 0x7b, 0xd8, 0xee, 0x95, - 0x1d, 0xc8, 0xc9, 0x15, 0xc0, 0x8c, 0x46, 0x2e, 0x32, 0x09, 0x6a, 0xd0, 0x50, 0x68, 0xfb, 0x59, - 0x64, 0x78, 0x7c, 0x4f, 0x04, 0x72, 0x72, 0x01, 0xbd, 0xea, 0x94, 0x88, 0x25, 0x0b, 0x37, 0x68, - 0xc8, 0xfe, 0xf8, 0x8e, 0x2f, 0xc8, 0xc9, 0x18, 0x1e, 0xac, 0x17, 0x18, 0x51, 0xc8, 0x0b, 0x4b, - 0xd3, 0xfe, 0xa0, 0xe2, 0x41, 0x4e, 0xce, 0xe1, 0xa4, 0xb8, 0x13, 0x48, 0x5f, 0xd3, 0x2d, 0x6d, - 0x30, 0xfb, 0xc3, 0x06, 0x2f, 0x72, 0xe2, 0x43, 0xbf, 0xe9, 0x36, 0x93, 0x47, 0xeb, 0xf0, 0xa6, - 0x2d, 0x61, 0x7f, 0xf2, 0x3f, 0x5f, 0x55, 0x2f, 0xaa, 0x77, 0x53, 0xf7, 0xa2, 0xe1, 0xae, 0xeb, - 0x5e, 0x34, 0x5d, 0xe6, 0xa9, 0xf9, 0xf3, 0xf1, 0x48, 0xfc, 0x6c, 0x9e, 0xc7, 0xc8, 0x7e, 0xe9, - 0xc8, 0x3f, 0xc9, 0xaf, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xcc, 0x3b, 0xac, 0x82, 0x0a, - 0x00, 0x00, +var fileDescriptor_msg_3997a326608d1183 = []byte{ + // 833 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4d, 0x6f, 0xeb, 0x44, + 0x14, 0x95, 0xe3, 0x26, 0x79, 0xb9, 0x6e, 0x95, 0x30, 0x0d, 0x95, 0xb1, 0x58, 0xe4, 0x59, 0x80, + 0x22, 0x40, 0x89, 0x14, 0x90, 0x58, 0xbc, 0x0d, 0xe4, 0xe5, 0x29, 0x54, 0xc2, 0xb4, 0xb5, 0xcb, + 0x86, 0x4d, 0x6a, 0x9a, 0xd1, 0x34, 0x6a, 0x6c, 0x4f, 0x3c, 0x0e, 0x6d, 0x61, 0xcd, 0x92, 0x1f, + 0xc0, 0x0a, 0x89, 0x05, 0xbf, 0x13, 0xcd, 0x47, 0x92, 0xf1, 0x47, 0xd5, 0x10, 0x21, 0x96, 0xf7, + 0xfa, 0xfa, 0xdc, 0x73, 0xee, 0x9c, 0xb9, 0x36, 0x9c, 0x44, 0x8c, 0x0c, 0x23, 0x46, 0x06, 0x34, + 0x4d, 0xb2, 0x04, 0x99, 0x11, 0x23, 0xce, 0xeb, 0x0b, 0x8a, 0xe3, 0xd9, 0xb9, 0x37, 0xa4, 0xf7, + 0x64, 0x28, 0xf2, 0x43, 0x36, 0xbf, 0x9f, 0x3d, 0xb0, 0xe1, 0x03, 0x93, 0x75, 0xee, 0xaf, 0x60, + 0x79, 0x8c, 0x4c, 0xc2, 0x2c, 0xbc, 0x4e, 0xbc, 0x2b, 0xd4, 0x85, 0x7a, 0x96, 0xdc, 0xe3, 0xd8, + 0x36, 0x7a, 0x46, 0xbf, 0xe5, 0xcb, 0x00, 0xf5, 0xc0, 0x4a, 0x28, 0x4e, 0xc3, 0x6c, 0x91, 0xc4, + 0xe7, 0x13, 0xbb, 0x26, 0x9e, 0xe9, 0x29, 0xf4, 0x25, 0x34, 0x23, 0x09, 0x63, 0x9b, 0x3d, 0xa3, + 0x6f, 0x8d, 0x9c, 0x01, 0xc3, 0xe9, 0xcf, 0x38, 0x9d, 0x85, 0x74, 0x31, 0xa3, 0x61, 0x1a, 0x46, + 0x6c, 0xa0, 0x1a, 0xf9, 0x9b, 0x52, 0x17, 0x6b, 0xcd, 0x27, 0x63, 0x1d, 0xc4, 0xd8, 0x1b, 0xe4, + 0x65, 0x72, 0xee, 0xef, 0x06, 0xb4, 0x2f, 0xd7, 0xec, 0x4e, 0x17, 0xda, 0x03, 0xeb, 0x42, 0x7b, + 0x4b, 0xca, 0xd5, 0x53, 0x3a, 0x9b, 0xda, 0xfe, 0x6c, 0x5c, 0x38, 0xa6, 0x6b, 0x76, 0x77, 0x9d, + 0xfc, 0xc0, 0x70, 0x7a, 0x3e, 0x11, 0xd3, 0x68, 0xf9, 0xb9, 0x9c, 0xfb, 0xb7, 0x01, 0x68, 0xc7, + 0x25, 0x89, 0x49, 0x32, 0x7e, 0xf2, 0xae, 0x90, 0x0d, 0xcd, 0x65, 0xc8, 0xb2, 0x00, 0xaf, 0x04, + 0x9d, 0x23, 0x7f, 0x13, 0xa2, 0x8f, 0xe0, 0x24, 0x24, 0x24, 0xc5, 0x24, 0x2f, 0x32, 0x9f, 0x44, + 0x23, 0xb0, 0x22, 0xcc, 0x58, 0x48, 0xf0, 0x77, 0x0b, 0x96, 0xd9, 0x66, 0xcf, 0xec, 0x5b, 0xa3, + 0xce, 0x80, 0x7b, 0x42, 0x53, 0xee, 0xeb, 0x45, 0xe8, 0x43, 0x68, 0x65, 0xe9, 0x82, 0x10, 0xc1, + 0xf5, 0x48, 0xa0, 0xee, 0x12, 0xee, 0xf7, 0x80, 0xa6, 0x38, 0xf3, 0xc2, 0xc7, 0x6f, 0xe2, 0xb9, + 0xb7, 0x88, 0x03, 0xbc, 0xf2, 0xf1, 0x0a, 0x9d, 0x41, 0x43, 0x89, 0x93, 0x53, 0x53, 0x51, 0x71, + 0xa4, 0xb5, 0xd2, 0x48, 0xdd, 0x07, 0x38, 0x2d, 0xe1, 0x31, 0xca, 0x85, 0xbf, 0x4b, 0xd3, 0xb7, + 0xc9, 0x1c, 0x0b, 0xc4, 0xba, 0xbf, 0x09, 0x79, 0xab, 0x77, 0x69, 0xea, 0x31, 0xa2, 0xd0, 0x54, + 0xc4, 0xf3, 0x5e, 0xf8, 0xc8, 0x27, 0xc5, 0xe7, 0x7b, 0xe2, 0xab, 0x48, 0xe4, 0x05, 0xae, 0xd0, + 0xc2, 0xf3, 0x22, 0x72, 0x7f, 0x01, 0x08, 0x70, 0x3c, 0xf7, 0x18, 0xe1, 0x02, 0xfe, 0x5f, 0x93, + 0xff, 0x69, 0x80, 0xb5, 0x6d, 0x2e, 0xd5, 0xe2, 0xbc, 0x5a, 0xbc, 0x53, 0x8b, 0x73, 0x6a, 0x65, + 0xc4, 0x99, 0xc9, 0x3e, 0x1e, 0x23, 0xdb, 0x63, 0xd2, 0x53, 0xbc, 0xe2, 0x76, 0xb9, 0xc0, 0x71, + 0x26, 0x2b, 0xea, 0xb2, 0x42, 0x4b, 0x21, 0x07, 0x5e, 0x31, 0x1c, 0xcf, 0xaf, 0x17, 0x11, 0xb6, + 0x1b, 0x3d, 0xa3, 0x6f, 0xfa, 0xdb, 0xd8, 0xbd, 0x05, 0xeb, 0xed, 0x12, 0x87, 0xa9, 0x1a, 0xcf, + 0x19, 0x34, 0xd6, 0xb9, 0xf3, 0x95, 0x11, 0x87, 0x48, 0xa8, 0x3a, 0x79, 0x49, 0x70, 0x1b, 0x17, + 0x87, 0x67, 0x96, 0x2f, 0xe1, 0xd7, 0x70, 0xbc, 0x6b, 0x72, 0xc8, 0x18, 0xdc, 0x3f, 0x0c, 0x68, + 0x07, 0x98, 0xeb, 0xc9, 0x79, 0xb1, 0x92, 0xab, 0x0d, 0x4d, 0x92, 0x26, 0x6b, 0xba, 0xa5, 0xba, + 0x09, 0xf9, 0x1b, 0x91, 0xb4, 0x88, 0xb2, 0x8e, 0x8c, 0x8a, 0x0a, 0x8e, 0xca, 0xc7, 0xaf, 0xeb, + 0xaf, 0xe7, 0xf5, 0xbb, 0x13, 0xe8, 0xe4, 0xa9, 0x1d, 0xa4, 0xf0, 0x02, 0x4e, 0x03, 0x9c, 0x29, + 0xb3, 0x04, 0x59, 0x98, 0xad, 0x99, 0x5f, 0xa6, 0x66, 0x94, 0xa9, 0x9d, 0x41, 0x83, 0x89, 0x72, + 0x01, 0x58, 0xf7, 0x55, 0xe4, 0x7e, 0x0b, 0xdd, 0x32, 0xe0, 0x41, 0xd4, 0xbe, 0x12, 0x57, 0xf7, + 0xdf, 0x53, 0x73, 0x6f, 0xa0, 0x3b, 0xfd, 0x4f, 0x28, 0x68, 0x22, 0xcd, 0x9c, 0xc8, 0xdf, 0x0c, + 0x38, 0x9d, 0xe0, 0x65, 0xb0, 0xa6, 0x38, 0x9d, 0xf2, 0x53, 0x56, 0x3e, 0xd6, 0xcf, 0xcb, 0x28, + 0xf8, 0x75, 0xe7, 0x9b, 0xda, 0x73, 0xbe, 0x31, 0xf3, 0xbe, 0x79, 0xd1, 0x1f, 0x7c, 0xd8, 0x65, + 0x1a, 0x87, 0x28, 0x1d, 0xfd, 0x55, 0x07, 0xfe, 0xfd, 0x46, 0x37, 0xd0, 0x2e, 0xec, 0x4b, 0xf4, + 0x71, 0xc5, 0xca, 0x29, 0xef, 0x68, 0xe7, 0x93, 0x7d, 0xca, 0x18, 0x45, 0x09, 0x74, 0x2f, 0xd7, + 0xcb, 0xa5, 0x27, 0x3f, 0x09, 0xe3, 0xa7, 0x00, 0xaf, 0xc4, 0x77, 0xe1, 0xd3, 0x8a, 0xf7, 0xab, + 0x0a, 0x79, 0xaf, 0xcf, 0xf6, 0xae, 0x65, 0x14, 0x7d, 0x0e, 0x4d, 0xe5, 0x05, 0xd4, 0x16, 0x9f, + 0xa6, 0xdd, 0x5e, 0x76, 0x3a, 0xf9, 0x04, 0xa3, 0xe8, 0x0a, 0x60, 0x82, 0x97, 0x1e, 0x23, 0x82, + 0x54, 0xaf, 0xa2, 0xd1, 0xee, 0x31, 0x47, 0x78, 0xfd, 0x42, 0x05, 0xa3, 0x68, 0x0a, 0x9d, 0xe2, + 0x29, 0x21, 0x5b, 0x34, 0xae, 0xf0, 0x90, 0xf3, 0xc1, 0x33, 0x4f, 0x18, 0x45, 0x43, 0x78, 0xb5, + 0x59, 0x68, 0x48, 0x32, 0xd7, 0x96, 0xa8, 0xf3, 0x5e, 0x21, 0xc3, 0x28, 0x7a, 0x03, 0xc7, 0xfa, + 0x8e, 0x40, 0x5d, 0x25, 0x37, 0xb7, 0xd1, 0x9c, 0xf7, 0x2b, 0xb2, 0x92, 0x76, 0xf1, 0x26, 0x2b, + 0xda, 0x15, 0x1b, 0x43, 0xd1, 0xae, 0xbc, 0xfa, 0x53, 0xe8, 0x4c, 0xab, 0x81, 0xa6, 0xcf, 0x02, + 0x55, 0x5d, 0xe0, 0xb1, 0xf5, 0x63, 0x6b, 0xc0, 0x7f, 0x38, 0xdf, 0x44, 0x8c, 0xfc, 0xd4, 0x10, + 0x7f, 0x93, 0x5f, 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0x68, 0x86, 0x7d, 0x0a, 0x86, 0x0a, 0x00, + 0x00, } diff --git a/pkg/proto/msg/msg.proto b/pkg/proto/msg/msg.proto index b2ea4fbbc..a15a4f3c8 100644 --- a/pkg/proto/msg/msg.proto +++ b/pkg/proto/msg/msg.proto @@ -102,11 +102,12 @@ message SetMsgMinSeqResp{ string errMsg = 2; } -message SetSendMsgFailedFlagReq{ +message SetSendMsgStatusReq{ string operationID = 1; + int32 status = 2; } -message SetSendMsgFailedFlagResp{ +message SetSendMsgStatusResp{ int32 errCode = 1; string errMsg = 2; } @@ -138,6 +139,6 @@ service msg { rpc DelSuperGroupMsg(DelSuperGroupMsgReq) returns(DelSuperGroupMsgResp); rpc ClearMsg(ClearMsgReq) returns(ClearMsgResp); rpc SetMsgMinSeq(SetMsgMinSeqReq) returns(SetMsgMinSeqResp); - rpc SetSendMsgFailedFlag(SetSendMsgFailedFlagReq) returns(SetSendMsgFailedFlagResp); + rpc SetSendMsgStatus(SetSendMsgStatusReq) returns(SetSendMsgStatusResp); rpc GetSendMsgStatus(GetSendMsgStatusReq) returns(GetSendMsgStatusResp); } From 5233e4c097301af1638eb8302f83fa53ebca99d7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 16:08:28 +0800 Subject: [PATCH 50/56] fix bug --- internal/demo/register/set_password.go | 4 ++++ internal/rpc/group/group.go | 8 ++++++++ internal/rpc/user/user.go | 2 ++ .../db/mysql_model/im_mysql_model/group_member_model.go | 4 ++-- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 74e93b95e..0c1a065fc 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -33,6 +33,8 @@ type ParamsSetPassword struct { OperationID string `json:"operationID" binding:"required"` AreaCode string `json:"areaCode"` InvitationCode string `json:"invitationCode"` + Gender int32 `json:"gender"` + Birth int32 `json:"birth"` } func SetPassword(c *gin.Context) { @@ -113,6 +115,8 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.Nickname = params.Nickname openIMRegisterReq.Secret = config.Config.Secret openIMRegisterReq.FaceURL = params.FaceURL + openIMRegisterReq.Gender = params.Gender + openIMRegisterReq.Birth = uint32(params.Birth) openIMRegisterResp := api.UserRegisterResp{} log.NewDebug(params.OperationID, utils.GetSelfFuncName(), "register req:", openIMRegisterReq) bMsg, err := http2.Post(url, openIMRegisterReq, 2) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 971c21c32..aa7bb2b7e 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1365,6 +1365,14 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* resp.CommonResp.ErrMsg = err.Error() return resp, nil } + memberNum, err := imdb.GetGroupMembersCount(req.GroupID, "") + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.GroupID) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil + } + groupInfo.MemberCount = uint32(memberNum) resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{GroupInfo: groupInfo, GroupOwnerUserName: groupMember.Nickname, GroupOwnerUserID: groupMember.UserID}) } else { groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 486f7e901..5aa93244a 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -561,6 +561,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb var user sdkws.UserInfo utils.CopyStructFields(&user, userDB) user.CreateTime = uint32(userDB.CreateTime.Unix()) + user.Birth = uint32(userDB.Birth.Unix()) resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) } } else { @@ -582,6 +583,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb var user sdkws.UserInfo utils.CopyStructFields(&user, userDB) user.CreateTime = uint32(userDB.CreateTime.Unix()) + user.Birth = uint32(userDB.Birth.Unix()) resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) } } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index d73ee287d..341094d5d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -213,9 +213,9 @@ func GetGroupMembersByGroupIdCMS(groupId string, userName string, showNumber, pa return groupMembers, nil } -func GetGroupMembersCount(groupId, userName string) (int64, error) { +func GetGroupMembersCount(groupID, userName string) (int64, error) { var count int64 - if err := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("group_id=?", groupId).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Count(&count).Error; err != nil { + if err := db.DB.MysqlDB.DefaultGormDB().Table("group_members").Where("group_id=?", groupID).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Count(&count).Error; err != nil { return count, err } return count, nil From 099461dbbfaf8bf4abf1930c149f48069d4654c6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 17:19:13 +0800 Subject: [PATCH 51/56] cms --- internal/cms_api/admin/admin.go | 2 + internal/rpc/admin_cms/admin_cms.go | 9 + pkg/cms_api_struct/admin.go | 4 +- pkg/proto/admin_cms/admin_cms.pb.go | 387 +++++++++++++++------------- pkg/proto/admin_cms/admin_cms.proto | 4 +- 5 files changed, 219 insertions(+), 187 deletions(-) diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index b2eee5f2e..7d4c450fb 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -85,6 +85,8 @@ func AdminLogin(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } + resp.FaceURL = respPb.FaceURL + resp.UserName = respPb.UserName resp.Token = respPb.Token c.JSON(http.StatusOK, gin.H{"errCode": respPb.CommonResp.ErrCode, "errMsg": respPb.CommonResp.ErrMsg, "data": resp}) } diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 1e40a872c..21fb23b20 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -106,6 +106,15 @@ func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLogi resp.CommonResp.ErrMsg = constant.ErrTokenMalformed.ErrMsg return resp, nil } + admin, err := imdb.GetUserByUserID(req.AdminID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "failed", req.AdminID) + resp.CommonResp.ErrCode = constant.ErrTokenUnknown.ErrCode + resp.CommonResp.ErrMsg = constant.ErrTokenMalformed.ErrMsg + return resp, nil + } + resp.UserName = admin.Nickname + resp.FaceURL = admin.FaceURL log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String()) return resp, nil } diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index bca998291..9925224bf 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -12,7 +12,9 @@ type AdminLoginRequest struct { } type AdminLoginResponse struct { - Token string `json:"token"` + Token string `json:"token"` + UserName string `json:"userName"` + FaceURL string `json:"faceURL"` } type AddUserRegisterAddFriendIDListRequest struct { diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go index 11180d164..47228c1ea 100644 --- a/pkg/proto/admin_cms/admin_cms.pb.go +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{0} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *AdminLoginReq) Reset() { *m = AdminLoginReq{} } func (m *AdminLoginReq) String() string { return proto.CompactTextString(m) } func (*AdminLoginReq) ProtoMessage() {} func (*AdminLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{1} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{1} } func (m *AdminLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginReq.Unmarshal(m, b) @@ -126,7 +126,9 @@ func (m *AdminLoginReq) GetSecret() string { type AdminLoginResp struct { Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=userName" json:"userName,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,4,opt,name=commonResp" json:"commonResp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -136,7 +138,7 @@ func (m *AdminLoginResp) Reset() { *m = AdminLoginResp{} } func (m *AdminLoginResp) String() string { return proto.CompactTextString(m) } func (*AdminLoginResp) ProtoMessage() {} func (*AdminLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{2} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{2} } func (m *AdminLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AdminLoginResp.Unmarshal(m, b) @@ -163,6 +165,20 @@ func (m *AdminLoginResp) GetToken() string { return "" } +func (m *AdminLoginResp) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *AdminLoginResp) GetFaceURL() string { + if m != nil { + return m.FaceURL + } + return "" +} + func (m *AdminLoginResp) GetCommonResp() *CommonResp { if m != nil { return m.CommonResp @@ -182,7 +198,7 @@ func (m *AddUserRegisterAddFriendIDListReq) Reset() { *m = AddUserRegist func (m *AddUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{3} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{3} } func (m *AddUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -227,7 +243,7 @@ func (m *AddUserRegisterAddFriendIDListResp) Reset() { *m = AddUserRegis func (m *AddUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*AddUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*AddUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{4} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{4} } func (m *AddUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -267,7 +283,7 @@ func (m *ReduceUserRegisterAddFriendIDListReq) Reset() { *m = ReduceUser func (m *ReduceUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{5} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{5} } func (m *ReduceUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -319,7 +335,7 @@ func (m *ReduceUserRegisterAddFriendIDListResp) Reset() { *m = ReduceUse func (m *ReduceUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*ReduceUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*ReduceUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{6} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{6} } func (m *ReduceUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduceUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -358,7 +374,7 @@ func (m *GetUserRegisterAddFriendIDListReq) Reset() { *m = GetUserRegist func (m *GetUserRegisterAddFriendIDListReq) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListReq) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{7} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{7} } func (m *GetUserRegisterAddFriendIDListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListReq.Unmarshal(m, b) @@ -405,7 +421,7 @@ func (m *GetUserRegisterAddFriendIDListResp) Reset() { *m = GetUserRegis func (m *GetUserRegisterAddFriendIDListResp) String() string { return proto.CompactTextString(m) } func (*GetUserRegisterAddFriendIDListResp) ProtoMessage() {} func (*GetUserRegisterAddFriendIDListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{8} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{8} } func (m *GetUserRegisterAddFriendIDListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserRegisterAddFriendIDListResp.Unmarshal(m, b) @@ -464,7 +480,7 @@ func (m *GetChatLogsReq) Reset() { *m = GetChatLogsReq{} } func (m *GetChatLogsReq) String() string { return proto.CompactTextString(m) } func (*GetChatLogsReq) ProtoMessage() {} func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{9} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{9} } func (m *GetChatLogsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsReq.Unmarshal(m, b) @@ -568,7 +584,7 @@ func (m *ChatLog) Reset() { *m = ChatLog{} } func (m *ChatLog) String() string { return proto.CompactTextString(m) } func (*ChatLog) ProtoMessage() {} func (*ChatLog) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{10} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{10} } func (m *ChatLog) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ChatLog.Unmarshal(m, b) @@ -728,7 +744,7 @@ func (m *GetChatLogsResp) Reset() { *m = GetChatLogsResp{} } func (m *GetChatLogsResp) String() string { return proto.CompactTextString(m) } func (*GetChatLogsResp) ProtoMessage() {} func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{11} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{11} } func (m *GetChatLogsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetChatLogsResp.Unmarshal(m, b) @@ -788,7 +804,7 @@ func (m *StatisticsReq) Reset() { *m = StatisticsReq{} } func (m *StatisticsReq) String() string { return proto.CompactTextString(m) } func (*StatisticsReq) ProtoMessage() {} func (*StatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{12} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{12} } func (m *StatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_StatisticsReq.Unmarshal(m, b) @@ -834,7 +850,7 @@ func (m *GetActiveUserReq) Reset() { *m = GetActiveUserReq{} } func (m *GetActiveUserReq) String() string { return proto.CompactTextString(m) } func (*GetActiveUserReq) ProtoMessage() {} func (*GetActiveUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{13} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{13} } func (m *GetActiveUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserReq.Unmarshal(m, b) @@ -881,7 +897,7 @@ func (m *UserResp) Reset() { *m = UserResp{} } func (m *UserResp) String() string { return proto.CompactTextString(m) } func (*UserResp) ProtoMessage() {} func (*UserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{14} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{14} } func (m *UserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserResp.Unmarshal(m, b) @@ -934,7 +950,7 @@ func (m *GetActiveUserResp) Reset() { *m = GetActiveUserResp{} } func (m *GetActiveUserResp) String() string { return proto.CompactTextString(m) } func (*GetActiveUserResp) ProtoMessage() {} func (*GetActiveUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{15} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{15} } func (m *GetActiveUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveUserResp.Unmarshal(m, b) @@ -980,7 +996,7 @@ func (m *GetActiveGroupReq) Reset() { *m = GetActiveGroupReq{} } func (m *GetActiveGroupReq) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupReq) ProtoMessage() {} func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{16} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{16} } func (m *GetActiveGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupReq.Unmarshal(m, b) @@ -1028,7 +1044,7 @@ func (m *GroupResp) Reset() { *m = GroupResp{} } func (m *GroupResp) String() string { return proto.CompactTextString(m) } func (*GroupResp) ProtoMessage() {} func (*GroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{17} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{17} } func (m *GroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupResp.Unmarshal(m, b) @@ -1088,7 +1104,7 @@ func (m *GetActiveGroupResp) Reset() { *m = GetActiveGroupResp{} } func (m *GetActiveGroupResp) String() string { return proto.CompactTextString(m) } func (*GetActiveGroupResp) ProtoMessage() {} func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{18} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{18} } func (m *GetActiveGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetActiveGroupResp.Unmarshal(m, b) @@ -1134,7 +1150,7 @@ func (m *DateNumList) Reset() { *m = DateNumList{} } func (m *DateNumList) String() string { return proto.CompactTextString(m) } func (*DateNumList) ProtoMessage() {} func (*DateNumList) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{19} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{19} } func (m *DateNumList) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DateNumList.Unmarshal(m, b) @@ -1180,7 +1196,7 @@ func (m *GetMessageStatisticsReq) Reset() { *m = GetMessageStatisticsReq func (m *GetMessageStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsReq) ProtoMessage() {} func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{20} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{20} } func (m *GetMessageStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsReq.Unmarshal(m, b) @@ -1229,7 +1245,7 @@ func (m *GetMessageStatisticsResp) Reset() { *m = GetMessageStatisticsRe func (m *GetMessageStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetMessageStatisticsResp) ProtoMessage() {} func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{21} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{21} } func (m *GetMessageStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMessageStatisticsResp.Unmarshal(m, b) @@ -1296,7 +1312,7 @@ func (m *GetGroupStatisticsReq) Reset() { *m = GetGroupStatisticsReq{} } func (m *GetGroupStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsReq) ProtoMessage() {} func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{22} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{22} } func (m *GetGroupStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsReq.Unmarshal(m, b) @@ -1345,7 +1361,7 @@ func (m *GetGroupStatisticsResp) Reset() { *m = GetGroupStatisticsResp{} func (m *GetGroupStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetGroupStatisticsResp) ProtoMessage() {} func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{23} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{23} } func (m *GetGroupStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupStatisticsResp.Unmarshal(m, b) @@ -1412,7 +1428,7 @@ func (m *GetUserStatisticsReq) Reset() { *m = GetUserStatisticsReq{} } func (m *GetUserStatisticsReq) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsReq) ProtoMessage() {} func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{24} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{24} } func (m *GetUserStatisticsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsReq.Unmarshal(m, b) @@ -1463,7 +1479,7 @@ func (m *GetUserStatisticsResp) Reset() { *m = GetUserStatisticsResp{} } func (m *GetUserStatisticsResp) String() string { return proto.CompactTextString(m) } func (*GetUserStatisticsResp) ProtoMessage() {} func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{25} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{25} } func (m *GetUserStatisticsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserStatisticsResp.Unmarshal(m, b) @@ -1545,7 +1561,7 @@ func (m *GenerateInvitationCodeReq) Reset() { *m = GenerateInvitationCod func (m *GenerateInvitationCodeReq) String() string { return proto.CompactTextString(m) } func (*GenerateInvitationCodeReq) ProtoMessage() {} func (*GenerateInvitationCodeReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{26} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{26} } func (m *GenerateInvitationCodeReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateInvitationCodeReq.Unmarshal(m, b) @@ -1597,7 +1613,7 @@ func (m *GenerateInvitationCodeResp) Reset() { *m = GenerateInvitationCo func (m *GenerateInvitationCodeResp) String() string { return proto.CompactTextString(m) } func (*GenerateInvitationCodeResp) ProtoMessage() {} func (*GenerateInvitationCodeResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{27} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{27} } func (m *GenerateInvitationCodeResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GenerateInvitationCodeResp.Unmarshal(m, b) @@ -1638,7 +1654,7 @@ func (m *GetInvitationCodesReq) Reset() { *m = GetInvitationCodesReq{} } func (m *GetInvitationCodesReq) String() string { return proto.CompactTextString(m) } func (*GetInvitationCodesReq) ProtoMessage() {} func (*GetInvitationCodesReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{28} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{28} } func (m *GetInvitationCodesReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInvitationCodesReq.Unmarshal(m, b) @@ -1701,7 +1717,7 @@ func (m *InvitationCode) Reset() { *m = InvitationCode{} } func (m *InvitationCode) String() string { return proto.CompactTextString(m) } func (*InvitationCode) ProtoMessage() {} func (*InvitationCode) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{29} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{29} } func (m *InvitationCode) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InvitationCode.Unmarshal(m, b) @@ -1769,7 +1785,7 @@ func (m *GetInvitationCodesResp) Reset() { *m = GetInvitationCodesResp{} func (m *GetInvitationCodesResp) String() string { return proto.CompactTextString(m) } func (*GetInvitationCodesResp) ProtoMessage() {} func (*GetInvitationCodesResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{30} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{30} } func (m *GetInvitationCodesResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInvitationCodesResp.Unmarshal(m, b) @@ -1822,7 +1838,7 @@ func (m *QueryIPRegisterReq) Reset() { *m = QueryIPRegisterReq{} } func (m *QueryIPRegisterReq) String() string { return proto.CompactTextString(m) } func (*QueryIPRegisterReq) ProtoMessage() {} func (*QueryIPRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{31} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{31} } func (m *QueryIPRegisterReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryIPRegisterReq.Unmarshal(m, b) @@ -1871,7 +1887,7 @@ func (m *QueryIPRegisterResp) Reset() { *m = QueryIPRegisterResp{} } func (m *QueryIPRegisterResp) String() string { return proto.CompactTextString(m) } func (*QueryIPRegisterResp) ProtoMessage() {} func (*QueryIPRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{32} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{32} } func (m *QueryIPRegisterResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryIPRegisterResp.Unmarshal(m, b) @@ -1939,7 +1955,7 @@ func (m *AddIPLimitReq) Reset() { *m = AddIPLimitReq{} } func (m *AddIPLimitReq) String() string { return proto.CompactTextString(m) } func (*AddIPLimitReq) ProtoMessage() {} func (*AddIPLimitReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{33} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{33} } func (m *AddIPLimitReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddIPLimitReq.Unmarshal(m, b) @@ -1991,7 +2007,7 @@ func (m *AddIPLimitResp) Reset() { *m = AddIPLimitResp{} } func (m *AddIPLimitResp) String() string { return proto.CompactTextString(m) } func (*AddIPLimitResp) ProtoMessage() {} func (*AddIPLimitResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{34} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{34} } func (m *AddIPLimitResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddIPLimitResp.Unmarshal(m, b) @@ -2030,7 +2046,7 @@ func (m *RemoveIPLimitReq) Reset() { *m = RemoveIPLimitReq{} } func (m *RemoveIPLimitReq) String() string { return proto.CompactTextString(m) } func (*RemoveIPLimitReq) ProtoMessage() {} func (*RemoveIPLimitReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{35} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{35} } func (m *RemoveIPLimitReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveIPLimitReq.Unmarshal(m, b) @@ -2075,7 +2091,7 @@ func (m *RemoveIPLimitResp) Reset() { *m = RemoveIPLimitResp{} } func (m *RemoveIPLimitResp) String() string { return proto.CompactTextString(m) } func (*RemoveIPLimitResp) ProtoMessage() {} func (*RemoveIPLimitResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{36} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{36} } func (m *RemoveIPLimitResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveIPLimitResp.Unmarshal(m, b) @@ -2114,7 +2130,7 @@ func (m *QueryUserIDIPLimitLoginReq) Reset() { *m = QueryUserIDIPLimitLo func (m *QueryUserIDIPLimitLoginReq) String() string { return proto.CompactTextString(m) } func (*QueryUserIDIPLimitLoginReq) ProtoMessage() {} func (*QueryUserIDIPLimitLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{37} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{37} } func (m *QueryUserIDIPLimitLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryUserIDIPLimitLoginReq.Unmarshal(m, b) @@ -2161,7 +2177,7 @@ func (m *UserIPLimit) Reset() { *m = UserIPLimit{} } func (m *UserIPLimit) String() string { return proto.CompactTextString(m) } func (*UserIPLimit) ProtoMessage() {} func (*UserIPLimit) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{38} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{38} } func (m *UserIPLimit) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserIPLimit.Unmarshal(m, b) @@ -2214,7 +2230,7 @@ func (m *QueryUserIDIPLimitLoginResp) Reset() { *m = QueryUserIDIPLimitL func (m *QueryUserIDIPLimitLoginResp) String() string { return proto.CompactTextString(m) } func (*QueryUserIDIPLimitLoginResp) ProtoMessage() {} func (*QueryUserIDIPLimitLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{39} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{39} } func (m *QueryUserIDIPLimitLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QueryUserIDIPLimitLoginResp.Unmarshal(m, b) @@ -2261,7 +2277,7 @@ func (m *AddUserIPLimitLoginReq) Reset() { *m = AddUserIPLimitLoginReq{} func (m *AddUserIPLimitLoginReq) String() string { return proto.CompactTextString(m) } func (*AddUserIPLimitLoginReq) ProtoMessage() {} func (*AddUserIPLimitLoginReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{40} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{40} } func (m *AddUserIPLimitLoginReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserIPLimitLoginReq.Unmarshal(m, b) @@ -2313,7 +2329,7 @@ func (m *AddUserIPLimitLoginResp) Reset() { *m = AddUserIPLimitLoginResp func (m *AddUserIPLimitLoginResp) String() string { return proto.CompactTextString(m) } func (*AddUserIPLimitLoginResp) ProtoMessage() {} func (*AddUserIPLimitLoginResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{41} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{41} } func (m *AddUserIPLimitLoginResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserIPLimitLoginResp.Unmarshal(m, b) @@ -2353,7 +2369,7 @@ func (m *RemoveUserIPLimitReq) Reset() { *m = RemoveUserIPLimitReq{} } func (m *RemoveUserIPLimitReq) String() string { return proto.CompactTextString(m) } func (*RemoveUserIPLimitReq) ProtoMessage() {} func (*RemoveUserIPLimitReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{42} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{42} } func (m *RemoveUserIPLimitReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveUserIPLimitReq.Unmarshal(m, b) @@ -2405,7 +2421,7 @@ func (m *RemoveUserIPLimitResp) Reset() { *m = RemoveUserIPLimitResp{} } func (m *RemoveUserIPLimitResp) String() string { return proto.CompactTextString(m) } func (*RemoveUserIPLimitResp) ProtoMessage() {} func (*RemoveUserIPLimitResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{43} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{43} } func (m *RemoveUserIPLimitResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveUserIPLimitResp.Unmarshal(m, b) @@ -2443,7 +2459,7 @@ func (m *GetClientInitConfigReq) Reset() { *m = GetClientInitConfigReq{} func (m *GetClientInitConfigReq) String() string { return proto.CompactTextString(m) } func (*GetClientInitConfigReq) ProtoMessage() {} func (*GetClientInitConfigReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{44} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{44} } func (m *GetClientInitConfigReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetClientInitConfigReq.Unmarshal(m, b) @@ -2481,7 +2497,7 @@ func (m *GetClientInitConfigResp) Reset() { *m = GetClientInitConfigResp func (m *GetClientInitConfigResp) String() string { return proto.CompactTextString(m) } func (*GetClientInitConfigResp) ProtoMessage() {} func (*GetClientInitConfigResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{45} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{45} } func (m *GetClientInitConfigResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetClientInitConfigResp.Unmarshal(m, b) @@ -2520,7 +2536,7 @@ func (m *SetClientInitConfigReq) Reset() { *m = SetClientInitConfigReq{} func (m *SetClientInitConfigReq) String() string { return proto.CompactTextString(m) } func (*SetClientInitConfigReq) ProtoMessage() {} func (*SetClientInitConfigReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{46} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{46} } func (m *SetClientInitConfigReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetClientInitConfigReq.Unmarshal(m, b) @@ -2565,7 +2581,7 @@ func (m *SetClientInitConfigResp) Reset() { *m = SetClientInitConfigResp func (m *SetClientInitConfigResp) String() string { return proto.CompactTextString(m) } func (*SetClientInitConfigResp) ProtoMessage() {} func (*SetClientInitConfigResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{47} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{47} } func (m *SetClientInitConfigResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetClientInitConfigResp.Unmarshal(m, b) @@ -2607,7 +2623,7 @@ func (m *GetUserFriendsReq) Reset() { *m = GetUserFriendsReq{} } func (m *GetUserFriendsReq) String() string { return proto.CompactTextString(m) } func (*GetUserFriendsReq) ProtoMessage() {} func (*GetUserFriendsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{48} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{48} } func (m *GetUserFriendsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserFriendsReq.Unmarshal(m, b) @@ -2676,7 +2692,7 @@ func (m *GetUserFriendsResp) Reset() { *m = GetUserFriendsResp{} } func (m *GetUserFriendsResp) String() string { return proto.CompactTextString(m) } func (*GetUserFriendsResp) ProtoMessage() {} func (*GetUserFriendsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_admin_cms_886b2bcb88d5841f, []int{49} + return fileDescriptor_admin_cms_b1faf392ea50f1da, []int{49} } func (m *GetUserFriendsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserFriendsResp.Unmarshal(m, b) @@ -3510,142 +3526,143 @@ var _AdminCMS_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_886b2bcb88d5841f) + proto.RegisterFile("admin_cms/admin_cms.proto", fileDescriptor_admin_cms_b1faf392ea50f1da) } -var fileDescriptor_admin_cms_886b2bcb88d5841f = []byte{ - // 2119 bytes of a gzipped FileDescriptorProto +var fileDescriptor_admin_cms_b1faf392ea50f1da = []byte{ + // 2142 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x1a, 0x4d, 0x6f, 0x23, 0x49, - 0x55, 0xed, 0x8f, 0x24, 0x7e, 0x9e, 0x7c, 0x55, 0x3e, 0xc6, 0xe9, 0xd9, 0x1d, 0x92, 0x66, 0x66, + 0x55, 0xed, 0x8f, 0x24, 0x7e, 0x9e, 0x7c, 0x55, 0x3e, 0xc6, 0xe9, 0xd9, 0x1d, 0x9c, 0x66, 0x66, 0x15, 0xd0, 0x92, 0xa0, 0x8c, 0xb8, 0x2c, 0xd2, 0xa0, 0x6c, 0xbc, 0x31, 0x1e, 0x25, 0x59, 0xd3, - 0x9e, 0x59, 0x09, 0x58, 0x36, 0xf4, 0xda, 0x15, 0x6f, 0x2b, 0x71, 0x77, 0x4d, 0x57, 0x3b, 0x3b, - 0x23, 0xc4, 0x75, 0x2e, 0x5c, 0x38, 0x81, 0xc4, 0x11, 0x71, 0xe3, 0xc0, 0x01, 0x89, 0x3b, 0xbf, - 0x83, 0x03, 0x42, 0xfc, 0x0a, 0x6e, 0xa8, 0xaa, 0xfa, 0xa3, 0xaa, 0xba, 0x6d, 0xf7, 0x74, 0x46, - 0x73, 0x73, 0xbd, 0x7a, 0xf5, 0xbe, 0xdf, 0xab, 0x57, 0xaf, 0x0d, 0x3b, 0xce, 0x70, 0xec, 0x7a, - 0x97, 0x83, 0x31, 0x3d, 0x4c, 0x7e, 0x1d, 0x90, 0xc0, 0x0f, 0x7d, 0xd4, 0x48, 0x00, 0xe6, 0xde, - 0xe7, 0x04, 0x7b, 0x97, 0xdd, 0xf3, 0x43, 0x72, 0x3d, 0x3a, 0xe4, 0xbb, 0x87, 0x74, 0x78, 0x7d, - 0xf9, 0x2d, 0x3d, 0xfc, 0x36, 0xc2, 0xb6, 0x9e, 0x02, 0x9c, 0xf8, 0xe3, 0xb1, 0xef, 0xd9, 0x98, - 0x12, 0xd4, 0x82, 0x45, 0x1c, 0x04, 0x27, 0xfe, 0x10, 0xb7, 0x8c, 0x5d, 0x63, 0xbf, 0x6e, 0xc7, - 0x4b, 0xb4, 0x0d, 0x0b, 0x38, 0x08, 0xce, 0xe9, 0xa8, 0x55, 0xd9, 0x35, 0xf6, 0x1b, 0x76, 0xb4, - 0xb2, 0x06, 0xb0, 0x7c, 0xcc, 0xf8, 0x9d, 0xf9, 0x23, 0xd7, 0xb3, 0xf1, 0x4b, 0xb4, 0x0b, 0x4d, - 0x9f, 0xe0, 0xc0, 0x09, 0x5d, 0xdf, 0xeb, 0xb6, 0x39, 0x99, 0x86, 0x2d, 0x83, 0x18, 0x13, 0x2e, - 0x62, 0xb7, 0x1d, 0xd1, 0x8a, 0x97, 0x8c, 0x09, 0xc5, 0x83, 0x00, 0x87, 0xad, 0xaa, 0x60, 0x22, - 0x56, 0xd6, 0xaf, 0x60, 0x45, 0x66, 0x42, 0x09, 0xda, 0x84, 0x7a, 0xe8, 0x5f, 0x63, 0x2f, 0xa2, - 0x2f, 0x16, 0xe8, 0x47, 0x00, 0x83, 0x44, 0x19, 0x4e, 0xbc, 0x79, 0xb4, 0x75, 0x90, 0x1a, 0x28, - 0xd5, 0xd4, 0x96, 0x10, 0x2d, 0x0c, 0x7b, 0xc7, 0xc3, 0xe1, 0x0b, 0x8a, 0x03, 0x1b, 0x8f, 0x5c, - 0x1a, 0xe2, 0xe0, 0x78, 0x38, 0x3c, 0x0d, 0x5c, 0xec, 0x0d, 0xbb, 0xed, 0x33, 0x97, 0x86, 0xc5, - 0xf4, 0x7a, 0x08, 0x30, 0xa1, 0x38, 0x10, 0x47, 0x5a, 0x95, 0xdd, 0xea, 0x7e, 0xc3, 0x96, 0x20, - 0xd6, 0x2f, 0xc1, 0x9a, 0xc7, 0x86, 0x12, 0x4d, 0x07, 0xa3, 0xa8, 0x0e, 0x6f, 0x0c, 0x78, 0x64, - 0xe3, 0xe1, 0x64, 0x80, 0xef, 0xac, 0xc7, 0x07, 0xd0, 0x48, 0x96, 0xdc, 0x88, 0x75, 0x3b, 0x05, - 0x68, 0x5a, 0x56, 0x33, 0x5a, 0x7e, 0x05, 0x8f, 0x0b, 0xc8, 0x51, 0x5e, 0xd1, 0xdf, 0x19, 0xb0, - 0xd7, 0xc1, 0xe1, 0x9d, 0xb5, 0x6c, 0x03, 0x10, 0x67, 0xe4, 0x7a, 0xa9, 0x9a, 0xcd, 0xa3, 0x47, - 0x07, 0x14, 0x07, 0xb7, 0x38, 0xb8, 0x74, 0x88, 0x7b, 0x49, 0x9c, 0xc0, 0x19, 0xd3, 0x03, 0x1b, - 0xbf, 0x9c, 0x60, 0x1a, 0xf6, 0x12, 0x5c, 0x5b, 0x3a, 0x67, 0xfd, 0xd7, 0x00, 0x6b, 0x9e, 0x34, - 0x94, 0xa0, 0x9f, 0xc0, 0x3d, 0x6e, 0x22, 0xef, 0xca, 0xe7, 0x66, 0x33, 0x76, 0xab, 0xfb, 0xcd, - 0xa3, 0x07, 0x39, 0xec, 0x5e, 0x44, 0x68, 0xb6, 0x72, 0x00, 0x7d, 0x96, 0x23, 0xed, 0xe3, 0x5c, - 0x69, 0x29, 0xf1, 0x3d, 0x8a, 0xf3, 0xc5, 0xd5, 0x6c, 0x5e, 0x2d, 0x6a, 0xf3, 0x3f, 0x57, 0x60, - 0xa5, 0x83, 0xc3, 0x93, 0x6f, 0x9c, 0xf0, 0xcc, 0x1f, 0x51, 0x66, 0xe0, 0x16, 0x2c, 0x0e, 0x7c, - 0x2f, 0xc4, 0x5e, 0x18, 0x19, 0x37, 0x5e, 0x8a, 0x24, 0x66, 0xda, 0xc7, 0x95, 0x42, 0xac, 0x18, - 0x3c, 0xc0, 0x83, 0xdb, 0x6e, 0x3b, 0x4e, 0x6e, 0xb1, 0x42, 0x26, 0x2c, 0x31, 0x8c, 0xe7, 0xee, - 0x18, 0xb7, 0x6a, 0x7c, 0x27, 0x59, 0x33, 0x37, 0x52, 0x4c, 0xa9, 0xeb, 0x7b, 0xcf, 0x5f, 0x13, - 0xdc, 0xaa, 0xf3, 0x60, 0x94, 0x41, 0x0c, 0x23, 0x62, 0xcc, 0x31, 0x16, 0x04, 0x86, 0x04, 0xd2, - 0x1c, 0xbd, 0x58, 0xce, 0xd1, 0x7a, 0x40, 0x2d, 0x65, 0x02, 0xca, 0xfa, 0x5b, 0x0d, 0x16, 0x23, - 0x0b, 0x09, 0xb9, 0x19, 0x83, 0x73, 0x3a, 0x4a, 0xc3, 0x4f, 0x02, 0x71, 0xb9, 0x6f, 0x5c, 0xec, - 0x85, 0x02, 0x43, 0x98, 0x4a, 0x06, 0x49, 0x76, 0xac, 0x4e, 0xb1, 0x63, 0x4d, 0xb1, 0x63, 0x0b, - 0x16, 0x47, 0x81, 0x3f, 0x21, 0xdd, 0x36, 0xb7, 0x53, 0xc3, 0x8e, 0x97, 0xc8, 0x82, 0x7b, 0x0c, - 0xe7, 0xc2, 0x1d, 0x5c, 0x7b, 0xce, 0x58, 0x18, 0xa9, 0x61, 0x2b, 0x30, 0xf4, 0x7d, 0x58, 0x63, - 0xf4, 0x71, 0xd0, 0xbb, 0x71, 0xc2, 0x2b, 0x3f, 0x18, 0x77, 0xdb, 0xdc, 0x56, 0x75, 0x3b, 0x03, - 0x47, 0x1f, 0xc1, 0x8a, 0x80, 0x25, 0x14, 0x85, 0x39, 0x34, 0x28, 0x7a, 0x04, 0xcb, 0x02, 0x72, - 0xea, 0x0c, 0xf0, 0x0b, 0xfb, 0xac, 0xd5, 0xe0, 0x68, 0x2a, 0x90, 0x95, 0x1b, 0x2e, 0xe8, 0x05, - 0x23, 0x04, 0x1c, 0x23, 0x05, 0xe8, 0x11, 0xd0, 0xcc, 0x46, 0x40, 0x0b, 0x16, 0xc7, 0x74, 0x74, - 0x1a, 0xf8, 0xe3, 0xd6, 0x3d, 0x71, 0x67, 0x45, 0x4b, 0x3d, 0x36, 0x96, 0xb3, 0xb1, 0x21, 0x45, - 0xf1, 0x4a, 0x36, 0x8a, 0x43, 0x27, 0x9c, 0xd0, 0xd6, 0x2a, 0x3f, 0x16, 0xad, 0x94, 0x68, 0x5d, - 0xdb, 0x35, 0xf6, 0xab, 0x52, 0xb4, 0x3e, 0x04, 0x18, 0x04, 0xd8, 0x09, 0x31, 0xdf, 0x5d, 0xe7, - 0xbb, 0x12, 0x04, 0xad, 0x40, 0x05, 0xbf, 0x6a, 0x21, 0xce, 0xa8, 0x82, 0x5f, 0x59, 0xff, 0x31, - 0x60, 0x55, 0x49, 0x2b, 0x4a, 0xd0, 0x01, 0x2c, 0x0d, 0xa2, 0x75, 0x54, 0x25, 0x90, 0x9c, 0x9f, - 0x62, 0xcb, 0x4e, 0x70, 0xde, 0x55, 0x61, 0x60, 0xa6, 0x8a, 0x48, 0x5e, 0x4c, 0xc6, 0x3c, 0xe2, - 0x98, 0xa9, 0x52, 0x90, 0x56, 0x3a, 0x6a, 0x45, 0x4b, 0xc7, 0x13, 0x58, 0xee, 0x87, 0x4e, 0xe8, - 0xd2, 0xd0, 0x1d, 0xf0, 0xc2, 0x81, 0xa0, 0x76, 0xc5, 0x7c, 0x25, 0x72, 0x82, 0xff, 0x66, 0x86, - 0x09, 0xfd, 0x28, 0x07, 0x2a, 0xa1, 0x6f, 0x85, 0xb0, 0xd6, 0xc1, 0xe1, 0xf1, 0x20, 0x74, 0x6f, - 0xa3, 0x6b, 0xe4, 0x25, 0x7a, 0x0a, 0xcb, 0x54, 0x26, 0x14, 0xdd, 0x18, 0x2d, 0x49, 0x04, 0x85, - 0x91, 0xad, 0xa2, 0xeb, 0x09, 0x5c, 0xc9, 0x26, 0xf0, 0x57, 0xb0, 0x24, 0x98, 0x51, 0xc2, 0xdc, - 0xec, 0xb9, 0x83, 0x6b, 0x1e, 0x93, 0x42, 0xd2, 0x64, 0xcd, 0x42, 0x43, 0xdc, 0x77, 0x71, 0x81, - 0x13, 0x2b, 0xe6, 0xfe, 0x31, 0xa6, 0xd4, 0x19, 0xe1, 0xd4, 0x84, 0x12, 0xc4, 0x9a, 0xc0, 0xba, - 0xa6, 0x15, 0x25, 0xe8, 0x7b, 0x50, 0x67, 0xbf, 0x63, 0x67, 0x6f, 0x48, 0xea, 0xc4, 0x38, 0xb6, - 0xc0, 0x28, 0xdb, 0xdd, 0xc8, 0x6c, 0x3b, 0x2c, 0xaf, 0xde, 0x8f, 0x35, 0xff, 0x64, 0x40, 0x23, - 0x62, 0x47, 0x09, 0x4b, 0xf2, 0x4e, 0x92, 0xe4, 0xc2, 0xa0, 0x29, 0x80, 0xa5, 0x21, 0x5f, 0x74, - 0x87, 0x71, 0x47, 0x18, 0x2d, 0x99, 0x4d, 0xcf, 0x33, 0x36, 0x4d, 0x21, 0x65, 0xa3, 0xf2, 0x35, - 0x20, 0xdd, 0x26, 0x94, 0xa0, 0x8f, 0x61, 0x81, 0x2f, 0x62, 0x67, 0x6c, 0x4a, 0x84, 0x12, 0x2c, - 0x3b, 0xc2, 0x29, 0xeb, 0x8e, 0x27, 0xd0, 0x6c, 0x3b, 0x21, 0x13, 0x9e, 0x5f, 0xec, 0x08, 0x6a, - 0x6c, 0x19, 0xa7, 0x03, 0xfb, 0x8d, 0xd6, 0xa0, 0xca, 0xb4, 0x15, 0xad, 0x17, 0xfb, 0x69, 0xfd, - 0x06, 0xee, 0x77, 0x70, 0x18, 0xe9, 0xad, 0xe6, 0xd3, 0x53, 0x2d, 0xc1, 0xe6, 0x7b, 0xb2, 0xaf, - 0x7b, 0xf2, 0xf3, 0xac, 0x27, 0x25, 0x90, 0xf5, 0xcf, 0x0a, 0xb4, 0xf2, 0xb9, 0x73, 0x9b, 0xad, - 0xf7, 0x02, 0xf7, 0xd6, 0x09, 0xb1, 0xe4, 0x27, 0xf1, 0x76, 0xc8, 0x6e, 0xa0, 0x7d, 0x58, 0xe5, - 0xd6, 0x93, 0x70, 0x85, 0x96, 0x3a, 0x18, 0x9d, 0xc1, 0x56, 0xe6, 0x78, 0xd2, 0x71, 0x36, 0x8f, - 0xb6, 0x25, 0xf5, 0x24, 0x73, 0xda, 0xf9, 0x87, 0xd0, 0x4f, 0x61, 0x43, 0x63, 0xc0, 0x69, 0xd5, - 0x66, 0xd2, 0xca, 0x3b, 0xa2, 0x79, 0xbd, 0x5e, 0x3c, 0xe0, 0xb6, 0x3a, 0x38, 0xe4, 0x04, 0xdf, - 0xb7, 0xfb, 0xfe, 0x5e, 0x81, 0xed, 0x3c, 0xde, 0x94, 0xb0, 0x4b, 0xbf, 0xeb, 0xb1, 0x0b, 0x8a, - 0x8a, 0x2c, 0x48, 0x7d, 0x97, 0x81, 0xb3, 0xcb, 0xfc, 0xb9, 0x1f, 0x3a, 0x37, 0x09, 0xa2, 0x70, - 0x9c, 0x0a, 0x44, 0xcf, 0x60, 0x53, 0x3f, 0x59, 0xc0, 0x6b, 0xb9, 0x67, 0x50, 0x1b, 0xd6, 0x15, - 0xe2, 0x05, 0x5c, 0x96, 0x3d, 0x50, 0xd6, 0x61, 0xaf, 0x60, 0x33, 0xea, 0xeb, 0xdf, 0xb7, 0xbf, - 0xfe, 0x50, 0xe5, 0xb1, 0xa2, 0xb3, 0xa6, 0x84, 0x65, 0x4f, 0x6c, 0x28, 0xb6, 0x9b, 0x7a, 0x4b, - 0x07, 0x33, 0x67, 0xa5, 0xf7, 0x8c, 0xe4, 0x2c, 0x05, 0xc8, 0xfa, 0x42, 0x6e, 0xaf, 0x18, 0x49, - 0x94, 0x57, 0x05, 0xc6, 0x32, 0x47, 0x23, 0x5e, 0x24, 0x73, 0x72, 0x8e, 0x30, 0x77, 0x2a, 0xec, - 0x39, 0x9d, 0xfa, 0x6c, 0x77, 0x66, 0x0e, 0xa0, 0x4f, 0x61, 0x4d, 0x96, 0x8f, 0x13, 0x59, 0x98, - 0x49, 0x24, 0x83, 0xaf, 0x85, 0xc4, 0x62, 0xd1, 0x90, 0x78, 0x09, 0x3b, 0x1d, 0xec, 0x31, 0x47, - 0xe1, 0xae, 0x77, 0xeb, 0x86, 0xdc, 0x61, 0x27, 0xfe, 0x10, 0x17, 0x1e, 0x7b, 0x0c, 0xfc, 0x21, - 0x3e, 0xc3, 0xf1, 0xa3, 0x3a, 0x5e, 0xc6, 0x3b, 0xa9, 0x0b, 0xe2, 0xa5, 0xd5, 0x07, 0x73, 0x1a, - 0xcb, 0xf2, 0x2f, 0xe8, 0xbf, 0x1a, 0x3c, 0xc0, 0x54, 0x82, 0xb4, 0x98, 0x12, 0x08, 0x6a, 0x4c, - 0xb6, 0x28, 0x6e, 0xf9, 0x6f, 0xa9, 0x55, 0xae, 0x2a, 0xad, 0xb2, 0xfa, 0xf0, 0xaa, 0x95, 0x7c, - 0x61, 0xff, 0xc5, 0x80, 0x15, 0x57, 0x11, 0x95, 0xbd, 0x3f, 0x54, 0x48, 0x24, 0xa9, 0x8e, 0xa7, - 0xf6, 0xe3, 0xc2, 0xe8, 0x72, 0x3f, 0x6e, 0xc2, 0xd2, 0x8d, 0x43, 0x43, 0xbe, 0x2b, 0x44, 0x4f, - 0xd6, 0x52, 0x93, 0x57, 0x53, 0x9a, 0xbc, 0x54, 0xd9, 0xba, 0xac, 0xac, 0xf5, 0x2f, 0x83, 0x57, - 0xd9, 0x8c, 0x51, 0x29, 0x41, 0x27, 0xb0, 0xaa, 0x0a, 0x16, 0xf7, 0x17, 0x3b, 0x92, 0xaf, 0x54, - 0x0c, 0x5b, 0x3f, 0xc1, 0xfa, 0xfc, 0x5e, 0xd9, 0x3e, 0xbf, 0x77, 0xe7, 0x01, 0xc0, 0x29, 0xa0, - 0x9f, 0x4d, 0x70, 0xf0, 0xba, 0xdb, 0x8b, 0xa7, 0x1c, 0xc5, 0xc2, 0x65, 0x05, 0x2a, 0xdd, 0x5e, - 0xdc, 0xd8, 0x77, 0x7b, 0xd6, 0x3f, 0x0c, 0xd8, 0xc8, 0x10, 0xa2, 0x24, 0xc2, 0x33, 0x62, 0x3c, - 0x46, 0x39, 0xde, 0x4f, 0xab, 0x97, 0x0c, 0x62, 0x7e, 0xe8, 0x2b, 0x41, 0x27, 0x56, 0xda, 0x78, - 0xaa, 0xa6, 0x8f, 0xa7, 0xca, 0x5e, 0x07, 0x97, 0xb0, 0x7c, 0x3c, 0x1c, 0x76, 0x7b, 0x67, 0xee, - 0xd8, 0x0d, 0x4b, 0xe9, 0xce, 0x5a, 0xe0, 0x1b, 0x76, 0x5a, 0x0a, 0xb7, 0x14, 0x60, 0x75, 0x60, - 0x45, 0x66, 0x50, 0x3e, 0xbb, 0xdb, 0xb0, 0x66, 0xe3, 0xb1, 0x7f, 0x8b, 0xef, 0x22, 0xac, 0xf5, - 0x0c, 0xd6, 0x35, 0x2a, 0xe5, 0x25, 0xfa, 0x02, 0x4c, 0xee, 0x73, 0x3e, 0xda, 0x6a, 0x47, 0x04, - 0xdf, 0x62, 0x5e, 0x3c, 0xe5, 0xbd, 0x65, 0xbd, 0x80, 0x26, 0x27, 0x29, 0x08, 0x4a, 0x68, 0x86, - 0x92, 0xb1, 0xba, 0x1f, 0xd4, 0xaa, 0x50, 0xd5, 0xab, 0x82, 0xf5, 0x7b, 0x03, 0x1e, 0x4c, 0x95, - 0x97, 0x12, 0xf4, 0x09, 0xdc, 0x93, 0xd8, 0xc6, 0xb9, 0xbc, 0xad, 0x3d, 0xdc, 0x62, 0xbb, 0x29, - 0xb8, 0x65, 0xdf, 0x0c, 0x5f, 0xc3, 0x76, 0x34, 0x39, 0xd6, 0xad, 0x37, 0x4d, 0xe9, 0xb9, 0xef, - 0xb3, 0xc8, 0x2c, 0xd5, 0xc4, 0xe3, 0x3d, 0xb8, 0x9f, 0xcb, 0xa3, 0xbc, 0xdf, 0x7f, 0x0d, 0x9b, - 0x22, 0x86, 0x64, 0x7b, 0xbc, 0x53, 0x99, 0x2f, 0x60, 0x2b, 0x87, 0x43, 0x79, 0x89, 0x3f, 0xe1, - 0x35, 0xfc, 0x84, 0x0f, 0xe1, 0xba, 0x9e, 0x1b, 0x9e, 0xf8, 0xde, 0x95, 0x3b, 0x2a, 0x14, 0xa5, - 0xcc, 0x7e, 0xb9, 0x67, 0xcb, 0x4b, 0x33, 0x84, 0xed, 0x7e, 0x49, 0x69, 0x58, 0xab, 0x38, 0x74, - 0xe9, 0xc0, 0xbf, 0xc5, 0x41, 0xcf, 0x19, 0xf1, 0xe1, 0x9b, 0xb0, 0xa7, 0x0e, 0x66, 0x72, 0xf7, - 0xdf, 0xad, 0xdc, 0xff, 0x36, 0xf8, 0xc4, 0x81, 0xf9, 0x44, 0x0c, 0xc2, 0xe9, 0x9d, 0xf2, 0x9c, - 0xb5, 0xa9, 0x57, 0x9c, 0x8e, 0x48, 0xc8, 0xc8, 0xff, 0x0a, 0x8c, 0xb5, 0x04, 0xe9, 0x9a, 0x0f, - 0x19, 0xc4, 0xb5, 0xad, 0x41, 0xb5, 0x9e, 0xa4, 0x5e, 0xb2, 0x27, 0xf9, 0x9f, 0xc1, 0xe7, 0x07, - 0x8a, 0x86, 0x94, 0x68, 0xb3, 0x38, 0xa3, 0xec, 0x2c, 0xee, 0xb3, 0x58, 0x97, 0xe4, 0x73, 0x41, - 0x85, 0x97, 0x98, 0x0f, 0x73, 0x48, 0x9d, 0x26, 0x88, 0xb6, 0x76, 0x88, 0xd5, 0x39, 0x01, 0xb9, - 0x98, 0x8c, 0xe3, 0x5b, 0x52, 0x82, 0x94, 0x1c, 0x9d, 0x1c, 0xfd, 0x71, 0x15, 0x96, 0x38, 0xd2, - 0xc9, 0x79, 0x1f, 0x1d, 0x03, 0xa4, 0x1f, 0xe6, 0x90, 0xfc, 0x08, 0x52, 0x3e, 0x0a, 0x9a, 0x3b, - 0x53, 0x76, 0x28, 0x41, 0xbf, 0x85, 0x87, 0xb3, 0xbf, 0x8a, 0xa1, 0x8f, 0x95, 0xc3, 0x73, 0xbe, - 0xd3, 0x99, 0x3f, 0x78, 0x0b, 0x6c, 0x4a, 0xd0, 0x1b, 0x03, 0xf6, 0xe6, 0x7e, 0xaf, 0x42, 0x87, - 0x12, 0xd1, 0x22, 0x5f, 0xd9, 0xcc, 0x1f, 0xbe, 0xdd, 0x01, 0x61, 0x87, 0xd9, 0x1f, 0x92, 0x14, - 0x3b, 0xcc, 0xfd, 0x02, 0xa6, 0xd8, 0xa1, 0xc0, 0x17, 0xaa, 0x36, 0x34, 0xa5, 0x51, 0x34, 0xda, - 0x51, 0x4f, 0x4b, 0x5f, 0x7e, 0x4c, 0x73, 0xda, 0x16, 0x25, 0xe8, 0x19, 0x2c, 0x2b, 0x23, 0x4e, - 0xf4, 0x40, 0x45, 0x56, 0x46, 0xba, 0xe6, 0x07, 0xd3, 0x37, 0x29, 0x41, 0xe7, 0xfc, 0x9b, 0x93, - 0x34, 0xa3, 0x43, 0xb9, 0xf8, 0xf1, 0x48, 0xd3, 0xfc, 0x70, 0xc6, 0x2e, 0x25, 0xe8, 0x92, 0x3f, - 0xe8, 0x33, 0x43, 0x2c, 0x64, 0xa9, 0xc7, 0xf2, 0x66, 0x6c, 0xe6, 0x77, 0xe7, 0xe2, 0x50, 0x82, - 0x7e, 0xce, 0x6b, 0x82, 0x36, 0x66, 0x41, 0xbb, 0xea, 0xd1, 0xec, 0x04, 0xc8, 0xdc, 0x9b, 0x83, - 0x41, 0x09, 0xfa, 0x22, 0x29, 0xa8, 0x12, 0xe5, 0xef, 0x64, 0x1d, 0xac, 0x12, 0xde, 0x9d, 0x8d, - 0x40, 0x09, 0xc2, 0xec, 0xbe, 0xcb, 0x7b, 0x5e, 0xa2, 0x47, 0xca, 0xd9, 0x29, 0x8f, 0x5e, 0xf3, - 0x71, 0x01, 0xac, 0xc4, 0x32, 0xda, 0xd3, 0x48, 0xb7, 0x4c, 0xf6, 0x39, 0xaa, 0x5b, 0x26, 0xef, - 0x6d, 0xd5, 0x83, 0x55, 0xed, 0x3d, 0x81, 0xe4, 0x38, 0xc8, 0x3e, 0x5a, 0xcc, 0x87, 0xb3, 0xb6, - 0x29, 0x11, 0x25, 0x2d, 0x6e, 0xc4, 0xb5, 0x92, 0x26, 0x3d, 0x00, 0xb4, 0x92, 0xa6, 0x74, 0xee, - 0xcf, 0x60, 0x59, 0x69, 0x9e, 0x95, 0x2c, 0xd0, 0x9b, 0x73, 0x25, 0x0b, 0xb2, 0x3d, 0xf7, 0x37, - 0x70, 0x7f, 0x4a, 0x33, 0x8a, 0x1e, 0xeb, 0x9a, 0xe4, 0x36, 0xd8, 0xe6, 0x47, 0x45, 0xd0, 0x28, - 0x41, 0x5f, 0xc2, 0x46, 0x4e, 0x03, 0x88, 0xf6, 0xb2, 0xf5, 0x54, 0xe7, 0x60, 0xcd, 0x43, 0x11, - 0x21, 0x9c, 0x69, 0xd5, 0x94, 0x10, 0xce, 0x6b, 0x15, 0x95, 0x10, 0xce, 0xef, 0xf4, 0xbe, 0x84, - 0x8d, 0x9c, 0xb6, 0x0b, 0x69, 0xa1, 0x93, 0xd3, 0x44, 0x99, 0xd6, 0x3c, 0x14, 0x41, 0xbd, 0x3f, - 0x87, 0x7a, 0x7f, 0x3e, 0xf5, 0x69, 0xfd, 0x95, 0xa8, 0x70, 0x52, 0x17, 0xa1, 0x57, 0x38, 0xb5, - 0x85, 0xd2, 0x2b, 0x9c, 0xd6, 0x7e, 0x7c, 0x7a, 0xff, 0x17, 0x5b, 0x07, 0xe9, 0xbf, 0x81, 0x7e, - 0x9c, 0xfc, 0xfa, 0x7a, 0x81, 0xff, 0xd5, 0xe7, 0xc9, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xec, - 0x87, 0x51, 0x01, 0x35, 0x24, 0x00, 0x00, + 0x9e, 0x59, 0x09, 0x58, 0x6d, 0xe8, 0xb5, 0x2b, 0xde, 0x56, 0xe2, 0xee, 0x9a, 0xae, 0x76, 0x76, + 0x46, 0x88, 0xeb, 0x5c, 0xb8, 0x20, 0x21, 0x81, 0xc4, 0x11, 0x71, 0xe3, 0xc0, 0x01, 0x89, 0x3b, + 0xbf, 0x83, 0x03, 0x42, 0xfc, 0x0a, 0x6e, 0xa8, 0xaa, 0xfa, 0xa3, 0xaa, 0xba, 0x1d, 0xf7, 0x74, + 0x46, 0x73, 0xf3, 0x7b, 0xf5, 0xea, 0xbd, 0x57, 0xef, 0xab, 0x5e, 0xbd, 0x36, 0xec, 0x38, 0xa3, + 0x89, 0xeb, 0x5d, 0x0c, 0x27, 0xf4, 0x20, 0xf9, 0xb5, 0x4f, 0x02, 0x3f, 0xf4, 0x51, 0x23, 0x41, + 0x98, 0xbb, 0x9f, 0x13, 0xec, 0x5d, 0xf4, 0xce, 0x0e, 0xc8, 0xd5, 0xf8, 0x80, 0xaf, 0x1e, 0xd0, + 0xd1, 0xd5, 0xc5, 0xb7, 0xf4, 0xe0, 0xdb, 0x88, 0xda, 0x7a, 0x0a, 0x70, 0xec, 0x4f, 0x26, 0xbe, + 0x67, 0x63, 0x4a, 0x50, 0x0b, 0x16, 0x71, 0x10, 0x1c, 0xfb, 0x23, 0xdc, 0x32, 0xda, 0xc6, 0x5e, + 0xdd, 0x8e, 0x41, 0xb4, 0x0d, 0x0b, 0x38, 0x08, 0xce, 0xe8, 0xb8, 0x55, 0x69, 0x1b, 0x7b, 0x0d, + 0x3b, 0x82, 0xac, 0x21, 0x2c, 0x1f, 0x31, 0x79, 0xa7, 0xfe, 0xd8, 0xf5, 0x6c, 0xfc, 0x12, 0xb5, + 0xa1, 0xe9, 0x13, 0x1c, 0x38, 0xa1, 0xeb, 0x7b, 0xbd, 0x0e, 0x67, 0xd3, 0xb0, 0x65, 0x14, 0x13, + 0xc2, 0x55, 0xec, 0x75, 0x22, 0x5e, 0x31, 0xc8, 0x84, 0x50, 0x3c, 0x0c, 0x70, 0xd8, 0xaa, 0x0a, + 0x21, 0x02, 0xb2, 0x7e, 0x6f, 0xc0, 0x8a, 0x2c, 0x85, 0x12, 0xb4, 0x09, 0xf5, 0xd0, 0xbf, 0xc2, + 0x5e, 0x24, 0x40, 0x00, 0xc8, 0x84, 0xa5, 0x29, 0xc5, 0xc1, 0xb9, 0x33, 0xc1, 0x11, 0xef, 0x04, + 0x66, 0x62, 0x2f, 0x9d, 0x21, 0x7e, 0x61, 0x9f, 0x46, 0xdc, 0x63, 0x10, 0xfd, 0x08, 0x60, 0x98, + 0xd8, 0xa0, 0x55, 0x6b, 0x1b, 0x7b, 0xcd, 0xc3, 0xad, 0xfd, 0xd4, 0xae, 0xa9, 0x81, 0x6c, 0x89, + 0xd0, 0xc2, 0xb0, 0x7b, 0x34, 0x1a, 0xbd, 0xa0, 0x38, 0xb0, 0xf1, 0xd8, 0xa5, 0x21, 0x0e, 0x8e, + 0x46, 0xa3, 0x93, 0xc0, 0xc5, 0xde, 0xa8, 0xd7, 0x39, 0x75, 0x69, 0x58, 0xcc, 0x1c, 0x0f, 0x01, + 0x98, 0x8e, 0x62, 0x4b, 0xab, 0xd2, 0xae, 0xee, 0x35, 0x6c, 0x09, 0x63, 0xfd, 0x12, 0xac, 0x79, + 0x62, 0x28, 0xd1, 0xce, 0x60, 0x14, 0x3d, 0xc3, 0x1b, 0x03, 0x1e, 0xd9, 0x78, 0x34, 0x1d, 0xe2, + 0x3b, 0x9f, 0xe3, 0x03, 0x68, 0x24, 0x20, 0x37, 0x7e, 0xdd, 0x4e, 0x11, 0xda, 0x29, 0xab, 0x99, + 0x53, 0x7e, 0x05, 0x8f, 0x0b, 0xe8, 0x51, 0xfe, 0xa0, 0xbf, 0x35, 0x60, 0xb7, 0x8b, 0xc3, 0x3b, + 0x9f, 0xb2, 0x03, 0x40, 0x9c, 0xb1, 0xeb, 0xa5, 0xc7, 0x6c, 0x1e, 0x3e, 0xda, 0xa7, 0x38, 0xb8, + 0xc1, 0xc1, 0x85, 0x43, 0xdc, 0x0b, 0xe2, 0x04, 0xce, 0x84, 0xee, 0xdb, 0xf8, 0xe5, 0x14, 0xd3, + 0xb0, 0x9f, 0xd0, 0xda, 0xd2, 0x3e, 0xeb, 0xbf, 0x06, 0x58, 0xf3, 0xb4, 0xa1, 0x04, 0xfd, 0x04, + 0xee, 0x71, 0x13, 0x79, 0x97, 0x3e, 0x37, 0x9b, 0xd1, 0xae, 0xee, 0x35, 0x0f, 0x1f, 0xe4, 0x88, + 0x7b, 0x11, 0x91, 0xd9, 0xca, 0x06, 0xf4, 0x59, 0x8e, 0xb6, 0x8f, 0x73, 0xb5, 0xa5, 0xc4, 0xf7, + 0x28, 0xce, 0x57, 0x57, 0xb3, 0x79, 0xb5, 0xa8, 0xcd, 0xff, 0x5c, 0x81, 0x95, 0x2e, 0x0e, 0x8f, + 0xbf, 0x71, 0xc2, 0x53, 0x7f, 0x4c, 0x99, 0x81, 0x5b, 0xb0, 0x38, 0xf4, 0xbd, 0x10, 0x7b, 0x61, + 0x64, 0xdc, 0x18, 0x14, 0xb9, 0xcf, 0x4e, 0x1f, 0x17, 0x18, 0x01, 0x31, 0x7c, 0x80, 0x87, 0x37, + 0xbd, 0x4e, 0x5c, 0x13, 0x04, 0xc4, 0x52, 0x9d, 0x51, 0x3c, 0x77, 0x27, 0x98, 0xa7, 0x6c, 0xc3, + 0x4e, 0x60, 0xe6, 0x46, 0x8a, 0x29, 0x75, 0x7d, 0xef, 0xf9, 0x6b, 0x82, 0x5b, 0x75, 0x1e, 0x8c, + 0x32, 0x8a, 0x51, 0x44, 0x82, 0x39, 0xc5, 0x82, 0xa0, 0x90, 0x50, 0x9a, 0xa3, 0x17, 0xcb, 0x39, + 0x5a, 0x0f, 0xa8, 0xa5, 0x4c, 0x40, 0x59, 0x7f, 0xab, 0xc1, 0x62, 0x64, 0x21, 0xa1, 0x37, 0x13, + 0x70, 0x46, 0xc7, 0x69, 0xf8, 0x49, 0x28, 0xae, 0xf7, 0xb5, 0x8b, 0xbd, 0x50, 0x50, 0x08, 0x53, + 0xc9, 0x28, 0xc9, 0x8e, 0xd5, 0x19, 0x76, 0xac, 0x29, 0x76, 0x6c, 0xc1, 0xe2, 0x38, 0xf0, 0xa7, + 0xa4, 0xd7, 0xe1, 0x76, 0x6a, 0xd8, 0x31, 0x88, 0x2c, 0xb8, 0xc7, 0x68, 0xce, 0xdd, 0xe1, 0x95, + 0xc7, 0x0a, 0xea, 0x02, 0x5f, 0x56, 0x70, 0xe8, 0xfb, 0xb0, 0xc6, 0xf8, 0xe3, 0xa0, 0x7f, 0xed, + 0x84, 0x97, 0x7e, 0x30, 0xe9, 0x75, 0xb8, 0xad, 0xea, 0x76, 0x06, 0x8f, 0x3e, 0x82, 0x15, 0x81, + 0x4b, 0x38, 0x0a, 0x73, 0x68, 0x58, 0xf4, 0x08, 0x96, 0x05, 0xe6, 0x24, 0x2a, 0xd7, 0x0d, 0x4e, + 0xa6, 0x22, 0x59, 0xb9, 0xe1, 0x8a, 0xf2, 0x5a, 0x0f, 0x9c, 0x22, 0x45, 0xe8, 0x11, 0xd0, 0xcc, + 0x46, 0x40, 0x0b, 0x16, 0x27, 0x74, 0x7c, 0x12, 0xf8, 0x93, 0xd6, 0x3d, 0x71, 0xd5, 0x45, 0xa0, + 0x1e, 0x1b, 0xcb, 0xd9, 0xd8, 0x90, 0xa2, 0x78, 0x25, 0x1b, 0xc5, 0xa1, 0x13, 0x4e, 0x69, 0x6b, + 0x95, 0x6f, 0x8b, 0x20, 0x25, 0x5a, 0xd7, 0xda, 0xc6, 0x5e, 0x55, 0x8a, 0xd6, 0x87, 0x00, 0xc3, + 0x00, 0x3b, 0x21, 0xe6, 0xab, 0xeb, 0x7c, 0x55, 0xc2, 0xa0, 0x15, 0xa8, 0xe0, 0x57, 0x2d, 0xc4, + 0x05, 0x55, 0xf0, 0x2b, 0xeb, 0x3f, 0x06, 0xac, 0x2a, 0x69, 0x45, 0x09, 0xda, 0x87, 0xa5, 0x61, + 0x04, 0x47, 0x55, 0x02, 0xc9, 0xf9, 0x29, 0x96, 0xec, 0x84, 0xe6, 0x5d, 0x15, 0x06, 0x66, 0xaa, + 0x88, 0xe5, 0xf9, 0x74, 0xc2, 0x23, 0x8e, 0x99, 0x2a, 0x45, 0x95, 0xbd, 0x5b, 0x9f, 0xc0, 0xf2, + 0x20, 0x74, 0x42, 0x97, 0x86, 0xee, 0x90, 0x17, 0x0e, 0x04, 0xb5, 0x4b, 0xe6, 0x2b, 0x91, 0x13, + 0xfc, 0x37, 0x33, 0x4c, 0xe8, 0x47, 0x39, 0x50, 0x09, 0x7d, 0x2b, 0x84, 0xb5, 0x2e, 0x0e, 0x8f, + 0x86, 0xa1, 0x7b, 0x13, 0x5d, 0x23, 0x2f, 0xd1, 0x53, 0x58, 0xa6, 0x32, 0xa3, 0xe8, 0xc6, 0x68, + 0x49, 0x2a, 0x28, 0x82, 0x6c, 0x95, 0x5c, 0x4f, 0xe0, 0x4a, 0x36, 0x81, 0xbf, 0x82, 0x25, 0x21, + 0x8c, 0x12, 0xe6, 0x66, 0xcf, 0x1d, 0x5e, 0xf1, 0x98, 0x14, 0x9a, 0x26, 0x30, 0x0b, 0x0d, 0x71, + 0xdf, 0xc5, 0x05, 0x4e, 0x40, 0xcc, 0xfd, 0x13, 0x4c, 0xa9, 0x33, 0xc6, 0xa9, 0x09, 0x25, 0x8c, + 0x35, 0x85, 0x75, 0xed, 0x54, 0x94, 0xa0, 0xef, 0x41, 0x9d, 0xfd, 0x8e, 0x9d, 0xbd, 0x21, 0x1d, + 0x27, 0xa6, 0xb1, 0x05, 0x85, 0xe6, 0x81, 0x4a, 0x51, 0x0f, 0xc8, 0x62, 0xbb, 0x2c, 0xaf, 0xde, + 0x8f, 0x35, 0xff, 0x64, 0x40, 0x23, 0x12, 0x47, 0x09, 0x4b, 0xf2, 0x6e, 0x92, 0xe4, 0xc2, 0xa0, + 0x29, 0x82, 0xa5, 0x21, 0x07, 0x7a, 0xa3, 0xb8, 0x91, 0x8c, 0x40, 0x66, 0xd3, 0xb3, 0x8c, 0x4d, + 0x53, 0x4c, 0xd9, 0xa8, 0x7c, 0x0d, 0x48, 0xb7, 0x09, 0x25, 0xe8, 0x63, 0x58, 0xe0, 0x40, 0xec, + 0x8c, 0x4d, 0x89, 0x51, 0x42, 0x65, 0x47, 0x34, 0x65, 0xdd, 0xf1, 0x04, 0x9a, 0x1d, 0x27, 0x64, + 0xca, 0xf3, 0x8b, 0x1d, 0x41, 0x8d, 0x81, 0x71, 0x3a, 0xb0, 0xdf, 0x68, 0x0d, 0xaa, 0xec, 0xb4, + 0xa2, 0xf5, 0x62, 0x3f, 0xad, 0x5f, 0xc3, 0xfd, 0x2e, 0x0e, 0xa3, 0x73, 0xab, 0xf9, 0xf4, 0x54, + 0x4b, 0xb0, 0xf9, 0x9e, 0x1c, 0xe8, 0x9e, 0xfc, 0x3c, 0xeb, 0x49, 0x09, 0x65, 0xfd, 0xb3, 0x02, + 0xad, 0x7c, 0xe9, 0xdc, 0x66, 0xeb, 0xfd, 0xc0, 0xbd, 0x71, 0x42, 0x2c, 0xf9, 0x49, 0x3c, 0x39, + 0xb2, 0x0b, 0x68, 0x0f, 0x56, 0xb9, 0xf5, 0x24, 0x5a, 0x71, 0x4a, 0x1d, 0x8d, 0x4e, 0x61, 0x2b, + 0xb3, 0x3d, 0xe9, 0x38, 0x9b, 0x87, 0xdb, 0xd2, 0xf1, 0x24, 0x73, 0xda, 0xf9, 0x9b, 0xd0, 0x4f, + 0x61, 0x43, 0x13, 0xc0, 0x79, 0xd5, 0x6e, 0xe5, 0x95, 0xb7, 0x45, 0xf3, 0x7a, 0xbd, 0x78, 0xc0, + 0x6d, 0x75, 0x71, 0xc8, 0x19, 0xbe, 0x6f, 0xf7, 0xfd, 0xbd, 0x02, 0xdb, 0x79, 0xb2, 0x29, 0x61, + 0x97, 0x7e, 0xcf, 0x63, 0x17, 0x14, 0x15, 0x59, 0x90, 0xfa, 0x2e, 0x83, 0x67, 0x97, 0xf9, 0x73, + 0x3f, 0x74, 0xae, 0x13, 0x42, 0xe1, 0x38, 0x15, 0x89, 0x9e, 0xc1, 0xa6, 0xbe, 0xb3, 0x80, 0xd7, + 0x72, 0xf7, 0xa0, 0x0e, 0xac, 0x2b, 0xcc, 0x0b, 0xb8, 0x2c, 0xbb, 0xa1, 0xac, 0xc3, 0x5e, 0xc1, + 0x66, 0xd4, 0xd7, 0xbf, 0x6f, 0x7f, 0xfd, 0xa1, 0xca, 0x63, 0x45, 0x17, 0x4d, 0x09, 0xcb, 0x9e, + 0xd8, 0x50, 0x6c, 0x35, 0xf5, 0x96, 0x8e, 0x66, 0xce, 0x4a, 0xef, 0x19, 0xc9, 0x59, 0x0a, 0x92, + 0xf5, 0x85, 0xdc, 0x5e, 0x31, 0x91, 0x28, 0xaf, 0x0a, 0x8e, 0x65, 0x8e, 0xc6, 0xbc, 0x48, 0xe6, + 0xe4, 0x6c, 0x61, 0xee, 0x54, 0xc4, 0x73, 0x3e, 0xf5, 0xdb, 0xdd, 0x99, 0xd9, 0x80, 0x3e, 0x85, + 0x35, 0x59, 0x3f, 0xce, 0x64, 0xe1, 0x56, 0x26, 0x19, 0x7a, 0x2d, 0x24, 0x16, 0x8b, 0x86, 0xc4, + 0x4b, 0xd8, 0xe9, 0x62, 0x8f, 0x39, 0x0a, 0xf7, 0xbc, 0x1b, 0x37, 0xe4, 0x0e, 0x3b, 0xf6, 0x47, + 0xb8, 0xf0, 0xb4, 0x64, 0xe8, 0x8f, 0xf0, 0x29, 0x8e, 0x1f, 0xd5, 0x31, 0x18, 0xaf, 0xa4, 0x2e, + 0x88, 0x41, 0x6b, 0x00, 0xe6, 0x2c, 0x91, 0xe5, 0x5f, 0xd0, 0x7f, 0x35, 0x78, 0x80, 0xa9, 0x0c, + 0x69, 0xb1, 0x43, 0x20, 0xa8, 0x31, 0xdd, 0xa2, 0xb8, 0xe5, 0xbf, 0xa5, 0x56, 0xb9, 0xaa, 0xb4, + 0xca, 0xea, 0xc3, 0xab, 0x56, 0xf2, 0x85, 0xfd, 0x17, 0x03, 0x56, 0x5c, 0x45, 0x55, 0xf6, 0xfe, + 0x50, 0x31, 0x91, 0xa6, 0x3a, 0x9d, 0xda, 0x8f, 0x0b, 0xa3, 0xcb, 0xfd, 0xb8, 0x09, 0x4b, 0xd7, + 0x0e, 0x0d, 0xf9, 0xaa, 0x50, 0x3d, 0x81, 0xa5, 0x26, 0xaf, 0xa6, 0x34, 0x79, 0xe9, 0x61, 0xeb, + 0xf2, 0x61, 0xad, 0x7f, 0x19, 0xbc, 0xca, 0x66, 0x8c, 0x4a, 0x09, 0x3a, 0x86, 0x55, 0x55, 0xb1, + 0xb8, 0xbf, 0xd8, 0x91, 0x7c, 0xa5, 0x52, 0xd8, 0xfa, 0x0e, 0xd6, 0xe7, 0xf7, 0xcb, 0xf6, 0xf9, + 0xfd, 0x3b, 0x0f, 0x00, 0x4e, 0x00, 0xfd, 0x6c, 0x8a, 0x83, 0xd7, 0xbd, 0x7e, 0x3c, 0xe5, 0x28, + 0x16, 0x2e, 0x2b, 0x50, 0xe9, 0xf5, 0xe3, 0xc6, 0xbe, 0xd7, 0xb7, 0xfe, 0x61, 0xc0, 0x46, 0x86, + 0x11, 0x25, 0x11, 0x9d, 0x11, 0xd3, 0x31, 0xce, 0xf1, 0x7a, 0x5a, 0xbd, 0x64, 0x14, 0xf3, 0xc3, + 0x40, 0x09, 0x3a, 0x01, 0x69, 0xe3, 0xa9, 0x9a, 0x3e, 0x9e, 0x2a, 0x7b, 0x1d, 0x5c, 0xc0, 0xf2, + 0xd1, 0x68, 0xd4, 0xeb, 0x9f, 0xba, 0x13, 0x37, 0x2c, 0x75, 0x76, 0xd6, 0x02, 0x5f, 0xb3, 0xdd, + 0x52, 0xb8, 0xa5, 0x08, 0xab, 0x0b, 0x2b, 0xb2, 0x80, 0xf2, 0xd9, 0xdd, 0x81, 0x35, 0x1b, 0x4f, + 0xfc, 0x1b, 0x7c, 0x17, 0x65, 0xad, 0x67, 0xb0, 0xae, 0x71, 0x29, 0xaf, 0xd1, 0x17, 0x60, 0x72, + 0x9f, 0xf3, 0xd1, 0x56, 0x27, 0x62, 0xf8, 0x16, 0x63, 0xe6, 0x19, 0xef, 0x2d, 0xeb, 0x05, 0x34, + 0x39, 0x4b, 0xc1, 0x50, 0x22, 0x33, 0x94, 0x8c, 0xd5, 0xfd, 0xa0, 0x56, 0x85, 0xaa, 0x5e, 0x15, + 0xac, 0xdf, 0x19, 0xf0, 0x60, 0xa6, 0xbe, 0x94, 0xa0, 0x4f, 0xe0, 0x9e, 0x24, 0x36, 0xce, 0xe5, + 0x6d, 0xed, 0xe1, 0x16, 0xdb, 0x4d, 0xa1, 0x2d, 0xfb, 0x66, 0xf8, 0x1a, 0xb6, 0xa3, 0xc9, 0xb1, + 0x6e, 0xbd, 0x59, 0x87, 0x9e, 0xfb, 0x3e, 0x8b, 0xcc, 0x52, 0x4d, 0x3c, 0xde, 0x87, 0xfb, 0xb9, + 0x32, 0xca, 0xfb, 0xfd, 0x57, 0xb0, 0x29, 0x62, 0x48, 0xb6, 0xc7, 0x3b, 0xd5, 0xf9, 0x1c, 0xb6, + 0x72, 0x24, 0x94, 0xd7, 0xf8, 0x13, 0x5e, 0xc3, 0x8f, 0xf9, 0x10, 0xae, 0xe7, 0xb9, 0xe1, 0xb1, + 0xef, 0x5d, 0xba, 0xe3, 0x42, 0x51, 0xca, 0xec, 0x97, 0xbb, 0xb7, 0xbc, 0x36, 0x23, 0xd8, 0x1e, + 0x94, 0xd4, 0x86, 0xb5, 0x8a, 0x23, 0x97, 0x0e, 0xfd, 0x1b, 0x1c, 0xf4, 0x9d, 0x31, 0x1f, 0xbe, + 0x09, 0x7b, 0xea, 0x68, 0xa6, 0xf7, 0xe0, 0xdd, 0xea, 0xfd, 0x6f, 0x83, 0x4f, 0x1c, 0x98, 0x4f, + 0xc4, 0x20, 0x9c, 0xde, 0x29, 0xcf, 0x59, 0x9b, 0x7a, 0xc9, 0xf9, 0x88, 0x84, 0x8c, 0xfc, 0xaf, + 0xe0, 0x58, 0x4b, 0x90, 0xc2, 0x7c, 0xc8, 0x20, 0xae, 0x6d, 0x0d, 0xab, 0xf5, 0x24, 0xf5, 0x92, + 0x3d, 0xc9, 0xff, 0x0c, 0x3e, 0x3f, 0x50, 0x4e, 0x48, 0x89, 0x36, 0x8b, 0x33, 0xca, 0xce, 0xe2, + 0x3e, 0x8b, 0xcf, 0x92, 0x7c, 0x2e, 0xa8, 0xf0, 0x12, 0xf3, 0x61, 0x0e, 0xab, 0x93, 0x84, 0xd0, + 0xd6, 0x36, 0xb1, 0x3a, 0x27, 0x30, 0xe7, 0xd3, 0x49, 0x7c, 0x4b, 0x4a, 0x98, 0x92, 0xa3, 0x93, + 0xc3, 0x3f, 0xae, 0xc2, 0x12, 0x27, 0x3a, 0x3e, 0x1b, 0xa0, 0x23, 0x80, 0xf4, 0x73, 0x1e, 0x92, + 0x1f, 0x41, 0xca, 0xb7, 0x44, 0x73, 0x67, 0xc6, 0x0a, 0x25, 0xe8, 0x37, 0xf0, 0xf0, 0xf6, 0xaf, + 0x62, 0xe8, 0x63, 0x65, 0xf3, 0x9c, 0xef, 0x74, 0xe6, 0x0f, 0xde, 0x82, 0x9a, 0x12, 0xf4, 0xc6, + 0x80, 0xdd, 0xb9, 0xdf, 0xab, 0xd0, 0x81, 0xc4, 0xb4, 0xc8, 0x57, 0x36, 0xf3, 0x87, 0x6f, 0xb7, + 0x41, 0xd8, 0xe1, 0xf6, 0x0f, 0x49, 0x8a, 0x1d, 0xe6, 0x7e, 0x01, 0x53, 0xec, 0x50, 0xe0, 0x0b, + 0x55, 0x07, 0x9a, 0xd2, 0x28, 0x1a, 0xed, 0xa8, 0xbb, 0xa5, 0x2f, 0x3f, 0xa6, 0x39, 0x6b, 0x89, + 0x12, 0xf4, 0x0c, 0x96, 0x95, 0x11, 0x27, 0x7a, 0xa0, 0x12, 0x2b, 0x23, 0x5d, 0xf3, 0x83, 0xd9, + 0x8b, 0x94, 0xa0, 0x33, 0xfe, 0xcd, 0x49, 0x9a, 0xd1, 0xa1, 0x5c, 0xfa, 0x78, 0xa4, 0x69, 0x7e, + 0x78, 0xcb, 0x2a, 0x25, 0xe8, 0x82, 0x3f, 0xe8, 0x33, 0x43, 0x2c, 0x64, 0xa9, 0xdb, 0xf2, 0x66, + 0x6c, 0xe6, 0x77, 0xe7, 0xd2, 0x50, 0x82, 0x7e, 0xce, 0x6b, 0x82, 0x36, 0x66, 0x41, 0x6d, 0x75, + 0x6b, 0x76, 0x02, 0x64, 0xee, 0xce, 0xa1, 0xa0, 0x04, 0x7d, 0x91, 0x14, 0x54, 0x89, 0xf3, 0x77, + 0xb2, 0x0e, 0x56, 0x19, 0xb7, 0x6f, 0x27, 0xa0, 0x04, 0x61, 0x76, 0xdf, 0xe5, 0x3d, 0x2f, 0xd1, + 0x23, 0x65, 0xef, 0x8c, 0x47, 0xaf, 0xf9, 0xb8, 0x00, 0x55, 0x62, 0x19, 0xed, 0x69, 0xa4, 0x5b, + 0x26, 0xfb, 0x1c, 0xd5, 0x2d, 0x93, 0xf7, 0xb6, 0xea, 0xc3, 0xaa, 0xf6, 0x9e, 0x40, 0x72, 0x1c, + 0x64, 0x1f, 0x2d, 0xe6, 0xc3, 0xdb, 0x96, 0x29, 0x11, 0x25, 0x2d, 0x6e, 0xc4, 0xb5, 0x92, 0x26, + 0x3d, 0x00, 0xb4, 0x92, 0xa6, 0x74, 0xee, 0xcf, 0x60, 0x59, 0x69, 0x9e, 0x95, 0x2c, 0xd0, 0x9b, + 0x73, 0x25, 0x0b, 0xb2, 0x3d, 0xf7, 0x37, 0x70, 0x7f, 0x46, 0x33, 0x8a, 0x1e, 0xeb, 0x27, 0xc9, + 0x6d, 0xb0, 0xcd, 0x8f, 0x8a, 0x90, 0x51, 0x82, 0xbe, 0x84, 0x8d, 0x9c, 0x06, 0x10, 0xed, 0x66, + 0xeb, 0xa9, 0x2e, 0xc1, 0x9a, 0x47, 0x22, 0x42, 0x38, 0xd3, 0xaa, 0x29, 0x21, 0x9c, 0xd7, 0x2a, + 0x2a, 0x21, 0x9c, 0xdf, 0xe9, 0x7d, 0x09, 0x1b, 0x39, 0x6d, 0x17, 0xd2, 0x42, 0x27, 0xa7, 0x89, + 0x32, 0xad, 0x79, 0x24, 0x82, 0xfb, 0x60, 0x0e, 0xf7, 0xc1, 0x7c, 0xee, 0xb3, 0xfa, 0x2b, 0x51, + 0xe1, 0xa4, 0x2e, 0x42, 0xaf, 0x70, 0x6a, 0x0b, 0xa5, 0x57, 0x38, 0xad, 0xfd, 0xf8, 0xf4, 0xfe, + 0x2f, 0xb6, 0xf6, 0xd3, 0x3f, 0x11, 0xfd, 0x38, 0xf9, 0xf5, 0xf5, 0x02, 0xff, 0x87, 0xd0, 0x93, + 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x29, 0xb5, 0x57, 0x6c, 0x24, 0x00, 0x00, } diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto index 442369ac4..a59f24ebe 100644 --- a/pkg/proto/admin_cms/admin_cms.proto +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -18,7 +18,9 @@ message AdminLoginReq { message AdminLoginResp { string token = 1; - CommonResp commonResp = 2; + string userName = 2; + string faceURL = 3; + CommonResp commonResp = 4; } message AddUserRegisterAddFriendIDListReq { From 5469bb6508179a97e686e1b3b103206ca6c79d18 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 17:46:55 +0800 Subject: [PATCH 52/56] fix bug --- .../db/mysql_model/im_mysql_model/message_cms.go | 10 +++++----- .../db/mysql_model/im_mysql_model/statistics_model.go | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index a32f1730b..eb37aae80 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -47,14 +47,14 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { if chatLog.Content != "" { db = db.Where(" content like ? ", fmt.Sprintf("%%%s%%", chatLog.Content)) } - if chatLog.SessionType != 0 { + if chatLog.SessionType == 1 { db = db.Where("session_type = ?", chatLog.SessionType) - } - if chatLog.ContentType == 1 { - db = db.Where("content_type = ?", chatLog.ContentType) - } else if chatLog.ContentType == 2 { + } else if chatLog.SessionType == 2 { db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } + if chatLog.ContentType != 0 { + db = db.Where("content_type = ?", chatLog.ContentType) + } if chatLog.SendID != "" { db = db.Where("send_id = ?", chatLog.SendID) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go index 4a8626cf0..bdd06f662 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go @@ -97,6 +97,7 @@ func GetActiveUsers(from, to time.Time, limit int) ([]*activeUser, error) { continue } activeUser.Name = user.Nickname + activeUser.ID = user.UserID } return activeUsers, err } From a508dd2c0fccd31afa08f7f72f1ef51416a3e43b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 17:51:29 +0800 Subject: [PATCH 53/56] fix bug --- pkg/common/db/mysql_model/im_mysql_model/message_cms.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index eb37aae80..615b09d7a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -21,7 +21,7 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, if chatLog.SessionType == 1 { db = db.Where("session_type = ?", chatLog.SessionType) } else if chatLog.SessionType == 2 { - db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) + db = db.Where("session_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } if chatLog.ContentType != 0 { db = db.Where("content_type = ?", chatLog.ContentType) @@ -50,7 +50,7 @@ func GetChatLogCount(chatLog db.ChatLog) (int64, error) { if chatLog.SessionType == 1 { db = db.Where("session_type = ?", chatLog.SessionType) } else if chatLog.SessionType == 2 { - db = db.Where("content_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) + db = db.Where("session_type in (?)", []int{constant.GroupChatType, constant.SuperGroupChatType}) } if chatLog.ContentType != 0 { db = db.Where("content_type = ?", chatLog.ContentType) From 6871c7e665f8a85836071fd6a87a190dc62e6318 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 17:57:12 +0800 Subject: [PATCH 54/56] fix bug --- pkg/cms_api_struct/message_cms.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index 708e70c4f..c537ae228 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -8,7 +8,7 @@ type GetChatLogsReq struct { SessionType int `json:"sessionType"` ContentType int `json:"contentType"` Content string `json:"content"` - SendID string `json:"userID"` + SendID string `json:"sendID"` RecvID string `json:"recvID"` GroupID string `json:"groupID"` SendTime string `json:"sendTime"` From 4682abf4c15fb3ff8fee9414d19be921fe2e04a4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 20:35:32 +0800 Subject: [PATCH 55/56] cms --- internal/rpc/user/user.go | 43 +-- pkg/base_info/manage_api_struct.go | 1 + .../mysql_model/im_mysql_model/user_model.go | 11 + pkg/proto/user/user.pb.go | 257 +++++++++--------- pkg/proto/user/user.proto | 1 + 5 files changed, 169 insertions(+), 144 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 5aa93244a..cf4e959a5 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -524,6 +524,8 @@ func (s *userServer) SyncJoinedGroupMemberNickname(userID string, newNickname, o func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + var usersDB []db.User + var err error resp := &pbUser.GetUsersResp{CommonResp: &pbUser.CommonResp{}, Pagination: &sdkws.ResponsePagination{CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber}} if req.UserID != "" { userDB, err := imdb.GetUserByUserID(req.UserID) @@ -536,14 +538,10 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } - - user := pbUser.CmsUser{User: &sdkws.UserInfo{}} - utils.CopyStructFields(&user.User, userDB) - user.User.CreateTime = uint32(userDB.CreateTime.Unix()) - resp.UserList = append(resp.UserList, &user) + usersDB = append(usersDB, *userDB) resp.TotalNums = 1 } else if req.UserName != "" { - usersDB, err := imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) + usersDB, err = imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber, err.Error()) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode @@ -557,15 +555,19 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp.CommonResp.ErrMsg = err.Error() return resp, nil } - for _, userDB := range usersDB { - var user sdkws.UserInfo - utils.CopyStructFields(&user, userDB) - user.CreateTime = uint32(userDB.CreateTime.Unix()) - user.Birth = uint32(userDB.Birth.Unix()) - resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) + + } else if req.Content != "" { + var count int64 + usersDB, count, err = imdb.GetUsersByNameAndID(req.Content, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsers failed", req.Pagination.ShowNumber, req.Pagination.PageNumber, err.Error()) + resp.CommonResp.ErrCode = constant.ErrDB.ErrCode + resp.CommonResp.ErrMsg = err.Error() + return resp, nil } + resp.TotalNums = int32(count) } else { - usersDB, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) + usersDB, err = imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsers failed", req.Pagination.ShowNumber, req.Pagination.PageNumber, err.Error()) resp.CommonResp.ErrCode = constant.ErrDB.ErrCode @@ -579,14 +581,15 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp.CommonResp.ErrMsg = err.Error() return resp, nil } - for _, userDB := range usersDB { - var user sdkws.UserInfo - utils.CopyStructFields(&user, userDB) - user.CreateTime = uint32(userDB.CreateTime.Unix()) - user.Birth = uint32(userDB.Birth.Unix()) - resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) - } } + for _, userDB := range usersDB { + var user sdkws.UserInfo + utils.CopyStructFields(&user, userDB) + user.CreateTime = uint32(userDB.CreateTime.Unix()) + user.Birth = uint32(userDB.Birth.Unix()) + resp.UserList = append(resp.UserList, &pbUser.CmsUser{User: &user}) + } + var userIDList []string for _, v := range resp.UserList { userIDList = append(userIDList, v.User.UserID) diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index fedab9caa..9837842fb 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -98,6 +98,7 @@ type GetUsersReq struct { OperationID string `json:"operationID" binding:"required"` UserName string `json:"userName"` UserID string `json:"userID"` + Content string `json:"content"` PageNumber int32 `json:"pageNumber" binding:"required"` ShowNumber int32 `json:"showNumber" binding:"required"` } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_model.go index a88f83573..7eb6fcbfe 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_model.go @@ -247,6 +247,17 @@ func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, er return users, err } +func GetUsersByNameAndID(content string, showNumber, pageNumber int32) ([]db.User, int64, error) { + var users []db.User + var count int64 + db := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like ? or user_id = ? ", fmt.Sprintf("%%%s%%", content), content) + if err := db.Count(&count).Error; err != nil { + return nil, 0, err + } + err := db.Limit(int(showNumber)).Offset(int(showNumber * (pageNumber - 1))).Find(&users).Error + return users, count, err +} + func GetUsersCount(userName string) (int32, error) { var count int64 if err := db.DB.MysqlDB.DefaultGormDB().Table("users").Where(" name like ? ", fmt.Sprintf("%%%s%%", userName)).Count(&count).Error; err != nil { diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 331055165..aae00761d 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -37,7 +37,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{0} + return fileDescriptor_user_c4f084a95477a0bd, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{1} + return fileDescriptor_user_c4f084a95477a0bd, []int{1} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -129,7 +129,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{2} + return fileDescriptor_user_c4f084a95477a0bd, []int{2} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -176,7 +176,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{3} + return fileDescriptor_user_c4f084a95477a0bd, []int{3} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -229,7 +229,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{4} + return fileDescriptor_user_c4f084a95477a0bd, []int{4} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -275,7 +275,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{4, 0} + return fileDescriptor_user_c4f084a95477a0bd, []int{4, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *GetUserInfoReq) Reset() { *m = GetUserInfoReq{} } func (m *GetUserInfoReq) String() string { return proto.CompactTextString(m) } func (*GetUserInfoReq) ProtoMessage() {} func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{5} + return fileDescriptor_user_c4f084a95477a0bd, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -375,7 +375,7 @@ func (m *GetUserInfoResp) Reset() { *m = GetUserInfoResp{} } func (m *GetUserInfoResp) String() string { return proto.CompactTextString(m) } func (*GetUserInfoResp) ProtoMessage() {} func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{6} + return fileDescriptor_user_c4f084a95477a0bd, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -422,7 +422,7 @@ func (m *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoReq) ProtoMessage() {} func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{7} + return fileDescriptor_user_c4f084a95477a0bd, []int{7} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -474,7 +474,7 @@ func (m *UpdateUserInfoResp) Reset() { *m = UpdateUserInfoResp{} } func (m *UpdateUserInfoResp) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoResp) ProtoMessage() {} func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{8} + return fileDescriptor_user_c4f084a95477a0bd, []int{8} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -514,7 +514,7 @@ func (m *SetGlobalRecvMessageOptReq) Reset() { *m = SetGlobalRecvMessage func (m *SetGlobalRecvMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptReq) ProtoMessage() {} func (*SetGlobalRecvMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{9} + return fileDescriptor_user_c4f084a95477a0bd, []int{9} } func (m *SetGlobalRecvMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptReq.Unmarshal(m, b) @@ -566,7 +566,7 @@ func (m *SetGlobalRecvMessageOptResp) Reset() { *m = SetGlobalRecvMessag func (m *SetGlobalRecvMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetGlobalRecvMessageOptResp) ProtoMessage() {} func (*SetGlobalRecvMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{10} + return fileDescriptor_user_c4f084a95477a0bd, []int{10} } func (m *SetGlobalRecvMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGlobalRecvMessageOptResp.Unmarshal(m, b) @@ -606,7 +606,7 @@ func (m *SetConversationReq) Reset() { *m = SetConversationReq{} } func (m *SetConversationReq) String() string { return proto.CompactTextString(m) } func (*SetConversationReq) ProtoMessage() {} func (*SetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{11} + return fileDescriptor_user_c4f084a95477a0bd, []int{11} } func (m *SetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationReq.Unmarshal(m, b) @@ -658,7 +658,7 @@ func (m *SetConversationResp) Reset() { *m = SetConversationResp{} } func (m *SetConversationResp) String() string { return proto.CompactTextString(m) } func (*SetConversationResp) ProtoMessage() {} func (*SetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{12} + return fileDescriptor_user_c4f084a95477a0bd, []int{12} } func (m *SetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConversationResp.Unmarshal(m, b) @@ -700,7 +700,7 @@ func (m *SetRecvMsgOptReq) Reset() { *m = SetRecvMsgOptReq{} } func (m *SetRecvMsgOptReq) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptReq) ProtoMessage() {} func (*SetRecvMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{13} + return fileDescriptor_user_c4f084a95477a0bd, []int{13} } func (m *SetRecvMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptReq.Unmarshal(m, b) @@ -766,7 +766,7 @@ func (m *SetRecvMsgOptResp) Reset() { *m = SetRecvMsgOptResp{} } func (m *SetRecvMsgOptResp) String() string { return proto.CompactTextString(m) } func (*SetRecvMsgOptResp) ProtoMessage() {} func (*SetRecvMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{14} + return fileDescriptor_user_c4f084a95477a0bd, []int{14} } func (m *SetRecvMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetRecvMsgOptResp.Unmarshal(m, b) @@ -806,7 +806,7 @@ func (m *GetConversationReq) Reset() { *m = GetConversationReq{} } func (m *GetConversationReq) String() string { return proto.CompactTextString(m) } func (*GetConversationReq) ProtoMessage() {} func (*GetConversationReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{15} + return fileDescriptor_user_c4f084a95477a0bd, []int{15} } func (m *GetConversationReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationReq.Unmarshal(m, b) @@ -859,7 +859,7 @@ func (m *GetConversationResp) Reset() { *m = GetConversationResp{} } func (m *GetConversationResp) String() string { return proto.CompactTextString(m) } func (*GetConversationResp) ProtoMessage() {} func (*GetConversationResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{16} + return fileDescriptor_user_c4f084a95477a0bd, []int{16} } func (m *GetConversationResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationResp.Unmarshal(m, b) @@ -906,7 +906,7 @@ func (m *GetConversationsReq) Reset() { *m = GetConversationsReq{} } func (m *GetConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetConversationsReq) ProtoMessage() {} func (*GetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{17} + return fileDescriptor_user_c4f084a95477a0bd, []int{17} } func (m *GetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsReq.Unmarshal(m, b) @@ -959,7 +959,7 @@ func (m *GetConversationsResp) Reset() { *m = GetConversationsResp{} } func (m *GetConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetConversationsResp) ProtoMessage() {} func (*GetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{18} + return fileDescriptor_user_c4f084a95477a0bd, []int{18} } func (m *GetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetConversationsResp.Unmarshal(m, b) @@ -1005,7 +1005,7 @@ func (m *GetAllConversationsReq) Reset() { *m = GetAllConversationsReq{} func (m *GetAllConversationsReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsReq) ProtoMessage() {} func (*GetAllConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{19} + return fileDescriptor_user_c4f084a95477a0bd, []int{19} } func (m *GetAllConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsReq.Unmarshal(m, b) @@ -1051,7 +1051,7 @@ func (m *GetAllConversationsResp) Reset() { *m = GetAllConversationsResp func (m *GetAllConversationsResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationsResp) ProtoMessage() {} func (*GetAllConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{20} + return fileDescriptor_user_c4f084a95477a0bd, []int{20} } func (m *GetAllConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationsResp.Unmarshal(m, b) @@ -1099,7 +1099,7 @@ func (m *BatchSetConversationsReq) Reset() { *m = BatchSetConversationsR func (m *BatchSetConversationsReq) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsReq) ProtoMessage() {} func (*BatchSetConversationsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{21} + return fileDescriptor_user_c4f084a95477a0bd, []int{21} } func (m *BatchSetConversationsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsReq.Unmarshal(m, b) @@ -1160,7 +1160,7 @@ func (m *BatchSetConversationsResp) Reset() { *m = BatchSetConversations func (m *BatchSetConversationsResp) String() string { return proto.CompactTextString(m) } func (*BatchSetConversationsResp) ProtoMessage() {} func (*BatchSetConversationsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{22} + return fileDescriptor_user_c4f084a95477a0bd, []int{22} } func (m *BatchSetConversationsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BatchSetConversationsResp.Unmarshal(m, b) @@ -1206,6 +1206,7 @@ type GetUsersReq struct { Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=pagination" json:"pagination,omitempty"` UserName string `protobuf:"bytes,3,opt,name=userName" json:"userName,omitempty"` UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"` + Content string `protobuf:"bytes,5,opt,name=content" json:"content,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1215,7 +1216,7 @@ func (m *GetUsersReq) Reset() { *m = GetUsersReq{} } func (m *GetUsersReq) String() string { return proto.CompactTextString(m) } func (*GetUsersReq) ProtoMessage() {} func (*GetUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{23} + return fileDescriptor_user_c4f084a95477a0bd, []int{23} } func (m *GetUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersReq.Unmarshal(m, b) @@ -1263,6 +1264,13 @@ func (m *GetUsersReq) GetUserID() string { return "" } +func (m *GetUsersReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + type CmsUser struct { User *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` IsBlock bool `protobuf:"varint,2,opt,name=isBlock" json:"isBlock,omitempty"` @@ -1275,7 +1283,7 @@ func (m *CmsUser) Reset() { *m = CmsUser{} } func (m *CmsUser) String() string { return proto.CompactTextString(m) } func (*CmsUser) ProtoMessage() {} func (*CmsUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{24} + return fileDescriptor_user_c4f084a95477a0bd, []int{24} } func (m *CmsUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CmsUser.Unmarshal(m, b) @@ -1323,7 +1331,7 @@ func (m *GetUsersResp) Reset() { *m = GetUsersResp{} } func (m *GetUsersResp) String() string { return proto.CompactTextString(m) } func (*GetUsersResp) ProtoMessage() {} func (*GetUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{25} + return fileDescriptor_user_c4f084a95477a0bd, []int{25} } func (m *GetUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersResp.Unmarshal(m, b) @@ -1383,7 +1391,7 @@ func (m *AddUserReq) Reset() { *m = AddUserReq{} } func (m *AddUserReq) String() string { return proto.CompactTextString(m) } func (*AddUserReq) ProtoMessage() {} func (*AddUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{26} + return fileDescriptor_user_c4f084a95477a0bd, []int{26} } func (m *AddUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserReq.Unmarshal(m, b) @@ -1428,7 +1436,7 @@ func (m *AddUserResp) Reset() { *m = AddUserResp{} } func (m *AddUserResp) String() string { return proto.CompactTextString(m) } func (*AddUserResp) ProtoMessage() {} func (*AddUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{27} + return fileDescriptor_user_c4f084a95477a0bd, []int{27} } func (m *AddUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddUserResp.Unmarshal(m, b) @@ -1469,7 +1477,7 @@ func (m *BlockUserReq) Reset() { *m = BlockUserReq{} } func (m *BlockUserReq) String() string { return proto.CompactTextString(m) } func (*BlockUserReq) ProtoMessage() {} func (*BlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{28} + return fileDescriptor_user_c4f084a95477a0bd, []int{28} } func (m *BlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserReq.Unmarshal(m, b) @@ -1528,7 +1536,7 @@ func (m *BlockUserResp) Reset() { *m = BlockUserResp{} } func (m *BlockUserResp) String() string { return proto.CompactTextString(m) } func (*BlockUserResp) ProtoMessage() {} func (*BlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{29} + return fileDescriptor_user_c4f084a95477a0bd, []int{29} } func (m *BlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUserResp.Unmarshal(m, b) @@ -1568,7 +1576,7 @@ func (m *UnBlockUserReq) Reset() { *m = UnBlockUserReq{} } func (m *UnBlockUserReq) String() string { return proto.CompactTextString(m) } func (*UnBlockUserReq) ProtoMessage() {} func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{30} + return fileDescriptor_user_c4f084a95477a0bd, []int{30} } func (m *UnBlockUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserReq.Unmarshal(m, b) @@ -1620,7 +1628,7 @@ func (m *UnBlockUserResp) Reset() { *m = UnBlockUserResp{} } func (m *UnBlockUserResp) String() string { return proto.CompactTextString(m) } func (*UnBlockUserResp) ProtoMessage() {} func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{31} + return fileDescriptor_user_c4f084a95477a0bd, []int{31} } func (m *UnBlockUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnBlockUserResp.Unmarshal(m, b) @@ -1661,7 +1669,7 @@ func (m *GetBlockUsersReq) Reset() { *m = GetBlockUsersReq{} } func (m *GetBlockUsersReq) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersReq) ProtoMessage() {} func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{32} + return fileDescriptor_user_c4f084a95477a0bd, []int{32} } func (m *GetBlockUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersReq.Unmarshal(m, b) @@ -1722,7 +1730,7 @@ func (m *BlockUser) Reset() { *m = BlockUser{} } func (m *BlockUser) String() string { return proto.CompactTextString(m) } func (*BlockUser) ProtoMessage() {} func (*BlockUser) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{33} + return fileDescriptor_user_c4f084a95477a0bd, []int{33} } func (m *BlockUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlockUser.Unmarshal(m, b) @@ -1777,7 +1785,7 @@ func (m *GetBlockUsersResp) Reset() { *m = GetBlockUsersResp{} } func (m *GetBlockUsersResp) String() string { return proto.CompactTextString(m) } func (*GetBlockUsersResp) ProtoMessage() {} func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2773e613441bfdc6, []int{34} + return fileDescriptor_user_c4f084a95477a0bd, []int{34} } func (m *GetBlockUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlockUsersResp.Unmarshal(m, b) @@ -2431,96 +2439,97 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_2773e613441bfdc6) } +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_c4f084a95477a0bd) } -var fileDescriptor_user_2773e613441bfdc6 = []byte{ - // 1397 bytes of a gzipped FileDescriptorProto +var fileDescriptor_user_c4f084a95477a0bd = []byte{ + // 1409 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, 0x17, 0xd7, 0xc4, 0x49, 0x13, 0x3f, 0xc7, 0xb1, 0x3d, 0x6d, 0x13, 0x77, 0xdb, 0x6f, 0xbf, 0xe9, - 0xaa, 0x94, 0x50, 0x21, 0x9b, 0x06, 0x24, 0x24, 0x10, 0x6d, 0x13, 0xa7, 0xb5, 0x22, 0x91, 0xb8, - 0x5a, 0x27, 0x12, 0x42, 0x88, 0x68, 0x63, 0x4f, 0xdc, 0x55, 0xec, 0xdd, 0xc9, 0xce, 0x3a, 0x51, - 0x4f, 0x20, 0x40, 0x42, 0xaa, 0xe0, 0xce, 0x99, 0x1b, 0xff, 0x05, 0x37, 0x24, 0xc4, 0x81, 0x2b, + 0xaa, 0x94, 0x50, 0x21, 0x9b, 0x06, 0x24, 0x24, 0x10, 0x6d, 0x13, 0xa7, 0xb5, 0x22, 0xd1, 0xba, + 0x5a, 0xb7, 0x12, 0x42, 0x88, 0x68, 0xb3, 0x9e, 0xb8, 0xab, 0xd8, 0xbb, 0x93, 0x9d, 0x75, 0xa2, + 0x9e, 0x40, 0x80, 0x84, 0x54, 0xc1, 0x9d, 0x33, 0x7f, 0x09, 0x12, 0x07, 0x24, 0xc4, 0x81, 0x2b, 0x27, 0xfe, 0x15, 0xb4, 0xb3, 0xbf, 0x66, 0x76, 0xd6, 0xb1, 0xb3, 0x54, 0xe2, 0x62, 0x79, 0xde, - 0xcc, 0xbc, 0x79, 0x9f, 0xcf, 0xbe, 0x79, 0x3f, 0x06, 0x2a, 0x63, 0x46, 0xdc, 0xa6, 0xff, 0xd3, - 0xa0, 0xae, 0xe3, 0x39, 0x78, 0xde, 0xff, 0xaf, 0xdd, 0xeb, 0x50, 0x62, 0x1f, 0xed, 0xee, 0x35, - 0xe9, 0xe9, 0xa0, 0xc9, 0x27, 0x9a, 0xac, 0x7f, 0x7a, 0x74, 0xc1, 0x9a, 0x17, 0x2c, 0x58, 0xa8, - 0x3d, 0x52, 0x97, 0xf4, 0x1c, 0xfb, 0x9c, 0xb8, 0xcc, 0xf4, 0x2c, 0xc7, 0x96, 0x06, 0xc1, 0x16, - 0xfd, 0x31, 0x40, 0xcb, 0x19, 0x8d, 0x1c, 0xdb, 0x20, 0x8c, 0xe2, 0x3a, 0x2c, 0x12, 0xd7, 0x6d, - 0x39, 0x7d, 0x52, 0x47, 0xeb, 0x68, 0x63, 0xc1, 0x88, 0x86, 0x78, 0x15, 0xae, 0x11, 0xd7, 0xdd, - 0x63, 0x83, 0xfa, 0xdc, 0x3a, 0xda, 0x28, 0x1a, 0xe1, 0x48, 0xef, 0x40, 0xa5, 0x4d, 0xbc, 0xad, - 0xe1, 0xf0, 0x90, 0x11, 0x77, 0x77, 0xc7, 0x20, 0x67, 0x58, 0x83, 0x25, 0x87, 0x06, 0x43, 0xae, - 0xa5, 0x68, 0xc4, 0x63, 0xbc, 0x0e, 0x25, 0x87, 0x12, 0x97, 0x5b, 0xb0, 0xbb, 0x13, 0xea, 0x12, - 0x45, 0x7a, 0x1f, 0xaa, 0xb2, 0x42, 0x46, 0xf1, 0x7b, 0xa2, 0x91, 0x5c, 0x67, 0x69, 0xb3, 0xda, - 0xe0, 0x0c, 0x25, 0x72, 0x43, 0x04, 0x72, 0x17, 0x20, 0xd8, 0xff, 0xa9, 0xc5, 0xbc, 0xfa, 0xdc, - 0x7a, 0x61, 0xa3, 0x68, 0x08, 0x12, 0xfd, 0x15, 0x54, 0xb6, 0x7a, 0x3d, 0x67, 0x6c, 0x7b, 0xad, - 0x97, 0xa4, 0x77, 0xea, 0x9b, 0xbd, 0x01, 0x15, 0xfe, 0x5f, 0xd8, 0x87, 0xf8, 0xbe, 0xb4, 0xd8, - 0x07, 0xd8, 0x89, 0x00, 0x06, 0x08, 0xe2, 0xb1, 0x0f, 0xb0, 0x23, 0x00, 0x2c, 0x04, 0x00, 0x05, - 0x91, 0xfe, 0x37, 0x82, 0xaa, 0x7c, 0x76, 0x80, 0xb0, 0x37, 0x03, 0xc2, 0x64, 0x0d, 0x6e, 0x03, - 0x18, 0x84, 0x8d, 0x87, 0x5e, 0x8c, 0xb0, 0xb4, 0xf9, 0x76, 0xb0, 0x23, 0xad, 0xbd, 0xd1, 0xb5, - 0xec, 0xc1, 0x90, 0xf8, 0x16, 0x76, 0x3d, 0xd3, 0x1b, 0x33, 0x43, 0xd8, 0xaa, 0xbd, 0x80, 0x6a, - 0x7a, 0xde, 0xff, 0xda, 0x63, 0xf1, 0x03, 0x86, 0x23, 0x7c, 0x1f, 0xca, 0x66, 0xa0, 0x3c, 0x58, - 0x18, 0xc2, 0x97, 0x85, 0xba, 0x0d, 0x2b, 0x6d, 0xe2, 0x71, 0x42, 0xec, 0x13, 0xc7, 0xe7, 0xf6, - 0x2e, 0xc0, 0x38, 0x4d, 0xab, 0x20, 0xf9, 0x97, 0x8c, 0x7e, 0x87, 0xb8, 0x13, 0x26, 0x07, 0xe6, - 0x22, 0xf4, 0x09, 0x2c, 0x47, 0x1a, 0xb8, 0x95, 0x05, 0x4e, 0xe9, 0xed, 0x06, 0x23, 0xee, 0x39, - 0x71, 0x8f, 0x4c, 0x6a, 0x1d, 0x51, 0xd3, 0x35, 0x47, 0xac, 0x11, 0x1f, 0x24, 0x6d, 0xd0, 0x5f, - 0x23, 0xa8, 0x1d, 0xd2, 0xbe, 0xe9, 0x11, 0x11, 0xfa, 0x87, 0xb0, 0x14, 0x0d, 0x43, 0x33, 0x2e, - 0x55, 0x19, 0x2f, 0x9e, 0xc6, 0x89, 0xa3, 0x72, 0x22, 0x5e, 0xa3, 0xe7, 0x80, 0xd3, 0xb6, 0xe4, - 0x61, 0x45, 0xff, 0x06, 0x81, 0xd6, 0x25, 0x5e, 0x7b, 0xe8, 0x1c, 0x9b, 0x43, 0x83, 0xf4, 0xce, - 0xf7, 0x08, 0x63, 0xe6, 0x80, 0x74, 0xa8, 0xe7, 0xa3, 0x9b, 0xe4, 0x28, 0x53, 0xef, 0x39, 0x7e, - 0x08, 0xd5, 0x41, 0xa2, 0x94, 0x0d, 0x3a, 0xd4, 0xe3, 0x38, 0x16, 0x0c, 0x45, 0xae, 0x77, 0xe0, - 0xf6, 0x44, 0x1b, 0x72, 0xa1, 0xfa, 0x19, 0x01, 0xee, 0x12, 0xaf, 0x25, 0xc4, 0x43, 0x1f, 0xcd, - 0x63, 0x58, 0x16, 0x45, 0xa1, 0x2a, 0xad, 0x21, 0xc5, 0x4d, 0x69, 0x93, 0xb4, 0xde, 0xc7, 0x64, - 0x3b, 0x9e, 0x75, 0x62, 0xf5, 0xf8, 0xf8, 0xe0, 0x15, 0x25, 0x1c, 0xfa, 0x82, 0xa1, 0xc8, 0x67, - 0x70, 0xeb, 0x36, 0x5c, 0x57, 0x6c, 0xcc, 0x85, 0xf6, 0x77, 0x04, 0xd5, 0x2e, 0xf1, 0x12, 0x42, - 0x7d, 0xac, 0xfe, 0xf9, 0x17, 0x36, 0x71, 0xa5, 0x40, 0x2d, 0x8a, 0xf0, 0x03, 0x58, 0x11, 0x0f, - 0x8f, 0x3f, 0x63, 0x4a, 0xea, 0x5f, 0x6e, 0xe5, 0x1b, 0x0a, 0x92, 0x4c, 0x56, 0xe6, 0x67, 0x63, - 0x65, 0x41, 0x65, 0xe5, 0x19, 0xd4, 0x52, 0x58, 0x72, 0x71, 0xf2, 0x35, 0x02, 0xdc, 0x56, 0x3d, - 0x40, 0xc5, 0x8c, 0x32, 0x31, 0xa7, 0xd8, 0x9b, 0x53, 0xd9, 0x9b, 0xfe, 0x7d, 0xbf, 0x47, 0x70, - 0xbd, 0xfd, 0x26, 0x3e, 0xb0, 0xe2, 0xb7, 0x73, 0x57, 0xf3, 0x5b, 0xfd, 0x5b, 0xd5, 0x12, 0x36, - 0x9b, 0x8f, 0xf8, 0x49, 0x53, 0x62, 0x86, 0x85, 0xc9, 0x36, 0x2d, 0x9e, 0x81, 0x8f, 0xd7, 0x08, - 0x6e, 0xa8, 0x56, 0xe4, 0x22, 0xe4, 0x29, 0x94, 0x25, 0x35, 0x61, 0x7e, 0xbc, 0x8c, 0x11, 0x79, - 0x83, 0xfe, 0x05, 0xac, 0x06, 0x65, 0x48, 0x0e, 0x52, 0x52, 0x50, 0xe7, 0x54, 0xa8, 0x3f, 0x22, - 0x58, 0xcb, 0x54, 0xff, 0x1f, 0xa1, 0xfd, 0x03, 0x41, 0x7d, 0xdb, 0xf4, 0x7a, 0x2f, 0xbb, 0x19, - 0x5e, 0xa0, 0xa8, 0x47, 0x57, 0x54, 0x3f, 0xc3, 0x6d, 0xc9, 0x8a, 0x11, 0x85, 0xd9, 0x62, 0xc4, - 0xbc, 0x4a, 0xef, 0x57, 0x70, 0x6b, 0x02, 0x9a, 0x5c, 0xfc, 0xd6, 0x61, 0xb1, 0x3b, 0xee, 0xf5, - 0x08, 0x8b, 0x9c, 0x3b, 0x1a, 0xfa, 0xe9, 0xef, 0xb9, 0x69, 0x0d, 0x49, 0x9f, 0x57, 0x0b, 0x45, - 0x23, 0x1c, 0xe9, 0xbf, 0x20, 0x28, 0x85, 0x15, 0x49, 0xe4, 0x33, 0x62, 0x3a, 0x44, 0x6a, 0x3a, - 0xdc, 0x01, 0xa0, 0xe6, 0xc0, 0xb2, 0xc5, 0x0b, 0x7c, 0x3f, 0xa3, 0x50, 0x30, 0xc8, 0xd9, 0x98, - 0x30, 0xef, 0x45, 0xbc, 0xd6, 0x10, 0xf6, 0xf9, 0x35, 0x83, 0x0f, 0x64, 0xdf, 0x1c, 0x91, 0xf0, - 0x86, 0xc5, 0x63, 0x21, 0x55, 0xcf, 0x8b, 0xa9, 0x5a, 0x3f, 0x80, 0xc5, 0xd6, 0x88, 0xf9, 0xa6, - 0xe2, 0x26, 0xf0, 0x56, 0x63, 0x96, 0x3a, 0x85, 0x2f, 0xf4, 0x99, 0xb1, 0xd8, 0xf6, 0xd0, 0xe9, - 0x9d, 0x72, 0x93, 0x97, 0x8c, 0x68, 0xa8, 0xff, 0x89, 0x60, 0x39, 0x61, 0x20, 0x17, 0xed, 0xef, - 0x04, 0x60, 0x84, 0xfa, 0xb6, 0x1c, 0xae, 0x0f, 0xcc, 0x35, 0xe2, 0x69, 0xfc, 0x0c, 0x20, 0x61, - 0x84, 0x23, 0x2f, 0x6d, 0xbe, 0x95, 0xc9, 0x1e, 0xa3, 0x8e, 0xcd, 0x88, 0x48, 0x5f, 0xf2, 0x1f, - 0xdf, 0x81, 0xa2, 0xe7, 0x78, 0xe6, 0x70, 0x7f, 0x3c, 0x62, 0x61, 0x8a, 0x4a, 0x04, 0xfa, 0x00, - 0x60, 0xab, 0xdf, 0xe7, 0x27, 0x07, 0x75, 0xdd, 0xf8, 0x2a, 0x75, 0x5d, 0xb4, 0x78, 0x86, 0x16, - 0xe8, 0x09, 0x94, 0xe2, 0x83, 0xf2, 0x74, 0x3f, 0xfa, 0x0f, 0x08, 0x96, 0xf9, 0x67, 0x88, 0x8c, - 0x9d, 0x54, 0xa6, 0x3d, 0x80, 0x15, 0x62, 0xf7, 0x77, 0x2c, 0x66, 0x1e, 0x0f, 0xc9, 0x81, 0x35, - 0x22, 0x51, 0x8a, 0x97, 0xa5, 0xd3, 0xeb, 0x4d, 0xa9, 0xe9, 0x9b, 0x97, 0x9b, 0x3e, 0x7d, 0x0b, - 0xca, 0x82, 0x35, 0xb9, 0x10, 0x9d, 0xc0, 0xca, 0xa1, 0x3d, 0x13, 0xa4, 0xe9, 0x95, 0xa7, 0x68, - 0x6a, 0x21, 0x65, 0x6a, 0x0b, 0x2a, 0xd2, 0x39, 0xb9, 0x8c, 0xfd, 0x15, 0xf1, 0x1e, 0x36, 0x56, - 0xc3, 0x43, 0x80, 0x7c, 0xc1, 0x51, 0xce, 0x0b, 0x3e, 0x1d, 0x5d, 0xc2, 0x4b, 0x41, 0xe2, 0xe5, - 0x5d, 0xa8, 0x71, 0x57, 0x8e, 0xad, 0xda, 0x1f, 0x8f, 0x42, 0x1f, 0x57, 0x27, 0xf4, 0x9f, 0x10, - 0x14, 0x63, 0x41, 0xfe, 0x1e, 0xe6, 0x21, 0x54, 0xb7, 0xc9, 0xc0, 0xb2, 0x55, 0x0f, 0x53, 0xe4, - 0xbe, 0x2f, 0x3e, 0x93, 0x7d, 0x31, 0x00, 0x90, 0x92, 0xea, 0x7f, 0x21, 0xa8, 0xa5, 0xd8, 0xcd, - 0xf5, 0x44, 0xd0, 0x04, 0x48, 0x74, 0x84, 0x01, 0xa6, 0x12, 0xec, 0x48, 0x1c, 0x40, 0x58, 0xf2, - 0xa6, 0x82, 0x8c, 0x16, 0x90, 0x29, 0xc4, 0x98, 0x78, 0xbc, 0xf9, 0xdb, 0x52, 0x10, 0x81, 0xf1, - 0x47, 0x71, 0xfe, 0xe0, 0x3c, 0xde, 0x08, 0xec, 0x92, 0xbb, 0x6a, 0xed, 0x66, 0x86, 0x94, 0x51, - 0xdc, 0x82, 0x15, 0xb9, 0xf5, 0xc3, 0x6b, 0xc1, 0x42, 0xa5, 0x39, 0xd5, 0xea, 0xd9, 0x13, 0x8c, - 0xe2, 0x2f, 0x61, 0x6d, 0x42, 0xcb, 0x85, 0xd7, 0x83, 0x4d, 0x93, 0xbb, 0x42, 0xed, 0xde, 0x94, - 0x15, 0x8c, 0xe2, 0x4f, 0x78, 0x7a, 0x88, 0x9f, 0x79, 0x70, 0x82, 0x45, 0x7c, 0x4b, 0xd2, 0x56, - 0xb3, 0xc4, 0xc1, 0x76, 0xf1, 0x95, 0x23, 0xda, 0x9e, 0x7a, 0xd3, 0x89, 0xb6, 0x2b, 0xcf, 0x2d, - 0xcf, 0xf9, 0x83, 0x81, 0xd4, 0xbb, 0xd5, 0xe3, 0x93, 0x52, 0x3d, 0x81, 0x76, 0x6b, 0xc2, 0x0c, - 0xa3, 0xd8, 0xe0, 0x75, 0x73, 0xba, 0x8c, 0xc3, 0x77, 0x44, 0xab, 0xd3, 0xf5, 0x94, 0xf6, 0xbf, - 0x4b, 0x66, 0x19, 0xc5, 0xbb, 0x3c, 0x78, 0xc8, 0x0a, 0xb3, 0x4d, 0xe0, 0xda, 0xb4, 0x49, 0x53, - 0x8c, 0xe2, 0xcf, 0xe0, 0x66, 0x66, 0x1d, 0x84, 0xef, 0x86, 0x7e, 0x3e, 0xa1, 0xe4, 0xd3, 0xfe, - 0x7f, 0xe9, 0x7c, 0x40, 0x60, 0x37, 0x9b, 0xc0, 0xee, 0x44, 0x02, 0xb3, 0x9a, 0xd9, 0xa7, 0x50, - 0x96, 0xba, 0x39, 0xbc, 0x1a, 0xaf, 0x95, 0xda, 0x55, 0x6d, 0x2d, 0x53, 0xce, 0x28, 0x7e, 0x04, - 0x4b, 0x51, 0x9d, 0x81, 0x6b, 0xd2, 0x85, 0xe0, 0x48, 0x70, 0x5a, 0xc4, 0x28, 0x6e, 0xc0, 0x62, - 0x98, 0x5f, 0x71, 0x18, 0x22, 0x92, 0xbc, 0xae, 0xd5, 0x52, 0x12, 0x46, 0xf1, 0x07, 0x62, 0x2c, - 0xc4, 0xe9, 0x10, 0x41, 0xce, 0xb4, 0xeb, 0x8a, 0x8c, 0x51, 0xff, 0x0a, 0x0b, 0xa9, 0x24, 0xba, - 0xc2, 0x72, 0x16, 0x8b, 0xae, 0x70, 0x3a, 0xe7, 0x3c, 0x85, 0xb2, 0x14, 0xe2, 0x70, 0x72, 0x0f, - 0xa4, 0xac, 0x12, 0xd1, 0xa2, 0xc4, 0xc3, 0xed, 0xf2, 0xe7, 0xa5, 0x06, 0x7f, 0x43, 0xfe, 0xd8, - 0xff, 0x39, 0xbe, 0xc6, 0x5f, 0x7b, 0xdf, 0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x87, 0x2d, 0x47, - 0x32, 0x5c, 0x16, 0x00, 0x00, + 0xcc, 0xbc, 0x79, 0x9f, 0xcf, 0xbe, 0x79, 0x3f, 0x06, 0x6a, 0x13, 0x46, 0xbc, 0x76, 0xf0, 0xd3, + 0xa2, 0x9e, 0xeb, 0xbb, 0x78, 0x31, 0xf8, 0xaf, 0xdd, 0xea, 0x51, 0xe2, 0x1c, 0xec, 0x3f, 0x69, + 0xd3, 0xe3, 0x61, 0x9b, 0x4f, 0xb4, 0xd9, 0xe0, 0xf8, 0xe0, 0x8c, 0xb5, 0xcf, 0x58, 0xb8, 0x50, + 0xbb, 0xa7, 0x2e, 0xb1, 0x5c, 0xe7, 0x94, 0x78, 0xcc, 0xf4, 0x6d, 0xd7, 0x91, 0x06, 0xe1, 0x16, + 0xfd, 0x3e, 0x40, 0xc7, 0x1d, 0x8f, 0x5d, 0xc7, 0x20, 0x8c, 0xe2, 0x26, 0x2c, 0x13, 0xcf, 0xeb, + 0xb8, 0x03, 0xd2, 0x44, 0x9b, 0x68, 0x6b, 0xc9, 0x88, 0x87, 0x78, 0x1d, 0x2e, 0x11, 0xcf, 0x7b, + 0xc2, 0x86, 0xcd, 0x85, 0x4d, 0xb4, 0x55, 0x36, 0xa2, 0x91, 0xde, 0x83, 0x5a, 0x97, 0xf8, 0x3b, + 0xa3, 0xd1, 0x0b, 0x46, 0xbc, 0xfd, 0x3d, 0x83, 0x9c, 0x60, 0x0d, 0x56, 0x5c, 0x1a, 0x0e, 0xb9, + 0x96, 0xb2, 0x91, 0x8c, 0xf1, 0x26, 0x54, 0x5c, 0x4a, 0x3c, 0x6e, 0xc1, 0xfe, 0x5e, 0xa4, 0x4b, + 0x14, 0xe9, 0x03, 0xa8, 0xcb, 0x0a, 0x19, 0xc5, 0xef, 0x89, 0x46, 0x72, 0x9d, 0x95, 0xed, 0x7a, + 0x8b, 0x33, 0x94, 0xca, 0x0d, 0x11, 0xc8, 0x4d, 0x80, 0x70, 0xff, 0xa7, 0x36, 0xf3, 0x9b, 0x0b, + 0x9b, 0xa5, 0xad, 0xb2, 0x21, 0x48, 0xf4, 0x57, 0x50, 0xdb, 0xb1, 0x2c, 0x77, 0xe2, 0xf8, 0x9d, + 0x97, 0xc4, 0x3a, 0x0e, 0xcc, 0xde, 0x82, 0x1a, 0xff, 0x2f, 0xec, 0x43, 0x7c, 0x5f, 0x56, 0x1c, + 0x00, 0xec, 0xc5, 0x00, 0x43, 0x04, 0xc9, 0x38, 0x00, 0xd8, 0x13, 0x00, 0x96, 0x42, 0x80, 0x82, + 0x48, 0xff, 0x1b, 0x41, 0x5d, 0x3e, 0x3b, 0x44, 0x68, 0xcd, 0x81, 0x30, 0x5d, 0x83, 0xbb, 0x00, + 0x06, 0x61, 0x93, 0x91, 0x9f, 0x20, 0xac, 0x6c, 0xbf, 0x1d, 0xee, 0xc8, 0x6a, 0x6f, 0xf5, 0x6d, + 0x67, 0x38, 0x22, 0x81, 0x85, 0x7d, 0xdf, 0xf4, 0x27, 0xcc, 0x10, 0xb6, 0x6a, 0xcf, 0xa0, 0x9e, + 0x9d, 0x0f, 0xbe, 0xf6, 0x44, 0xfc, 0x80, 0xd1, 0x08, 0xdf, 0x86, 0xaa, 0x19, 0x2a, 0x0f, 0x17, + 0x46, 0xf0, 0x65, 0xa1, 0xee, 0xc0, 0x5a, 0x97, 0xf8, 0x9c, 0x10, 0xe7, 0xc8, 0x0d, 0xb8, 0xbd, + 0x09, 0x30, 0xc9, 0xd2, 0x2a, 0x48, 0xfe, 0x25, 0xa3, 0xdf, 0x21, 0xee, 0x84, 0xe9, 0x81, 0x85, + 0x08, 0x7d, 0x00, 0xab, 0xb1, 0x06, 0x6e, 0x65, 0x89, 0x53, 0x7a, 0xbd, 0xc5, 0x88, 0x77, 0x4a, + 0xbc, 0x03, 0x93, 0xda, 0x07, 0xd4, 0xf4, 0xcc, 0x31, 0x6b, 0x25, 0x07, 0x49, 0x1b, 0xf4, 0xd7, + 0x08, 0x1a, 0x2f, 0xe8, 0xc0, 0xf4, 0x89, 0x08, 0xfd, 0x43, 0x58, 0x89, 0x87, 0x91, 0x19, 0xe7, + 0xaa, 0x4c, 0x16, 0xcf, 0xe2, 0xc4, 0x55, 0x39, 0x11, 0xaf, 0xd1, 0x63, 0xc0, 0x59, 0x5b, 0x8a, + 0xb0, 0xa2, 0x7f, 0x83, 0x40, 0xeb, 0x13, 0xbf, 0x3b, 0x72, 0x0f, 0xcd, 0x91, 0x41, 0xac, 0xd3, + 0x27, 0x84, 0x31, 0x73, 0x48, 0x7a, 0xd4, 0x0f, 0xd0, 0x4d, 0x73, 0x94, 0x99, 0xf7, 0x1c, 0xdf, + 0x85, 0xfa, 0x30, 0x55, 0xca, 0x86, 0x3d, 0xea, 0x73, 0x1c, 0x4b, 0x86, 0x22, 0xd7, 0x7b, 0x70, + 0x7d, 0xaa, 0x0d, 0x85, 0x50, 0xfd, 0x8c, 0x00, 0xf7, 0x89, 0xdf, 0x11, 0xe2, 0x61, 0x80, 0xe6, + 0x3e, 0xac, 0x8a, 0xa2, 0x48, 0x95, 0xd6, 0x92, 0xe2, 0xa6, 0xb4, 0x49, 0x5a, 0x1f, 0x60, 0x72, + 0x5c, 0xdf, 0x3e, 0xb2, 0x2d, 0x3e, 0x7e, 0xfe, 0x8a, 0x12, 0x0e, 0x7d, 0xc9, 0x50, 0xe4, 0x73, + 0xb8, 0x75, 0x17, 0x2e, 0x2b, 0x36, 0x16, 0x42, 0xfb, 0x3b, 0x82, 0x7a, 0x9f, 0xf8, 0x29, 0xa1, + 0x01, 0xd6, 0xe0, 0xfc, 0x33, 0x87, 0x78, 0x52, 0xa0, 0x16, 0x45, 0xf8, 0x0e, 0xac, 0x89, 0x87, + 0x27, 0x9f, 0x31, 0x23, 0x0d, 0x2e, 0xb7, 0xf2, 0x0d, 0x05, 0x49, 0x2e, 0x2b, 0x8b, 0xf3, 0xb1, + 0xb2, 0xa4, 0xb2, 0xf2, 0x08, 0x1a, 0x19, 0x2c, 0x85, 0x38, 0xf9, 0x1a, 0x01, 0xee, 0xaa, 0x1e, + 0xa0, 0x62, 0x46, 0xb9, 0x98, 0x33, 0xec, 0x2d, 0xa8, 0xec, 0xcd, 0xfe, 0xbe, 0xdf, 0x23, 0xb8, + 0xdc, 0x7d, 0x13, 0x1f, 0x58, 0xf1, 0xdb, 0x85, 0x8b, 0xf9, 0xad, 0xfe, 0xad, 0x6a, 0x09, 0x9b, + 0xcf, 0x47, 0x82, 0xa4, 0x29, 0x31, 0xc3, 0xa2, 0x64, 0x9b, 0x15, 0xcf, 0xc1, 0xc7, 0x6b, 0x04, + 0x57, 0x54, 0x2b, 0x0a, 0x11, 0xf2, 0x10, 0xaa, 0x92, 0x9a, 0x28, 0x3f, 0x9e, 0xc7, 0x88, 0xbc, + 0x41, 0xff, 0x02, 0xd6, 0xc3, 0x32, 0xa4, 0x00, 0x29, 0x19, 0xa8, 0x0b, 0x2a, 0xd4, 0x1f, 0x11, + 0x6c, 0xe4, 0xaa, 0xff, 0x8f, 0xd0, 0xfe, 0x81, 0xa0, 0xb9, 0x6b, 0xfa, 0xd6, 0xcb, 0x7e, 0x8e, + 0x17, 0x28, 0xea, 0xd1, 0x05, 0xd5, 0xcf, 0x71, 0x5b, 0xf2, 0x62, 0x44, 0x69, 0xbe, 0x18, 0xb1, + 0xa8, 0xd2, 0xfb, 0x15, 0x5c, 0x9b, 0x82, 0xa6, 0x10, 0xbf, 0x4d, 0x58, 0xee, 0x4f, 0x2c, 0x8b, + 0xb0, 0xd8, 0xb9, 0xe3, 0x61, 0x90, 0xfe, 0x1e, 0x9b, 0xf6, 0x88, 0x0c, 0x78, 0xb5, 0x50, 0x36, + 0xa2, 0x91, 0xfe, 0x2b, 0x82, 0x4a, 0x54, 0x91, 0xc4, 0x3e, 0x23, 0xa6, 0x43, 0xa4, 0xa6, 0xc3, + 0x3d, 0x00, 0x6a, 0x0e, 0x6d, 0x47, 0xbc, 0xc0, 0xb7, 0x73, 0x0a, 0x05, 0x83, 0x9c, 0x4c, 0x08, + 0xf3, 0x9f, 0x25, 0x6b, 0x0d, 0x61, 0x5f, 0x50, 0x33, 0x04, 0x40, 0x9e, 0x9a, 0x63, 0x12, 0xdd, + 0xb0, 0x64, 0x2c, 0xa4, 0xea, 0x45, 0x29, 0x55, 0x37, 0x61, 0xd9, 0x72, 0x1d, 0x9f, 0x38, 0x7e, + 0x14, 0x6e, 0xe3, 0xa1, 0xfe, 0x1c, 0x96, 0x3b, 0x63, 0x16, 0x80, 0xc0, 0x6d, 0xe0, 0x4d, 0xc8, + 0x3c, 0x15, 0x0c, 0x5f, 0x18, 0x68, 0xb5, 0xd9, 0xee, 0xc8, 0xb5, 0x8e, 0x39, 0x98, 0x15, 0x23, + 0x1e, 0xea, 0x7f, 0x22, 0x58, 0x4d, 0xb9, 0x29, 0xf4, 0x41, 0xde, 0x09, 0x61, 0x0a, 0x95, 0x6f, + 0x35, 0x5a, 0x1f, 0x9a, 0x6b, 0x24, 0xd3, 0xf8, 0x11, 0x40, 0xca, 0x15, 0xe7, 0xa4, 0xb2, 0xfd, + 0x56, 0x2e, 0xaf, 0x8c, 0xba, 0x0e, 0x23, 0x22, 0xb1, 0xe9, 0x7f, 0x7c, 0x03, 0xca, 0xbe, 0xeb, + 0x9b, 0xa3, 0xa7, 0x93, 0x31, 0x8b, 0x92, 0x57, 0x2a, 0xd0, 0x87, 0x00, 0x3b, 0x83, 0x01, 0x3f, + 0x39, 0xac, 0xf8, 0x26, 0x17, 0xa9, 0xf8, 0xe2, 0xc5, 0x73, 0x34, 0x47, 0x0f, 0xa0, 0x92, 0x1c, + 0x54, 0xa4, 0x2f, 0xd2, 0x7f, 0x40, 0xb0, 0xca, 0x3f, 0x43, 0x6c, 0xec, 0xb4, 0x02, 0xee, 0x0e, + 0xac, 0x11, 0x67, 0xb0, 0x67, 0x33, 0xf3, 0x70, 0x44, 0x9e, 0xdb, 0x63, 0x12, 0x27, 0x7f, 0x59, + 0x3a, 0xbb, 0x12, 0x95, 0xda, 0xc1, 0x45, 0xb9, 0x1d, 0xd4, 0x77, 0xa0, 0x2a, 0x58, 0x53, 0x08, + 0xd1, 0x11, 0xac, 0xbd, 0x70, 0xe6, 0x82, 0x34, 0xbb, 0x26, 0x15, 0x4d, 0x2d, 0x65, 0x4c, 0xed, + 0x40, 0x4d, 0x3a, 0xa7, 0x90, 0xb1, 0xbf, 0x20, 0xde, 0xdd, 0x26, 0x6a, 0x78, 0x70, 0x90, 0xaf, + 0x3e, 0x2a, 0x78, 0xf5, 0x67, 0xa3, 0x4b, 0x79, 0x29, 0x49, 0xbc, 0xbc, 0x0b, 0x0d, 0xee, 0xca, + 0x89, 0x55, 0x4f, 0x27, 0xe3, 0xc8, 0xc7, 0xd5, 0x09, 0xfd, 0x27, 0x04, 0xe5, 0x44, 0x50, 0xbc, + 0xbb, 0xb9, 0x0b, 0xf5, 0x5d, 0x32, 0xb4, 0x1d, 0xd5, 0xc3, 0x14, 0x79, 0xe0, 0x8b, 0x8f, 0x64, + 0x5f, 0x0c, 0x01, 0x64, 0xa4, 0xfa, 0x5f, 0x08, 0x1a, 0x19, 0x76, 0x0b, 0x3d, 0x1e, 0xb4, 0x01, + 0x52, 0x1d, 0x51, 0x80, 0xa9, 0x85, 0x3b, 0x52, 0x07, 0x10, 0x96, 0xbc, 0xa9, 0x20, 0xa3, 0x85, + 0x64, 0x0a, 0x31, 0x26, 0x19, 0x6f, 0xff, 0xb6, 0x12, 0x46, 0x60, 0xfc, 0x51, 0x92, 0x59, 0x38, + 0x8f, 0x57, 0x42, 0xbb, 0xe4, 0x7e, 0x5b, 0xbb, 0x9a, 0x23, 0x65, 0x14, 0x77, 0x60, 0x4d, 0x6e, + 0x0a, 0xf1, 0x46, 0xb8, 0x50, 0x69, 0x5b, 0xb5, 0x66, 0xfe, 0x04, 0xa3, 0xf8, 0x4b, 0xd8, 0x98, + 0xd2, 0x8c, 0xe1, 0xcd, 0x70, 0xd3, 0xf4, 0x7e, 0x51, 0xbb, 0x35, 0x63, 0x05, 0xa3, 0xf8, 0x13, + 0x9e, 0x1e, 0x92, 0x07, 0x20, 0x9c, 0x62, 0x11, 0x5f, 0x99, 0xb4, 0xf5, 0x3c, 0x71, 0xb8, 0x5d, + 0x7c, 0xff, 0x88, 0xb7, 0x67, 0x5e, 0x7b, 0xe2, 0xed, 0xca, 0x43, 0xcc, 0x63, 0xfe, 0x94, 0x20, + 0x75, 0x75, 0xcd, 0xe4, 0xa4, 0x4c, 0xb7, 0xa0, 0x5d, 0x9b, 0x32, 0xc3, 0x28, 0x36, 0x78, 0x45, + 0x9d, 0x2d, 0xf0, 0xf0, 0x0d, 0xd1, 0xea, 0x6c, 0xa5, 0xa5, 0xfd, 0xef, 0x9c, 0x59, 0x46, 0xf1, + 0x3e, 0x0f, 0x1e, 0xb2, 0xc2, 0x7c, 0x13, 0xb8, 0x36, 0x6d, 0xda, 0x14, 0xa3, 0xf8, 0x33, 0xb8, + 0x9a, 0x5b, 0x21, 0xe1, 0x9b, 0x91, 0x9f, 0x4f, 0x29, 0x06, 0xb5, 0xff, 0x9f, 0x3b, 0x1f, 0x12, + 0xd8, 0xcf, 0x27, 0xb0, 0x3f, 0x95, 0xc0, 0xbc, 0x36, 0xf7, 0x21, 0x54, 0xa5, 0x3e, 0x0f, 0xaf, + 0x27, 0x6b, 0xa5, 0x46, 0x56, 0xdb, 0xc8, 0x95, 0x33, 0x8a, 0xef, 0xc1, 0x4a, 0x5c, 0x67, 0xe0, + 0x86, 0x74, 0x21, 0x38, 0x12, 0x9c, 0x15, 0x31, 0x8a, 0x5b, 0xb0, 0x1c, 0xe5, 0x57, 0x1c, 0x85, + 0x88, 0x34, 0xaf, 0x6b, 0x8d, 0x8c, 0x84, 0x51, 0xfc, 0x81, 0x18, 0x0b, 0x71, 0x36, 0x44, 0x90, + 0x13, 0xed, 0xb2, 0x22, 0x63, 0x34, 0xb8, 0xc2, 0x42, 0x2a, 0x89, 0xaf, 0xb0, 0x9c, 0xc5, 0xe2, + 0x2b, 0x9c, 0xcd, 0x39, 0x0f, 0xa1, 0x2a, 0x85, 0x38, 0x9c, 0xde, 0x03, 0x29, 0xab, 0xc4, 0xb4, + 0x28, 0xf1, 0x70, 0xb7, 0xfa, 0x79, 0xa5, 0xc5, 0x5f, 0x97, 0x3f, 0x0e, 0x7e, 0x0e, 0x2f, 0xf1, + 0x77, 0xe0, 0xf7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x65, 0xf2, 0xe5, 0x1f, 0x76, 0x16, 0x00, + 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 65e6eb3c6..39fff9f27 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -139,6 +139,7 @@ message GetUsersReq { server_api_params.RequestPagination pagination = 2; string userName = 3; string userID = 4; + string content = 5; } message CmsUser { From 156e9e2fc7ae0cd6d507aed75ce0c4d8190f5ee8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 6 Sep 2022 20:41:46 +0800 Subject: [PATCH 56/56] cms --- internal/api/user/user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 7b73df7fd..6876bda04 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -481,6 +481,7 @@ func GetUsers(c *gin.Context) { reqPb.OperationID = req.OperationID reqPb.UserID = req.UserID reqPb.UserName = req.UserName + reqPb.Content = req.Content reqPb.Pagination = &open_im_sdk.RequestPagination{ShowNumber: req.ShowNumber, PageNumber: req.PageNumber} etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName, reqPb.OperationID) if etcdConn == nil {