// Code scaffolded by goctl. Safe to edit. // goctl 1.10.1 package member import ( "context" "haixun-backend/internal/logic/authz" memberusecase "haixun-backend/internal/model/member/domain/usecase" "haixun-backend/internal/svc" "haixun-backend/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type ListMembersLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewListMembersLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListMembersLogic { return &ListMembersLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *ListMembersLogic) ListMembers(req *types.ListMembersReq) (resp *types.ListMembersData, err error) { if err := authz.RequireAdmin(l.ctx, l.svcCtx); err != nil { return nil, err } tenantID, _, err := actorFrom(l.ctx) if err != nil { return nil, err } result, err := l.svcCtx.Member.ListMembers(l.ctx, memberusecase.ListMembersRequest{ TenantID: tenantID, Page: req.Page, PageSize: req.PageSize, }) if err != nil { return nil, err } return &types.ListMembersData{ Pagination: types.PaginationData{ Total: result.Total, Page: result.Page, PageSize: result.PageSize, TotalPages: result.TotalPages, }, List: toMemberMeDataList(result.List), }, nil }