groupServer

This commit is contained in:
withchao 2023-05-18 14:16:09 +08:00
parent 1c8df25603
commit c3345af45a
2 changed files with 56 additions and 19 deletions

View File

@ -471,10 +471,47 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
return nil, errs.ErrNoPermission.Wrap("opUserID is OrdinaryUser") return nil, errs.ErrNoPermission.Wrap("opUserID is OrdinaryUser")
} }
} }
userIDs, err := s.GroupDatabase.FindGroupMemberUserID(ctx, req.GroupID)
if err != nil {
return nil, err
}
owner, err := s.GroupDatabase.FindGroupMember(ctx, []string{req.GroupID}, nil, []int32{constant.GroupOwner})
if err != nil {
return nil, err
}
if err := s.GroupDatabase.DeleteGroupMember(ctx, group.GroupID, req.KickedUserIDs); err != nil { if err := s.GroupDatabase.DeleteGroupMember(ctx, group.GroupID, req.KickedUserIDs); err != nil {
return nil, err return nil, err
} }
s.Notification.MemberKickedNotification(ctx, req, req.KickedUserIDs) tips := &sdkws.MemberKickedTips{
Group: &sdkws.GroupInfo{
GroupID: group.GroupID,
GroupName: group.GroupName,
Notification: group.Notification,
Introduction: group.Introduction,
FaceURL: group.FaceURL,
//OwnerUserID: owner[0].UserID,
CreateTime: group.CreateTime.UnixMilli(),
MemberCount: uint32(len(userIDs)),
Ex: group.Ex,
Status: group.Status,
CreatorUserID: group.CreatorUserID,
GroupType: group.GroupType,
NeedVerification: group.NeedVerification,
LookMemberInfo: group.LookMemberInfo,
ApplyMemberFriend: group.ApplyMemberFriend,
NotificationUpdateTime: group.NotificationUpdateTime.UnixMilli(),
NotificationUserID: group.NotificationUserID,
},
OpUser: convert.Db2PbGroupMembersCMSResp(memberMap[opUserID]),
KickedUserList: []*sdkws.GroupMemberFullInfo{},
}
if len(owner) > 0 {
tips.Group.OwnerUserID = owner[0].UserID
}
for _, userID := range req.KickedUserIDs {
tips.KickedUserList = append(tips.KickedUserList, convert.Db2PbGroupMembersCMSResp(memberMap[userID]))
}
s.Notification.MemberKickedNotification(ctx, tips)
} }
if err := s.deleteMemberAndSetConversationSeq(ctx, req.GroupID, req.KickedUserIDs); err != nil { if err := s.deleteMemberAndSetConversationSeq(ctx, req.GroupID, req.KickedUserIDs); err != nil {
return nil, err return nil, err

View File

@ -453,30 +453,30 @@ func (g *GroupNotificationSender) GroupOwnerTransferredNotification(ctx context.
return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.GroupOwnerTransferredNotification, tips) 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) { func (g *GroupNotificationSender) MemberKickedNotification(ctx context.Context, tips *sdkws.MemberKickedTips) (err error) {
defer log.ZDebug(ctx, "return") //defer log.ZDebug(ctx, "return")
defer func() { //defer func() {
if err != nil { // if err != nil {
log.ZError(ctx, utils.GetFuncName(1)+" failed", err) // log.ZError(ctx, utils.GetFuncName(1)+" failed", err)
} // }
}() //}()
group, err := g.getGroupInfo(ctx, req.GroupID) //group, err := g.getGroupInfo(ctx, tips.GroupID)
if err != nil { //if err != nil {
return err // return err
} //}
user, err := g.getGroupMember(ctx, req.GroupID, mcontext.GetOpUserID(ctx)) //user, err := g.getGroupMember(ctx, tips.GroupID, mcontext.GetOpUserID(ctx))
if err != nil { //if err != nil {
return err // return err
} //}
tips := &sdkws.MemberKickedTips{Group: group, OpUser: user} //tips := &sdkws.MemberKickedTips{Group: group, OpUser: user}
//for _, v := range kickedUserIDList { //for _, v := range kickedUserIDList {
// var groupMemberInfo sdkws.GroupMemberFullInfo // var groupMemberInfo sdkws.GroupMemberFullInfo
// if err := c.setGroupMemberInfo(ctx, req.GroupID, v, &groupMemberInfo); err != nil { // if err := c.setGroupMemberInfo(ctx, tips.GroupID, v, &groupMemberInfo); err != nil {
// continue // continue
// } // }
// MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) // MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo)
//} //}
return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), group.GroupID, constant.MemberKickedNotification, tips) return g.msgClient.Notification(ctx, mcontext.GetOpUserID(ctx), tips.Group.GroupID, constant.MemberKickedNotification, tips)
} }
func (g *GroupNotificationSender) MemberInvitedNotification(ctx context.Context, groupID, reason string, invitedUserIDList []string) (err error) { func (g *GroupNotificationSender) MemberInvitedNotification(ctx context.Context, groupID, reason string, invitedUserIDList []string) (err error) {