feat: 门店模块移除租户上下文依赖

This commit is contained in:
2026-01-29 14:27:01 +00:00
parent 010c2b7043
commit 71e5a9dc29
36 changed files with 280 additions and 209 deletions

View File

@@ -2,7 +2,6 @@ using MediatR;
using TakeoutSaaS.Application.App.Stores.Dto;
using TakeoutSaaS.Application.App.Stores.Queries;
using TakeoutSaaS.Domain.Stores.Repositories;
using TakeoutSaaS.Shared.Abstractions.Tenancy;
namespace TakeoutSaaS.Application.App.Stores.Handlers;
@@ -10,22 +9,27 @@ namespace TakeoutSaaS.Application.App.Stores.Handlers;
/// 可用自提档期查询处理器。
/// </summary>
public sealed class GetAvailablePickupSlotsQueryHandler(
IStoreRepository storeRepository,
ITenantProvider tenantProvider)
IStoreRepository storeRepository)
: IRequestHandler<GetAvailablePickupSlotsQuery, IReadOnlyList<StorePickupSlotDto>>
{
/// <inheritdoc />
public async Task<IReadOnlyList<StorePickupSlotDto>> Handle(GetAvailablePickupSlotsQuery request, CancellationToken cancellationToken)
{
var tenantId = tenantProvider.GetCurrentTenantId();
// 1. 读取门店并解析租户
var store = await storeRepository.FindByIdAsync(request.StoreId, tenantId: null, cancellationToken);
if (store is null)
{
return [];
}
var tenantId = store.TenantId;
var date = request.Date.Date;
// 1. 读取配置
// 2. (空行后) 读取配置
var setting = await storeRepository.GetPickupSettingAsync(request.StoreId, tenantId, cancellationToken);
var allowDays = setting?.AllowDaysAhead ?? 0;
var allowToday = setting?.AllowToday ?? false;
var defaultCutoff = setting?.DefaultCutoffMinutes ?? 30;
// 2. 校验日期范围
// 3. (空行后) 校验日期范围
if (!allowToday && date == DateTime.UtcNow.Date)
{
return [];
@@ -36,13 +40,13 @@ public sealed class GetAvailablePickupSlotsQueryHandler(
return [];
}
// 3. 读取档期
// 4. (空行后) 读取档期
var slots = await storeRepository.GetPickupSlotsAsync(request.StoreId, tenantId, cancellationToken);
var weekday = (int)date.DayOfWeek;
weekday = weekday == 0 ? 7 : weekday;
var nowUtc = DateTime.UtcNow;
// 4. 过滤可用
// 5. (空行后) 过滤可用
var available = slots
.Where(x => x.IsEnabled && ContainsDay(x.Weekdays, weekday))
.Select(slot =>