POST /api/admin/candidate-accounts/archive POST /api/admin/candidates/{profileId}/reset-password PATCH /api/admin/candidates/{profileId} 实现了校级按班级/年级归档与恢复、超级管理员密码重置、多级资料审批、事务审计和会话失效。核心代码见
原生化后台只读接口:GET /api/admin/candidates GET /api/admin/registrations GET /api/admin/payments 保持超级、校级、班级管理员的数据范围一致。 保持证件号脱敏、审批流、考试科目、缴费信息及座位号前导零兼容。 新增灰度开关:ADMIN_NATIVE_OPERATIONAL_READS_ENABLED=true 归档、审核、缴费更新等写操作暂时继续转发 Node。
GET/POST/PATCH /api/admin/centers PATCH /api/admin/center-change-requests/{id} 校级数据范围、班级管理员禁用 省市区县及结构化考场校验 正式档案和待审申请代码去重 多级工作流分配、通过与拒绝 终审时原子更新流程、审计、考点及考场 新增开关 ADMIN_NATIVE_CENTERS_ENABLED=false
原生 GET /api/admin/notices 原生五类系统公示聚合:计划、资格、录取、分数线、报到 原生 PATCH /api/admin/publications/{type}/{id} 显隐控制 权限、事务审计和 Node 返回结构保持一致 开关升级为 ADMIN_NATIVE_NOTICE_MANAGEMENT_ENABLED 兼容旧变量 ADMIN_NATIVE_NOTICE_WRITES_ENABLED 冒烟脚本现在会自动构建 Web,避免使用过期程序集
保留超级管理员权限边界 支持草稿、发布、置顶、自动摘要 HTML 净化,拦截脚本和危险链接 公告更新与审计日志同事务提交 新增开关 ADMIN_NATIVE_NOTICE_WRITES_ENABLED=false 管理端公告列表和系统自动公告暂时仍由 Node 处理
原生接口: GET/POST /api/admin/number-rules GET /api/admin/workflows PUT /api/admin/workflows/{businessType} 实现包括: 报名号规则预览、创建和更新 自动停用旧规则 审批流程步骤重建 班级、校级、超级管理员层级校验 考点及批量申领流程禁止班级审批 批量申领最终步骤强制为超级管理员 配置更新与审计日志事务提交
原生接口: GET /api/admin/candidate-account-batches POST /api/admin/candidate-account-batches PATCH /api/admin/candidate-account-batches/{batchId} 实现包含: 校级管理员按班级提交名额 可配置多级审批流与待办负载分配 当前处理人及管理员层级校验 审批通过、退回和重复审批保护 终审时原子生成考生账号、报名号、初始密码和待补录资料 生成账号兼容现有 PBKDF2 登录及首次强制改密
学校创建、修改 班级创建、修改 管理员创建、修改 管理员密码重置 自主注册开关 写入与审计日志保持同一事务 停用或重置管理员后自动清除其会话
原生接口:context、dashboard、schools、school-organization、admins、exams 保持超级、校级、班级管理员的数据范围及权限隔离 其余管理写入、审批流和考务编排仍由 Node 转发 新增 ADMIN_NATIVE_READS_ENABLED=true 开关,并强制要求原生认证和共享 Redis
志愿提交、资格校验、补录限制、次数上限与自动锁定:[CandidateService.Admissions.cs (line 152)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Candidate/CandidateService.Admissions.cs:152) 通用招生记录读取及事务写入:[CandidateAdmissionRepository.cs (line 25)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Candidate/CandidateAdmissionRepository.cs:25) 原生路由已接入:[NativeCandidateEndpoints.cs (line 70)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Web/Candidate/NativeCandidateEndpoints.cs:70) 迁移状态现在会把 Candidate 标记为原生:[MigrationFeatureCatalog.cs (line 12)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Migration/MigrationFeatureCatalog.cs:12)
原生成绩复议提交,工作流、分配人与审计日志同事务写入。 原生准考证下载窗口校验及 HTML 文书生成:[CandidateAdmitCardRenderer.cs (line 9)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Candidate/CandidateAdmitCardRenderer.cs:9) 三个路由已切换到 ASP.NET Core:[NativeCandidateEndpoints.cs (line 61)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Web/Candidate/NativeCandidateEndpoints.cs:61) 更新迁移说明:[MIGRATION.md (line 50)](C:/Users/BI/Documents/EIS-dotnet/MIGRATION.md:50)
行政区划、学校班级、特长类别校验 证件号码唯一性 自动创建资料审核工作流 资料和用户显示名称原子更新 POST /api/candidate/registrations 资料审核状态、报名时间和科目校验 重复报名防护 自动选择负载最低的审批管理员 报名、科目和审批流原子写入
兼容现有 PBKDF2 密码和 hz_session Cookie TOTP 绑定、二步登录、防重放、恢复码与 AES-GCM 密钥 与 Node 完全一致的 Redis 键格式,可跨运行时共享会话 生产环境开启原生认证时强制要求 Redis 默认保持兼容代理;设置 AUTH_NATIVE_ENABLED=true 即可切换
成绩单 HMAC 防伪验真 录取通知书 HMAC 防伪验真 防伪码常量时间比较 生产环境文书密钥强度检查 旧文书防伪码完全兼容
GET /api/public/notices/{id} SQLite / MySQL 双数据库只读连接 .env 与现有数据库配置兼容 公告 HTML 安全清洗 学校、班级、考试、科目、报名及系统通知聚合