tag and set private tips

pull/218/head
wangchuxiao 4 years ago
parent dab00e7fb2
commit 4390302384

@ -16,6 +16,7 @@ import (
"net" "net"
"strconv" "strconv"
"strings" "strings"
"time"
) )
type officeServer struct { type officeServer struct {
@ -181,8 +182,23 @@ func (s *officeServer) SendMsg2Tag(_ context.Context, req *pbOffice.SendMsg2TagR
for _, userID := range userIDList { for _, userID := range userIDList {
msg.TagSendMessage(req.OperationID, req.SendID, userID, req.Content, req.SenderPlatformID) msg.TagSendMessage(req.OperationID, req.SendID, userID, req.Content, req.SenderPlatformID)
} }
var tagSendLogs db.TagSendLog
if err := db.DB.SaveTagSendLog(req); err != nil { for _, userID := range userIDList {
userName, err := im_mysql_model.GetUserNameByUserID(userID)
if err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserNameByUserID failed", err.Error())
continue
}
tagSendLogs.Users = append(tagSendLogs.Users, db.TagUser{
UserID: userID,
UserName: userName,
})
}
tagSendLogs.SendID = req.SendID
tagSendLogs.Content = req.Content
tagSendLogs.SenderPlatformID = req.SenderPlatformID
tagSendLogs.SendTime = time.Now().Unix()
if err := db.DB.SaveTagSendLog(&tagSendLogs); err != nil {
log.NewError(req.OperationID, utils.GetSelfFuncName(), "SaveTagSendLog failed", err.Error()) log.NewError(req.OperationID, utils.GetSelfFuncName(), "SaveTagSendLog failed", err.Error())
resp.CommonResp.ErrCode = constant.ErrDB.ErrCode resp.CommonResp.ErrCode = constant.ErrDB.ErrCode
resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg resp.CommonResp.ErrMsg = constant.ErrDB.ErrMsg

@ -5,7 +5,6 @@ import (
"Open_IM/pkg/common/constant" "Open_IM/pkg/common/constant"
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
pbMsg "Open_IM/pkg/proto/chat" pbMsg "Open_IM/pkg/proto/chat"
officePb "Open_IM/pkg/proto/office"
open_im_sdk "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
@ -534,27 +533,16 @@ type TagUser struct {
} }
type TagSendLog struct { type TagSendLog struct {
TagList []string `bson:"tag_list"` Users []TagUser `bson:"tag_list"`
GroupList []string `bson:"group_list"`
UserList []string `bson:"user_list"`
SendID string `bson:"send_id"` SendID string `bson:"send_id"`
SenderPlatformID int32 `bson:"sender_platform_id"` SenderPlatformID int32 `bson:"sender_platform_id"`
Content string `bson:"content"` Content string `bson:"content"`
SendTime int64 `bson:"send_time"` SendTime int64 `bson:"send_time"`
} }
func (d *DataBases) SaveTagSendLog(sendReq *officePb.SendMsg2TagReq) error { func (d *DataBases) SaveTagSendLog(tagSendLog *TagSendLog) error {
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog) c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog)
tagSendLog := TagSendLog{
TagList: sendReq.TagList,
GroupList: sendReq.GroupList,
UserList: sendReq.UserList,
SendID: sendReq.SendID,
SenderPlatformID: sendReq.SenderPlatformID,
Content: sendReq.Content,
SendTime: time.Now().Unix(),
}
_, err := c.InsertOne(ctx, tagSendLog) _, err := c.InsertOne(ctx, tagSendLog)
return err return err
} }

@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {} func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) { func (*CommonResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{0} return fileDescriptor_office_5f182260c0e799b9, []int{0}
} }
func (m *CommonResp) XXX_Unmarshal(b []byte) error { func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b) return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@ -82,7 +82,7 @@ func (m *TagUser) Reset() { *m = TagUser{} }
func (m *TagUser) String() string { return proto.CompactTextString(m) } func (m *TagUser) String() string { return proto.CompactTextString(m) }
func (*TagUser) ProtoMessage() {} func (*TagUser) ProtoMessage() {}
func (*TagUser) Descriptor() ([]byte, []int) { func (*TagUser) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{1} return fileDescriptor_office_5f182260c0e799b9, []int{1}
} }
func (m *TagUser) XXX_Unmarshal(b []byte) error { func (m *TagUser) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagUser.Unmarshal(m, b) return xxx_messageInfo_TagUser.Unmarshal(m, b)
@ -129,7 +129,7 @@ func (m *Tag) Reset() { *m = Tag{} }
func (m *Tag) String() string { return proto.CompactTextString(m) } func (m *Tag) String() string { return proto.CompactTextString(m) }
func (*Tag) ProtoMessage() {} func (*Tag) ProtoMessage() {}
func (*Tag) Descriptor() ([]byte, []int) { func (*Tag) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{2} return fileDescriptor_office_5f182260c0e799b9, []int{2}
} }
func (m *Tag) XXX_Unmarshal(b []byte) error { func (m *Tag) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Tag.Unmarshal(m, b) return xxx_messageInfo_Tag.Unmarshal(m, b)
@ -182,7 +182,7 @@ func (m *GetUserTagsReq) Reset() { *m = GetUserTagsReq{} }
func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) } func (m *GetUserTagsReq) String() string { return proto.CompactTextString(m) }
func (*GetUserTagsReq) ProtoMessage() {} func (*GetUserTagsReq) ProtoMessage() {}
func (*GetUserTagsReq) Descriptor() ([]byte, []int) { func (*GetUserTagsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{3} return fileDescriptor_office_5f182260c0e799b9, []int{3}
} }
func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error { func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b) return xxx_messageInfo_GetUserTagsReq.Unmarshal(m, b)
@ -228,7 +228,7 @@ func (m *GetUserTagsResp) Reset() { *m = GetUserTagsResp{} }
func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) } func (m *GetUserTagsResp) String() string { return proto.CompactTextString(m) }
func (*GetUserTagsResp) ProtoMessage() {} func (*GetUserTagsResp) ProtoMessage() {}
func (*GetUserTagsResp) Descriptor() ([]byte, []int) { func (*GetUserTagsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{4} return fileDescriptor_office_5f182260c0e799b9, []int{4}
} }
func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error { func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b) return xxx_messageInfo_GetUserTagsResp.Unmarshal(m, b)
@ -276,7 +276,7 @@ func (m *CreateTagReq) Reset() { *m = CreateTagReq{} }
func (m *CreateTagReq) String() string { return proto.CompactTextString(m) } func (m *CreateTagReq) String() string { return proto.CompactTextString(m) }
func (*CreateTagReq) ProtoMessage() {} func (*CreateTagReq) ProtoMessage() {}
func (*CreateTagReq) Descriptor() ([]byte, []int) { func (*CreateTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{5} return fileDescriptor_office_5f182260c0e799b9, []int{5}
} }
func (m *CreateTagReq) XXX_Unmarshal(b []byte) error { func (m *CreateTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTagReq.Unmarshal(m, b) return xxx_messageInfo_CreateTagReq.Unmarshal(m, b)
@ -335,7 +335,7 @@ func (m *CreateTagResp) Reset() { *m = CreateTagResp{} }
func (m *CreateTagResp) String() string { return proto.CompactTextString(m) } func (m *CreateTagResp) String() string { return proto.CompactTextString(m) }
func (*CreateTagResp) ProtoMessage() {} func (*CreateTagResp) ProtoMessage() {}
func (*CreateTagResp) Descriptor() ([]byte, []int) { func (*CreateTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{6} return fileDescriptor_office_5f182260c0e799b9, []int{6}
} }
func (m *CreateTagResp) XXX_Unmarshal(b []byte) error { func (m *CreateTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateTagResp.Unmarshal(m, b) return xxx_messageInfo_CreateTagResp.Unmarshal(m, b)
@ -375,7 +375,7 @@ func (m *DeleteTagReq) Reset() { *m = DeleteTagReq{} }
func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) } func (m *DeleteTagReq) String() string { return proto.CompactTextString(m) }
func (*DeleteTagReq) ProtoMessage() {} func (*DeleteTagReq) ProtoMessage() {}
func (*DeleteTagReq) Descriptor() ([]byte, []int) { func (*DeleteTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{7} return fileDescriptor_office_5f182260c0e799b9, []int{7}
} }
func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error { func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b) return xxx_messageInfo_DeleteTagReq.Unmarshal(m, b)
@ -427,7 +427,7 @@ func (m *DeleteTagResp) Reset() { *m = DeleteTagResp{} }
func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) } func (m *DeleteTagResp) String() string { return proto.CompactTextString(m) }
func (*DeleteTagResp) ProtoMessage() {} func (*DeleteTagResp) ProtoMessage() {}
func (*DeleteTagResp) Descriptor() ([]byte, []int) { func (*DeleteTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{8} return fileDescriptor_office_5f182260c0e799b9, []int{8}
} }
func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error { func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b) return xxx_messageInfo_DeleteTagResp.Unmarshal(m, b)
@ -470,7 +470,7 @@ func (m *SetTagReq) Reset() { *m = SetTagReq{} }
func (m *SetTagReq) String() string { return proto.CompactTextString(m) } func (m *SetTagReq) String() string { return proto.CompactTextString(m) }
func (*SetTagReq) ProtoMessage() {} func (*SetTagReq) ProtoMessage() {}
func (*SetTagReq) Descriptor() ([]byte, []int) { func (*SetTagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{9} return fileDescriptor_office_5f182260c0e799b9, []int{9}
} }
func (m *SetTagReq) XXX_Unmarshal(b []byte) error { func (m *SetTagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetTagReq.Unmarshal(m, b) return xxx_messageInfo_SetTagReq.Unmarshal(m, b)
@ -543,7 +543,7 @@ func (m *SetTagResp) Reset() { *m = SetTagResp{} }
func (m *SetTagResp) String() string { return proto.CompactTextString(m) } func (m *SetTagResp) String() string { return proto.CompactTextString(m) }
func (*SetTagResp) ProtoMessage() {} func (*SetTagResp) ProtoMessage() {}
func (*SetTagResp) Descriptor() ([]byte, []int) { func (*SetTagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{10} return fileDescriptor_office_5f182260c0e799b9, []int{10}
} }
func (m *SetTagResp) XXX_Unmarshal(b []byte) error { func (m *SetTagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetTagResp.Unmarshal(m, b) return xxx_messageInfo_SetTagResp.Unmarshal(m, b)
@ -587,7 +587,7 @@ func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} }
func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) } func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) }
func (*SendMsg2TagReq) ProtoMessage() {} func (*SendMsg2TagReq) ProtoMessage() {}
func (*SendMsg2TagReq) Descriptor() ([]byte, []int) { func (*SendMsg2TagReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{11} return fileDescriptor_office_5f182260c0e799b9, []int{11}
} }
func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error { func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b) return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b)
@ -667,7 +667,7 @@ func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} }
func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) } func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) }
func (*SendMsg2TagResp) ProtoMessage() {} func (*SendMsg2TagResp) ProtoMessage() {}
func (*SendMsg2TagResp) Descriptor() ([]byte, []int) { func (*SendMsg2TagResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{12} return fileDescriptor_office_5f182260c0e799b9, []int{12}
} }
func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error { func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b) return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b)
@ -707,7 +707,7 @@ func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} }
func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) } func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) }
func (*GetTagSendLogsReq) ProtoMessage() {} func (*GetTagSendLogsReq) ProtoMessage() {}
func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) { func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{13} return fileDescriptor_office_5f182260c0e799b9, []int{13}
} }
func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error { func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b) return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b)
@ -749,11 +749,9 @@ func (m *GetTagSendLogsReq) GetOperationID() string {
} }
type TagSendLog struct { type TagSendLog struct {
UserList []string `protobuf:"bytes,1,rep,name=userList" json:"userList,omitempty"` Users []*TagUser `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
TagList []string `protobuf:"bytes,2,rep,name=tagList" json:"tagList,omitempty"` Content string `protobuf:"bytes,2,opt,name=content" json:"content,omitempty"`
GroupList []string `protobuf:"bytes,3,rep,name=groupList" json:"groupList,omitempty"` SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"`
Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"`
SendTime int64 `protobuf:"varint,5,opt,name=sendTime" json:"sendTime,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -763,7 +761,7 @@ func (m *TagSendLog) Reset() { *m = TagSendLog{} }
func (m *TagSendLog) String() string { return proto.CompactTextString(m) } func (m *TagSendLog) String() string { return proto.CompactTextString(m) }
func (*TagSendLog) ProtoMessage() {} func (*TagSendLog) ProtoMessage() {}
func (*TagSendLog) Descriptor() ([]byte, []int) { func (*TagSendLog) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{14} return fileDescriptor_office_5f182260c0e799b9, []int{14}
} }
func (m *TagSendLog) XXX_Unmarshal(b []byte) error { func (m *TagSendLog) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagSendLog.Unmarshal(m, b) return xxx_messageInfo_TagSendLog.Unmarshal(m, b)
@ -783,23 +781,9 @@ func (m *TagSendLog) XXX_DiscardUnknown() {
var xxx_messageInfo_TagSendLog proto.InternalMessageInfo var xxx_messageInfo_TagSendLog proto.InternalMessageInfo
func (m *TagSendLog) GetUserList() []string { func (m *TagSendLog) GetUsers() []*TagUser {
if m != nil { if m != nil {
return m.UserList return m.Users
}
return nil
}
func (m *TagSendLog) GetTagList() []string {
if m != nil {
return m.TagList
}
return nil
}
func (m *TagSendLog) GetGroupList() []string {
if m != nil {
return m.GroupList
} }
return nil return nil
} }
@ -831,7 +815,7 @@ func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} }
func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) } func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) }
func (*GetTagSendLogsResp) ProtoMessage() {} func (*GetTagSendLogsResp) ProtoMessage() {}
func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) { func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{15} return fileDescriptor_office_5f182260c0e799b9, []int{15}
} }
func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error { func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b) return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b)
@ -885,7 +869,7 @@ func (m *GetUserTagByIDReq) Reset() { *m = GetUserTagByIDReq{} }
func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) } func (m *GetUserTagByIDReq) String() string { return proto.CompactTextString(m) }
func (*GetUserTagByIDReq) ProtoMessage() {} func (*GetUserTagByIDReq) ProtoMessage() {}
func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) { func (*GetUserTagByIDReq) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{16} return fileDescriptor_office_5f182260c0e799b9, []int{16}
} }
func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error { func (m *GetUserTagByIDReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b) return xxx_messageInfo_GetUserTagByIDReq.Unmarshal(m, b)
@ -938,7 +922,7 @@ func (m *GetUserTagByIDResp) Reset() { *m = GetUserTagByIDResp{} }
func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) } func (m *GetUserTagByIDResp) String() string { return proto.CompactTextString(m) }
func (*GetUserTagByIDResp) ProtoMessage() {} func (*GetUserTagByIDResp) ProtoMessage() {}
func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) { func (*GetUserTagByIDResp) Descriptor() ([]byte, []int) {
return fileDescriptor_office_0fe56c4f733d3593, []int{17} return fileDescriptor_office_5f182260c0e799b9, []int{17}
} }
func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error { func (m *GetUserTagByIDResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b) return xxx_messageInfo_GetUserTagByIDResp.Unmarshal(m, b)
@ -1263,60 +1247,59 @@ var _OfficeService_serviceDesc = grpc.ServiceDesc{
Metadata: "office/office.proto", Metadata: "office/office.proto",
} }
func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_0fe56c4f733d3593) } func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_5f182260c0e799b9) }
var fileDescriptor_office_0fe56c4f733d3593 = []byte{ var fileDescriptor_office_5f182260c0e799b9 = []byte{
// 826 bytes of a gzipped FileDescriptorProto // 814 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5f, 0x6b, 0xdb, 0x48, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x6a, 0xdb, 0x4a,
0x10, 0x47, 0xfe, 0x1b, 0x8f, 0x93, 0xf8, 0xb2, 0x97, 0xcb, 0xf9, 0x44, 0xee, 0xce, 0x27, 0xee, 0x10, 0x46, 0x76, 0x6c, 0xc7, 0xe3, 0x24, 0x3e, 0xd9, 0x93, 0x93, 0xe3, 0x23, 0x4e, 0x5b, 0x57,
0x20, 0x5c, 0xc1, 0x06, 0xb7, 0x0f, 0x85, 0xd2, 0x50, 0x62, 0x07, 0xe3, 0x92, 0x34, 0x41, 0x71, 0x34, 0x10, 0x5a, 0xb0, 0xc1, 0xed, 0x45, 0xa1, 0x34, 0x94, 0xd8, 0xc1, 0xb8, 0x24, 0x4d, 0x50,
0x5e, 0xfa, 0x50, 0xb3, 0xb1, 0xc7, 0x42, 0x24, 0x96, 0x94, 0x5d, 0x39, 0xa1, 0xaf, 0xfd, 0x0a, 0x9c, 0x9b, 0x5e, 0xd4, 0x6c, 0xec, 0xb1, 0x10, 0x89, 0x25, 0x65, 0x57, 0x4e, 0xe8, 0x6d, 0x5f,
0x85, 0x7e, 0xa3, 0xf6, 0xbd, 0xdf, 0xa1, 0x1f, 0xa4, 0x68, 0x25, 0xad, 0x76, 0x65, 0x9b, 0x82, 0xa1, 0xcf, 0xd4, 0xde, 0xf7, 0x1d, 0xfa, 0x20, 0x45, 0x2b, 0x69, 0xb5, 0x2b, 0xdb, 0x14, 0x0c,
0xa1, 0x4f, 0xd2, 0xcc, 0xce, 0x8c, 0x7e, 0xf3, 0x9b, 0xd9, 0x19, 0xc1, 0xaf, 0xfe, 0x6c, 0xe6, 0xbd, 0x92, 0xe6, 0x57, 0xdf, 0x7c, 0x3b, 0x3b, 0x23, 0xf8, 0xdb, 0x9f, 0x4e, 0xdd, 0x31, 0xb6,
0x4e, 0xb0, 0x13, 0x3f, 0xda, 0x01, 0xf3, 0x43, 0x9f, 0x54, 0x62, 0xc9, 0xfc, 0xe7, 0x22, 0x40, 0xe3, 0x47, 0x2b, 0x60, 0x7e, 0xe8, 0x93, 0x72, 0x2c, 0x99, 0x4f, 0xcf, 0x03, 0xf4, 0x46, 0x83,
0x6f, 0x3c, 0x3c, 0xef, 0x04, 0xb7, 0x4e, 0x47, 0x1c, 0x75, 0xf8, 0xf4, 0x76, 0xfc, 0xc8, 0x3b, 0xb3, 0x76, 0x70, 0xe3, 0xb4, 0x85, 0xa9, 0xcd, 0x27, 0x37, 0xa3, 0x07, 0xde, 0x7e, 0xe0, 0xb1,
0x8f, 0x3c, 0x36, 0xb5, 0x8e, 0x01, 0x7a, 0xfe, 0x7c, 0xee, 0x7b, 0x36, 0xf2, 0x80, 0x34, 0xa1, 0xab, 0x75, 0x04, 0xd0, 0xf5, 0x67, 0x33, 0xdf, 0xb3, 0x91, 0x07, 0xa4, 0x01, 0x15, 0x64, 0xac,
0x8a, 0x8c, 0xf5, 0xfc, 0x29, 0x36, 0x8d, 0x96, 0x71, 0x54, 0xb6, 0x53, 0x91, 0x1c, 0x40, 0x05, 0xeb, 0x4f, 0xb0, 0x61, 0x34, 0x8d, 0xc3, 0x92, 0x9d, 0x8a, 0x64, 0x1f, 0xca, 0xc8, 0xd8, 0x19,
0x19, 0x3b, 0xe7, 0x4e, 0xb3, 0xd0, 0x32, 0x8e, 0x6a, 0x76, 0x22, 0x59, 0x2f, 0xa1, 0x3a, 0xa2, 0x77, 0x1a, 0x85, 0xa6, 0x71, 0x58, 0xb5, 0x13, 0xc9, 0x7a, 0x0b, 0x95, 0x21, 0x75, 0xae, 0x38,
0xce, 0x35, 0x47, 0x16, 0x99, 0x2c, 0x38, 0xb2, 0x61, 0x5f, 0xf8, 0xd6, 0xec, 0x44, 0x22, 0x26, 0xb2, 0xc8, 0x65, 0xce, 0x91, 0x0d, 0x7a, 0x22, 0xb6, 0x6a, 0x27, 0x12, 0x31, 0x61, 0x33, 0x7a,
0x6c, 0x45, 0x6f, 0x6f, 0xe8, 0x1c, 0x13, 0x67, 0x29, 0x5b, 0x37, 0x50, 0x1c, 0x51, 0x87, 0xec, 0xfb, 0x40, 0x67, 0x98, 0x04, 0x4b, 0xd9, 0xba, 0x86, 0xe2, 0x90, 0x3a, 0x64, 0x0f, 0x4a, 0x21,
0x43, 0x39, 0xa4, 0x8e, 0xf4, 0x8c, 0x85, 0x08, 0x4d, 0x48, 0x1d, 0xc5, 0x2f, 0x15, 0xc9, 0x93, 0x75, 0x64, 0x64, 0x2c, 0x44, 0x68, 0x42, 0xea, 0x28, 0x71, 0xa9, 0x48, 0x5e, 0xc4, 0x29, 0x4f,
0x38, 0xe4, 0x99, 0xcb, 0xc3, 0x66, 0xb1, 0x55, 0x3c, 0xaa, 0x77, 0x1b, 0xed, 0x84, 0x81, 0x04, 0x5d, 0x1e, 0x36, 0x8a, 0xcd, 0xe2, 0x61, 0xad, 0x53, 0x6f, 0x25, 0x0c, 0x24, 0x68, 0x6c, 0xe9,
0x8d, 0x2d, 0x0d, 0xac, 0xd7, 0xb0, 0x3b, 0xc0, 0x30, 0x52, 0x8e, 0xa8, 0xc3, 0x6d, 0xbc, 0x5f, 0x60, 0xbd, 0x87, 0x9d, 0x3e, 0x86, 0x91, 0x72, 0x48, 0x1d, 0x6e, 0xe3, 0xdd, 0x4a, 0xa4, 0x4d,
0x8b, 0xb4, 0x05, 0x75, 0x3f, 0x40, 0x46, 0x43, 0xd7, 0xf7, 0x86, 0xfd, 0xe4, 0xa3, 0xaa, 0xca, 0xa8, 0xf9, 0x01, 0x32, 0x1a, 0xba, 0xbe, 0x37, 0xe8, 0x25, 0x1f, 0x55, 0x55, 0xd6, 0x14, 0xea,
0x9a, 0x41, 0x43, 0x8b, 0xc5, 0x03, 0xd2, 0x05, 0x98, 0x48, 0x06, 0x45, 0xc0, 0x7a, 0x97, 0xa4, 0x5a, 0x2e, 0x1e, 0x90, 0x0e, 0xc0, 0x58, 0x32, 0x28, 0x12, 0xd6, 0x3a, 0x24, 0x45, 0x93, 0x71,
0x68, 0x32, 0x6e, 0x6d, 0xc5, 0x8a, 0xfc, 0x0d, 0xa5, 0x90, 0x3a, 0xbc, 0x59, 0x10, 0xd8, 0xeb, 0x6b, 0x2b, 0x5e, 0xe4, 0x09, 0x6c, 0x84, 0xd4, 0xe1, 0x8d, 0x82, 0xc0, 0x5e, 0x53, 0xb0, 0xdb,
0x0a, 0x76, 0x5b, 0x1c, 0x58, 0x1f, 0x0c, 0xd8, 0xee, 0x31, 0xa4, 0x21, 0x46, 0x3a, 0xbc, 0x57, 0xc2, 0x60, 0x7d, 0x31, 0x60, 0xab, 0xcb, 0x90, 0x86, 0x18, 0xe9, 0xf0, 0x4e, 0xe5, 0xc2, 0xd0,
0xb9, 0x30, 0x74, 0x2e, 0xb2, 0x64, 0x0a, 0x5a, 0x32, 0x7f, 0x01, 0xc4, 0x6f, 0x92, 0xa5, 0x9a, 0xb9, 0xc8, 0x8a, 0x29, 0x68, 0xc5, 0x3c, 0x06, 0x88, 0xdf, 0x24, 0x4b, 0x55, 0x5b, 0xd1, 0xe4,
0xad, 0x68, 0xf2, 0xc9, 0x96, 0x96, 0x93, 0xed, 0xc1, 0x8e, 0x82, 0x61, 0xb3, 0x54, 0xad, 0x77, 0x8b, 0xdd, 0x58, 0x2c, 0xb6, 0x0b, 0xdb, 0x0a, 0x86, 0xf5, 0x4a, 0xb5, 0x3e, 0xc1, 0x56, 0x0f,
0xb0, 0xdd, 0xc7, 0x3b, 0x94, 0x89, 0xac, 0xe3, 0x5e, 0xb6, 0x40, 0x41, 0x6d, 0x81, 0x1c, 0xc8, 0x6f, 0x51, 0x16, 0xb2, 0x8a, 0x7b, 0xd9, 0x02, 0x05, 0xb5, 0x05, 0x72, 0x20, 0x8b, 0x4b, 0x41,
0xe2, 0x4a, 0x90, 0x4a, 0xfc, 0x0d, 0x41, 0x7e, 0x35, 0xa0, 0x76, 0x85, 0xe1, 0x46, 0x10, 0x9b, 0x2a, 0xf9, 0xd7, 0x04, 0xf9, 0xc3, 0x80, 0xea, 0x25, 0x86, 0x6b, 0x41, 0x6c, 0x40, 0xc5, 0xc3,
0x50, 0xf5, 0xf0, 0x51, 0x54, 0x26, 0x86, 0x97, 0x8a, 0xa4, 0x0d, 0xc4, 0xf5, 0x26, 0x0c, 0x29, 0x07, 0x71, 0x32, 0x31, 0xbc, 0x54, 0x24, 0x2d, 0x20, 0xae, 0x37, 0x66, 0x48, 0x39, 0x5e, 0x65,
0xc7, 0xeb, 0xac, 0x12, 0x25, 0x51, 0x89, 0x15, 0x27, 0xe4, 0x7f, 0xf8, 0x85, 0xe1, 0x74, 0x31, 0x27, 0xb1, 0x21, 0x4e, 0x62, 0x89, 0x85, 0x3c, 0x87, 0xbf, 0x18, 0x4e, 0xe6, 0x63, 0xd5, 0xbb,
0x51, 0xad, 0xcb, 0xc2, 0x7a, 0x49, 0x9f, 0x27, 0xa6, 0xb2, 0x4c, 0xcc, 0x2b, 0x80, 0x34, 0xa5, 0x24, 0xbc, 0x17, 0xf4, 0x79, 0x62, 0xca, 0x8b, 0xc4, 0xbc, 0x03, 0x48, 0x4b, 0x5a, 0x93, 0x95,
0x0d, 0x59, 0xf9, 0x66, 0xc0, 0xee, 0x15, 0x7a, 0xd3, 0x73, 0xee, 0x74, 0xb5, 0x36, 0x14, 0xc8, 0x9f, 0x06, 0xec, 0x5c, 0xa2, 0x37, 0x39, 0xe3, 0x4e, 0x47, 0x6b, 0x43, 0x81, 0xcc, 0x10, 0xc8,
0x0c, 0x81, 0x2c, 0x15, 0xa3, 0x5b, 0x7e, 0x9d, 0x5e, 0xc9, 0x82, 0x38, 0x92, 0x32, 0x39, 0x84, 0x52, 0x31, 0xba, 0xe5, 0x57, 0xe9, 0x95, 0x2c, 0x08, 0x93, 0x94, 0xc9, 0xff, 0x50, 0xed, 0x33,
0xda, 0x80, 0xf9, 0x8b, 0x40, 0xe9, 0xc4, 0x4c, 0x11, 0xd1, 0xcd, 0xd1, 0x9b, 0xca, 0x1e, 0x4c, 0x7f, 0x1e, 0x28, 0x9d, 0x98, 0x29, 0x22, 0xba, 0x39, 0x7a, 0x13, 0xd9, 0x83, 0x89, 0x14, 0xd1,
0xa4, 0x88, 0x8e, 0xe8, 0x0d, 0xd9, 0xe5, 0x1d, 0x0d, 0x67, 0x3e, 0x9b, 0x0f, 0xfb, 0xcd, 0xb2, 0x11, 0xbd, 0x21, 0xbb, 0xb8, 0xa5, 0xe1, 0xd4, 0x67, 0xb3, 0x41, 0xaf, 0x51, 0x12, 0x53, 0x69,
0x98, 0x4a, 0x4b, 0xfa, 0x08, 0xd7, 0xc4, 0xf7, 0x42, 0xf4, 0xc2, 0x84, 0x8a, 0x54, 0xcc, 0x13, 0x41, 0x1f, 0xe1, 0x1a, 0xfb, 0x5e, 0x88, 0x5e, 0x98, 0x50, 0x91, 0x8a, 0x79, 0xa2, 0x2a, 0x8b,
0x55, 0x5d, 0x26, 0xea, 0x14, 0x1a, 0x5a, 0x96, 0x1b, 0xb2, 0xf5, 0xd1, 0x80, 0xbd, 0x81, 0x20, 0x44, 0x9d, 0x40, 0x5d, 0xab, 0x72, 0x4d, 0xb6, 0xbe, 0x1a, 0xb0, 0xdb, 0x17, 0x84, 0x47, 0xd9,
0x3c, 0x8a, 0x76, 0xe6, 0xc7, 0xa3, 0xa6, 0x0f, 0x70, 0x49, 0x1d, 0xd7, 0x13, 0x1f, 0x4b, 0x22, 0x4e, 0xfd, 0x78, 0xd4, 0xf4, 0x00, 0x2e, 0xa8, 0xe3, 0x7a, 0xe2, 0x63, 0x49, 0xa6, 0x67, 0x2d,
0xfd, 0xdb, 0xe6, 0xc8, 0x1e, 0x90, 0x8d, 0x69, 0xe0, 0x8e, 0x03, 0xca, 0xe8, 0x9c, 0xb7, 0x6d, 0x8e, 0xec, 0x1e, 0xd9, 0x88, 0x06, 0xee, 0x28, 0xa0, 0x8c, 0xce, 0x78, 0xcb, 0xc6, 0xbb, 0x39,
0xbc, 0x5f, 0x20, 0x0f, 0x33, 0x5b, 0x5b, 0xf1, 0x5b, 0x7b, 0xc7, 0x7f, 0x7c, 0x3d, 0x3e, 0x19, 0xf2, 0x30, 0xf3, 0xb5, 0x95, 0xb8, 0x95, 0x77, 0xfc, 0xf7, 0xd7, 0xc3, 0x05, 0xc8, 0x10, 0x91,
0x00, 0x19, 0xa4, 0x74, 0x16, 0x2b, 0x05, 0x94, 0xb2, 0x5a, 0xdb, 0x82, 0x5e, 0xdb, 0x43, 0xa8, 0x03, 0x28, 0x45, 0x91, 0x5c, 0x1c, 0xde, 0x92, 0xa1, 0x19, 0x5b, 0x55, 0x36, 0x0b, 0x3a, 0x9b,
0x39, 0xf9, 0xfa, 0x49, 0x85, 0xca, 0x7d, 0x49, 0xe7, 0xde, 0x84, 0xad, 0xa8, 0x52, 0x23, 0x77, 0x26, 0x6c, 0x46, 0xdc, 0x0f, 0xdd, 0xa4, 0xdb, 0x8b, 0xb6, 0x94, 0xad, 0x6f, 0x06, 0x90, 0x3c,
0x8e, 0xa2, 0x72, 0x45, 0x5b, 0xca, 0xd6, 0x67, 0x03, 0x48, 0x9e, 0xae, 0x0d, 0xa7, 0xe9, 0xa9, 0x01, 0x6b, 0xce, 0xc7, 0x13, 0x8d, 0xb5, 0x82, 0x88, 0x39, 0x58, 0xca, 0x1a, 0x0f, 0x7c, 0x8f,
0xc6, 0x71, 0x41, 0xf8, 0xfc, 0xb7, 0x92, 0x63, 0x1e, 0xf8, 0x1e, 0xc7, 0x35, 0x24, 0x3f, 0x83, 0xe3, 0x0a, 0xda, 0x5e, 0x41, 0x2d, 0xcc, 0xd0, 0x24, 0x9b, 0x82, 0x28, 0x45, 0x27, 0x26, 0x5b,
0x7a, 0x98, 0xa1, 0x49, 0xf6, 0x0a, 0x51, 0x66, 0x73, 0x72, 0x64, 0xab, 0x66, 0xd6, 0x44, 0x54, 0x75, 0xb3, 0xc6, 0xe2, 0x1c, 0x93, 0x19, 0x7f, 0xfc, 0x79, 0xd0, 0xfb, 0x13, 0x63, 0xcb, 0x11,
0x3d, 0xd9, 0x08, 0x27, 0xef, 0x87, 0xfd, 0x9f, 0x31, 0xe4, 0x1c, 0xc1, 0x95, 0xf6, 0x91, 0x0d, 0x5c, 0x69, 0x1f, 0x59, 0x93, 0xab, 0x47, 0x50, 0x0c, 0xa9, 0x93, 0x90, 0xa4, 0xad, 0x92, 0x48,
0xb9, 0xfa, 0x13, 0x8a, 0x21, 0x75, 0x12, 0x92, 0xb4, 0xc5, 0x13, 0xe9, 0xbb, 0x5f, 0x8a, 0xb0, 0xdf, 0xf9, 0x5e, 0x84, 0xed, 0x73, 0xa1, 0xbb, 0x44, 0x76, 0xef, 0x8e, 0x91, 0x1c, 0x41, 0x4d,
0x73, 0x21, 0x74, 0x57, 0xc8, 0x1e, 0xdc, 0x09, 0x92, 0x63, 0xa8, 0x2b, 0x1b, 0x8f, 0x1c, 0xa4, 0xd9, 0x61, 0x64, 0x3f, 0x0d, 0xd1, 0x97, 0xa4, 0xf9, 0xef, 0x52, 0x3d, 0x0f, 0xc8, 0x6b, 0xa8,
0x2e, 0xfa, 0x4a, 0x35, 0x7f, 0x5f, 0xa9, 0xe7, 0x01, 0x79, 0x0e, 0x35, 0xb9, 0x44, 0xc8, 0xbe, 0xca, 0xb5, 0x40, 0xf6, 0x24, 0x3a, 0x65, 0x5b, 0x99, 0xff, 0x2c, 0xd1, 0xc6, 0x91, 0x72, 0x56,
0x44, 0xa7, 0xec, 0x36, 0xf3, 0xb7, 0x15, 0xda, 0xd8, 0x53, 0x4e, 0xf6, 0xcc, 0x53, 0x5d, 0x26, 0x67, 0x91, 0xea, 0x7a, 0xc8, 0x22, 0xf5, 0xa1, 0xde, 0x86, 0x72, 0x3c, 0xcc, 0xc8, 0x6e, 0xea,
0x99, 0xa7, 0xbe, 0x02, 0x3a, 0x50, 0x89, 0x47, 0x1f, 0xd9, 0x4b, 0x0d, 0xe4, 0x74, 0x37, 0x49, 0x20, 0xe7, 0xb5, 0x49, 0xf2, 0x2a, 0x1e, 0x44, 0x45, 0x2a, 0x97, 0x3a, 0x2b, 0x52, 0x9f, 0x67,
0x5e, 0xc5, 0x83, 0x28, 0x49, 0x65, 0x04, 0x64, 0x49, 0xea, 0xd3, 0x2f, 0x4b, 0x32, 0x3f, 0x2f, 0x59, 0x91, 0xf9, 0x09, 0xd0, 0x17, 0x3f, 0x0d, 0x4a, 0x2f, 0x93, 0xff, 0x14, 0x3e, 0xf4, 0x4b,
0x06, 0xe2, 0x17, 0x43, 0xe9, 0x65, 0xf2, 0x87, 0xc2, 0x87, 0x3e, 0x12, 0x4c, 0x73, 0xdd, 0x91, 0x6e, 0x9a, 0xab, 0x4c, 0x32, 0x91, 0x72, 0xd0, 0x5a, 0x22, 0xbd, 0xcb, 0xb4, 0x44, 0xb9, 0xde,
0x0c, 0xa4, 0x14, 0x5a, 0x0b, 0xa4, 0x77, 0x99, 0x16, 0x28, 0xd7, 0x1b, 0x27, 0x7b, 0x6f, 0x1b, 0x38, 0xde, 0xfd, 0x58, 0x6f, 0x25, 0xbf, 0x79, 0x6f, 0xe2, 0xc7, 0x75, 0x59, 0xfc, 0xc3, 0xbd,
0xed, 0xe4, 0xa7, 0xf0, 0x45, 0xfc, 0xb8, 0xa9, 0x88, 0x3f, 0xbe, 0xa7, 0xdf, 0x03, 0x00, 0x00, 0xfc, 0x15, 0x00, 0x00, 0xff, 0xff, 0x74, 0xd2, 0x97, 0x48, 0x05, 0x0a, 0x00, 0x00,
0xff, 0xff, 0x1f, 0x69, 0x88, 0xf6, 0x33, 0x0a, 0x00, 0x00,
} }

@ -84,11 +84,9 @@ message GetTagSendLogsReq {
} }
message TagSendLog { message TagSendLog {
repeated string userList = 1; repeated TagUser users = 1;
repeated string tagList = 2; string content = 2;
repeated string groupList =3; int64 sendTime = 3;
string content = 4;
int64 sendTime = 5;
} }
message GetTagSendLogsResp { message GetTagSendLogsResp {

Loading…
Cancel
Save