refactor(architecture): harden module boundaries
Some checks failed
ci / release-gate (push) Has been cancelled

This commit is contained in:
2026-08-04 12:10:36 +08:00
parent b38f12e60b
commit 33375a38d7
218 changed files with 5124 additions and 3828 deletions

View File

@@ -15,7 +15,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var tasks = dbContext.PointActivityTasks.AsNoTracking()
var tasks = pointsPersistence.PointActivityTasks.AsNoTracking()
.Where(item => item.TenantId == actor.TenantId);
if (!string.IsNullOrWhiteSpace(query.Status))
tasks = tasks.Where(item => item.Status == ParsePointTaskStatus(query.Status));
@@ -38,16 +38,16 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
throw new CommerceException("Point task points and claim limit must be positive.", "invalid_point_task");
var task = command.Id.HasValue
? await dbContext.PointActivityTasks.SingleOrDefaultAsync(
? await pointsPersistence.PointActivityTasks.SingleOrDefaultAsync(
item => item.TenantId == actor.TenantId && item.Id == command.Id.Value,
cancellationToken)
: await dbContext.PointActivityTasks.SingleOrDefaultAsync(
: await pointsPersistence.PointActivityTasks.SingleOrDefaultAsync(
item => item.TenantId == actor.TenantId && item.TaskKey == command.TaskKey.Trim(),
cancellationToken);
if (task is null)
{
task = new PointActivityTask { TenantId = actor.TenantId };
dbContext.PointActivityTasks.Add(task);
pointsPersistence.PointActivityTasks.Add(task);
}
task.TaskKey = command.TaskKey.Trim();
@@ -63,7 +63,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
task.Rules = JsonObjectOrDefault(command.Rules);
task.Metadata = JsonObjectOrDefault(command.Metadata);
await dbContext.SaveChangesAsync(cancellationToken);
await unitOfWork.SaveChangesAsync(cancellationToken);
return task;
}
@@ -73,7 +73,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var claims = dbContext.PointActivityClaims.AsNoTracking()
var claims = pointsPersistence.PointActivityClaims.AsNoTracking()
.Where(item => item.TenantId == actor.TenantId);
if (query.UserId.HasValue) claims = claims.Where(item => item.UserId == query.UserId.Value);
@@ -90,7 +90,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var items = dbContext.PointExchangeItems.AsNoTracking()
var items = pointsPersistence.PointExchangeItems.AsNoTracking()
.Where(item => item.TenantId == actor.TenantId);
if (!string.IsNullOrWhiteSpace(query.Status))
items = items.Where(item => item.Status == ParsePointExchangeItemStatus(query.Status));
@@ -116,16 +116,16 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
throw new CommerceException("Point exchange item cost must be positive.", "invalid_point_exchange_item");
var item = command.Id.HasValue
? await dbContext.PointExchangeItems.SingleOrDefaultAsync(
? await pointsPersistence.PointExchangeItems.SingleOrDefaultAsync(
entry => entry.TenantId == actor.TenantId && entry.Id == command.Id.Value,
cancellationToken)
: await dbContext.PointExchangeItems.SingleOrDefaultAsync(
: await pointsPersistence.PointExchangeItems.SingleOrDefaultAsync(
entry => entry.TenantId == actor.TenantId && entry.ItemKey == command.ItemKey.Trim(),
cancellationToken);
if (item is null)
{
item = new PointExchangeItem { TenantId = actor.TenantId };
dbContext.PointExchangeItems.Add(item);
pointsPersistence.PointExchangeItems.Add(item);
}
item.RegionId = command.RegionId;
@@ -143,7 +143,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
item.FulfillmentPayload = JsonObjectOrDefault(command.FulfillmentPayload);
item.Metadata = JsonObjectOrDefault(command.Metadata);
await dbContext.SaveChangesAsync(cancellationToken);
await unitOfWork.SaveChangesAsync(cancellationToken);
return item;
}
@@ -153,7 +153,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var orders = dbContext.PointExchangeOrders.AsNoTracking()
var orders = pointsPersistence.PointExchangeOrders.AsNoTracking()
.Where(item => item.TenantId == actor.TenantId);
if (query.UserId.HasValue) orders = orders.Where(item => item.UserId == query.UserId.Value);
@@ -173,7 +173,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
CancellationToken cancellationToken = default)
{
await AssertAdminAsync(actor, cancellationToken);
var order = await dbContext.PointExchangeOrders
var order = await pointsPersistence.PointExchangeOrders
.SingleOrDefaultAsync(item => item.TenantId == actor.TenantId && item.Id == command.OrderId,
cancellationToken)
?? throw new CommerceException("Point exchange order was not found.",
@@ -189,7 +189,7 @@ internal sealed class PointAdministrationService(CommerceAdministrationDependenc
order.CancelledAt ??= DateTimeOffset.UtcNow;
}
await dbContext.SaveChangesAsync(cancellationToken);
await unitOfWork.SaveChangesAsync(cancellationToken);
return order;
}
}