采集记录 API文档

功能概述

该API提供商品采集记录的查询和统计功能,支持:

基础路径:/admin/copy/collection

接口列表

1. 获取采集记录列表

GET /admin/copy/collection/logs

分页查询采集记录列表,支持多种筛选条件

请求参数

参数名 类型 必填 说明
page int 页码,默认1
limit int 每页数量,默认20,最大100
channel string 渠道筛选
provider string 服务商筛选
status int 状态筛选:1成功 0失败
start_time string 开始时间,格式:Y-m-d
end_time string 结束时间,格式:Y-m-d

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "total": 100,
    "page": 1,
    "limit": 20,
    "list": [
      {
        "id": 1,
        "channel": "jd",
        "channel_name": "京东",
        "provider": "wanban",
        "provider_name": "万邦采集",
        "product_url": "https://item.jd.com/123456.html",
        "status": 1,
        "status_name": "成功",
        "fail_reason": null,
        "fail_count": 0,
        "created_at": "2024-01-01 00:00:00"
      },
      {
        "id": 2,
        "channel": "1688",
        "channel_name": "1688",
        "provider": "99api",
        "provider_name": "99api采集",
        "product_url": "https://detail.1688.com/offer/789012.html",
        "status": 0,
        "status_name": "失败",
        "fail_reason": "商品不存在",
        "fail_count": 3,
        "created_at": "2024-01-01 00:00:00"
      }
    ]
  }
}

2. 获取采集记录详情

GET /admin/copy/collection/logs/{id}

获取单条采集记录的详细信息,包含完整的响应数据

路径参数

参数名 类型 必填 说明
id int 记录ID

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "id": 1,
    "channel": "jd",
    "channel_name": "京东",
    "provider": "wanban",
    "provider_name": "万邦采集",
    "product_url": "https://item.jd.com/123456.html",
    "status": 0,
    "status_name": "失败",
    "fail_reason": "商品不存在",
    "fail_count": 3,
    "response_data": {
      "error_code": "PRODUCT_NOT_FOUND",
      "error_message": "商品不存在或已下架",
      "request_time": "2024-01-01 00:00:00",
      "response_time": "2024-01-01 00:00:01"
    },
    "created_at": "2024-01-01 00:00:00"
  }
}

3. 获取采集统计信息

GET /admin/copy/collection/statistics

获取采集统计信息,包括总体统计、按渠道统计、按服务商统计、失败原因统计

请求参数

参数名 类型 必填 说明
start_time string 开始时间,格式:Y-m-d
end_time string 结束时间,格式:Y-m-d

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "summary": {
      "total_collections": 1800,
      "success_count": 1710,
      "fail_count": 90,
      "success_rate": 95.0
    },
    "by_channel": [
      {
        "channel": "jd",
        "channel_name": "京东",
        "total": 500,
        "success": 475,
        "fail": 25,
        "success_rate": 95.0
      },
      {
        "channel": "1688",
        "channel_name": "1688",
        "total": 450,
        "success": 428,
        "fail": 22,
        "success_rate": 95.1
      }
    ],
    "by_provider": [
      {
        "provider": "wanban",
        "provider_name": "万邦采集",
        "total": 1000,
        "success": 950,
        "fail": 50,
        "success_rate": 95.0
      },
      {
        "provider": "99api",
        "provider_name": "99api采集",
        "total": 800,
        "success": 760,
        "fail": 40,
        "success_rate": 95.0
      }
    ],
    "fail_reasons": [
      {
        "reason": "商品不存在",
        "count": 30,
        "percentage": 33.3
      },
      {
        "reason": "网络超时",
        "count": 25,
        "percentage": 27.8
      },
      {
        "reason": "接口限流",
        "count": 20,
        "percentage": 22.2
      }
    ]
  }
}

响应字段说明

字段名 类型 说明
summary object 总体统计
summary.total_collections int 总采集次数
summary.success_count int 成功次数
summary.fail_count int 失败次数
summary.success_rate float 成功率百分比
by_channel array 按渠道统计
by_provider array 按服务商统计
fail_reasons array 失败原因统计,按出现次数降序排列

4. 导出采集日志

GET /admin/copy/collection/logs/export

导出采集日志为CSV文件下载,支持所有筛选条件

请求参数

参数名 类型 必填 说明
channel string 渠道筛选
provider string 服务商筛选
status int 状态筛选:1成功 0失败
start_time string 开始时间,格式:Y-m-d
end_time string 结束时间,格式:Y-m-d

响应

返回CSV文件下载流,文件名格式:collection_logs_YYYYMMDDHHmmss.csv

最多导出10000条记录

5. 手动触发采集

POST /admin/copy/collection/collect

手动触发一次商品采集,可指定服务商用于测试

请求参数

参数名 类型 必填 说明
channel string 采集渠道
product_url string 商品链接
provider string 指定服务商,不指定则使用配置

请求示例

{
  "channel": "jd",
  "product_url": "https://item.jd.com/123456.html",
  "provider": "wanban"
}

成功响应示例

{
  "code": 200,
  "message": "采集成功",
  "data": {
    "channel": "jd",
    "provider": "wanban",
    "status": "success",
    "data": {
      "goods_id": "123456",
      "title": "商品名称",
      "price": 99.00
    },
    "created_at": "2024-01-01 00:00:00"
  }
}

失败响应示例

{
  "code": 1004,
  "message": "商品不存在",
  "data": {
    "channel": "jd",
    "provider": "wanban",
    "status": "failed",
    "fail_reason": "商品不存在",
    "fail_count": 3
  }
}

错误码说明

错误码 说明
200 成功
400 请求参数错误
401 未授权,请先登录
403 无权限访问
404 记录不存在
1001 渠道不支持
1002 服务商不存在
1004 采集任务失败
500 服务器内部错误

采集状态说明

状态值 状态名称 说明
0 失败 采集失败
1 成功 采集成功
2 进行中 采集正在进行中