feat: 列表接口分页排序与验证
This commit is contained in:
@@ -2,6 +2,7 @@ using MediatR;
|
||||
using TakeoutSaaS.Application.App.Stores.Dto;
|
||||
using TakeoutSaaS.Application.App.Stores.Queries;
|
||||
using TakeoutSaaS.Domain.Stores.Repositories;
|
||||
using TakeoutSaaS.Shared.Abstractions.Results;
|
||||
using TakeoutSaaS.Shared.Abstractions.Tenancy;
|
||||
|
||||
namespace TakeoutSaaS.Application.App.Stores.Handlers;
|
||||
@@ -12,13 +13,13 @@ namespace TakeoutSaaS.Application.App.Stores.Handlers;
|
||||
public sealed class SearchStoresQueryHandler(
|
||||
IStoreRepository storeRepository,
|
||||
ITenantProvider tenantProvider)
|
||||
: IRequestHandler<SearchStoresQuery, IReadOnlyList<StoreDto>>
|
||||
: IRequestHandler<SearchStoresQuery, PagedResult<StoreDto>>
|
||||
{
|
||||
private readonly IStoreRepository _storeRepository = storeRepository;
|
||||
private readonly ITenantProvider _tenantProvider = tenantProvider;
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task<IReadOnlyList<StoreDto>> Handle(SearchStoresQuery request, CancellationToken cancellationToken)
|
||||
public async Task<PagedResult<StoreDto>> Handle(SearchStoresQuery request, CancellationToken cancellationToken)
|
||||
{
|
||||
var tenantId = _tenantProvider.GetCurrentTenantId();
|
||||
var stores = await _storeRepository.SearchAsync(tenantId, request.Status, cancellationToken);
|
||||
@@ -34,7 +35,8 @@ public sealed class SearchStoresQueryHandler(
|
||||
.Take(request.PageSize)
|
||||
.ToList();
|
||||
|
||||
return paged.Select(MapToDto).ToList();
|
||||
var items = paged.Select(MapToDto).ToList();
|
||||
return new PagedResult<StoreDto>(items, request.Page, request.PageSize, stores.Count);
|
||||
}
|
||||
|
||||
private static IOrderedEnumerable<Domain.Stores.Entities.Store> ApplySorting(
|
||||
|
||||
Reference in New Issue
Block a user