feat: 桌码管理支持区域、批量生成与二维码导出

This commit is contained in:
2025-12-04 09:10:00 +08:00
parent 9051a024ea
commit 1a5209a8b1
33 changed files with 1343 additions and 2 deletions

View File

@@ -118,6 +118,14 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
return areas;
}
/// <inheritdoc />
public Task<StoreTableArea?> FindTableAreaByIdAsync(long areaId, long tenantId, CancellationToken cancellationToken = default)
{
return context.StoreTableAreas
.Where(x => x.TenantId == tenantId && x.Id == areaId)
.FirstOrDefaultAsync(cancellationToken);
}
/// <inheritdoc />
public async Task<IReadOnlyList<StoreTable>> GetTablesAsync(long storeId, long tenantId, CancellationToken cancellationToken = default)
{
@@ -130,6 +138,14 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
return tables;
}
/// <inheritdoc />
public Task<StoreTable?> FindTableByIdAsync(long tableId, long tenantId, CancellationToken cancellationToken = default)
{
return context.StoreTables
.Where(x => x.TenantId == tenantId && x.Id == tableId)
.FirstOrDefaultAsync(cancellationToken);
}
/// <inheritdoc />
public async Task<IReadOnlyList<StoreEmployeeShift>> GetShiftsAsync(long storeId, long tenantId, CancellationToken cancellationToken = default)
{
@@ -194,12 +210,26 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
return context.StoreTableAreas.AddRangeAsync(areas, cancellationToken);
}
/// <inheritdoc />
public Task UpdateTableAreaAsync(StoreTableArea area, CancellationToken cancellationToken = default)
{
context.StoreTableAreas.Update(area);
return Task.CompletedTask;
}
/// <inheritdoc />
public Task AddTablesAsync(IEnumerable<StoreTable> tables, CancellationToken cancellationToken = default)
{
return context.StoreTables.AddRangeAsync(tables, cancellationToken);
}
/// <inheritdoc />
public Task UpdateTableAsync(StoreTable table, CancellationToken cancellationToken = default)
{
context.StoreTables.Update(table);
return Task.CompletedTask;
}
/// <inheritdoc />
public Task AddShiftsAsync(IEnumerable<StoreEmployeeShift> shifts, CancellationToken cancellationToken = default)
{
@@ -251,6 +281,32 @@ public sealed class EfStoreRepository(TakeoutAppDbContext context) : IStoreRepos
}
}
/// <inheritdoc />
public async Task DeleteTableAreaAsync(long areaId, long tenantId, CancellationToken cancellationToken = default)
{
var existing = await context.StoreTableAreas
.Where(x => x.TenantId == tenantId && x.Id == areaId)
.FirstOrDefaultAsync(cancellationToken);
if (existing != null)
{
context.StoreTableAreas.Remove(existing);
}
}
/// <inheritdoc />
public async Task DeleteTableAsync(long tableId, long tenantId, CancellationToken cancellationToken = default)
{
var existing = await context.StoreTables
.Where(x => x.TenantId == tenantId && x.Id == tableId)
.FirstOrDefaultAsync(cancellationToken);
if (existing != null)
{
context.StoreTables.Remove(existing);
}
}
/// <inheritdoc />
public Task UpdateStoreAsync(Store store, CancellationToken cancellationToken = default)
{