feat: 任务列表显示店铺名和执行用时 (#136)
This commit is contained in:
@@ -130,6 +130,7 @@ CREATE TABLE pdd_tasks (
|
||||
goods_id TEXT,
|
||||
goods_url TEXT NOT NULL,
|
||||
title TEXT,
|
||||
shop_name TEXT,
|
||||
target_color TEXT,
|
||||
target_size TEXT,
|
||||
price_cent INTEGER CHECK (price_cent IS NULL OR price_cent >= 0),
|
||||
@@ -175,6 +176,7 @@ CREATE INDEX idx_pdd_tasks_visible_list
|
||||
- `remote_task_id`:跨 Admin、Client、日志、提交和归档使用的稳定任务编号。Mock 任务也必须分配稳定编号。
|
||||
- `execution_mode`:Admin 领取时确定的不可变执行模式;历史记录默认为 `dry_run`,Client 不得把任务自行提升为 `live`。
|
||||
- `price_cent`:列表摘要价格;采集任务通常为最低可用 SKU 价格,详细价格以 `pdd_data.skus` 为准。
|
||||
- `shop_name`:列表使用的店铺名摘要;保存结果时从 `pdd_data.shop_name` 同步,避免列表查询解析完整 JSON。
|
||||
- `status`:**本机执行状态**,只由本机的执行流程和 Outbox 提交响应驱动。Admin 那边把任务标成什么,本地不知道也不需要知道(见 §3.1)。
|
||||
- `current_step`:当前安全步骤,例如 `open_goods`、`collect_skus`、`select_options`、`placing_order`、`reconcile_order`。
|
||||
- `admin_payload`:`claim` 时收到的原始 Admin 任务 JSON,用于审计和向前兼容。
|
||||
@@ -212,15 +214,21 @@ CREATE INDEX idx_pdd_tasks_visible_list
|
||||
列表默认查询:
|
||||
|
||||
```sql
|
||||
SELECT id, remote_task_id, task_type, title, target_color, target_size,
|
||||
price_cent, quantity, status, updated_at
|
||||
SELECT pdd_tasks.id, remote_task_id, task_type, title, shop_name,
|
||||
target_color, target_size, price_cent, quantity, status,
|
||||
latest_run.run_status, latest_run.started_at, latest_run.finished_at,
|
||||
pdd_tasks.updated_at
|
||||
FROM pdd_tasks
|
||||
LEFT JOIN task_runs AS latest_run ON /* 每个任务 attempt_no 最大的一条执行记录 */
|
||||
WHERE removed_at IS NULL
|
||||
AND /* 本地搜索与筛选条件 */
|
||||
ORDER BY updated_at DESC, id DESC
|
||||
LIMIT :limit OFFSET :offset;
|
||||
```
|
||||
|
||||
列表必须在同一条 SQL 中读取最新执行记录,不能逐行查询。已结束执行的用时按
|
||||
`finished_at - started_at` 取整秒,异常负数按 0 秒显示;正在执行显示“进行中”。
|
||||
|
||||
批量软删除必须在一个事务内先校验全部勾选任务,再统一写入 `removed_at`。
|
||||
只允许 `succeeded`、`failed`、`cancelled`,且所有 Outbox 都已发送、所有执行记录的
|
||||
`irreversible_action_at` 都为空。任一任务不满足时整体失败,不能只隐藏其中一部分。
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
│ PDD 任务 │
|
||||
│ [自动获取] [类型▼] [状态▼] [关键词...] [搜索] [刷新] [全选] [反选] [已选0条] [重新上报] [重新采集] [重新采购] [删除] │
|
||||
├─────────────────────────────────────────────────────────────┤
|
||||
│ 选择 │ 类型 │ 商品标题 │ 颜色 │ 尺码 │ 价格 │ 数量 │ 状态 │ 更新时间 │
|
||||
│ 选择 │ 类型 │ 商品标题 │ 店铺名 │ 颜色 │ 尺码 │ 价格 │ 数量 │ 状态 │ 用时 │ 更新时间 │
|
||||
│ │
|
||||
│ 任务数据表格 │
|
||||
│ │
|
||||
@@ -127,11 +127,13 @@
|
||||
| 选择 | 居中 | 行首复选框;占位空行不可勾选,身份使用 `remote_task_id` |
|
||||
| 任务类型 | 居中 | “采集”或“采购”,颜色只作辅助 |
|
||||
| 商品标题 | 左对齐、可伸展 | 空值显示“尚未获取标题”,截断时提供完整工具提示 |
|
||||
| 店铺名 | 左对齐 | 采集到的店铺名;无值显示 `—` |
|
||||
| 颜色 | 左对齐 | 无值显示 `—` |
|
||||
| 尺码 | 左对齐 | 无值显示 `—` |
|
||||
| 价格 | 右对齐 | 格式为 `¥39.90`;采集摘要可显示 `¥39.90 起` |
|
||||
| 数量 | 右对齐 | 采购数量;采集显示 `—` |
|
||||
| 状态 | 居中 | 中文状态文字和状态图标/标记 |
|
||||
| 用时 | 居中 | 已结束显示整数秒,执行中显示“进行中”,尚未执行显示 `—` |
|
||||
| 更新时间 | 左对齐 | 本地时区,精确到秒或按产品确认格式 |
|
||||
|
||||
### 5.2 数据行为
|
||||
|
||||
Reference in New Issue
Block a user