feat: 增加真实采购任务安全模式 (#98)
This commit is contained in:
@@ -134,6 +134,10 @@ MySQL 迁移 v3(工单 #88)是追加式迁移:新增 `spec_mappings`,为
|
||||
再转换能找到顺运宝商品与规格的映射。复跑、字段已建但约束未建等中断状态必须自动收敛;
|
||||
启动自检除表名外还校验 v3 主键、长度、二进制排序规则和 `source` 取值约束。
|
||||
|
||||
MySQL 迁移 v5(工单 #98)为 `tasks` 追加 `execution_mode`、`live_confirmed_by`
|
||||
和 `live_confirmed_at`,并增加模式/审计 CHECK 与领取索引。旧任务通过数据库默认值
|
||||
统一成为 `dry_run`;每条 DDL 可重放,列、约束和索引全部通过自检后才记录 v5。
|
||||
|
||||
## 3. 蝦皮数据
|
||||
|
||||
蝦皮报表**一个文件里混了两层数据**,所以拆成两张表。
|
||||
@@ -677,6 +681,17 @@ CREATE INDEX idx_tasks_list ON tasks(updated_at DESC, task_id DESC);
|
||||
CREATE INDEX idx_tasks_order ON tasks(order_no);
|
||||
```
|
||||
|
||||
生产 MySQL v5 在 `tasks` 追加以下安全字段(历史 SQLite 结构不改):
|
||||
|
||||
| 字段 | 含义 |
|
||||
|---|---|
|
||||
| `execution_mode` | `dry_run` / `live`,非空且默认 `dry_run`;创建后不可修改 |
|
||||
| `live_confirmed_by` | 创建真实任务的正常状态 Admin 用户;演练任务必须为空 |
|
||||
| `live_confirmed_at` | 真实任务阻断确认时间;演练任务必须为空 |
|
||||
|
||||
`chk_tasks_execution_mode` 和 `chk_tasks_live_confirmation` 在数据库层阻止非法模式及
|
||||
缺少审计信息的真实任务;`idx_tasks_claim_mode` 支持按客户端能力领取。
|
||||
|
||||
`[必须]` 两条硬约束,来自 [Client 契约](../client/04-admin-api-contract.md) §4:
|
||||
|
||||
1. **`pdd_goods_url` 不能为空**,否则 Client 无法执行(它那边是 `NOT NULL`)。
|
||||
|
||||
Reference in New Issue
Block a user