feat(huya): 协作台账支持待补资料一键建单与表单暂存

This commit is contained in:
yml2213
2026-10-17 14:21:36 +08:00
parent cad06ae789
commit fcc2fbdc09
8 changed files with 401 additions and 50 deletions
+10 -6
View File
@@ -200,16 +200,17 @@ CK 自带完整生命周期(导入 → 验证 → 使用/失效 → 重贴/重
### 4.1 业务状态机(一行的进度)
```
pending ─人工确认─▶ bound ─充值─▶ recharged ─上脚本─▶ scripted ─抢购成功─▶ done
│ │ │ │ │
└─────────────────┴──────────────┴─────────────────┴──────────────────┴──▶ failed(抢购失败)
│ │ │ │ │
└─────────────────┴──────────────┴─────────────────┴──────────────────┴──▶ void(作废)
incomplete ─资料齐全─▶ pending ─人工确认─▶ bound ─充值─▶ recharged ─上脚本─▶ scripted ─抢购成功─▶ done
│ │ │ │ │ │
└──────────────────┴─────────────────┴──────────────┴─────────────────┴──────────────────┴──▶ failed(抢购失败)
│ │ │ │ │ │
└──────────────────┴─────────────────┴──────────────┴─────────────────┴──────────────────┴──▶ void(作废)
```
| 状态 | 含义 | 进入条件 | 谁可触发 |
| --- | --- | --- | --- |
| `pending` | 待处理 | 新建 / 上传导入后的默认态(**上传完就是这里**) | — |
| `incomplete` | **待补资料** | 新建时只填订单号 + 店铺、CK / 礼包 / 主页截图留空即可(点一次「新建」自动进这里,2026-10-17) | 人工 |
| `pending` | 待处理 | 完整新建 / 上传导入后的默认态;或「待补资料」补齐 CK + 礼包名 + 主页截图后进入 | — / 人工 |
| `bound` | **已确认绑定** | 人工核对「探针读到的绑定角色」与「主页截图」一致后手动切 | 人工(单行 / 批量) |
| `recharged` | 已充值 | 充值完成后手动切(可跳步);写 `recharged_at` | 人工 |
| `scripted` | 已上脚本 | 脚本上完后手动切(可跳步);写 `scripted_at` | 人工 |
@@ -238,6 +239,9 @@ pending ─人工确认─▶ bound ─充值─▶ recharged ─上脚本─▶
6. **不用一个布尔列表达"充值/上脚本"**:`recharged_at` / `scripted_at` 是
"什么时候做过"的证据,`status` 是"现在卡在哪"。两者都留,
才能既显示"已充值/已上脚本"这种组合,也能显示"只充了没上脚本"的中间态。
7. **离开「待补资料」要求资料齐全**(`_assert_can_leave_incomplete()`):
外部 CK / 礼包名 / 主页截图三样缺一不可,缺什么在错误里写清(400)。
作废 / 抢购失败是旁路,不受这条限制;新建草稿单不跑探针、不做严格校验。
**批量改状态**(`set_status_batch()`,接口 `POST /external-orders/status/batch`):