feat: 按创建人隔离采集采购任务 (#127)

This commit is contained in:
chengma
2026-08-10 23:10:28 +08:00
parent 74f99f37d0
commit a9f22b9b0e
24 changed files with 655 additions and 74 deletions
+14
View File
@@ -138,6 +138,10 @@ MySQL 迁移 v5(工单 #98)为 `tasks` 追加 `execution_mode`、`live_confi
和 `live_confirmed_at`,并增加模式/审计 CHECK 与领取索引。旧任务通过数据库默认值
统一成为 `dry_run`;每条 DDL 可重放,列、约束和索引全部通过自检后才记录 v5。
MySQL 迁移 v6(工单 #127)为 `tasks` 追加可空的 `created_by_user_id` 和创建人列表
索引。存量记录不回填,NULL 明确表示“历史任务”;新建采集和采购任务必须写当前
网页登录用户。迁移与自检可重放,历史 SQLite migrations 保持冻结。
## 3. 蝦皮数据
蝦皮报表**一个文件里混了两层数据**,所以拆成两张表。
@@ -693,6 +697,16 @@ CREATE INDEX idx_tasks_order ON tasks(order_no);
缺少创建审计信息的真实任务;`idx_tasks_claim_mode` 支持按客户端能力领取。字段名保留
历史命名以兼容已发布的 v5 migration。
生产 MySQL v6 再追加任务创建人字段:
| 字段 | 含义 |
|---|---|
| `created_by_user_id` | 创建任务的 Admin 用户 ID;存量 NULL 表示“历史任务” |
`idx_tasks_creator_list(created_by_user_id, updated_at DESC, task_id DESC)` 支持采购员
按本人范围分页,以及管理员按创建人筛选。用户只禁用不删除,因此无需把显示名称冗余
写入任务;`fk_tasks_created_by` 指向 `users(user_id)`,页面通过 `users` 关联显示用户名。
`[必须]` 两条硬约束,来自 [Client 契约](../client/04-admin-api-contract.md) §4:
1. **`pdd_goods_url` 不能为空**,否则 Client 无法执行(它那边是 `NOT NULL`)。