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

@@ -36,7 +36,13 @@ public sealed class SearchOrdersQueryHandler(
.ToList();
}
return orders.Select(order => new OrderDto
var sorted = ApplySorting(orders, request.SortBy, request.SortDescending);
var paged = sorted
.Skip((request.Page - 1) * request.PageSize)
.Take(request.PageSize)
.ToList();
return paged.Select(order => new OrderDto
{
Id = order.Id,
TenantId = order.TenantId,
@@ -59,7 +65,22 @@ public sealed class SearchOrdersQueryHandler(
FinishedAt = order.FinishedAt,
CancelledAt = order.CancelledAt,
CancelReason = order.CancelReason,
Remark = order.Remark
Remark = order.Remark,
CreatedAt = order.CreatedAt
}).ToList();
}
private static IOrderedEnumerable<Domain.Orders.Entities.Order> ApplySorting(
IReadOnlyCollection<Domain.Orders.Entities.Order> orders,
string? sortBy,
bool sortDescending)
{
return sortBy?.ToLowerInvariant() switch
{
"paidat" => sortDescending ? orders.OrderByDescending(x => x.PaidAt) : orders.OrderBy(x => x.PaidAt),
"status" => sortDescending ? orders.OrderByDescending(x => x.Status) : orders.OrderBy(x => x.Status),
"payableamount" => sortDescending ? orders.OrderByDescending(x => x.PayableAmount) : orders.OrderBy(x => x.PayableAmount),
_ => sortDescending ? orders.OrderByDescending(x => x.CreatedAt) : orders.OrderBy(x => x.CreatedAt)
};
}
}