From 49797ce6abd110a6fd55336123e6223c70b5b338 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 21 Jun 2022 14:54:42 +0800 Subject: [PATCH] super group notification --- internal/rpc/group/group.go | 22 +++++++++++++++----- internal/rpc/msg/super_group_notification.go | 6 +++--- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f51e0edc4..946002363 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -208,8 +208,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR if req.GroupInfo.GroupType != constant.SuperGroup { chat.GroupCreatedNotification(req.OperationID, req.OpUserID, groupId, okUserIDList) } else { - chat.SuperGroupNotification(req.OperationID, req.OpUserID, groupId) - + go func() { + for _, v := range okUserIDList { + chat.SuperGroupNotification(req.OperationID, v, v) + } + }() } return resp, nil } else { @@ -406,7 +409,11 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite if groupInfo.GroupType != constant.SuperGroup { chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList) } else { - chat.SuperGroupNotification(req.OperationID, req.OpUserID, req.GroupID) + go func() { + for _, v := range req.InvitedUserIDList { + chat.SuperGroupNotification(req.OperationID, v, v) + } + }() } log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ") @@ -620,7 +627,12 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou if groupInfo.GroupType != constant.SuperGroup { chat.MemberKickedNotification(req, okUserIDList) } else { - chat.SuperGroupNotification(req.OperationID, req.OpUserID, req.GroupID) + go func() { + for _, v := range req.KickedUserIDList { + chat.SuperGroupNotification(req.OperationID, v, v) + } + }() + } log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String()) return &resp, nil @@ -928,7 +940,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) if groupInfo.GroupType != constant.SuperGroup { chat.MemberQuitNotification(req) } else { - chat.SuperGroupNotification(req.OperationID, req.OpUserID, req.GroupID) + chat.SuperGroupNotification(req.OperationID, req.OpUserID, req.OpUserID) } log.NewInfo(req.OperationID, "rpc QuitGroup return ", pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}) diff --git a/internal/rpc/msg/super_group_notification.go b/internal/rpc/msg/super_group_notification.go index 52e2e17a2..9369c7910 100644 --- a/internal/rpc/msg/super_group_notification.go +++ b/internal/rpc/msg/super_group_notification.go @@ -9,7 +9,7 @@ import ( //"github.com/golang/protobuf/proto" ) -func SuperGroupNotification(operationID, sendID, groupID string) { +func SuperGroupNotification(operationID, sendID, recvID string) { //var tips sdk.TipsComm //var err error @@ -21,10 +21,10 @@ func SuperGroupNotification(operationID, sendID, groupID string) { //tips.JsonDetail, _ = marshaler.MarshalToString(m) n := &NotificationMsg{ SendID: sendID, - RecvID: groupID, + RecvID: recvID, MsgFrom: constant.SysMsgType, ContentType: constant.SuperGroupUpdateNotification, - SessionType: constant.SuperGroupChatType, + SessionType: constant.SingleChatType, OperationID: operationID, } //n.Content, err = proto.Marshal(&tips)