From 4706d830a2aa3eaf548f74a1d12652fbfa33cc07 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 27 Mar 2023 10:07:41 +0800 Subject: [PATCH] group --- internal/rpc/group/group.go | 2 +- pkg/common/db/controller/group.go | 31 +++++++++---------------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2b385e552..df2d99fee 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -645,7 +645,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) groupMember.RoleLevel = constant.GroupOrdinaryUsers groupMember.OperatorUserID = mcontext.GetOpUserID(ctx) groupMember.JoinSource = constant.JoinByInvitation - groupMember.InviterUserID = mcontext.GetOpUserID(ctx) + groupMember.InviterUserID = req.InviterUserID groupMember.JoinTime = time.Now() groupMember.MuteEndTime = time.Unix(0, 0) if err := CallbackBeforeMemberJoinGroup(ctx, groupMember, group.Ex); err != nil && err != errs.ErrCallbackContinue { diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 1a690f452..08cef8f87 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -105,27 +105,6 @@ func (g *groupDatabase) GetGroupIDsByGroupType(ctx context.Context, groupType in return g.groupDB.GetGroupIDsByGroupType(ctx, groupType) } -// func (g *groupDatabase) delGroupMemberCache(ctx context.Context, groupID string, userIDs []string) error { -// for _, userID := range userIDs { -// if err := g.cache.DelJoinedGroupID(ctx, userID); err != nil { -// return err -// } -// if err := g.cache.DelJoinedSuperGroupIDs(ctx, userID); err != nil { -// return err -// } -// } -// if err := g.cache.DelGroupMemberIDs(ctx, groupID); err != nil { -// return err -// } -// if err := g.cache.DelGroupMemberNum(ctx, groupID); err != nil { -// return err -// } -// if err := g.cache.DelGroupMembersHash(ctx, groupID); err != nil { -// return err -// } -// return nil -// } - func (g *groupDatabase) FindGroupMemberUserID(ctx context.Context, groupID string) ([]string, error) { return g.cache.GetGroupMemberIDs(ctx, groupID) } @@ -142,7 +121,15 @@ func (g *groupDatabase) CreateGroup(ctx context.Context, groups []*relationTb.Gr return err } } - return nil + m := make(map[string]struct{}) + var cache = g.cache.NewCache() + for _, groupMember := range groupMembers { + if _, ok := m[groupMember.GroupID]; !ok { + m[groupMember.GroupID] = struct{}{} + cache = cache.DelGroupMemberIDs(groupMember.GroupID).DelGroupMembersHash(groupMember.GroupID).DelJoinedGroupID(groupMember.UserID).DelGroupsMemberNum(groupMember.GroupID) + } + } + return g.cache.ExecDel(ctx) }) }