fix: 门店时段与临时调整跨租户处理

This commit is contained in:
2026-01-20 20:38:05 +08:00
parent 32f5bbbd43
commit 8bde1a6440
6 changed files with 100 additions and 20 deletions

View File

@@ -337,9 +337,19 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
/// <inheritdoc />
public async Task<IReadOnlyList<StoreHoliday>> GetHolidaysAsync(long storeId, long tenantId, CancellationToken cancellationToken = default)
{
var holidays = await context.StoreHolidays
.AsNoTracking()
.Where(x => x.TenantId == tenantId && x.StoreId == storeId)
var query = context.StoreHolidays.AsNoTracking();
if (tenantId <= 0)
{
query = query.IgnoreQueryFilters()
.Where(x => x.DeletedAt == null);
}
else
{
query = query.Where(x => x.TenantId == tenantId);
}
var holidays = await query
.Where(x => x.StoreId == storeId)
.OrderBy(x => x.Date)
.ToListAsync(cancellationToken);
@@ -349,8 +359,19 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
/// <inheritdoc />
public Task<StoreHoliday?> FindHolidayByIdAsync(long holidayId, long tenantId, CancellationToken cancellationToken = default)
{
return context.StoreHolidays
.Where(x => x.TenantId == tenantId && x.Id == holidayId)
var query = context.StoreHolidays.AsQueryable();
if (tenantId <= 0)
{
query = query.IgnoreQueryFilters()
.Where(x => x.DeletedAt == null);
}
else
{
query = query.Where(x => x.TenantId == tenantId);
}
return query
.Where(x => x.Id == holidayId)
.FirstOrDefaultAsync(cancellationToken);
}
@@ -607,8 +628,19 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
/// <inheritdoc />
public async Task DeleteHolidayAsync(long holidayId, long tenantId, CancellationToken cancellationToken = default)
{
var existing = await context.StoreHolidays
.Where(x => x.TenantId == tenantId && x.Id == holidayId)
var query = context.StoreHolidays.AsQueryable();
if (tenantId <= 0)
{
query = query.IgnoreQueryFilters()
.Where(x => x.DeletedAt == null);
}
else
{
query = query.Where(x => x.TenantId == tenantId);
}
var existing = await query
.Where(x => x.Id == holidayId)
.FirstOrDefaultAsync(cancellationToken);
if (existing != null)