All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m55s
2.1 KiB
2.1 KiB
统一导出任务手工验证清单
验证工具与原则
- 数据库结构与数据状态:使用 PostgreSQL MCP(只读)
- 接口契约验证:使用 Postman 或 curl
- 明确约束:不新增自动化测试文件(
*_test.go)
A. 创建导出任务
POST /api/admin/export-tasks,scene=device,format=xlsxPOST /api/admin/export-tasks,scene=iot_card,format=csv- 非法
scene(如order)返回参数错误 - 非法
format(如pdf)返回参数错误
B. 列表与过滤
GET /api/admin/export-tasks?page=1&page_size=20默认分页生效scene过滤生效(device/iot_card)status过滤生效(1~5)start_time/end_time时间过滤生效page_size > 100时被限制到 100
C. 详情与下载
- 未完成任务详情不返回
download_url - 已完成任务详情返回
download_url download_url有效期固定 24 小时- 过期后再次访问详情可刷新新链接
D. 取消语义
- 待处理任务可取消,状态立即变为已取消
- 处理中任务可提交取消请求(
cancel_requested=true) - 已完成/已失败/已取消任务再次取消被拒绝
- 重复取消处理中任务幂等返回
E. 异步链路(dispatch -> shard -> finalize)
- 创建任务后
export:dispatch被消费 - 分片任务写入
tb_export_shard_task export:shard执行后分片状态更新,产物写入 OSSexport:finalize汇总后主任务状态收敛- 分片失败时主任务最终失败,错误信息可追踪
F. 数据权限与可见性
- 平台用户可见全量任务
- 代理仅可见其店铺范围任务
- 越权访问详情统一返回:
无权限操作该资源或资源不存在
G. 数据库核查项(PostgreSQL MCP)
tb_export_task表存在,字段与注释完整tb_export_shard_task表存在,字段与注释完整- 关键索引存在并生效(任务号唯一索引、
task_id+status、scene+status+created_at)