using FastEndpoints; using Fengling.Backend.Web.Application.Queries.MarketingCodes; namespace Fengling.Backend.Web.Endpoints.Admin.MarketingCodes; /// /// 查询营销码请求 /// public record GetMarketingCodesRequest { public string? BatchNo { get; init; } public Guid? ProductId { get; init; } public bool? IsUsed { get; init; } public DateTime? StartDate { get; init; } public DateTime? EndDate { get; init; } public int Page { get; init; } = 1; public int PageSize { get; init; } = 20; } /// /// 查询营销码列表端点 /// [Tags("Admin-MarketingCodes")] [HttpGet("/api/admin/marketing-codes")] [AllowAnonymous] public class GetMarketingCodesEndpoint(IMediator mediator) : Endpoint>> { public override async Task HandleAsync(GetMarketingCodesRequest req, CancellationToken ct) { var query = new GetMarketingCodesQuery( req.BatchNo, req.ProductId, req.IsUsed, req.StartDate, req.EndDate, req.Page, req.PageSize); var result = await mediator.Send(query, ct); await Send.OkAsync(result.AsResponseData(), ct); } } /// /// 查询营销码批次列表端点 /// [Tags("Admin-MarketingCodes")] [HttpGet("/api/admin/marketing-codes/batches")] [AllowAnonymous] public class GetMarketingCodeBatchesEndpoint(IMediator mediator) : EndpointWithoutRequest>> { public override async Task HandleAsync(CancellationToken ct) { var query = new GetMarketingCodeBatchesQuery(); var result = await mediator.Send(query, ct); await Send.OkAsync(result.AsResponseData(), ct); } }