From 64bb44d18139c94a37a73d96968ae52990dcf26e Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Tue, 25 Apr 2023 17:40:01 +0800 Subject: [PATCH] group --- pkg/rpcclient/notification2/group.go | 377 +++------------------------ 1 file changed, 31 insertions(+), 346 deletions(-) diff --git a/pkg/rpcclient/notification2/group.go b/pkg/rpcclient/notification2/group.go index e8d3c044f..b81230e83 100644 --- a/pkg/rpcclient/notification2/group.go +++ b/pkg/rpcclient/notification2/group.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "fmt" - "github.com/OpenIMSDK/Open-IM-Server/pkg/common/config" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller" "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation" @@ -18,6 +17,7 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient" "github.com/OpenIMSDK/Open-IM-Server/pkg/utils" "github.com/golang/protobuf/proto" + "time" ) func NewGroupNotificationSender(db controller.GroupDatabase, sdr discoveryregistry.SvcDiscoveryRegistry, fn func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error)) *GroupNotificationSender { @@ -29,8 +29,7 @@ func NewGroupNotificationSender(db controller.GroupDatabase, sdr discoveryregist } type GroupNotificationSender struct { - msgClient *rpcclient.MsgClient - // 找不到报错 + msgClient *rpcclient.MsgClient getUsersInfo func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error) db controller.GroupDatabase } @@ -218,77 +217,19 @@ func (g *GroupNotificationSender) getFromToUserNickname(ctx context.Context, fro } func (g *GroupNotificationSender) groupNotification(ctx context.Context, contentType int32, m proto.Message, sendID, groupID, recvUserID string) (err error) { - var tips sdkws.TipsComm - tips.Detail, err = json.Marshal(m) + content, err := json.Marshal(m) if err != nil { return err } - tips.JsonDetail = string(tips.Detail) - //marshaler := jsonpb.Marshaler{ - // OrigName: true, - // EnumsAsInts: false, - // EmitDefaults: false, - //} - //tips.JsonDetail, err = marshaler.MarshalToString(m) - if err != nil { - return err - } - fromUserNickname, toUserNickname, err := g.getFromToUserNickname(ctx, sendID, recvUserID) - if err != nil { - return err - } - //cn := config.Config.Notification - switch contentType { - case constant.GroupCreatedNotification: - tips.DefaultTips = fromUserNickname - case constant.GroupInfoSetNotification: - tips.DefaultTips = fromUserNickname - case constant.JoinGroupApplicationNotification: - tips.DefaultTips = fromUserNickname - case constant.MemberQuitNotification: - tips.DefaultTips = fromUserNickname - case constant.GroupApplicationAcceptedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupApplicationRejectedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupOwnerTransferredNotification: - tips.DefaultTips = toUserNickname - case constant.MemberKickedNotification: - tips.DefaultTips = toUserNickname - case constant.MemberInvitedNotification: - tips.DefaultTips = toUserNickname - case constant.MemberEnterNotification: - tips.DefaultTips = toUserNickname - case constant.GroupDismissedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMutedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupCancelMutedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMemberMutedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMemberCancelMutedNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMemberInfoSetNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMemberSetToAdminNotification: - tips.DefaultTips = toUserNickname - case constant.GroupMemberSetToOrdinaryUserNotification: - tips.DefaultTips = toUserNickname - default: - return errs.ErrInternalServer.Wrap("unknown group notification type") - } - var n rpcclient.NotificationMsg - n.SendID = sendID - n.RecvID = recvUserID - n.ContentType = contentType - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.Content, err = json.Marshal(&tips) - if err != nil { - return + notificationMsg := rpcclient.NotificationMsg{ + SendID: sendID, + RecvID: recvUserID, + ContentType: contentType, + SessionType: constant.GroupChatType, + MsgFrom: constant.SysMsgType, + Content: content, } - return g.msgClient.Notification(ctx, &n) + return g.msgClient.Notification(ctx, ¬ificationMsg) } func (g *GroupNotificationSender) GroupCreatedNotification(ctx context.Context, group *relation.GroupModel, members []*relation.GroupMemberModel, userMap map[string]*sdkws.UserInfo) (err error) { @@ -768,17 +709,6 @@ func (g *GroupNotificationSender) MemberEnterDirectlyNotification(ctx context.Co return g.groupNotification(ctx, constant.GroupMemberCancelMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") } -type NotificationMsg struct { - SendID string - RecvID string - Content []byte // sdkws.TipsComm - MsgFrom int32 - ContentType int32 - SessionType int32 - SenderNickname string - SenderFaceURL string -} - func (g *GroupNotificationSender) SuperGroupNotification(ctx context.Context, sendID, recvID string) (err error) { defer log.ZDebug(ctx, "return") defer func() { @@ -786,270 +716,25 @@ func (g *GroupNotificationSender) SuperGroupNotification(ctx context.Context, se log.ZError(ctx, utils.GetFuncName(1)+" failed", err) } }() - n := &NotificationMsg{ - SendID: sendID, - RecvID: recvID, - MsgFrom: constant.SysMsgType, - ContentType: constant.SuperGroupUpdateNotification, - SessionType: constant.SingleChatType, - } - return g.Notification(ctx, n) -} - -func (g *GroupNotificationSender) Notification(ctx context.Context, notificationMsg *NotificationMsg) error { - var err error - var req msg.SendMsgReq - var msg sdkws.MsgData - var offlineInfo sdkws.OfflinePushInfo - var title, desc, ex string - var pushSwitch, unReadCount bool - var reliabilityLevel int - msg.SendID = notificationMsg.SendID - msg.RecvID = notificationMsg.RecvID - msg.Content = notificationMsg.Content - msg.MsgFrom = notificationMsg.MsgFrom - msg.ContentType = notificationMsg.ContentType - msg.SessionType = notificationMsg.SessionType - msg.CreateTime = utils.GetCurrentTimestampByMill() - msg.ClientMsgID = utils.GetMsgID(notificationMsg.SendID) - msg.Options = make(map[string]bool, 7) - msg.SenderNickname = notificationMsg.SenderNickname - msg.SenderFaceURL = notificationMsg.SenderFaceURL - switch notificationMsg.SessionType { - case constant.GroupChatType, constant.SuperGroupChatType: - msg.RecvID = "" - msg.GroupID = notificationMsg.RecvID - } - offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount - offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound - switch msg.ContentType { - case constant.GroupCreatedNotification: - //pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch - title = config.Config.Notification.GroupCreated.OfflinePush.Title - desc = config.Config.Notification.GroupCreated.OfflinePush.Desc - ex = config.Config.Notification.GroupCreated.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupCreated.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupCreated.Conversation.UnreadCount - case constant.GroupInfoSetNotification: - //pushSwitch = config.Config.Notification.GroupInfoSet.OfflinePush.PushSwitch - title = config.Config.Notification.GroupInfoSet.OfflinePush.Title - desc = config.Config.Notification.GroupInfoSet.OfflinePush.Desc - ex = config.Config.Notification.GroupInfoSet.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupInfoSet.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupInfoSet.Conversation.UnreadCount - case constant.JoinGroupApplicationNotification: - //pushSwitch = config.Config.Notification.JoinGroupApplication.OfflinePush.PushSwitch - title = config.Config.Notification.JoinGroupApplication.OfflinePush.Title - desc = config.Config.Notification.JoinGroupApplication.OfflinePush.Desc - ex = config.Config.Notification.JoinGroupApplication.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.JoinGroupApplication.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.JoinGroupApplication.Conversation.UnreadCount - case constant.MemberQuitNotification: - //pushSwitch = config.Config.Notification.MemberQuit.OfflinePush.PushSwitch - title = config.Config.Notification.MemberQuit.OfflinePush.Title - desc = config.Config.Notification.MemberQuit.OfflinePush.Desc - ex = config.Config.Notification.MemberQuit.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.MemberQuit.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.MemberQuit.Conversation.UnreadCount - case constant.GroupApplicationAcceptedNotification: - //pushSwitch = config.Config.Notification.GroupApplicationAccepted.OfflinePush.PushSwitch - title = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Title - desc = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Desc - ex = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupApplicationAccepted.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupApplicationAccepted.Conversation.UnreadCount - case constant.GroupApplicationRejectedNotification: - //pushSwitch = config.Config.Notification.GroupApplicationRejected.OfflinePush.PushSwitch - title = config.Config.Notification.GroupApplicationRejected.OfflinePush.Title - desc = config.Config.Notification.GroupApplicationRejected.OfflinePush.Desc - ex = config.Config.Notification.GroupApplicationRejected.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupApplicationRejected.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupApplicationRejected.Conversation.UnreadCount - case constant.GroupOwnerTransferredNotification: - //pushSwitch = config.Config.Notification.GroupOwnerTransferred.OfflinePush.PushSwitch - title = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Title - desc = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Desc - ex = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupOwnerTransferred.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupOwnerTransferred.Conversation.UnreadCount - case constant.MemberKickedNotification: - //pushSwitch = config.Config.Notification.MemberKicked.OfflinePush.PushSwitch - title = config.Config.Notification.MemberKicked.OfflinePush.Title - desc = config.Config.Notification.MemberKicked.OfflinePush.Desc - ex = config.Config.Notification.MemberKicked.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.MemberKicked.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.MemberKicked.Conversation.UnreadCount - case constant.MemberInvitedNotification: - //pushSwitch = config.Config.Notification.MemberInvited.OfflinePush.PushSwitch - title = config.Config.Notification.MemberInvited.OfflinePush.Title - desc = config.Config.Notification.MemberInvited.OfflinePush.Desc - ex = config.Config.Notification.MemberInvited.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.MemberInvited.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.MemberInvited.Conversation.UnreadCount - case constant.MemberEnterNotification: - //pushSwitch = config.Config.Notification.MemberEnter.OfflinePush.PushSwitch - title = config.Config.Notification.MemberEnter.OfflinePush.Title - desc = config.Config.Notification.MemberEnter.OfflinePush.Desc - ex = config.Config.Notification.MemberEnter.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.MemberEnter.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.MemberEnter.Conversation.UnreadCount - case constant.UserInfoUpdatedNotification: - //pushSwitch = config.Config.Notification.UserInfoUpdated.OfflinePush.PushSwitch - title = config.Config.Notification.UserInfoUpdated.OfflinePush.Title - desc = config.Config.Notification.UserInfoUpdated.OfflinePush.Desc - ex = config.Config.Notification.UserInfoUpdated.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.UserInfoUpdated.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.UserInfoUpdated.Conversation.UnreadCount - case constant.FriendApplicationNotification: - //pushSwitch = config.Config.Notification.FriendApplication.OfflinePush.PushSwitch - title = config.Config.Notification.FriendApplication.OfflinePush.Title - desc = config.Config.Notification.FriendApplication.OfflinePush.Desc - ex = config.Config.Notification.FriendApplication.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendApplication.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendApplication.Conversation.UnreadCount - case constant.FriendApplicationApprovedNotification: - //pushSwitch = config.Config.Notification.FriendApplicationApproved.OfflinePush.PushSwitch - title = config.Config.Notification.FriendApplicationApproved.OfflinePush.Title - desc = config.Config.Notification.FriendApplicationApproved.OfflinePush.Desc - ex = config.Config.Notification.FriendApplicationApproved.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendApplicationApproved.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendApplicationApproved.Conversation.UnreadCount - case constant.FriendApplicationRejectedNotification: - //pushSwitch = config.Config.Notification.FriendApplicationRejected.OfflinePush.PushSwitch - title = config.Config.Notification.FriendApplicationRejected.OfflinePush.Title - desc = config.Config.Notification.FriendApplicationRejected.OfflinePush.Desc - ex = config.Config.Notification.FriendApplicationRejected.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendApplicationRejected.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendApplicationRejected.Conversation.UnreadCount - case constant.FriendAddedNotification: - //pushSwitch = config.Config.Notification.FriendAdded.OfflinePush.PushSwitch - title = config.Config.Notification.FriendAdded.OfflinePush.Title - desc = config.Config.Notification.FriendAdded.OfflinePush.Desc - ex = config.Config.Notification.FriendAdded.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendAdded.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendAdded.Conversation.UnreadCount - case constant.FriendDeletedNotification: - //pushSwitch = config.Config.Notification.FriendDeleted.OfflinePush.PushSwitch - title = config.Config.Notification.FriendDeleted.OfflinePush.Title - desc = config.Config.Notification.FriendDeleted.OfflinePush.Desc - ex = config.Config.Notification.FriendDeleted.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendDeleted.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendDeleted.Conversation.UnreadCount - case constant.FriendRemarkSetNotification: - //pushSwitch = config.Config.Notification.FriendRemarkSet.OfflinePush.PushSwitch - title = config.Config.Notification.FriendRemarkSet.OfflinePush.Title - desc = config.Config.Notification.FriendRemarkSet.OfflinePush.Desc - ex = config.Config.Notification.FriendRemarkSet.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendRemarkSet.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendRemarkSet.Conversation.UnreadCount - case constant.BlackAddedNotification: - //pushSwitch = config.Config.Notification.BlackAdded.OfflinePush.PushSwitch - title = config.Config.Notification.BlackAdded.OfflinePush.Title - desc = config.Config.Notification.BlackAdded.OfflinePush.Desc - ex = config.Config.Notification.BlackAdded.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.BlackAdded.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.BlackAdded.Conversation.UnreadCount - case constant.BlackDeletedNotification: - //pushSwitch = config.Config.Notification.BlackDeleted.OfflinePush.PushSwitch - title = config.Config.Notification.BlackDeleted.OfflinePush.Title - desc = config.Config.Notification.BlackDeleted.OfflinePush.Desc - ex = config.Config.Notification.BlackDeleted.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.BlackDeleted.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.BlackDeleted.Conversation.UnreadCount - case constant.ConversationOptChangeNotification: - //pushSwitch = config.Config.Notification.ConversationOptUpdate.OfflinePush.PushSwitch - title = config.Config.Notification.ConversationOptUpdate.OfflinePush.Title - desc = config.Config.Notification.ConversationOptUpdate.OfflinePush.Desc - ex = config.Config.Notification.ConversationOptUpdate.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.ConversationOptUpdate.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.ConversationOptUpdate.Conversation.UnreadCount - - case constant.GroupDismissedNotification: - //pushSwitch = config.Config.Notification.GroupDismissed.OfflinePush.PushSwitch - title = config.Config.Notification.GroupDismissed.OfflinePush.Title - desc = config.Config.Notification.GroupDismissed.OfflinePush.Desc - 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 - - case constant.GroupMemberInfoSetNotification: - //pushSwitch = config.Config.Notification.GroupMemberInfoSet.OfflinePush.PushSwitch - title = config.Config.Notification.GroupMemberInfoSet.OfflinePush.Title - desc = config.Config.Notification.GroupMemberInfoSet.OfflinePush.Desc - ex = config.Config.Notification.GroupMemberInfoSet.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.GroupMemberInfoSet.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.GroupMemberInfoSet.Conversation.UnreadCount - - case constant.ConversationPrivateChatNotification: - //pushSwitch = config.Config.Notification.ConversationSetPrivate.OfflinePush.PushSwitch - title = config.Config.Notification.ConversationSetPrivate.OfflinePush.Title - desc = config.Config.Notification.ConversationSetPrivate.OfflinePush.Desc - ex = config.Config.Notification.ConversationSetPrivate.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.ConversationSetPrivate.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.ConversationSetPrivate.Conversation.UnreadCount - case constant.FriendInfoUpdatedNotification: - //pushSwitch = config.Config.Notification.FriendInfoUpdated.OfflinePush.PushSwitch - title = config.Config.Notification.FriendInfoUpdated.OfflinePush.Title - desc = config.Config.Notification.FriendInfoUpdated.OfflinePush.Desc - ex = config.Config.Notification.FriendInfoUpdated.OfflinePush.Ext - //reliabilityLevel = config.Config.Notification.FriendInfoUpdated.Conversation.ReliabilityLevel - //unReadCount = config.Config.Notification.FriendInfoUpdated.Conversation.UnreadCount - case constant.DeleteMessageNotification: - //reliabilityLevel = constant.ReliableNotificationNoMsg - case constant.ConversationUnreadNotification, constant.SuperGroupUpdateNotification: - //reliabilityLevel = constant.UnreliableNotification - } - switch reliabilityLevel { - //case constant.UnreliableNotification: - // utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) - // utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) - // utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) - // utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) - //case constant.ReliableNotificationNoMsg: - // utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) - // utils.SetSwitchFromOptions(msg.Options, constant.IsSenderConversationUpdate, false) - //case constant.ReliableNotificationMsg: - - } - utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, unReadCount) - utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) - offlineInfo.Title = title - offlineInfo.Desc = desc - offlineInfo.Ex = ex - msg.OfflinePushInfo = &offlineInfo - req.MsgData = &msg - _, err = g.msgClient.SendMsg(ctx, &req) + req := &msg.SendMsgReq{ + MsgData: &sdkws.MsgData{ + SendID: sendID, + RecvID: recvID, + Content: nil, + MsgFrom: constant.SysMsgType, + ContentType: constant.SuperGroupUpdateNotification, + SessionType: constant.SingleChatType, + CreateTime: time.Now().UnixMilli(), + ClientMsgID: utils.GetMsgID(sendID), + SenderNickname: "", + SenderFaceURL: "", + OfflinePushInfo: &sdkws.OfflinePushInfo{ + Title: "", + Desc: "", + Ex: "", + }, + }, + } + _, err = g.msgClient.SendMsg(ctx, req) return err }