本批“报名审核与缴费更新”迁移完成:

PATCH /api/admin/registrations/{registrationId}
PATCH /api/admin/payments/{registrationId}
实现了多级报名审核、终审绑定报名号与号码规则、缴费确认/撤销、状态防重、考试归档锁定及事务审计
This commit is contained in:
2026-07-23 10:00:26 +08:00 Unverified
parent 3f555929fd
commit 7fd20caf3e
12 changed files with 542 additions and 13 deletions
@@ -111,6 +111,14 @@ public static class NativeAdminReadEndpoints
endpoints.MapPatch("/api/admin/candidates/{profileId}", (HttpContext context, string profileId, JsonObject body, IAdminCandidateManagementService service, CancellationToken cancellationToken) =>
Execute(context, service.ReviewProfileAsync(Token(context), profileId, body, cancellationToken)));
}
if (options.NativeRegistrationPaymentWritesEnabled)
{
endpoints.MapPatch("/api/admin/registrations/{registrationId}", (HttpContext context, string registrationId, JsonObject body, IAdminRegistrationManagementService service, CancellationToken cancellationToken) =>
Execute(context, service.ReviewAsync(Token(context), registrationId, body, cancellationToken)));
endpoints.MapPatch("/api/admin/payments/{registrationId}", (HttpContext context, string registrationId, JsonObject body, IAdminRegistrationManagementService service, CancellationToken cancellationToken) =>
Execute(context, service.UpdatePaymentAsync(Token(context), registrationId, body, cancellationToken)));
}
return endpoints;
}
+6 -1
View File
@@ -52,7 +52,8 @@ var adminMigrationOptions = AdminMigrationOptions.FromEnvironment(
builder.Configuration.GetValue<bool>("AdminMigration:NativeNoticeManagementEnabled"),
builder.Configuration.GetValue<bool>("AdminMigration:NativeCentersEnabled"),
builder.Configuration.GetValue<bool>("AdminMigration:NativeOperationalReadsEnabled"),
builder.Configuration.GetValue<bool>("AdminMigration:NativeCandidateManagementEnabled"));
builder.Configuration.GetValue<bool>("AdminMigration:NativeCandidateManagementEnabled"),
builder.Configuration.GetValue<bool>("AdminMigration:NativeRegistrationPaymentWritesEnabled"));
builder.Services.AddEisInfrastructure(
DatabaseOptions.FromEnvironment(applicationRoot, builder.Environment.IsProduction()),
DocumentVerificationOptions.FromEnvironment(builder.Environment.IsProduction()),
@@ -114,6 +115,7 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
nativeCentersEnabled = adminMigrationOptions.NativeCentersEnabled,
nativeOperationalReadsEnabled = adminMigrationOptions.NativeOperationalReadsEnabled,
nativeCandidateManagementEnabled = adminMigrationOptions.NativeCandidateManagementEnabled,
nativeRegistrationPaymentWritesEnabled = adminMigrationOptions.NativeRegistrationPaymentWritesEnabled,
nativeRoutes = (adminMigrationOptions.NativeReadsEnabled
? new[] { "GET context", "GET dashboard", "GET schools", "GET school-organization", "GET admins", "GET exams" }
: [])
@@ -142,6 +144,9 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
.Concat(adminMigrationOptions.NativeCandidateManagementEnabled
? new[] { "POST candidate-accounts/archive", "POST candidate reset-password", "PATCH candidates" }
: [])
.Concat(adminMigrationOptions.NativeRegistrationPaymentWritesEnabled
? new[] { "PATCH registrations", "PATCH payments" }
: [])
.ToArray()
},
features = MigrationFeatureCatalog.Current(authenticationOptions.NativeEnabled, candidateMigrationOptions.NativeEnabled)
+2 -1
View File
@@ -17,7 +17,8 @@
"NativeNoticeManagementEnabled": false,
"NativeCentersEnabled": false,
"NativeOperationalReadsEnabled": false,
"NativeCandidateManagementEnabled": false
"NativeCandidateManagementEnabled": false,
"NativeRegistrationPaymentWritesEnabled": false
},
"Logging": {
"LogLevel": {