新增数据库迁移:继续以 t_terminal_license 作为唯一终端授权来源,增加...
新增数据库迁移:继续以 t_terminal_license 作为唯一终端授权来源,增加 FLicenseId、FCounter、FSeal、FSealVersion、FSealedState、FUpdatedAt 等 Seal 字段及必要索引;不引入第二张终端授权业务表或历史表。 新增待处理终端篡改清单表,保存检测到的 ClientId、终端名称、差异产品 PID/名称、建议动作(RESET 或 DELETE)和状态。它只用于授权导入页提示与受控清理,不作为授权可信来源。 Seal 规范化载荷不绑定 Java 字段名,而按升序 PID 写入 pid=;enabled=<0|1>;涵盖当前和后续所有 FProductPid* 字段。新增产品时同步增加字段、登记 PID,并以新的 FSealVersion 对现有记录执行受控重封印后才启用校验。 扩展 LicenseUsageStateService:统一计算终端授权规范化载荷与 HMAC;批量校验终端 Seal、统计 PID 用量,并用模块 FCounter 乐观 CAS 写入新的模块快照。 迁移写入路径:LicenseAssignmentService、自动分配和终端删除在同一事务内更新 t_terminal_license 的产品字段和 Seal,再更新模块快照;并发分配只短暂串行化最终提交,避免超额。 新增定时校验:固定频率只读扫描终端记录与 Seal;扫描期间用户写入不阻塞,提交时发生版本冲突则放弃本轮并等待下轮;Seal 不匹配时登记 RESET 清单,缺失 Seal 的非法新增记录登记 DELETE 清单,并进入 TERMINAL_ASSIGNMENT_TAMPERED。 新增受控恢复:授权导入页匿名展示待处理终端及产品差异,提供复制/导出。成功导入经验证的 V4 正式授权后,先将 RESET 终端全部产品权限置为 false、删除 DELETE 终端,再重建合法终端 Seal 和模块快照;不得自动接受不可信状态。维保授权不影响终端 Seal 和用量快照。 新增 LICENSE_QUOTA_EXCEEDED:所有终端 Seal 正常、但授权缩减使 FUsed > FTotal 时保持业务可用,禁止新增手动/自动分配、允许取消分配,直到所有 PID 回到配额内后恢复 TRUSTED。