本批迁移已完成:
原生化后台只读接口:GET /api/admin/candidates GET /api/admin/registrations GET /api/admin/payments 保持超级、校级、班级管理员的数据范围一致。 保持证件号脱敏、审批流、考试科目、缴费信息及座位号前导零兼容。 新增灰度开关:ADMIN_NATIVE_OPERATIONAL_READS_ENABLED=true 归档、审核、缴费更新等写操作暂时继续转发 Node。
This commit is contained in:
@@ -91,6 +91,16 @@ public static class NativeAdminReadEndpoints
|
||||
endpoints.MapPatch("/api/admin/center-change-requests/{changeRequestId}", (HttpContext context, string changeRequestId, JsonObject body, IAdminCenterService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.ReviewAsync(Token(context), changeRequestId, body, cancellationToken)));
|
||||
}
|
||||
|
||||
if (options.NativeOperationalReadsEnabled)
|
||||
{
|
||||
endpoints.MapGet("/api/admin/candidates", (HttpContext context, IAdminOperationalReadService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.GetCandidatesAsync(Token(context), cancellationToken)));
|
||||
endpoints.MapGet("/api/admin/registrations", (HttpContext context, IAdminOperationalReadService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.GetRegistrationsAsync(Token(context), cancellationToken)));
|
||||
endpoints.MapGet("/api/admin/payments", (HttpContext context, IAdminOperationalReadService service, CancellationToken cancellationToken) =>
|
||||
Execute(context, service.GetPaymentsAsync(Token(context), cancellationToken)));
|
||||
}
|
||||
return endpoints;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,8 @@ var adminMigrationOptions = AdminMigrationOptions.FromEnvironment(
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeAccountBatchesEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeConfigurationEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeNoticeManagementEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeCentersEnabled"));
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeCentersEnabled"),
|
||||
builder.Configuration.GetValue<bool>("AdminMigration:NativeOperationalReadsEnabled"));
|
||||
builder.Services.AddEisInfrastructure(
|
||||
DatabaseOptions.FromEnvironment(applicationRoot, builder.Environment.IsProduction()),
|
||||
DocumentVerificationOptions.FromEnvironment(builder.Environment.IsProduction()),
|
||||
@@ -110,6 +111,7 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
|
||||
nativeConfigurationEnabled = adminMigrationOptions.NativeConfigurationEnabled,
|
||||
nativeNoticeManagementEnabled = adminMigrationOptions.NativeNoticeManagementEnabled,
|
||||
nativeCentersEnabled = adminMigrationOptions.NativeCentersEnabled,
|
||||
nativeOperationalReadsEnabled = adminMigrationOptions.NativeOperationalReadsEnabled,
|
||||
nativeRoutes = (adminMigrationOptions.NativeReadsEnabled
|
||||
? new[] { "GET context", "GET dashboard", "GET schools", "GET school-organization", "GET admins", "GET exams" }
|
||||
: [])
|
||||
@@ -132,6 +134,9 @@ app.MapGet("/health/migration", async (LegacyApiProxy proxy, CancellationToken c
|
||||
.Concat(adminMigrationOptions.NativeCentersEnabled
|
||||
? new[] { "GET/POST/PATCH centers", "PATCH center-change-requests" }
|
||||
: [])
|
||||
.Concat(adminMigrationOptions.NativeOperationalReadsEnabled
|
||||
? new[] { "GET candidates", "GET registrations", "GET payments" }
|
||||
: [])
|
||||
.ToArray()
|
||||
},
|
||||
features = MigrationFeatureCatalog.Current(authenticationOptions.NativeEnabled, candidateMigrationOptions.NativeEnabled)
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
"NativeAccountBatchesEnabled": false,
|
||||
"NativeConfigurationEnabled": false,
|
||||
"NativeNoticeManagementEnabled": false,
|
||||
"NativeCentersEnabled": false
|
||||
"NativeCentersEnabled": false,
|
||||
"NativeOperationalReadsEnabled": false
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
|
||||
Reference in New Issue
Block a user