Project.Fengling.QoderVersion/Backend/src/Fengling.Backend.Web/Endpoints/Admin/MarketingCodes/MarketingCodeQueryEndpoints.cs
sam 056eb9b6f9 feat: 实现完整的前后端功能
- 后端新增管理员、商品、分类聚合模型
- 实现积分规则、礼品、订单、会员等完整功能
- 添加管理员认证和权限管理
- 完善数据库迁移和实体配置
- 前端管理后台实现登录、仪表盘、积分规则、礼品、订单、会员等页面
- 集成shadcn-vue UI组件库
- 添加前后端功能文档和截图
2026-02-11 21:36:37 +08:00

57 lines
1.7 KiB
C#

using FastEndpoints;
using Fengling.Backend.Web.Application.Queries.MarketingCodes;
namespace Fengling.Backend.Web.Endpoints.Admin.MarketingCodes;
/// <summary>
/// 查询营销码请求
/// </summary>
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; }
}
/// <summary>
/// 查询营销码列表端点
/// </summary>
[Tags("Admin-MarketingCodes")]
[HttpGet("/api/admin/marketing-codes")]
[AllowAnonymous]
public class GetMarketingCodesEndpoint(IMediator mediator)
: Endpoint<GetMarketingCodesRequest, ResponseData<List<MarketingCodeDto>>>
{
public override async Task HandleAsync(GetMarketingCodesRequest req, CancellationToken ct)
{
var query = new GetMarketingCodesQuery(
req.BatchNo,
req.ProductId,
req.IsUsed,
req.StartDate,
req.EndDate);
var result = await mediator.Send(query, ct);
await Send.OkAsync(result.AsResponseData(), ct);
}
}
/// <summary>
/// 查询营销码批次列表端点
/// </summary>
[Tags("Admin-MarketingCodes")]
[HttpGet("/api/admin/marketing-codes/batches")]
[AllowAnonymous]
public class GetMarketingCodeBatchesEndpoint(IMediator mediator)
: EndpointWithoutRequest<ResponseData<List<MarketingCodeBatchDto>>>
{
public override async Task HandleAsync(CancellationToken ct)
{
var query = new GetMarketingCodeBatchesQuery();
var result = await mediator.Send(query, ct);
await Send.OkAsync(result.AsResponseData(), ct);
}
}