diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index 8a059f364..5f4c65c96 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -199,74 +199,28 @@ func (g *groupDatabase) FindGroupMember(ctx context.Context, groupIDs []string, } func (g *groupDatabase) PageGetJoinGroup(ctx context.Context, userID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { - return g.groupMemberDB.SearchMember(ctx, "", nil, []string{userID}, nil, pageNumber, showNumber) + groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) + if err != nil { + return 0, nil, err + } + for _, groupID := range utils.Paginate(groupIDs, int(pageNumber), int(showNumber)) { + groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) + if err != nil { + return 0, nil, err + } + totalGroupMembers = append(totalGroupMembers, groupMembers...) + } + return uint32(len(groupIDs)), totalGroupMembers, nil } func (g *groupDatabase) PageGetGroupMember(ctx context.Context, groupID string, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { - return g.groupMemberDB.SearchMember(ctx, "", []string{groupID}, nil, nil, pageNumber, showNumber) + groupMembers, err := g.cache.GetAllGroupMembersInfo(ctx, groupID) + if err != nil { + return 0, nil, err + } + return uint32(len(groupMembers)), utils.Paginate(groupMembers, int(pageNumber), int(showNumber)), nil } -//func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (total uint32, totalGroupMembers []*relationTb.GroupMemberModel, err error) { -//if len(roleLevels) == 0 { -// if pageNumber == 0 || showNumber == 0 { -// if len(groupIDs) == 0 { -// for _, userID := range userIDs { -// groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) -// if err != nil { -// return 0, nil, err -// } -// for _, groupID := range groupIDs { -// groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) -// if err != nil { -// return 0, nil, err -// } -// totalGroupMembers = append(totalGroupMembers, groupMembers...) -// } -// } -// -// return uint32(len(totalGroupMembers)), totalGroupMembers, nil -// } -// for _, groupID := range groupIDs { -// groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, userIDs) -// if err != nil { -// return 0, nil, err -// } -// totalGroupMembers = append(totalGroupMembers, groupMembers...) -// } -// return uint32(len(totalGroupMembers)), totalGroupMembers, nil -// } else { -// if len(groupIDs) == 0 { -// for _, userID := range userIDs { -// groupIDs, err := g.cache.GetJoinedGroupIDs(ctx, userID) -// if err != nil { -// return 0, nil, err -// } -// groupIDs = utils.Paginate(groupIDs, int(pageNumber), int(showNumber)) -// for _, groupID := range groupIDs { -// groupMembers, err := g.cache.GetGroupMembersInfo(ctx, groupID, []string{userID}) -// if err != nil { -// return 0, nil, err -// } -// totalGroupMembers = append(totalGroupMembers, groupMembers...) -// } -// } -// return uint32(len(groupIDs)), totalGroupMembers, nil -// } -// var totalAll uint32 -// for _, groupID := range groupIDs { -// total, groupMembers, err := g.cache.GetGroupMembersPage(ctx, groupID, userIDs, pageNumber, showNumber) -// if err != nil { -// return 0, nil, err -// } -// totalAll += total -// totalGroupMembers = append(totalGroupMembers, groupMembers...) -// } -// return totalAll, totalGroupMembers, nil -// } -//} -// return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber) -//} - func (g *groupDatabase) SearchGroupMember(ctx context.Context, keyword string, groupIDs []string, userIDs []string, roleLevels []int32, pageNumber, showNumber int32) (uint32, []*relationTb.GroupMemberModel, error) { return g.groupMemberDB.SearchMember(ctx, keyword, groupIDs, userIDs, roleLevels, pageNumber, showNumber) }