Commit Graph
16 Commits
  • 本轮完成“考点与考场变更审批”原生迁移:
    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,避免使用过期程序集
  • 新增 POST /api/admin/notices、PATCH /api/admin/notices/{id}
    保留超级管理员权限边界
    支持草稿、发布、置顶、自动摘要
    HTML 净化,拦截脚本和危险链接
    公告更新与审计日志同事务提交
    新增开关 ADMIN_NATIVE_NOTICE_WRITES_ENABLED=false
    管理端公告列表和系统自动公告暂时仍由 Node 处理
  • 已完成管理后台第四批 ASP.NET Core 10 迁移:报名号规则与审批流程配置。
    原生接口:
    GET/POST /api/admin/number-rules
    GET /api/admin/workflows
    PUT /api/admin/workflows/{businessType}
    实现包括:
    报名号规则预览、创建和更新
    自动停用旧规则
    审批流程步骤重建
    班级、校级、超级管理员层级校验
    考点及批量申领流程禁止班级审批
    批量申领最终步骤强制为超级管理员
    配置更新与审计日志事务提交
  • 已完成管理后台第三批 ASP.NET Core 10 迁移:批量报名号申领与审批。
    原生接口:
    GET /api/admin/candidate-account-batches
    POST /api/admin/candidate-account-batches
    PATCH /api/admin/candidate-account-batches/{batchId}
    实现包含:
    校级管理员按班级提交名额
    可配置多级审批流与待办负载分配
    当前处理人及管理员层级校验
    审批通过、退回和重复审批保护
    终审时原子生成考生账号、报名号、初始密码和待补录资料
    生成账号兼容现有 PBKDF2 登录及首次强制改密
  • 已完成管理后台第二批 ASP.NET Core 10 迁移:
    学校创建、修改
    班级创建、修改
    管理员创建、修改
    管理员密码重置
    自主注册开关
    写入与审计日志保持同一事务
    停用或重置管理员后自动清除其会话
  • 已完成管理后台第一批只读功能的 ASP.NET Core 10 迁移:
    原生接口:context、dashboard、schools、school-organization、admins、exams
    保持超级、校级、班级管理员的数据范围及权限隔离
    其余管理写入、审批流和考务编排仍由 Node 转发
    新增 ADMIN_NATIVE_READS_ENABLED=true 开关,并强制要求原生认证和共享 Redis
  • 原生志愿、录取、计划余量、指标资格和通知查询:[CandidateService.Admissions.cs (line 29)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Candidate/CandidateService.Admissions.cs:29)
    志愿提交、资格校验、补录限制、次数上限与自动锁定:[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)
  • 原生成绩查询、科目/总分排名、达线判断、等级计算及成绩单防伪码:[CandidateService.Results.cs (line 11)](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Infrastructure/Candidate/CandidateService.Results.cs:11)
    原生成绩复议提交,工作流、分配人与审计日志同事务写入。
    原生准考证下载窗口校验及 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)
  • PUT /api/candidate/profile
    行政区划、学校班级、特长类别校验
    证件号码唯一性
    自动创建资料审核工作流
    资料和用户显示名称原子更新
    
    POST /api/candidate/registrations
    资料审核状态、报名时间和科目校验
    重复报名防护
    自动选择负载最低的审批管理员
    报名、科目和审批流原子写入
  • 已完成考生域第一批只读迁移:
    GET /api/candidate/dashboard
    GET /api/candidate/notices
    GET /api/candidate/profile
    GET /api/candidate/exams
    GET /api/candidate/registrations
  • 自主注册、登录、退出、当前用户与密码修改
    兼容现有 PBKDF2 密码和 hz_session Cookie
    TOTP 绑定、二步登录、防重放、恢复码与 AES-GCM 密钥
    与 Node 完全一致的 Redis 键格式,可跨运行时共享会话
    生产环境开启原生认证时强制要求 Redis
    默认保持兼容代理;设置 AUTH_NATIVE_ENABLED=true 即可切换
  • 招生计划、资格、录取、分数线及报到公示
    成绩单 HMAC 防伪验真
    录取通知书 HMAC 防伪验真
    防伪码常量时间比较
    生产环境文书密钥强度检查
    旧文书防伪码完全兼容
  • GET /api/public/home
    GET /api/public/notices/{id}
    SQLite / MySQL 双数据库只读连接
    .env 与现有数据库配置兼容
    公告 HTML 安全清洗
    学校、班级、考试、科目、报名及系统通知聚合
  • 第一阶段迁移已完成。
    已实现:
    ASP.NET Core 10 分层解决方案:[Eis.slnx](C:/Users/BI/Documents/EIS-dotnet/Eis.slnx)
    ASP.NET Core 统一入口与健康检查:[Program.cs](C:/Users/BI/Documents/EIS-dotnet/src/Eis.Web/Program.cs)
    原前端静态资源无修改托管
    未迁移 API 自动转发至旧 Node 服务,兼容 JSON、Cookie、请求体和文件下载
    可重复执行的端到端测试:[smoke-dotnet-migration.ps1](C:/Users/BI/Documents/EIS-dotnet/scripts/smoke-dotnet-migration.ps1)
    迁移进度与运行说明:[MIGRATION.md](C:/Users/BI/Documents/EIS-dotnet/MIGRATION.md)
    验证结果: