diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 42fd892cb..82e894cd9 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -547,6 +547,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI ownerMap := utils.SliceToMap(owners, func(e *relationTb.GroupMemberModel) string { return e.GroupID }) + log.ZDebug(ctx, "groups return", "groups", groups, "owners", owners, "ownerMap", ownerMap, "groupMemberNumMap", groupMemberNumMap) resp.GroupInfos = utils.Slice(groups, func(e *relationTb.GroupModel) *sdkws.GroupInfo { return DbToPbGroupInfo(e, ownerMap[e.GroupID].UserID, groupMemberNumMap[e.GroupID]) }) diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index e620ca1c6..f38e31314 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -178,7 +178,10 @@ func (g *groupDatabase) TakeGroupOwner(ctx context.Context, groupID string) (*re } func (g *groupDatabase) FindGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) ([]*relationTb.GroupMemberModel, error) { - return g.cache.GetGroupMembersInfo(ctx, groupIDs[0], userIDs, roleLevels) // todo cache group find + if roleLevels == nil { + return g.cache.GetGroupMembersInfo(ctx, groupIDs[0], userIDs, nil) + } + return g.groupMemberDB.Find(ctx, groupIDs, userIDs, roleLevels) } func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) { diff --git a/pkg/common/db/relation/group_member_model.go b/pkg/common/db/relation/group_member_model.go index a3e8994d6..68062e2e3 100644 --- a/pkg/common/db/relation/group_member_model.go +++ b/pkg/common/db/relation/group_member_model.go @@ -48,7 +48,7 @@ func (g *GroupMemberGorm) UpdateRoleLevel(ctx context.Context, groupID string, u } func (g *GroupMemberGorm) Find(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32) (groupMembers []*relation.GroupMemberModel, err error) { - db := g.DB + db := g.db(ctx) if len(groupIDs) > 0 { db = db.Where("group_id in (?)", groupIDs) }