docs(M01-B): 记录旧订单金额转换进度

This commit is contained in:
Codex
2026-06-18 09:41:36 +08:00
parent b8b384ed67
commit 2571f6fe5b
5 changed files with 23 additions and 10 deletions
@@ -92,3 +92,17 @@ release manifest dry-run 已能记录 `databaseMigration=PROJECT_PRESENT_MIGRATI
- 工程提交:`e069c50 feat(M01-B): 增加迁移执行器与旧库只读兼容层`
- 未执行真实 MySQL up/verify/down:当前工作区未配置可丢弃测试库凭据,M01-B 保持 `PARTIAL`
- 下一步:在一次性 MySQL 8 环境往返执行迁移,并实现旧 DECIMAL 金额到整数分的严格转换。
## 13. 2026-06-18 续开发:旧订单金额严格转换
- 新增 `legacyDecimalToCents`,直接按十进制字符串拆分并使用 `BigInt` 计算整数分,避免 `Number * 100` 的浮点误差。
- 旧订单兼容查询新增 `price``pay_price``renew_price``group_pay_price``refund_price` 映射,统一输出对应的 `*Cents` 字段。
- 拒绝负数、科学计数法、前后空格、超过两位小数、非有限数字和非数字类型。
- `price` 按旧表 `NOT NULL` 约束处理;其余可空金额保留 `null`
- 目标列按 MySQL `INT UNSIGNED` 上限 `4294967295` 分执行溢出检查。
- `npm test`:通过,包含精确值、边界值、空值、格式错误、溢出和 Repository 集成测试。
- `scripts/dev/windows/check-backend.ps1`:通过,包含编译、全部契约测试、迁移 dry-run 和真实 HTTP 健康检查。
- `scripts/dev/windows/check-secrets.ps1`:通过。
- 工程提交:`b8b384e feat(M01-B): 严格转换旧库订单金额`
- 未执行真实 MySQL up/verify/down:当前工作区仍未配置可丢弃 MySQL 8 测试库,M01-B 保持 `PARTIAL`
- 下一步:在一次性 MySQL 8 中执行 up、verify、down、再次 up,并保存可复现结果。