feat: 增强仓储CRUD与种子配置

This commit is contained in:
2025-12-02 09:46:44 +08:00
parent ffc4f0885f
commit 1a01454266
16 changed files with 587 additions and 56 deletions

View File

@@ -130,4 +130,49 @@ public sealed class EfOrderRepository : IOrderRepository
{
return _context.SaveChangesAsync(cancellationToken);
}
/// <inheritdoc />
public Task UpdateOrderAsync(Order order, CancellationToken cancellationToken = default)
{
_context.Orders.Update(order);
return Task.CompletedTask;
}
/// <inheritdoc />
public async Task DeleteOrderAsync(long orderId, long tenantId, CancellationToken cancellationToken = default)
{
var items = await _context.OrderItems
.Where(x => x.TenantId == tenantId && x.OrderId == orderId)
.ToListAsync(cancellationToken);
if (items.Count > 0)
{
_context.OrderItems.RemoveRange(items);
}
var histories = await _context.OrderStatusHistories
.Where(x => x.TenantId == tenantId && x.OrderId == orderId)
.ToListAsync(cancellationToken);
if (histories.Count > 0)
{
_context.OrderStatusHistories.RemoveRange(histories);
}
var refunds = await _context.RefundRequests
.Where(x => x.TenantId == tenantId && x.OrderId == orderId)
.ToListAsync(cancellationToken);
if (refunds.Count > 0)
{
_context.RefundRequests.RemoveRange(refunds);
}
var existing = await _context.Orders
.Where(x => x.TenantId == tenantId && x.Id == orderId)
.FirstOrDefaultAsync(cancellationToken);
if (existing == null)
{
return;
}
_context.Orders.Remove(existing);
}
}