diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 70a98afba..09839504c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -597,6 +597,7 @@ func (s *groupServer) GroupApplicationResponse(ctx context.Context, req *pbGroup RoleLevel: constant.GroupOrdinaryUsers, JoinTime: time.Now(), JoinSource: groupRequest.JoinSource, + MuteEndTime: time.Unix(0, 0), InviterUserID: groupRequest.InviterUserID, OperatorUserID: mcontext.GetOpUserID(ctx), Ex: groupRequest.Ex, @@ -862,7 +863,12 @@ func (s *groupServer) GetUserReqApplicationList(ctx context.Context, req *pbGrou if err != nil { return nil, err } - total, requests, err := s.GroupDatabase.PageGroupRequestUser(ctx, req.UserID, req.Pagination.PageNumber, req.Pagination.ShowNumber) + var pageNumber, showNumber int32 + if req.Pagination != nil { + pageNumber = req.Pagination.PageNumber + showNumber = req.Pagination.ShowNumber + } + total, requests, err := s.GroupDatabase.PageGroupRequestUser(ctx, req.UserID, pageNumber, showNumber) if err != nil { return nil, err } diff --git a/pkg/common/db/cache/group.go b/pkg/common/db/cache/group.go index 8973043a8..74d5a62ff 100644 --- a/pkg/common/db/cache/group.go +++ b/pkg/common/db/cache/group.go @@ -52,7 +52,7 @@ type GroupCache interface { GetGroupMemberInfo(ctx context.Context, groupID, userID string) (groupMember *relationTb.GroupMemberModel, err error) GetGroupMembersInfo(ctx context.Context, groupID string, userID []string) (groupMembers []*relationTb.GroupMemberModel, err error) GetAllGroupMembersInfo(ctx context.Context, groupID string) (groupMembers []*relationTb.GroupMemberModel, err error) - GetGroupMembersPage(ctx context.Context, groupID string, userID []string, showNumber, pageNumber int32) (groupMembers []*relationTb.GroupMemberModel, err error) + GetGroupMembersPage(ctx context.Context, groupID string, userID []string, showNumber, pageNumber int32) (total uint32, groupMembers []*relationTb.GroupMemberModel, err error) DelGroupMembersInfo(groupID string, userID ...string) GroupCache @@ -306,17 +306,18 @@ func (g *GroupCacheRedis) GetGroupMembersInfo(ctx context.Context, groupID strin }) } -func (g *GroupCacheRedis) GetGroupMembersPage(ctx context.Context, groupID string, userIDs []string, showNumber, pageNumber int32) (groupMembers []*relationTb.GroupMemberModel, err error) { +func (g *GroupCacheRedis) GetGroupMembersPage(ctx context.Context, groupID string, userIDs []string, showNumber, pageNumber int32) (total uint32, groupMembers []*relationTb.GroupMemberModel, err error) { groupMemberIDs, err := g.GetGroupMemberIDs(ctx, groupID) if err != nil { - return nil, err + return 0, nil, err } if userIDs != nil { userIDs = utils.BothExist(userIDs, groupMemberIDs) } else { userIDs = groupMemberIDs } - return g.GetGroupMembersInfo(ctx, groupID, utils.Paginate(userIDs, int(showNumber), int(showNumber))) + groupMembers, err = g.GetGroupMembersInfo(ctx, groupID, utils.Paginate(userIDs, int(showNumber), int(showNumber))) + return uint32(len(userIDs)), groupMembers, err } func (g *GroupCacheRedis) GetAllGroupMembersInfo(ctx context.Context, groupID string) (groupMembers []*relationTb.GroupMemberModel, err error) { diff --git a/pkg/common/db/controller/group.go b/pkg/common/db/controller/group.go index f130cc333..279b9e025 100644 --- a/pkg/common/db/controller/group.go +++ b/pkg/common/db/controller/group.go @@ -235,16 +235,18 @@ func (g *groupDatabase) PageGroupMember(ctx context.Context, groupIDs []string, totalGroupMembers = append(totalGroupMembers, groupMembers...) } } - return uint32(len(totalGroupMembers)), totalGroupMembers, nil + return uint32(len(groupIDs)), totalGroupMembers, nil } + var totalAll uint32 for _, groupID := range groupIDs { - groupMembers, err := g.cache.GetGroupMembersPage(ctx, groupID, userIDs, pageNumber, showNumber) + 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 uint32(len(totalGroupMembers)), totalGroupMembers, nil + return totalAll, totalGroupMembers, nil } } return g.groupMemberDB.SearchMember(ctx, "", groupIDs, userIDs, roleLevels, pageNumber, showNumber)