fix: 门店时段与临时调整跨租户处理
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user