fix(finance): 重写履约路由迁移与统一渠道配置
重写 120/121 迁移,统一内部 SKU、渠道 id、config_json 和旧规则转换。 后台渠道配置改读统一渠道表,卡券与人工配置不再写旧规则。 增加安全渠道切换,并排除已关闭、失败或过期的历史任务载体。 按生产 119 基线重跑迁移、完整履约财务链路和严格预检。
This commit is contained in:
@@ -223,13 +223,22 @@ pending 只保留:
|
||||
## 8. 最终落地口径(2026-11-02)
|
||||
|
||||
1. **内部 SKU 只有一个解析函数**:`resolve_internal_sku(manual_sku_key, sku_name, sku_code)`;入口 TS 侧使用同一顺序,不再由各脚本自行拼 SQL。
|
||||
2. **渠道配置只有一个运行时入口**:`internal_sku_channels`。一个内部 SKU 最多一个主渠道,其余渠道必须 `is_fallback = true`;数据库唯一索引阻止并列主渠道。
|
||||
2. **渠道配置只有一个可写入口**:`internal_sku_channels`。后台渠道规则、人工配置、卡券商品和自动发货配置都写这一张表;一个内部 SKU 最多一个主渠道,其余渠道必须 `is_fallback = true`,数据库唯一索引阻止并列主渠道。
|
||||
3. **载体先行**:自动发货/接单先创建 `fulfillment_tasks` / `work_orders`,成功后才写 `fulfillment_status = assigned`。创建失败保持 `pending / no_carrier`。
|
||||
4. **兜底触发**:主渠道为自动发货/接单且载体无法创建时,按 priority 尝试显式 fallback;人工配置、卡券为无需外部载体的安全渠道。已分配后自动任务失败仍由 `affiliate_fallback` 接管。
|
||||
5. **财务只镜像事实**:已有唯一真实载体优先;否则读取统一渠道计划;旧 `sku_channel_rules` 仅保留兼容回退,新增/修改会同步到统一渠道表。
|
||||
5. **财务只镜像事实**:已有唯一活跃载体优先;关闭、过期、失败、待重试和人工复核任务不再算载体。旧 `sku_channel_rules` 只作为 119 升级迁移的输入,迁移后不再新增或修改。
|
||||
6. **人工配置即时入表**:保存/停用人工 SKU 配置会同步 `internal_sku_channels`,历史配置由迁移 120 回填。
|
||||
7. **旧规则自动迁移**:可确定的 `sku_code` 自动发货/卡券规则在迁移中转为内部 SKU 渠道并停用旧规则;无法唯一解析的规则由严格预检阻断。
|
||||
7. **旧规则自动迁移**:可确定的 `sku_code` 规则会同时补 `internal_sku_mappings`、渠道配置和 `config_json`,随后停用旧规则;无法唯一解析的规则由严格预检阻断。
|
||||
8. **同名 man/tpl 不强制合并**:保留不同载体能力,但同一内部 SKU 只能配置一个主渠道,其余显式兜底。
|
||||
9. **渠道切换有明确状态**:未进入实际履约的旧任务/工单会关闭、领取链接失效、旧成本快照作废,再创建新载体;已进入实际交付或已成功的订单拒绝自动切换。
|
||||
|
||||
### `config_json` 约定
|
||||
|
||||
- `affiliate_dash`:`affiliateSku`;
|
||||
- `work_order`:`workRuleKey`;
|
||||
- `manual`:`manualConfigId`、`platformKey` 等人工配置引用;
|
||||
- `third_party_voucher`:`voucherSku`;
|
||||
- 其他审计字段只追加,不覆盖已有对象键。
|
||||
|
||||
### 数据与回填约定
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
- 119:只加列和索引,风险低。
|
||||
- 120:建立统一内部 SKU SQL 函数、回填人工配置、迁移可确定的旧 sku_code 规则。
|
||||
- 121:建立唯一主渠道索引;若仍有并列主渠道会主动阻断迁移。
|
||||
- SQL 护栏默认只保护到生产已发布的迁移 119;部署 120 后应把 `PUBLISHED_MIGRATION_MAX_VERSION` 提升为 120。
|
||||
|
||||
## 3. 部署顺序
|
||||
|
||||
|
||||
Reference in New Issue
Block a user