feat: 增加分页排序与FluentValidation

This commit is contained in:
2025-12-02 10:50:43 +08:00
parent 93141fbf0c
commit 97bf6cacb0
63 changed files with 904 additions and 49 deletions

View File

@@ -49,13 +49,25 @@ public sealed class ProductsController : BaseApiController
[HttpGet]
[PermissionAuthorize("product:read")]
[ProducesResponseType(typeof(ApiResponse<IReadOnlyList<ProductDto>>), StatusCodes.Status200OK)]
public async Task<ApiResponse<IReadOnlyList<ProductDto>>> List([FromQuery] long? storeId, [FromQuery] long? categoryId, [FromQuery] ProductStatus? status, CancellationToken cancellationToken)
public async Task<ApiResponse<IReadOnlyList<ProductDto>>> List(
[FromQuery] long? storeId,
[FromQuery] long? categoryId,
[FromQuery] ProductStatus? status,
[FromQuery] int page = 1,
[FromQuery] int pageSize = 20,
[FromQuery] string? sortBy = null,
[FromQuery] bool sortDesc = true,
CancellationToken cancellationToken = default)
{
var result = await _mediator.Send(new SearchProductsQuery
{
StoreId = storeId,
CategoryId = categoryId,
Status = status
Status = status,
Page = page,
PageSize = pageSize,
SortBy = sortBy,
SortDescending = sortDesc
}, cancellationToken);
return ApiResponse<IReadOnlyList<ProductDto>>.Ok(result);