mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
Merge remote-tracking branch 'origin/tuoyun' into tuoyun
This commit is contained in:
commit
acca147ff2
@ -1 +1 @@
|
||||
Subproject commit a19440c3d6e6504655934cc432d8420bb1909816
|
||||
Subproject commit a6b33ab9d277ef82e1e0e12c4affb49b53758735
|
@ -366,6 +366,56 @@ notification:
|
||||
ext: "groupDismissed ext"
|
||||
defaultTips:
|
||||
tips: "group dismissed"
|
||||
|
||||
|
||||
groupMuted:
|
||||
conversation:
|
||||
reliabilityLevel: 3
|
||||
unreadCount: true
|
||||
offlinePush:
|
||||
switch: false
|
||||
title: "groupMuted title"
|
||||
desc: "groupMuted desc"
|
||||
ext: "groupMuted ext"
|
||||
defaultTips:
|
||||
tips: "group Muted"
|
||||
|
||||
groupCancelMuted:
|
||||
conversation:
|
||||
reliabilityLevel: 3
|
||||
unreadCount: true
|
||||
offlinePush:
|
||||
switch: false
|
||||
title: "groupCancelMuted title"
|
||||
desc: "groupCancelMuted desc"
|
||||
ext: "groupCancelMuted ext"
|
||||
defaultTips:
|
||||
tips: "group Cancel Muted"
|
||||
|
||||
|
||||
groupMemberMuted:
|
||||
conversation:
|
||||
reliabilityLevel: 3
|
||||
unreadCount: true
|
||||
offlinePush:
|
||||
switch: false
|
||||
title: "groupMemberMuted title"
|
||||
desc: "groupMemberMuted desc"
|
||||
ext: "groupMemberMuted ext"
|
||||
defaultTips:
|
||||
tips: "group Member Muted"
|
||||
|
||||
groupMemberCancelMuted:
|
||||
conversation:
|
||||
reliabilityLevel: 3
|
||||
unreadCount: true
|
||||
offlinePush:
|
||||
switch: false
|
||||
title: "groupMemberCancelMuted title"
|
||||
desc: "groupMemberCancelMuted desc"
|
||||
ext: "groupMemberCancelMuted ext"
|
||||
defaultTips:
|
||||
tips: "group Member Cancel Muted"
|
||||
#############################friend#################################
|
||||
|
||||
friendApplicationAdded:
|
||||
|
@ -81,7 +81,7 @@ func MinioUploadFile(c *gin.Context) {
|
||||
_, err = minioClient.PutObject(context.Background(), config.Config.Credential.Minio.Bucket, newName, fileObj, file.Size, minio.PutObjectOptions{ContentType: newType})
|
||||
if err != nil {
|
||||
log.NewError(req.OperationID, utils.GetSelfFuncName(), "open file error")
|
||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "invalid file path" + err.Error()})
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "invalid file path" + err.Error()})
|
||||
return
|
||||
}
|
||||
resp.NewName = newName
|
||||
|
@ -969,7 +969,7 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
|
||||
|
||||
func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) {
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
|
||||
if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) {
|
||||
if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) {
|
||||
log.Error(req.OperationID, "verify failed ", req.GroupID, req.UserID)
|
||||
return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
|
||||
}
|
||||
@ -980,13 +980,14 @@ func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGrou
|
||||
log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo)
|
||||
return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
||||
}
|
||||
chat.GroupMemberMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID, req.MutedSeconds)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
|
||||
return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
|
||||
}
|
||||
|
||||
func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) {
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
|
||||
if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) {
|
||||
if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) {
|
||||
log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID)
|
||||
return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
|
||||
}
|
||||
@ -997,6 +998,7 @@ func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.Ca
|
||||
log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo)
|
||||
return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
||||
}
|
||||
chat.GroupMemberCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID, req.UserID)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
|
||||
return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
|
||||
}
|
||||
@ -1012,7 +1014,7 @@ func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq)
|
||||
log.Error(req.OperationID, "OperateGroupStatus failed ", err.Error(), req.GroupID, constant.GroupStatusMuted)
|
||||
return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
||||
}
|
||||
chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID)
|
||||
chat.GroupMutedNotification(req.OperationID, req.OpUserID, req.GroupID)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
|
||||
return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
|
||||
}
|
||||
@ -1030,7 +1032,7 @@ func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMu
|
||||
log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), groupInfo)
|
||||
return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
|
||||
}
|
||||
chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID)
|
||||
chat.GroupCancelMutedNotification(req.OperationID, req.OpUserID, req.GroupID)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
|
||||
return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
|
||||
}
|
||||
|
@ -160,6 +160,14 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv
|
||||
tips.DefaultTips = toNickname + " " + cn.MemberEnter.DefaultTips.Tips
|
||||
case constant.GroupDismissedNotification:
|
||||
tips.DefaultTips = toNickname + "" + cn.GroupDismissed.DefaultTips.Tips
|
||||
case constant.GroupMutedNotification:
|
||||
tips.DefaultTips = toNickname + "" + cn.GroupMuted.DefaultTips.Tips
|
||||
case constant.GroupCancelMutedNotification:
|
||||
tips.DefaultTips = toNickname + "" + cn.GroupCancelMuted.DefaultTips.Tips
|
||||
case constant.GroupMemberMutedNotification:
|
||||
tips.DefaultTips = toNickname + "" + cn.GroupMemberMuted.DefaultTips.Tips
|
||||
case constant.GroupMemberCancelMutedNotification:
|
||||
tips.DefaultTips = toNickname + "" + cn.GroupMemberCancelMuted.DefaultTips.Tips
|
||||
default:
|
||||
log.Error(operationID, "contentType failed ", contentType)
|
||||
return
|
||||
@ -227,6 +235,71 @@ func GroupInfoSetNotification(operationID, opUserID, groupID string) {
|
||||
groupNotification(constant.GroupInfoSetNotification, &GroupInfoChangedTips, opUserID, groupID, "", operationID)
|
||||
}
|
||||
|
||||
func GroupMutedNotification(operationID, opUserID, groupID string) {
|
||||
tips := open_im_sdk.GroupMutedTips{Group: &open_im_sdk.GroupInfo{},
|
||||
OpUser: &open_im_sdk.GroupMemberFullInfo{}}
|
||||
if err := setGroupInfo(groupID, tips.Group); err != nil {
|
||||
log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID)
|
||||
return
|
||||
}
|
||||
if err := setOpUserInfo(opUserID, groupID, tips.OpUser); err != nil {
|
||||
log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID)
|
||||
return
|
||||
}
|
||||
groupNotification(constant.GroupMutedNotification, &tips, opUserID, groupID, "", operationID)
|
||||
}
|
||||
|
||||
func GroupCancelMutedNotification(operationID, opUserID, groupID string) {
|
||||
tips := open_im_sdk.GroupCancelMutedTips{Group: &open_im_sdk.GroupInfo{},
|
||||
OpUser: &open_im_sdk.GroupMemberFullInfo{}}
|
||||
if err := setGroupInfo(groupID, tips.Group); err != nil {
|
||||
log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID)
|
||||
return
|
||||
}
|
||||
if err := setOpUserInfo(opUserID, groupID, tips.OpUser); err != nil {
|
||||
log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID)
|
||||
return
|
||||
}
|
||||
groupNotification(constant.GroupCancelMutedNotification, &tips, opUserID, groupID, "", operationID)
|
||||
}
|
||||
|
||||
func GroupMemberMutedNotification(operationID, opUserID, groupID, groupMemberUserID string, mutedSeconds uint32) {
|
||||
tips := open_im_sdk.GroupMemberMutedTips{Group: &open_im_sdk.GroupInfo{},
|
||||
OpUser: &open_im_sdk.GroupMemberFullInfo{}, MutedUser: &open_im_sdk.GroupMemberFullInfo{}}
|
||||
tips.MutedSeconds = mutedSeconds
|
||||
if err := setGroupInfo(groupID, tips.Group); err != nil {
|
||||
log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID)
|
||||
return
|
||||
}
|
||||
if err := setOpUserInfo(opUserID, groupID, tips.OpUser); err != nil {
|
||||
log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID)
|
||||
return
|
||||
}
|
||||
if err := setGroupMemberInfo(groupID, groupMemberUserID, tips.MutedUser); err != nil {
|
||||
log.Error(operationID, "setGroupMemberInfo failed ", err.Error(), groupID, groupMemberUserID)
|
||||
return
|
||||
}
|
||||
groupNotification(constant.GroupMemberMutedNotification, &tips, opUserID, groupID, "", operationID)
|
||||
}
|
||||
|
||||
func GroupMemberCancelMutedNotification(operationID, opUserID, groupID, groupMemberUserID string) {
|
||||
tips := open_im_sdk.GroupMemberCancelMutedTips{Group: &open_im_sdk.GroupInfo{},
|
||||
OpUser: &open_im_sdk.GroupMemberFullInfo{}, MutedUser: &open_im_sdk.GroupMemberFullInfo{}}
|
||||
if err := setGroupInfo(groupID, tips.Group); err != nil {
|
||||
log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID)
|
||||
return
|
||||
}
|
||||
if err := setOpUserInfo(opUserID, groupID, tips.OpUser); err != nil {
|
||||
log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID)
|
||||
return
|
||||
}
|
||||
if err := setGroupMemberInfo(groupID, groupMemberUserID, tips.MutedUser); err != nil {
|
||||
log.Error(operationID, "setGroupMemberInfo failed ", err.Error(), groupID, groupMemberUserID)
|
||||
return
|
||||
}
|
||||
groupNotification(constant.GroupMemberCancelMutedNotification, &tips, opUserID, groupID, "", operationID)
|
||||
}
|
||||
|
||||
//message ReceiveJoinApplicationTips{
|
||||
// GroupInfo Group = 1;
|
||||
// PublicUserInfo Applicant = 2;
|
||||
|
@ -513,6 +513,38 @@ func Notification(n *NotificationMsg) {
|
||||
ex = config.Config.Notification.GroupDismissed.OfflinePush.Ext
|
||||
reliabilityLevel = config.Config.Notification.GroupDismissed.Conversation.ReliabilityLevel
|
||||
unReadCount = config.Config.Notification.GroupDismissed.Conversation.UnreadCount
|
||||
|
||||
case constant.GroupMutedNotification:
|
||||
pushSwitch = config.Config.Notification.GroupMuted.OfflinePush.PushSwitch
|
||||
title = config.Config.Notification.GroupMuted.OfflinePush.Title
|
||||
desc = config.Config.Notification.GroupMuted.OfflinePush.Desc
|
||||
ex = config.Config.Notification.GroupMuted.OfflinePush.Ext
|
||||
reliabilityLevel = config.Config.Notification.GroupMuted.Conversation.ReliabilityLevel
|
||||
unReadCount = config.Config.Notification.GroupMuted.Conversation.UnreadCount
|
||||
|
||||
case constant.GroupCancelMutedNotification:
|
||||
pushSwitch = config.Config.Notification.GroupCancelMuted.OfflinePush.PushSwitch
|
||||
title = config.Config.Notification.GroupCancelMuted.OfflinePush.Title
|
||||
desc = config.Config.Notification.GroupCancelMuted.OfflinePush.Desc
|
||||
ex = config.Config.Notification.GroupCancelMuted.OfflinePush.Ext
|
||||
reliabilityLevel = config.Config.Notification.GroupCancelMuted.Conversation.ReliabilityLevel
|
||||
unReadCount = config.Config.Notification.GroupCancelMuted.Conversation.UnreadCount
|
||||
|
||||
case constant.GroupMemberMutedNotification:
|
||||
pushSwitch = config.Config.Notification.GroupMemberMuted.OfflinePush.PushSwitch
|
||||
title = config.Config.Notification.GroupMemberMuted.OfflinePush.Title
|
||||
desc = config.Config.Notification.GroupMemberMuted.OfflinePush.Desc
|
||||
ex = config.Config.Notification.GroupMemberMuted.OfflinePush.Ext
|
||||
reliabilityLevel = config.Config.Notification.GroupMemberMuted.Conversation.ReliabilityLevel
|
||||
unReadCount = config.Config.Notification.GroupMemberMuted.Conversation.UnreadCount
|
||||
|
||||
case constant.GroupMemberCancelMutedNotification:
|
||||
pushSwitch = config.Config.Notification.GroupMemberCancelMuted.OfflinePush.PushSwitch
|
||||
title = config.Config.Notification.GroupMemberCancelMuted.OfflinePush.Title
|
||||
desc = config.Config.Notification.GroupMemberCancelMuted.OfflinePush.Desc
|
||||
ex = config.Config.Notification.GroupMemberCancelMuted.OfflinePush.Ext
|
||||
reliabilityLevel = config.Config.Notification.GroupMemberCancelMuted.Conversation.ReliabilityLevel
|
||||
unReadCount = config.Config.Notification.GroupMemberCancelMuted.Conversation.UnreadCount
|
||||
}
|
||||
switch reliabilityLevel {
|
||||
case constant.UnreliableNotification:
|
||||
|
@ -10,20 +10,24 @@ import (
|
||||
"Open_IM/pkg/utils"
|
||||
"context"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TagSendMessage(operationID, sendID, recvID, content string, contentType int32) {
|
||||
log.NewInfo(operationID, utils.GetSelfFuncName(), "args: ", sendID, recvID, content, contentType)
|
||||
func TagSendMessage(operationID, sendID, recvID, content string, senderPlatformID int32) {
|
||||
log.NewInfo(operationID, utils.GetSelfFuncName(), "args: ", sendID, recvID, content)
|
||||
var req pbChat.SendMsgReq
|
||||
var msgData pbCommon.MsgData
|
||||
msgData.SendID = sendID
|
||||
msgData.RecvID = recvID
|
||||
msgData.ContentType = contentType
|
||||
msgData.ContentType = constant.Custom
|
||||
msgData.SessionType = constant.SingleChatType
|
||||
msgData.MsgFrom = constant.UserMsgType
|
||||
msgData.Content = []byte(content)
|
||||
msgData.Options = map[string]bool{}
|
||||
msgData.Options[constant.IsSenderConversationUpdate] = false
|
||||
msgData.SendTime = time.Now().Unix()
|
||||
msgData.CreateTime = time.Now().Unix()
|
||||
msgData.SenderPlatformID = senderPlatformID
|
||||
req.MsgData = &msgData
|
||||
req.OperationID = operationID
|
||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName)
|
||||
|
@ -147,10 +147,41 @@ func (s *officeServer) SetTag(_ context.Context, req *pbOffice.SetTagReq) (resp
|
||||
func (s *officeServer) SendMsg2Tag(_ context.Context, req *pbOffice.SendMsg2TagReq) (resp *pbOffice.SendMsg2TagResp, err error) {
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String())
|
||||
resp = &pbOffice.SendMsg2TagResp{CommonResp: &pbOffice.CommonResp{}}
|
||||
userIDList, err := db.DB.GetUserIDListByTagID(req.SendID, req.TagID)
|
||||
for _, userID := range userIDList {
|
||||
msg.TagSendMessage(req.OperationID, req.SendID, userID, req.Content, req.ContentType)
|
||||
var tagUserIDList []string
|
||||
for _, tagID := range req.TagList {
|
||||
userIDList, err := db.DB.GetUserIDListByTagID(req.SendID, tagID)
|
||||
if err != nil {
|
||||
log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserIDListByTagID failed", err.Error())
|
||||
continue
|
||||
}
|
||||
tagUserIDList = append(tagUserIDList, userIDList...)
|
||||
}
|
||||
var groupUserIDList []string
|
||||
for _, groupID := range req.GroupList {
|
||||
userIDList, err := im_mysql_model.GetGroupMemberIDListByGroupID(groupID)
|
||||
if err != nil {
|
||||
log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMemberIDListByGroupID failed", err.Error())
|
||||
continue
|
||||
}
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), userIDList)
|
||||
groupUserIDList = append(groupUserIDList, userIDList...)
|
||||
}
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), groupUserIDList, req.GroupList)
|
||||
var userIDList []string
|
||||
userIDList = append(userIDList, tagUserIDList...)
|
||||
userIDList = append(userIDList, groupUserIDList...)
|
||||
userIDList = append(userIDList, req.UserList...)
|
||||
userIDList = utils.RemoveUserIDRepByMap(userIDList)
|
||||
for i, userID := range userIDList {
|
||||
if userID == req.SendID || userID == "" {
|
||||
userIDList = append(userIDList[:i], userIDList[i+1:]...)
|
||||
}
|
||||
}
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "total userIDList result: ", userIDList)
|
||||
for _, userID := range userIDList {
|
||||
msg.TagSendMessage(req.OperationID, req.SendID, userID, req.Content, req.SenderPlatformID)
|
||||
}
|
||||
|
||||
if err := db.DB.SaveTagSendLog(req); err != nil {
|
||||
log.NewError(req.OperationID, utils.GetSelfFuncName(), "SaveTagSendLog failed", err.Error())
|
||||
resp.CommonResp.ErrCode = constant.ErrDB.ErrCode
|
||||
|
@ -72,6 +72,33 @@ func (s *userServer) Run() {
|
||||
log.NewInfo("0", "rpc user success")
|
||||
}
|
||||
|
||||
func syncPeerUserConversation(conversation *pbUser.Conversation, operationID string) error {
|
||||
if conversation.ConversationType == constant.SingleChatType {
|
||||
peerUserConversation := db.Conversation{
|
||||
OwnerUserID: conversation.UserID,
|
||||
ConversationID: "single_" + conversation.OwnerUserID,
|
||||
ConversationType: constant.SingleChatType,
|
||||
UserID: conversation.OwnerUserID,
|
||||
GroupID: "",
|
||||
RecvMsgOpt: 0,
|
||||
UnreadCount: 0,
|
||||
DraftTextTime: 0,
|
||||
IsPinned: false,
|
||||
IsPrivateChat: conversation.IsPrivateChat,
|
||||
AttachedInfo: "",
|
||||
Ex: "",
|
||||
}
|
||||
err := imdb.CreateConversationIfNotExist(peerUserConversation)
|
||||
if err != nil {
|
||||
log.NewError(operationID, utils.GetSelfFuncName(), "SetConversation error", err.Error())
|
||||
return err
|
||||
}
|
||||
|
||||
chat.SetConversationNotification(operationID, conversation.UserID)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) {
|
||||
log.NewInfo(req.OperationID, "GetUserInfo args ", req.String())
|
||||
var userInfoList []*sdkws.UserInfo
|
||||
@ -113,6 +140,9 @@ func (s *userServer) BatchSetConversations(ctx context.Context, req *pbUser.Batc
|
||||
continue
|
||||
}
|
||||
resp.Success = append(resp.Success, v.ConversationID)
|
||||
//if err := syncPeerUserConversation(v, req.OperationID); err != nil {
|
||||
// log.NewError(req.OperationID, utils.GetSelfFuncName(), "syncPeerUserConversation", err.Error())
|
||||
//}
|
||||
}
|
||||
chat.SetConversationNotification(req.OperationID, req.OwnerUserID)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String())
|
||||
@ -189,6 +219,10 @@ func (s *userServer) SetConversation(ctx context.Context, req *pbUser.SetConvers
|
||||
resp.CommonResp = &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}
|
||||
return resp, nil
|
||||
}
|
||||
// sync peer user conversation if conversation is singleChatType
|
||||
//if err := syncPeerUserConversation(req.Conversation, req.OperationID); err != nil {
|
||||
// log.NewError(req.OperationID, utils.GetSelfFuncName(), "syncPeerUserConversation", err.Error())
|
||||
//}
|
||||
chat.SetConversationNotification(req.OperationID, req.Conversation.OwnerUserID)
|
||||
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return", resp.String())
|
||||
resp.CommonResp = &pbUser.CommonResp{}
|
||||
|
@ -5,7 +5,7 @@ import (
|
||||
)
|
||||
|
||||
type GetUserTagsReq struct {
|
||||
OperationID string `json:"operationID"`
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
}
|
||||
|
||||
type GetUserTagsResp struct {
|
||||
@ -47,10 +47,12 @@ type SetTagResp struct {
|
||||
}
|
||||
|
||||
type SendMsg2TagReq struct {
|
||||
TagID string `json:"tagID" binding:"required"`
|
||||
TagList []string `json:"tagList"`
|
||||
UserList []string `json:"userList"`
|
||||
GroupList []string `json:"groupList"`
|
||||
|
||||
SenderPlatformID int32 `json:"senderPlatformID" binding:"required"`
|
||||
Content string `json:"content" binding:"required"`
|
||||
ContentType int32 `json:"contentType" binding:"required"`
|
||||
OperationID string `json:"operationID" binding:"required"`
|
||||
}
|
||||
|
||||
|
@ -270,6 +270,30 @@ type config struct {
|
||||
DefaultTips PDefaultTips `yaml:"defaultTips"`
|
||||
} `yaml:"groupDismissed"`
|
||||
|
||||
GroupMuted struct {
|
||||
Conversation PConversation `yaml:"conversation"`
|
||||
OfflinePush POfflinePush `yaml:"offlinePush"`
|
||||
DefaultTips PDefaultTips `yaml:"defaultTips"`
|
||||
} `yaml:"groupMuted"`
|
||||
|
||||
GroupCancelMuted struct {
|
||||
Conversation PConversation `yaml:"conversation"`
|
||||
OfflinePush POfflinePush `yaml:"offlinePush"`
|
||||
DefaultTips PDefaultTips `yaml:"defaultTips"`
|
||||
} `yaml:"groupCancelMuted"`
|
||||
|
||||
GroupMemberMuted struct {
|
||||
Conversation PConversation `yaml:"conversation"`
|
||||
OfflinePush POfflinePush `yaml:"offlinePush"`
|
||||
DefaultTips PDefaultTips `yaml:"defaultTips"`
|
||||
} `yaml:"groupMemberMuted"`
|
||||
|
||||
GroupMemberCancelMuted struct {
|
||||
Conversation PConversation `yaml:"conversation"`
|
||||
OfflinePush POfflinePush `yaml:"offlinePush"`
|
||||
DefaultTips PDefaultTips `yaml:"defaultTips"`
|
||||
} `yaml:"groupMemberCancelMuted"`
|
||||
|
||||
////////////////////////user///////////////////////
|
||||
UserInfoUpdated struct {
|
||||
Conversation PConversation `yaml:"conversation"`
|
||||
|
@ -79,7 +79,10 @@ const (
|
||||
MemberInvitedNotification = 1509
|
||||
MemberEnterNotification = 1510
|
||||
GroupDismissedNotification = 1511
|
||||
GroupMemberInfoChangedNotification = 1512
|
||||
GroupMemberMutedNotification = 1512
|
||||
GroupMemberCancelMutedNotification = 1513
|
||||
GroupMutedNotification = 1514
|
||||
GroupCancelMutedNotification = 1515
|
||||
|
||||
SignalingNotificationBegin = 1600
|
||||
SignalingNotification = 1601
|
||||
|
@ -526,28 +526,25 @@ type TagUser struct {
|
||||
}
|
||||
|
||||
type TagSendLog struct {
|
||||
TagID string `bson:"tag_id"`
|
||||
TagName string `bson:"tag_name"`
|
||||
TagList []string `bson:"tag_list"`
|
||||
GroupList []string `bson:"group_list"`
|
||||
UserList []string `bson:"user_list"`
|
||||
SendID string `bson:"send_id"`
|
||||
SenderPlatformID int32 `bson:"sender_platform_id"`
|
||||
Content string `bson:"content"`
|
||||
ContentType int32 `bson:"content_type"`
|
||||
SendTime int64 `bson:"send_time"`
|
||||
}
|
||||
|
||||
func (d *DataBases) SaveTagSendLog(sendReq *officePb.SendMsg2TagReq) error {
|
||||
ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second)
|
||||
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cTag)
|
||||
var tag Tag
|
||||
_ = c.FindOne(ctx, bson.M{"user_id": sendReq.SendID, "tag_id": sendReq.TagID}).Decode(&tag)
|
||||
c = d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog)
|
||||
c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cSendLog)
|
||||
tagSendLog := TagSendLog{
|
||||
TagID: sendReq.TagID,
|
||||
TagName: tag.TagName,
|
||||
TagList: sendReq.TagList,
|
||||
GroupList: sendReq.GroupList,
|
||||
UserList: sendReq.UserList,
|
||||
SendID: sendReq.SendID,
|
||||
SenderPlatformID: sendReq.SenderPlatformID,
|
||||
Content: sendReq.Content,
|
||||
ContentType: sendReq.ContentType,
|
||||
SendTime: time.Now().Unix(),
|
||||
}
|
||||
_, err := c.InsertOne(ctx, tagSendLog)
|
||||
@ -571,7 +568,7 @@ func (d *DataBases) GetTagSendLogs(userID string, showNumber, pageNumber int32)
|
||||
}
|
||||
|
||||
func generateTagID(tagName, userID string) string {
|
||||
return utils.Md5(tagName + userID + strconv.Itoa(rand.Int()))
|
||||
return utils.Md5(tagName + userID + strconv.Itoa(rand.Int()) + time.Now().String())
|
||||
}
|
||||
|
||||
func getCurrentTimestampByMill() int64 {
|
||||
|
@ -68,6 +68,24 @@ func GetGroupMemberListByGroupID(groupID string) ([]db.GroupMember, error) {
|
||||
return groupMemberList, nil
|
||||
}
|
||||
|
||||
func GetGroupMemberIDListByGroupID(groupID string) ([]string, error) {
|
||||
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
dbConn.LogMode(true)
|
||||
var groupMembers []db.GroupMember
|
||||
err = dbConn.Table("group_members").Select("user_id").Where("group_id=?", groupID).Find(&groupMembers).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var groupMemberIDList []string
|
||||
for _, v := range groupMembers {
|
||||
groupMemberIDList = append(groupMemberIDList, v.UserID)
|
||||
}
|
||||
return groupMemberIDList, nil
|
||||
}
|
||||
|
||||
func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]db.GroupMember, error) {
|
||||
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
|
||||
if err != nil {
|
||||
|
@ -377,3 +377,12 @@ func GetConversations(OwnerUserID string, conversationIDs []string) ([]db.Conver
|
||||
err = dbConn.Model(&db.Conversation{}).Where("conversation_id IN (?) and owner_user_id=?", conversationIDs, OwnerUserID).Find(&conversations).Error
|
||||
return conversations, err
|
||||
}
|
||||
|
||||
func CreateConversationIfNotExist(conversation db.Conversation) error {
|
||||
dbConn, err := db.DB.MysqlDB.DefaultGormDB()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = dbConn.Model(&db.Conversation{}).Create(conversation).Error
|
||||
return nil
|
||||
}
|
||||
|
@ -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_office_8580c3f7b2871da9, []int{0}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{0}
|
||||
}
|
||||
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
|
||||
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 (*TagUser) ProtoMessage() {}
|
||||
func (*TagUser) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{1}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{1}
|
||||
}
|
||||
func (m *TagUser) XXX_Unmarshal(b []byte) error {
|
||||
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 (*Tag) ProtoMessage() {}
|
||||
func (*Tag) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{2}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{2}
|
||||
}
|
||||
func (m *Tag) XXX_Unmarshal(b []byte) error {
|
||||
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 (*GetUserTagsReq) ProtoMessage() {}
|
||||
func (*GetUserTagsReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{3}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{3}
|
||||
}
|
||||
func (m *GetUserTagsReq) XXX_Unmarshal(b []byte) error {
|
||||
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 (*GetUserTagsResp) ProtoMessage() {}
|
||||
func (*GetUserTagsResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{4}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{4}
|
||||
}
|
||||
func (m *GetUserTagsResp) XXX_Unmarshal(b []byte) error {
|
||||
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 (*CreateTagReq) ProtoMessage() {}
|
||||
func (*CreateTagReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{5}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{5}
|
||||
}
|
||||
func (m *CreateTagReq) XXX_Unmarshal(b []byte) error {
|
||||
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 (*CreateTagResp) ProtoMessage() {}
|
||||
func (*CreateTagResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{6}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{6}
|
||||
}
|
||||
func (m *CreateTagResp) XXX_Unmarshal(b []byte) error {
|
||||
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 (*DeleteTagReq) ProtoMessage() {}
|
||||
func (*DeleteTagReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{7}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{7}
|
||||
}
|
||||
func (m *DeleteTagReq) XXX_Unmarshal(b []byte) error {
|
||||
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 (*DeleteTagResp) ProtoMessage() {}
|
||||
func (*DeleteTagResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{8}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{8}
|
||||
}
|
||||
func (m *DeleteTagResp) XXX_Unmarshal(b []byte) error {
|
||||
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 (*SetTagReq) ProtoMessage() {}
|
||||
func (*SetTagReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{9}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{9}
|
||||
}
|
||||
func (m *SetTagReq) XXX_Unmarshal(b []byte) error {
|
||||
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 (*SetTagResp) ProtoMessage() {}
|
||||
func (*SetTagResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{10}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{10}
|
||||
}
|
||||
func (m *SetTagResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetTagResp.Unmarshal(m, b)
|
||||
@ -571,12 +571,13 @@ func (m *SetTagResp) GetCommonResp() *CommonResp {
|
||||
}
|
||||
|
||||
type SendMsg2TagReq struct {
|
||||
TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"`
|
||||
SendID string `protobuf:"bytes,2,opt,name=sendID" json:"sendID,omitempty"`
|
||||
SenderPlatformID int32 `protobuf:"varint,3,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"`
|
||||
Content string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"`
|
||||
ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"`
|
||||
OperationID string `protobuf:"bytes,6,opt,name=operationID" json:"operationID,omitempty"`
|
||||
TagList []string `protobuf:"bytes,1,rep,name=tagList" json:"tagList,omitempty"`
|
||||
UserList []string `protobuf:"bytes,2,rep,name=UserList" json:"UserList,omitempty"`
|
||||
GroupList []string `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"`
|
||||
SendID string `protobuf:"bytes,4,opt,name=sendID" json:"sendID,omitempty"`
|
||||
SenderPlatformID int32 `protobuf:"varint,5,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"`
|
||||
Content string `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"`
|
||||
OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
@ -586,7 +587,7 @@ func (m *SendMsg2TagReq) Reset() { *m = SendMsg2TagReq{} }
|
||||
func (m *SendMsg2TagReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*SendMsg2TagReq) ProtoMessage() {}
|
||||
func (*SendMsg2TagReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{11}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{11}
|
||||
}
|
||||
func (m *SendMsg2TagReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SendMsg2TagReq.Unmarshal(m, b)
|
||||
@ -606,11 +607,25 @@ func (m *SendMsg2TagReq) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_SendMsg2TagReq proto.InternalMessageInfo
|
||||
|
||||
func (m *SendMsg2TagReq) GetTagID() string {
|
||||
func (m *SendMsg2TagReq) GetTagList() []string {
|
||||
if m != nil {
|
||||
return m.TagID
|
||||
return m.TagList
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SendMsg2TagReq) GetUserList() []string {
|
||||
if m != nil {
|
||||
return m.UserList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SendMsg2TagReq) GetGroupList() []string {
|
||||
if m != nil {
|
||||
return m.GroupList
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *SendMsg2TagReq) GetSendID() string {
|
||||
@ -634,13 +649,6 @@ func (m *SendMsg2TagReq) GetContent() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *SendMsg2TagReq) GetContentType() int32 {
|
||||
if m != nil {
|
||||
return m.ContentType
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
func (m *SendMsg2TagReq) GetOperationID() string {
|
||||
if m != nil {
|
||||
return m.OperationID
|
||||
@ -659,7 +667,7 @@ func (m *SendMsg2TagResp) Reset() { *m = SendMsg2TagResp{} }
|
||||
func (m *SendMsg2TagResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*SendMsg2TagResp) ProtoMessage() {}
|
||||
func (*SendMsg2TagResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{12}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{12}
|
||||
}
|
||||
func (m *SendMsg2TagResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SendMsg2TagResp.Unmarshal(m, b)
|
||||
@ -699,7 +707,7 @@ func (m *GetTagSendLogsReq) Reset() { *m = GetTagSendLogsReq{} }
|
||||
func (m *GetTagSendLogsReq) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetTagSendLogsReq) ProtoMessage() {}
|
||||
func (*GetTagSendLogsReq) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{13}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{13}
|
||||
}
|
||||
func (m *GetTagSendLogsReq) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetTagSendLogsReq.Unmarshal(m, b)
|
||||
@ -741,9 +749,9 @@ func (m *GetTagSendLogsReq) GetOperationID() string {
|
||||
}
|
||||
|
||||
type TagSendLog struct {
|
||||
TagID string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"`
|
||||
TagName string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"`
|
||||
ContentType int32 `protobuf:"varint,3,opt,name=contentType" json:"contentType,omitempty"`
|
||||
UserList []string `protobuf:"bytes,1,rep,name=userList" json:"userList,omitempty"`
|
||||
TagList []string `protobuf:"bytes,2,rep,name=tagList" json:"tagList,omitempty"`
|
||||
GroupList []string `protobuf:"bytes,3,rep,name=groupList" json:"groupList,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:"-"`
|
||||
@ -755,7 +763,7 @@ func (m *TagSendLog) Reset() { *m = TagSendLog{} }
|
||||
func (m *TagSendLog) String() string { return proto.CompactTextString(m) }
|
||||
func (*TagSendLog) ProtoMessage() {}
|
||||
func (*TagSendLog) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{14}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{14}
|
||||
}
|
||||
func (m *TagSendLog) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_TagSendLog.Unmarshal(m, b)
|
||||
@ -775,25 +783,25 @@ func (m *TagSendLog) XXX_DiscardUnknown() {
|
||||
|
||||
var xxx_messageInfo_TagSendLog proto.InternalMessageInfo
|
||||
|
||||
func (m *TagSendLog) GetTagID() string {
|
||||
func (m *TagSendLog) GetUserList() []string {
|
||||
if m != nil {
|
||||
return m.TagID
|
||||
return m.UserList
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TagSendLog) GetTagName() string {
|
||||
func (m *TagSendLog) GetTagList() []string {
|
||||
if m != nil {
|
||||
return m.TagName
|
||||
return m.TagList
|
||||
}
|
||||
return ""
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TagSendLog) GetContentType() int32 {
|
||||
func (m *TagSendLog) GetGroupList() []string {
|
||||
if m != nil {
|
||||
return m.ContentType
|
||||
return m.GroupList
|
||||
}
|
||||
return 0
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *TagSendLog) GetContent() string {
|
||||
@ -823,7 +831,7 @@ func (m *GetTagSendLogsResp) Reset() { *m = GetTagSendLogsResp{} }
|
||||
func (m *GetTagSendLogsResp) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetTagSendLogsResp) ProtoMessage() {}
|
||||
func (*GetTagSendLogsResp) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_office_8580c3f7b2871da9, []int{15}
|
||||
return fileDescriptor_office_b53660f9aedbfa32, []int{15}
|
||||
}
|
||||
func (m *GetTagSendLogsResp) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetTagSendLogsResp.Unmarshal(m, b)
|
||||
@ -1120,55 +1128,57 @@ var _OfficeService_serviceDesc = grpc.ServiceDesc{
|
||||
Metadata: "office/office.proto",
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_8580c3f7b2871da9) }
|
||||
func init() { proto.RegisterFile("office/office.proto", fileDescriptor_office_b53660f9aedbfa32) }
|
||||
|
||||
var fileDescriptor_office_8580c3f7b2871da9 = []byte{
|
||||
// 751 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xc1, 0x6e, 0xd3, 0x4c,
|
||||
0x10, 0x96, 0x93, 0x26, 0x6d, 0x26, 0x6d, 0xf3, 0x77, 0xff, 0x52, 0x82, 0x0f, 0x10, 0x2c, 0x90,
|
||||
0x2a, 0x90, 0x12, 0x29, 0x70, 0x40, 0x42, 0x54, 0x88, 0xa4, 0xaa, 0x8a, 0x5a, 0x5a, 0x6d, 0xd3,
|
||||
0x0b, 0x07, 0xa2, 0x6d, 0x32, 0xb1, 0xac, 0x36, 0xb6, 0xbb, 0xbb, 0x6d, 0xc5, 0x95, 0x57, 0x80,
|
||||
0x57, 0x42, 0xe2, 0xca, 0x03, 0x21, 0x21, 0xaf, 0xd7, 0xf6, 0xda, 0x49, 0x04, 0xe4, 0x94, 0x9d,
|
||||
0xd9, 0x99, 0xc9, 0xf7, 0x7d, 0xb3, 0x3b, 0x6b, 0xf8, 0x3f, 0x98, 0x4c, 0xbc, 0x11, 0x76, 0xe2,
|
||||
0x9f, 0x76, 0xc8, 0x03, 0x19, 0x90, 0x6a, 0x6c, 0xd9, 0x8f, 0x4f, 0x42, 0xf4, 0x87, 0x87, 0xc7,
|
||||
0x9d, 0xf0, 0xd2, 0xed, 0xa8, 0xad, 0x8e, 0x18, 0x5f, 0x0e, 0xef, 0x44, 0xe7, 0x4e, 0xc4, 0xa1,
|
||||
0xce, 0x1e, 0x40, 0x2f, 0x98, 0x4e, 0x03, 0x9f, 0xa2, 0x08, 0x49, 0x13, 0x56, 0x91, 0xf3, 0x5e,
|
||||
0x30, 0xc6, 0xa6, 0xd5, 0xb2, 0x76, 0x2b, 0x34, 0x31, 0xc9, 0x0e, 0x54, 0x91, 0xf3, 0x63, 0xe1,
|
||||
0x36, 0x4b, 0x2d, 0x6b, 0xb7, 0x46, 0xb5, 0xe5, 0xbc, 0x81, 0xd5, 0x01, 0x73, 0xcf, 0x05, 0xf2,
|
||||
0x28, 0xe4, 0x46, 0x20, 0x3f, 0xec, 0xab, 0xdc, 0x1a, 0xd5, 0x16, 0xb1, 0x61, 0x2d, 0x5a, 0x7d,
|
||||
0x60, 0x53, 0xd4, 0xc9, 0xa9, 0xed, 0x5c, 0x40, 0x79, 0xc0, 0x5c, 0xb2, 0x0d, 0x15, 0xc9, 0xdc,
|
||||
0x34, 0x33, 0x36, 0x22, 0x34, 0x92, 0xb9, 0x46, 0x5e, 0x62, 0x92, 0xe7, 0x71, 0xc9, 0x23, 0x4f,
|
||||
0xc8, 0x66, 0xb9, 0x55, 0xde, 0xad, 0x77, 0x1b, 0x6d, 0xad, 0x80, 0x46, 0x43, 0xd3, 0x00, 0xe7,
|
||||
0x3d, 0x6c, 0x1e, 0xa0, 0x8c, 0x9c, 0x03, 0xe6, 0x0a, 0x8a, 0xd7, 0x0b, 0x91, 0xb6, 0xa0, 0x1e,
|
||||
0x84, 0xc8, 0x99, 0xf4, 0x02, 0xff, 0xb0, 0xaf, 0xff, 0xd4, 0x74, 0x39, 0x13, 0x68, 0xe4, 0x6a,
|
||||
0x89, 0x90, 0x74, 0x01, 0x46, 0xa9, 0x82, 0xaa, 0x60, 0xbd, 0x4b, 0x12, 0x34, 0x99, 0xb6, 0xd4,
|
||||
0x88, 0x22, 0x8f, 0x60, 0x45, 0x32, 0x57, 0x34, 0x4b, 0x0a, 0x7b, 0xdd, 0xc0, 0x4e, 0xd5, 0x86,
|
||||
0xf3, 0xc5, 0x82, 0xf5, 0x1e, 0x47, 0x26, 0x31, 0xf2, 0xe1, 0xb5, 0xa9, 0x85, 0x95, 0xd7, 0x22,
|
||||
0x23, 0x53, 0xca, 0x91, 0x79, 0x08, 0x10, 0xaf, 0x52, 0x95, 0x6a, 0xd4, 0xf0, 0x14, 0xc9, 0xae,
|
||||
0xcc, 0x92, 0xed, 0xc1, 0x86, 0x81, 0x61, 0x39, 0xaa, 0xce, 0x27, 0x58, 0xef, 0xe3, 0x15, 0xa6,
|
||||
0x44, 0x16, 0x69, 0x9f, 0x1e, 0x81, 0x92, 0x79, 0x04, 0x0a, 0x20, 0xcb, 0x73, 0x41, 0x1a, 0xf5,
|
||||
0x97, 0x04, 0xf9, 0xd3, 0x82, 0xda, 0x19, 0xca, 0xa5, 0x20, 0x36, 0x61, 0xd5, 0xc7, 0x3b, 0xd5,
|
||||
0x99, 0x18, 0x5e, 0x62, 0x92, 0x36, 0x10, 0xcf, 0x1f, 0x71, 0x64, 0x02, 0xcf, 0xb3, 0x4e, 0xac,
|
||||
0xa8, 0x4e, 0xcc, 0xd9, 0x21, 0xcf, 0xe0, 0x3f, 0x8e, 0xe3, 0x9b, 0x91, 0x19, 0x5d, 0x51, 0xd1,
|
||||
0x33, 0xfe, 0xa2, 0x30, 0xd5, 0x59, 0x61, 0xde, 0x02, 0x24, 0x94, 0x96, 0x54, 0xe5, 0x87, 0x05,
|
||||
0x9b, 0x67, 0xe8, 0x8f, 0x8f, 0x85, 0xdb, 0xd5, 0xd2, 0xcc, 0xbf, 0xa8, 0x3b, 0x50, 0x15, 0xe8,
|
||||
0x8f, 0xb3, 0x23, 0x18, 0x5b, 0x11, 0xa1, 0x68, 0x85, 0xfc, 0xf4, 0x8a, 0xc9, 0x49, 0xc0, 0xa7,
|
||||
0xba, 0x85, 0x15, 0x3a, 0xe3, 0x8f, 0x64, 0x1c, 0x05, 0xbe, 0x44, 0x5f, 0xea, 0xa3, 0x98, 0x98,
|
||||
0x11, 0x55, 0xbd, 0x1c, 0x7c, 0x0e, 0xb1, 0x59, 0x51, 0x05, 0x4c, 0xd7, 0x5f, 0x88, 0xb1, 0x0f,
|
||||
0x8d, 0x1c, 0x93, 0x25, 0x15, 0xf9, 0x6a, 0xc1, 0xd6, 0x81, 0x12, 0x35, 0xaa, 0x76, 0x14, 0xc4,
|
||||
0xe3, 0xa4, 0x0f, 0x70, 0xca, 0x5c, 0xcf, 0x57, 0x7f, 0xa6, 0x2b, 0x3d, 0x69, 0x0b, 0xe4, 0xb7,
|
||||
0xc8, 0x87, 0x2c, 0xf4, 0x86, 0x21, 0xe3, 0x6c, 0x2a, 0xda, 0x14, 0xaf, 0x6f, 0x50, 0xc8, 0x2c,
|
||||
0x96, 0x1a, 0x79, 0x0b, 0xef, 0xf1, 0x9f, 0xaf, 0xc0, 0x37, 0x0b, 0x20, 0x83, 0xf4, 0xcf, 0xc3,
|
||||
0xb4, 0xa0, 0x6f, 0x79, 0x56, 0xdf, 0xc5, 0xbd, 0xb1, 0x61, 0x2d, 0xea, 0xe4, 0xc0, 0x9b, 0xc6,
|
||||
0x8d, 0x29, 0xd3, 0xd4, 0x76, 0xbe, 0x5b, 0x40, 0x8a, 0x62, 0x2d, 0x39, 0x2f, 0xf7, 0x73, 0x0a,
|
||||
0x97, 0x54, 0xce, 0xd3, 0xb9, 0x0a, 0x8b, 0x30, 0xf0, 0x05, 0x2e, 0x90, 0xf8, 0x25, 0xd4, 0x65,
|
||||
0x86, 0x46, 0xbf, 0x1c, 0xc4, 0x98, 0xbe, 0x7a, 0x8b, 0x9a, 0x61, 0xdd, 0x5f, 0x25, 0xd8, 0x38,
|
||||
0x51, 0x21, 0x67, 0xc8, 0x6f, 0xbd, 0x11, 0x92, 0x3d, 0xa8, 0x1b, 0xaf, 0x00, 0xd9, 0x49, 0x2a,
|
||||
0xe4, 0x9f, 0x19, 0xfb, 0xfe, 0x5c, 0xbf, 0x08, 0xc9, 0x2b, 0xa8, 0xa5, 0x83, 0x95, 0x6c, 0xa7,
|
||||
0xdc, 0x8d, 0x79, 0x6f, 0xdf, 0x9b, 0xe3, 0x8d, 0x33, 0xd3, 0x69, 0x97, 0x65, 0x9a, 0x03, 0x36,
|
||||
0xcb, 0xcc, 0x8f, 0xc5, 0x0e, 0x54, 0xe3, 0x71, 0x40, 0xb6, 0x92, 0x80, 0x74, 0xe2, 0xd9, 0xa4,
|
||||
0xe8, 0x12, 0x61, 0x44, 0xd2, 0xb8, 0x32, 0x19, 0xc9, 0xfc, 0x44, 0xc8, 0x48, 0x16, 0xef, 0xd7,
|
||||
0x81, 0x7a, 0x76, 0x8d, 0xee, 0x93, 0x07, 0x86, 0x1e, 0xf9, 0x2b, 0x64, 0xdb, 0x8b, 0xb6, 0x44,
|
||||
0xf8, 0x6e, 0xeb, 0x63, 0xa3, 0xad, 0xbf, 0x6f, 0x5e, 0xc7, 0x3f, 0x17, 0x55, 0xf5, 0xf1, 0xf2,
|
||||
0xe2, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0xfc, 0x2a, 0x94, 0xfe, 0x08, 0x00, 0x00,
|
||||
var fileDescriptor_office_b53660f9aedbfa32 = []byte{
|
||||
// 781 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6a, 0xdb, 0x4a,
|
||||
0x10, 0x46, 0xf2, 0x5f, 0x3c, 0x4e, 0xe2, 0x93, 0x3d, 0x39, 0x39, 0xaa, 0x08, 0xad, 0x2b, 0x5a,
|
||||
0x08, 0x2d, 0xd8, 0xe0, 0xf6, 0xa2, 0x50, 0x1a, 0x4a, 0xed, 0x60, 0x5c, 0x92, 0x26, 0x28, 0xce,
|
||||
0x4d, 0x2f, 0x6a, 0x36, 0xf6, 0x58, 0x88, 0xc4, 0x92, 0xb2, 0x2b, 0x27, 0xf7, 0x7d, 0x85, 0x42,
|
||||
0xdf, 0xa8, 0x0f, 0xd0, 0x77, 0xe8, 0x6b, 0x14, 0x8a, 0x56, 0xd2, 0x6a, 0x25, 0xdb, 0x14, 0x7c,
|
||||
0x25, 0x7d, 0xb3, 0x33, 0xab, 0x6f, 0xbe, 0xd9, 0x99, 0x15, 0xfc, 0xeb, 0xcf, 0x66, 0xee, 0x04,
|
||||
0x3b, 0xf1, 0xa3, 0x1d, 0x30, 0x3f, 0xf4, 0x49, 0x35, 0x46, 0xe6, 0xd3, 0xf3, 0x00, 0xbd, 0xf1,
|
||||
0xf0, 0xac, 0x13, 0xdc, 0x38, 0x1d, 0xb1, 0xd4, 0xe1, 0xd3, 0x9b, 0xf1, 0x03, 0xef, 0x3c, 0xf0,
|
||||
0xd8, 0xd5, 0x3a, 0x06, 0xe8, 0xf9, 0xf3, 0xb9, 0xef, 0xd9, 0xc8, 0x03, 0x62, 0x40, 0x0d, 0x19,
|
||||
0xeb, 0xf9, 0x53, 0x34, 0xb4, 0x96, 0x76, 0x54, 0xb1, 0x53, 0x48, 0x0e, 0xa0, 0x8a, 0x8c, 0x9d,
|
||||
0x71, 0xc7, 0xd0, 0x5b, 0xda, 0x51, 0xdd, 0x4e, 0x90, 0xf5, 0x0e, 0x6a, 0x23, 0xea, 0x5c, 0x71,
|
||||
0x64, 0x91, 0xcb, 0x82, 0x23, 0x1b, 0xf6, 0x45, 0x6c, 0xdd, 0x4e, 0x10, 0x31, 0x61, 0x2b, 0x7a,
|
||||
0xfb, 0x44, 0xe7, 0x98, 0x04, 0x4b, 0x6c, 0x5d, 0x43, 0x69, 0x44, 0x1d, 0xb2, 0x0f, 0x95, 0x90,
|
||||
0x3a, 0x32, 0x32, 0x06, 0x11, 0x9b, 0x90, 0x3a, 0x4a, 0x5c, 0x0a, 0xc9, 0xcb, 0x78, 0xcb, 0x53,
|
||||
0x97, 0x87, 0x46, 0xa9, 0x55, 0x3a, 0x6a, 0x74, 0x9b, 0xed, 0x44, 0x81, 0x84, 0x8d, 0x2d, 0x1d,
|
||||
0xac, 0x8f, 0xb0, 0x3b, 0xc0, 0x30, 0x32, 0x8e, 0xa8, 0xc3, 0x6d, 0xbc, 0x5b, 0xcb, 0xb4, 0x05,
|
||||
0x0d, 0x3f, 0x40, 0x46, 0x43, 0xd7, 0xf7, 0x86, 0xfd, 0xe4, 0xa3, 0xaa, 0xc9, 0x9a, 0x41, 0x33,
|
||||
0xb7, 0x17, 0x0f, 0x48, 0x17, 0x60, 0x22, 0x15, 0x14, 0x1b, 0x36, 0xba, 0x24, 0x65, 0x93, 0x69,
|
||||
0x6b, 0x2b, 0x5e, 0xe4, 0x09, 0x94, 0x43, 0xea, 0x70, 0x43, 0x17, 0xdc, 0x1b, 0x0a, 0x77, 0x5b,
|
||||
0x2c, 0x58, 0x5f, 0x35, 0xd8, 0xee, 0x31, 0xa4, 0x21, 0x46, 0x36, 0xbc, 0x53, 0xb5, 0xd0, 0xf2,
|
||||
0x5a, 0x64, 0xc9, 0xe8, 0xb9, 0x64, 0x1e, 0x03, 0xc4, 0x6f, 0x52, 0xa5, 0xba, 0xad, 0x58, 0x8a,
|
||||
0xc9, 0x96, 0x97, 0x93, 0xed, 0xc1, 0x8e, 0xc2, 0x61, 0xb3, 0x54, 0xad, 0x2f, 0xb0, 0xdd, 0xc7,
|
||||
0x5b, 0x94, 0x89, 0xac, 0xd3, 0x5e, 0x1e, 0x01, 0x5d, 0x3d, 0x02, 0x05, 0x92, 0xa5, 0x95, 0x24,
|
||||
0x95, 0xfd, 0x37, 0x24, 0xf9, 0x53, 0x83, 0xfa, 0x25, 0x86, 0x1b, 0x51, 0x34, 0xa0, 0xe6, 0xe1,
|
||||
0x83, 0xa8, 0x4c, 0x4c, 0x2f, 0x85, 0xa4, 0x0d, 0xc4, 0xf5, 0x26, 0x0c, 0x29, 0xc7, 0xab, 0xac,
|
||||
0x12, 0x65, 0x51, 0x89, 0x15, 0x2b, 0xe4, 0x05, 0xfc, 0xc3, 0x70, 0xba, 0x98, 0xa8, 0xde, 0x15,
|
||||
0xe1, 0xbd, 0x64, 0x2f, 0x0a, 0x53, 0x5d, 0x16, 0xe6, 0x3d, 0x40, 0x9a, 0xd2, 0x86, 0xaa, 0xfc,
|
||||
0xd2, 0x60, 0xf7, 0x12, 0xbd, 0xe9, 0x19, 0x77, 0xba, 0xb9, 0x63, 0x28, 0x98, 0x69, 0x82, 0x59,
|
||||
0x0a, 0xa3, 0x2e, 0xbf, 0x4a, 0x5b, 0x52, 0x17, 0x4b, 0x12, 0x93, 0x43, 0xa8, 0x0f, 0x98, 0xbf,
|
||||
0x08, 0x94, 0x93, 0x98, 0x19, 0x22, 0xb9, 0x39, 0x7a, 0x53, 0x79, 0x06, 0x13, 0x14, 0xc9, 0x11,
|
||||
0xbd, 0x21, 0xbb, 0xb8, 0xa5, 0xe1, 0xcc, 0x67, 0xf3, 0x61, 0xdf, 0xa8, 0x88, 0xa9, 0xb4, 0x64,
|
||||
0x8f, 0x78, 0x4d, 0x7c, 0x2f, 0x44, 0x2f, 0x4c, 0xa4, 0x48, 0x61, 0x51, 0xa8, 0xda, 0xb2, 0x50,
|
||||
0x27, 0xd0, 0xcc, 0x65, 0xb9, 0xa1, 0x5a, 0xdf, 0x34, 0xd8, 0x1b, 0x08, 0xc1, 0xa3, 0xdd, 0x4e,
|
||||
0xfd, 0x78, 0xd4, 0xf4, 0x01, 0x2e, 0xa8, 0xe3, 0x7a, 0xe2, 0x63, 0xc9, 0x4e, 0xcf, 0xda, 0x1c,
|
||||
0xd9, 0x3d, 0xb2, 0x31, 0x0d, 0xdc, 0x71, 0x40, 0x19, 0x9d, 0xf3, 0xb6, 0x8d, 0x77, 0x0b, 0xe4,
|
||||
0x61, 0xe6, 0x6b, 0x2b, 0x71, 0x6b, 0x7b, 0xfc, 0xef, 0xed, 0xf1, 0x5d, 0x03, 0xc8, 0x28, 0xa5,
|
||||
0xb3, 0x58, 0x29, 0xa0, 0xc4, 0x6a, 0x6d, 0xf5, 0x7c, 0x6d, 0x0f, 0xa1, 0xee, 0x14, 0xeb, 0x27,
|
||||
0x0d, 0xaa, 0xf6, 0xe5, 0xbc, 0xf6, 0x26, 0x6c, 0x45, 0x95, 0x1a, 0xb9, 0x73, 0x14, 0x95, 0x2b,
|
||||
0xd9, 0x12, 0x5b, 0x3f, 0x34, 0x20, 0x45, 0xb9, 0x36, 0x9c, 0xa6, 0x27, 0x39, 0x8d, 0x75, 0x11,
|
||||
0xf3, 0x7c, 0xa5, 0xc6, 0x3c, 0xf0, 0x3d, 0x8e, 0x6b, 0x44, 0x7e, 0x0d, 0x8d, 0x30, 0x63, 0x93,
|
||||
0xdc, 0x2b, 0x44, 0x99, 0xcd, 0xc9, 0x92, 0xad, 0xba, 0x75, 0x7f, 0xeb, 0xb0, 0x73, 0x2e, 0x5c,
|
||||
0x2e, 0x91, 0xdd, 0xbb, 0x13, 0x24, 0xc7, 0xd0, 0x50, 0xee, 0x08, 0x72, 0x90, 0xee, 0x90, 0xbf,
|
||||
0x84, 0xcc, 0xff, 0x57, 0xda, 0x79, 0x40, 0xde, 0x40, 0x5d, 0x8e, 0x5d, 0xb2, 0x2f, 0x73, 0x57,
|
||||
0x6e, 0x03, 0xf3, 0xbf, 0x15, 0xd6, 0x38, 0x52, 0xce, 0xc2, 0x2c, 0x52, 0x1d, 0xbf, 0x59, 0x64,
|
||||
0x7e, 0x68, 0x76, 0xa0, 0x1a, 0x0f, 0x0b, 0xb2, 0x97, 0x3a, 0xc8, 0x79, 0x68, 0x92, 0xa2, 0x89,
|
||||
0x07, 0x51, 0x92, 0x4a, 0xd3, 0x64, 0x49, 0xe6, 0xe7, 0x45, 0x96, 0x64, 0xb1, 0xc3, 0x06, 0xe2,
|
||||
0x52, 0x56, 0xaa, 0x4f, 0x1e, 0x29, 0x7a, 0xe4, 0x9b, 0xc8, 0x34, 0xd7, 0x2d, 0xf1, 0xe0, 0xc3,
|
||||
0xde, 0xe7, 0x66, 0x3b, 0xf9, 0xfb, 0x79, 0x1b, 0x3f, 0xae, 0xab, 0xe2, 0xd7, 0xe6, 0xd5, 0x9f,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x36, 0xc4, 0xe9, 0x1c, 0x09, 0x00, 0x00,
|
||||
}
|
||||
|
@ -64,12 +64,13 @@ message SetTagResp {
|
||||
}
|
||||
|
||||
message SendMsg2TagReq {
|
||||
string tagID = 1;
|
||||
string sendID = 2;
|
||||
int32 senderPlatformID = 3;
|
||||
string content = 4;
|
||||
int32 contentType = 5;
|
||||
string operationID = 6;
|
||||
repeated string tagList = 1;
|
||||
repeated string UserList = 2;
|
||||
repeated string GroupList = 3;
|
||||
string sendID = 4;
|
||||
int32 senderPlatformID = 5;
|
||||
string content = 6;
|
||||
string operationID = 7;
|
||||
}
|
||||
|
||||
message SendMsg2TagResp {
|
||||
@ -83,9 +84,9 @@ message GetTagSendLogsReq {
|
||||
}
|
||||
|
||||
message TagSendLog {
|
||||
string tagID = 1;
|
||||
string tagName = 2;
|
||||
int32 contentType = 3;
|
||||
repeated string userList = 1;
|
||||
repeated string tagList = 2;
|
||||
repeated string groupList =3;
|
||||
string content = 4;
|
||||
int64 sendTime = 5;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user