From f0a8b828be1c4f702e18704d3b487499059e89c9 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Wed, 26 Apr 2023 15:42:43 +0800 Subject: [PATCH 1/2] group --- pkg/rpcclient/msg.go | 53 +++++++++++++++++++--- pkg/rpcclient/notification/conevrsation.go | 6 +-- pkg/rpcclient/notification/friend.go | 20 ++++---- pkg/rpcclient/notification/group.go | 15 +++--- 4 files changed, 67 insertions(+), 27 deletions(-) diff --git a/pkg/rpcclient/msg.go b/pkg/rpcclient/msg.go index 47958518a..c9cb2d9de 100644 --- a/pkg/rpcclient/msg.go +++ b/pkg/rpcclient/msg.go @@ -56,13 +56,54 @@ func newContentTypeConf() map[int32]config.NotificationConf { } } +func newSessionTypeConf() map[int32]int32 { + return map[int32]int32{ + // group + constant.GroupCreatedNotification: constant.SuperGroupChatType, + constant.GroupInfoSetNotification: constant.SuperGroupChatType, + constant.JoinGroupApplicationNotification: constant.SuperGroupChatType, + constant.MemberQuitNotification: constant.SingleChatType, + constant.GroupApplicationAcceptedNotification: constant.SingleChatType, + constant.GroupApplicationRejectedNotification: constant.SingleChatType, + constant.GroupOwnerTransferredNotification: constant.SuperGroupChatType, + constant.MemberKickedNotification: constant.SuperGroupChatType, + constant.MemberInvitedNotification: constant.SuperGroupChatType, + constant.MemberEnterNotification: constant.SuperGroupChatType, + constant.GroupDismissedNotification: constant.SuperGroupChatType, + constant.GroupMutedNotification: constant.SuperGroupChatType, + constant.GroupCancelMutedNotification: constant.SuperGroupChatType, + constant.GroupMemberMutedNotification: constant.SuperGroupChatType, + constant.GroupMemberCancelMutedNotification: constant.SuperGroupChatType, + constant.GroupMemberInfoSetNotification: constant.SuperGroupChatType, + constant.GroupMemberSetToAdminNotification: constant.SuperGroupChatType, + constant.GroupMemberSetToOrdinaryUserNotification: constant.SuperGroupChatType, + // user + constant.UserInfoUpdatedNotification: constant.SingleChatType, + // friend + constant.FriendApplicationNotification: constant.SingleChatType, + constant.FriendApplicationApprovedNotification: constant.SingleChatType, + constant.FriendApplicationRejectedNotification: constant.SingleChatType, + constant.FriendAddedNotification: constant.SingleChatType, + constant.FriendDeletedNotification: constant.SingleChatType, + constant.FriendRemarkSetNotification: constant.SingleChatType, + constant.BlackAddedNotification: constant.SingleChatType, + constant.BlackDeletedNotification: constant.SingleChatType, + constant.FriendInfoUpdatedNotification: constant.SingleChatType, + // conversation + constant.ConversationChangeNotification: constant.SingleChatType, + constant.ConversationUnreadNotification: constant.SingleChatType, + constant.ConversationPrivateChatNotification: constant.SingleChatType, + } +} + type MsgClient struct { *MetaClient contentTypeConf map[int32]config.NotificationConf + sessionTypeConf map[int32]int32 } func NewMsgClient(zk discoveryregistry.SvcDiscoveryRegistry) *MsgClient { - return &MsgClient{MetaClient: NewMetaClient(zk, config.Config.RpcRegisterName.OpenImMsgName), contentTypeConf: newContentTypeConf()} + return &MsgClient{MetaClient: NewMetaClient(zk, config.Config.RpcRegisterName.OpenImMsgName), contentTypeConf: newContentTypeConf(), sessionTypeConf: newSessionTypeConf()} } func (m *MsgClient) SendMsg(ctx context.Context, req *msg.SendMsgReq) (*msg.SendMsgResp, error) { @@ -92,7 +133,7 @@ func (m *MsgClient) PullMessageBySeqList(ctx context.Context, req *sdkws.PullMes return resp, err } -func (c *MsgClient) Notification(ctx context.Context, sendID, recvID string, contentType, sessionType int32, m proto.Message, opts ...utils.OptionsOpt) error { +func (c *MsgClient) Notification(ctx context.Context, sendID, recvID string, contentType int32, m proto.Message, opts ...utils.OptionsOpt) error { content, err := json.Marshal(m) if err != nil { log.ZError(ctx, "MsgClient Notification json.Marshal failed", err) @@ -104,13 +145,13 @@ func (c *MsgClient) Notification(ctx context.Context, sendID, recvID string, con var title, desc, ex string msg.SendID = sendID msg.RecvID = recvID - if sessionType == constant.SuperGroupChatType { - msg.GroupID = recvID - } msg.Content = content msg.MsgFrom = constant.SysMsgType msg.ContentType = contentType - msg.SessionType = sessionType + msg.SessionType = c.sessionTypeConf[contentType] + if msg.SessionType == constant.SuperGroupChatType { + msg.GroupID = recvID + } msg.CreateTime = utils.GetCurrentTimestampByMill() msg.ClientMsgID = utils.GetMsgID(sendID) // msg.Options = make(map[string]bool, 7) diff --git a/pkg/rpcclient/notification/conevrsation.go b/pkg/rpcclient/notification/conevrsation.go index b0307cea2..99cba92fe 100644 --- a/pkg/rpcclient/notification/conevrsation.go +++ b/pkg/rpcclient/notification/conevrsation.go @@ -24,7 +24,7 @@ func (c *ConversationNotificationSender) ConversationSetPrivateNotification(ctx SendID: sendID, IsPrivate: isPrivateChat, } - return c.Notification(ctx, sendID, recvID, constant.ConversationPrivateChatNotification, constant.SingleChatType, tips) + return c.Notification(ctx, sendID, recvID, constant.ConversationPrivateChatNotification, tips) } // 会话改变 @@ -32,7 +32,7 @@ func (c *ConversationNotificationSender) ConversationChangeNotification(ctx cont tips := &sdkws.ConversationUpdateTips{ UserID: userID, } - return c.Notification(ctx, userID, userID, constant.ConversationChangeNotification, constant.SingleChatType, tips) + return c.Notification(ctx, userID, userID, constant.ConversationChangeNotification, tips) } // 会话未读数同步 @@ -42,5 +42,5 @@ func (c *ConversationNotificationSender) ConversationUnreadChangeNotification(ct ConversationIDList: []string{conversationID}, UpdateUnreadCountTime: updateUnreadCountTime, } - return c.Notification(ctx, userID, userID, constant.ConversationUnreadNotification, constant.SingleChatType, tips) + return c.Notification(ctx, userID, userID, constant.ConversationUnreadNotification, tips) } diff --git a/pkg/rpcclient/notification/friend.go b/pkg/rpcclient/notification/friend.go index 63afbb0b2..7e0e48c84 100644 --- a/pkg/rpcclient/notification/friend.go +++ b/pkg/rpcclient/notification/friend.go @@ -92,7 +92,7 @@ func (f *FriendNotificationSender) getFromToUserNickname(ctx context.Context, fr func (f *FriendNotificationSender) UserInfoUpdatedNotification(ctx context.Context, opUserID string, changedUserID string) error { tips := sdkws.UserInfoUpdatedTips{UserID: changedUserID} - return f.Notification(ctx, opUserID, changedUserID, constant.SingleChatType, constant.UserInfoUpdatedNotification, &tips) + return f.Notification(ctx, opUserID, changedUserID, constant.UserInfoUpdatedNotification, &tips) } func (f *FriendNotificationSender) FriendApplicationAddNotification(ctx context.Context, req *pbFriend.ApplyToAddFriendReq) error { @@ -100,7 +100,7 @@ func (f *FriendNotificationSender) FriendApplicationAddNotification(ctx context. FromUserID: req.FromUserID, ToUserID: req.ToUserID, }} - return f.Notification(ctx, req.FromUserID, req.ToUserID, constant.SingleChatType, constant.FriendApplicationNotification, &tips) + return f.Notification(ctx, req.FromUserID, req.ToUserID, constant.FriendApplicationNotification, &tips) } func (c *FriendNotificationSender) FriendApplicationAgreedNotification(ctx context.Context, req *pbFriend.RespondFriendApplyReq) error { @@ -108,7 +108,7 @@ func (c *FriendNotificationSender) FriendApplicationAgreedNotification(ctx conte FromUserID: req.FromUserID, ToUserID: req.ToUserID, }, HandleMsg: req.HandleMsg} - return c.Notification(ctx, req.ToUserID, req.FromUserID, constant.SingleChatType, constant.FriendApplicationApprovedNotification, &tips) + return c.Notification(ctx, req.ToUserID, req.FromUserID, constant.FriendApplicationApprovedNotification, &tips) } func (c *FriendNotificationSender) FriendApplicationRefusedNotification(ctx context.Context, req *pbFriend.RespondFriendApplyReq) error { @@ -116,7 +116,7 @@ func (c *FriendNotificationSender) FriendApplicationRefusedNotification(ctx cont FromUserID: req.FromUserID, ToUserID: req.ToUserID, }, HandleMsg: req.HandleMsg} - return c.Notification(ctx, req.ToUserID, req.FromUserID, constant.SingleChatType, constant.FriendApplicationRejectedNotification, &tips) + return c.Notification(ctx, req.ToUserID, req.FromUserID, constant.FriendApplicationRejectedNotification, &tips) } func (c *FriendNotificationSender) FriendAddedNotification(ctx context.Context, operationID, opUserID, fromUserID, toUserID string) error { @@ -137,7 +137,7 @@ func (c *FriendNotificationSender) FriendAddedNotification(ctx context.Context, if err != nil { return err } - return c.Notification(ctx, fromUserID, toUserID, constant.SingleChatType, constant.FriendAddedNotification, &tips) + return c.Notification(ctx, fromUserID, toUserID, constant.FriendAddedNotification, &tips) } func (c *FriendNotificationSender) FriendDeletedNotification(ctx context.Context, req *pbFriend.DeleteFriendReq) error { @@ -145,21 +145,21 @@ func (c *FriendNotificationSender) FriendDeletedNotification(ctx context.Context FromUserID: req.OwnerUserID, ToUserID: req.FriendUserID, }} - return c.Notification(ctx, req.OwnerUserID, req.FriendUserID, constant.SingleChatType, constant.FriendDeletedNotification, &tips) + return c.Notification(ctx, req.OwnerUserID, req.FriendUserID, constant.FriendDeletedNotification, &tips) } func (c *FriendNotificationSender) FriendRemarkSetNotification(ctx context.Context, fromUserID, toUserID string) error { tips := sdkws.FriendInfoChangedTips{FromToUserID: &sdkws.FromToUserID{}} tips.FromToUserID.FromUserID = fromUserID tips.FromToUserID.ToUserID = toUserID - return c.Notification(ctx, fromUserID, toUserID, constant.SingleChatType, constant.FriendRemarkSetNotification, &tips) + return c.Notification(ctx, fromUserID, toUserID, constant.FriendRemarkSetNotification, &tips) } func (c *FriendNotificationSender) BlackAddedNotification(ctx context.Context, req *pbFriend.AddBlackReq) error { tips := sdkws.BlackAddedTips{FromToUserID: &sdkws.FromToUserID{}} tips.FromToUserID.FromUserID = req.OwnerUserID tips.FromToUserID.ToUserID = req.BlackUserID - return c.Notification(ctx, req.OwnerUserID, req.BlackUserID, constant.SingleChatType, constant.BlackAddedNotification, &tips) + return c.Notification(ctx, req.OwnerUserID, req.BlackUserID, constant.BlackAddedNotification, &tips) } func (c *FriendNotificationSender) BlackDeletedNotification(ctx context.Context, req *pbFriend.RemoveBlackReq) { @@ -167,10 +167,10 @@ func (c *FriendNotificationSender) BlackDeletedNotification(ctx context.Context, FromUserID: req.OwnerUserID, ToUserID: req.BlackUserID, }} - c.Notification(ctx, req.OwnerUserID, req.BlackUserID, constant.SingleChatType, constant.BlackDeletedNotification, &blackDeletedTips) + c.Notification(ctx, req.OwnerUserID, req.BlackUserID, constant.BlackDeletedNotification, &blackDeletedTips) } func (c *FriendNotificationSender) FriendInfoUpdatedNotification(ctx context.Context, changedUserID string, needNotifiedUserID string, opUserID string) { tips := sdkws.UserInfoUpdatedTips{UserID: changedUserID} - c.Notification(ctx, opUserID, needNotifiedUserID, constant.SingleChatType, constant.FriendInfoUpdatedNotification, &tips) + c.Notification(ctx, opUserID, needNotifiedUserID, constant.FriendInfoUpdatedNotification, &tips) } diff --git a/pkg/rpcclient/notification/group.go b/pkg/rpcclient/notification/group.go index b72be12c4..167ce40a7 100644 --- a/pkg/rpcclient/notification/group.go +++ b/pkg/rpcclient/notification/group.go @@ -322,11 +322,11 @@ func (g *GroupNotificationSender) GroupInfoSetNotification(ctx context.Context, if err != nil { return err } - groupInfoChangedTips := &sdkws.GroupInfoSetTips{Group: groupInfo.Group, OpUser: groupInfo.GroupOwnerUser} + tips := &sdkws.GroupInfoSetTips{Group: groupInfo.Group, OpUser: groupInfo.GroupOwnerUser} if needVerification != nil { - groupInfoChangedTips.Group.NeedVerification = *needVerification + tips.Group.NeedVerification = *needVerification } - return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupInfoSetNotification, constant.SuperGroupChatType, groupInfoChangedTips) + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupInfoSetNotification, tips) } // #################################### @@ -350,10 +350,9 @@ func (g *GroupNotificationSender) JoinGroupApplicationNotification(ctx context.C if err != nil { return err } - joinGroupApplicationTips := &sdkws.JoinGroupApplicationTips{Group: group, Applicant: user, ReqMsg: req.ReqMessage} + tips := &sdkws.JoinGroupApplicationTips{Group: group, Applicant: user, ReqMsg: req.ReqMessage} for _, userID := range userIDs { - err := g.groupNotification(ctx, constant.JoinGroupApplicationNotification, joinGroupApplicationTips, mcontext.GetOpUserID(ctx), "", userID) - err = g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.JoinGroupApplicationNotification, constant.SuperGroupChatType, joinGroupApplicationTips) + err = g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.JoinGroupApplicationNotification, tips) if err != nil { log.ZError(ctx, "JoinGroupApplicationNotification failed", err, "group", req.GroupID, "userID", userID) } @@ -382,14 +381,14 @@ func (g *GroupNotificationSender) MemberQuitNotification(ctx context.Context, re if err != nil { return err } - memberQuitTips := &sdkws.MemberQuitTips{Group: group, QuitUser: &sdkws.GroupMemberFullInfo{ + tips := &sdkws.MemberQuitTips{Group: group, QuitUser: &sdkws.GroupMemberFullInfo{ GroupID: group.GroupID, UserID: user.UserID, Nickname: user.Nickname, FaceURL: user.FaceURL, }} for _, userID := range append(userIDs, opUserID) { - err := g.groupNotification(ctx, constant.MemberQuitNotification, memberQuitTips, mcontext.GetOpUserID(ctx), "", userID) + err = g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), userID, constant.MemberQuitNotification, tips) if err != nil { return err } From 508cdf06ba95c8a2ed4888cb18b1a462c33fabb2 Mon Sep 17 00:00:00 2001 From: withchao <993506633@qq.com> Date: Wed, 26 Apr 2023 16:14:50 +0800 Subject: [PATCH 2/2] group --- pkg/rpcclient/notification/group.go | 115 ++++++++++------------------ 1 file changed, 41 insertions(+), 74 deletions(-) diff --git a/pkg/rpcclient/notification/group.go b/pkg/rpcclient/notification/group.go index 167ce40a7..67fb499c3 100644 --- a/pkg/rpcclient/notification/group.go +++ b/pkg/rpcclient/notification/group.go @@ -17,7 +17,6 @@ import ( "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/sdkws" "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient" "github.com/OpenIMSDK/Open-IM-Server/pkg/utils" - "github.com/golang/protobuf/proto" ) func NewGroupNotificationSender(db controller.GroupDatabase, sdr discoveryregistry.SvcDiscoveryRegistry, fn func(ctx context.Context, userIDs []string) ([]rpcclient.CommonUser, error)) *GroupNotificationSender { @@ -216,38 +215,6 @@ func (g *GroupNotificationSender) getFromToUserNickname(ctx context.Context, fro return users[fromUserID].Nickname, users[toUserID].Nickname, nil } -func (g *GroupNotificationSender) groupNotification(ctx context.Context, contentType int32, m proto.Message, sendID, groupID, recvUserID string) (err error) { - //content, err := json.Marshal(m) - //if err != nil { - // return err - //} - //notificationMsg := rpcclient.NotificationMsg{ - // SendID: sendID, - // RecvID: recvUserID, - // ContentType: contentType, - // SessionType: constant.GroupChatType, - // MsgFrom: constant.SysMsgType, - // Content: content, - //} - //return g.msgClient.Notification(ctx, ¬ificationMsg) - - return err -} - -func (g *GroupNotificationSender) GroupCreatedNotification(ctx context.Context, group *relation.GroupModel, members []*relation.GroupMemberModel, userMap map[string]*sdkws.UserInfo) (err error) { - defer log.ZDebug(ctx, "return") - defer func() { - if err != nil { - log.ZError(ctx, utils.GetFuncName(1)+" failed", err) - } - }() - groupInfo, err := g.mergeGroupFull(ctx, group.GroupID, group, &members, &userMap) - if err != nil { - return err - } - return g.groupNotification(ctx, constant.GroupCreatedNotification, groupInfo, mcontext.GetOpUserID(ctx), group.GroupID, "") -} - func (g *GroupNotificationSender) mergeGroupFull(ctx context.Context, groupID string, group *relation.GroupModel, ms *[]*relation.GroupMemberModel, users *map[string]*sdkws.UserInfo) (groupInfo *sdkws.GroupCreatedTips, err error) { defer log.ZDebug(ctx, "return") defer func() { @@ -317,6 +284,20 @@ func (g *GroupNotificationSender) mergeGroupFull(ctx context.Context, groupID st return groupInfo, nil } +func (g *GroupNotificationSender) GroupCreatedNotification(ctx context.Context, group *relation.GroupModel, members []*relation.GroupMemberModel, userMap map[string]*sdkws.UserInfo) (err error) { + defer log.ZDebug(ctx, "return") + defer func() { + if err != nil { + log.ZError(ctx, utils.GetFuncName(1)+" failed", err) + } + }() + groupInfo, err := g.mergeGroupFull(ctx, group.GroupID, group, &members, &userMap) + if err != nil { + return err + } + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupCreatedNotification, groupInfo) +} + func (g *GroupNotificationSender) GroupInfoSetNotification(ctx context.Context, group *relation.GroupModel, members []*relation.GroupMemberModel, needVerification *int32) (err error) { groupInfo, err := g.mergeGroupFull(ctx, group.GroupID, group, &members, nil) if err != nil { @@ -329,8 +310,6 @@ func (g *GroupNotificationSender) GroupInfoSetNotification(ctx context.Context, return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupInfoSetNotification, tips) } -// #################################### - func (g *GroupNotificationSender) JoinGroupApplicationNotification(ctx context.Context, req *pbGroup.JoinGroupReq) (err error) { defer log.ZDebug(ctx, "return") defer func() { @@ -415,9 +394,9 @@ func (g *GroupNotificationSender) GroupApplicationAcceptedNotification(ctx conte if err != nil { return err } - groupApplicationAcceptedTips := &sdkws.GroupApplicationAcceptedTips{Group: group, OpUser: user, HandleMsg: req.HandledMsg, ReceiverAs: 1} + tips := &sdkws.GroupApplicationAcceptedTips{Group: group, OpUser: user, HandleMsg: req.HandledMsg, ReceiverAs: 1} for _, userID := range append(userIDs, mcontext.GetOpUserID(ctx)) { - err = g.groupNotification(ctx, constant.GroupApplicationAcceptedNotification, groupApplicationAcceptedTips, mcontext.GetOpUserID(ctx), "", userID) + err = g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), userID, constant.GroupApplicationAcceptedNotification, tips) if err != nil { log.ZError(ctx, "failed", err) } @@ -444,9 +423,9 @@ func (g *GroupNotificationSender) GroupApplicationRejectedNotification(ctx conte if err != nil { return err } - groupApplicationAcceptedTips := &sdkws.GroupApplicationRejectedTips{Group: group, OpUser: user, HandleMsg: req.HandledMsg} + tips := &sdkws.GroupApplicationRejectedTips{Group: group, OpUser: user, HandleMsg: req.HandledMsg} for _, userID := range append(userIDs, mcontext.GetOpUserID(ctx)) { - err = g.groupNotification(ctx, constant.GroupApplicationRejectedNotification, groupApplicationAcceptedTips, mcontext.GetOpUserID(ctx), "", userID) + err = g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), userID, constant.GroupApplicationRejectedNotification, tips) if err != nil { log.ZError(ctx, "failed", err) } @@ -470,8 +449,8 @@ func (g *GroupNotificationSender) GroupOwnerTransferredNotification(ctx context. if err != nil { return err } - groupOwnerTransferredTips := &sdkws.GroupOwnerTransferredTips{Group: group, OpUser: member[opUserID], NewGroupOwner: member[req.NewOwnerUserID]} - return g.groupNotification(ctx, constant.GroupOwnerTransferredNotification, groupOwnerTransferredTips, mcontext.GetOpUserID(ctx), req.GroupID, "") + tips := &sdkws.GroupOwnerTransferredTips{Group: group, OpUser: member[opUserID], NewGroupOwner: member[req.NewOwnerUserID]} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupOwnerTransferredNotification, tips) } func (g *GroupNotificationSender) MemberKickedNotification(ctx context.Context, req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) (err error) { @@ -489,7 +468,7 @@ func (g *GroupNotificationSender) MemberKickedNotification(ctx context.Context, if err != nil { return err } - memberKickedTips := &sdkws.MemberKickedTips{Group: group, OpUser: user} + tips := &sdkws.MemberKickedTips{Group: group, OpUser: user} //for _, v := range kickedUserIDList { // var groupMemberInfo sdkws.GroupMemberFullInfo // if err := c.setGroupMemberInfo(ctx, req.GroupID, v, &groupMemberInfo); err != nil { @@ -497,7 +476,7 @@ func (g *GroupNotificationSender) MemberKickedNotification(ctx context.Context, // } // MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) //} - return g.groupNotification(ctx, constant.MemberKickedNotification, memberKickedTips, mcontext.GetOpUserID(ctx), req.GroupID, "") + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.MemberKickedNotification, tips) } func (g *GroupNotificationSender) MemberInvitedNotification(ctx context.Context, groupID, reason string, invitedUserIDList []string) (err error) { @@ -519,8 +498,8 @@ func (g *GroupNotificationSender) MemberInvitedNotification(ctx context.Context, if err != nil { return err } - memberInvitedTips := &sdkws.MemberInvitedTips{Group: group, OpUser: opUser, InvitedUserList: users} - return g.groupNotification(ctx, constant.MemberInvitedNotification, memberInvitedTips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.MemberInvitedTips{Group: group, OpUser: opUser, InvitedUserList: users} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.MemberInvitedNotification, tips) } func (g *GroupNotificationSender) MemberEnterNotification(ctx context.Context, req *pbGroup.GroupApplicationResponseReq) (err error) { @@ -538,20 +517,8 @@ func (g *GroupNotificationSender) MemberEnterNotification(ctx context.Context, r if err != nil { return err } - memberEnterTips := sdkws.MemberEnterTips{Group: group, EntrantUser: user} - return g.groupNotification(ctx, constant.MemberEnterNotification, &memberEnterTips, mcontext.GetOpUserID(ctx), req.GroupID, "") -} - -func (g *GroupNotificationSender) groupMemberFullInfo(members []*relation.GroupMemberModel, userMap map[string]*sdkws.UserInfo, userID string) *sdkws.GroupMemberFullInfo { - for _, member := range members { - if member.UserID == userID { - if user := userMap[member.UserID]; user != nil { - return g.groupMemberDB2PB(member, user.AppMangerLevel) - } - return g.groupMemberDB2PB(member, 0) - } - } - return nil + tips := &sdkws.MemberEnterTips{Group: group, EntrantUser: user} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.MemberEnterNotification, tips) } func (g *GroupNotificationSender) GroupDismissedNotification(ctx context.Context, req *pbGroup.DismissGroupReq) (err error) { @@ -570,7 +537,7 @@ func (g *GroupNotificationSender) GroupDismissedNotification(ctx context.Context return err } tips := &sdkws.GroupDismissedTips{Group: group, OpUser: user} - return g.groupNotification(ctx, constant.GroupDismissedNotification, tips, mcontext.GetOpUserID(ctx), req.GroupID, "") + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupDismissedNotification, tips) } func (g *GroupNotificationSender) GroupMemberMutedNotification(ctx context.Context, groupID, groupMemberUserID string, mutedSeconds uint32) (err error) { @@ -588,9 +555,9 @@ func (g *GroupNotificationSender) GroupMemberMutedNotification(ctx context.Conte if err != nil { return err } - tips := sdkws.GroupMemberMutedTips{Group: group, MutedSeconds: mutedSeconds, + tips := &sdkws.GroupMemberMutedTips{Group: group, MutedSeconds: mutedSeconds, OpUser: user[mcontext.GetOpUserID(ctx)], MutedUser: user[groupMemberUserID]} - return g.groupNotification(ctx, constant.GroupMemberMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMemberMutedNotification, tips) } func (g *GroupNotificationSender) GroupMemberCancelMutedNotification(ctx context.Context, groupID, groupMemberUserID string) (err error) { @@ -608,8 +575,8 @@ func (g *GroupNotificationSender) GroupMemberCancelMutedNotification(ctx context if err != nil { return err } - tips := sdkws.GroupMemberCancelMutedTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], MutedUser: user[groupMemberUserID]} - return g.groupNotification(ctx, constant.GroupMemberCancelMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.GroupMemberCancelMutedTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], MutedUser: user[groupMemberUserID]} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMemberCancelMutedNotification, tips) } func (g *GroupNotificationSender) GroupMutedNotification(ctx context.Context, groupID string) (err error) { @@ -627,8 +594,8 @@ func (g *GroupNotificationSender) GroupMutedNotification(ctx context.Context, gr if err != nil { return err } - tips := sdkws.GroupMutedTips{Group: group, OpUser: user} - return g.groupNotification(ctx, constant.GroupMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.GroupMutedTips{Group: group, OpUser: user} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMutedNotification, tips) } func (g *GroupNotificationSender) GroupCancelMutedNotification(ctx context.Context, groupID string) (err error) { @@ -646,8 +613,8 @@ func (g *GroupNotificationSender) GroupCancelMutedNotification(ctx context.Conte if err != nil { return err } - tips := sdkws.GroupCancelMutedTips{Group: group, OpUser: user} - return g.groupNotification(ctx, constant.GroupMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.GroupCancelMutedTips{Group: group, OpUser: user} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMutedNotification, tips) } func (g *GroupNotificationSender) GroupMemberInfoSetNotification(ctx context.Context, groupID, groupMemberUserID string) (err error) { @@ -665,8 +632,8 @@ func (g *GroupNotificationSender) GroupMemberInfoSetNotification(ctx context.Con if err != nil { return err } - tips := sdkws.GroupMemberInfoSetTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], ChangedUser: user[groupMemberUserID]} - return g.groupNotification(ctx, constant.GroupMemberCancelMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.GroupMemberInfoSetTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], ChangedUser: user[groupMemberUserID]} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMemberCancelMutedNotification, tips) } func (g *GroupNotificationSender) GroupMemberSetToAdminNotification(ctx context.Context, groupID, groupMemberUserID string, notificationType int32) (err error) { @@ -684,8 +651,8 @@ func (g *GroupNotificationSender) GroupMemberSetToAdminNotification(ctx context. if err != nil { return err } - tips := sdkws.GroupMemberInfoSetTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], ChangedUser: user[groupMemberUserID]} - return g.groupNotification(ctx, constant.GroupMemberCancelMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.GroupMemberInfoSetTips{Group: group, OpUser: user[mcontext.GetOpUserID(ctx)], ChangedUser: user[groupMemberUserID]} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMemberCancelMutedNotification, tips) } func (g *GroupNotificationSender) MemberEnterDirectlyNotification(ctx context.Context, groupID string, entrantUserID string) (err error) { @@ -703,8 +670,8 @@ func (g *GroupNotificationSender) MemberEnterDirectlyNotification(ctx context.Co if err != nil { return err } - tips := sdkws.MemberEnterTips{Group: group, EntrantUser: user} - return g.groupNotification(ctx, constant.GroupMemberCancelMutedNotification, &tips, mcontext.GetOpUserID(ctx), groupID, "") + tips := &sdkws.MemberEnterTips{Group: group, EntrantUser: user} + return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupMemberCancelMutedNotification, tips) } func (g *GroupNotificationSender) SuperGroupNotification(ctx context.Context, sendID, recvID string) (err error) {