该API提供商品采集记录的查询和统计功能,支持:
基础路径:/admin/copy/collection
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"
}
]
}
}
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"
}
}
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 | 失败原因统计,按出现次数降序排列 |
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条记录
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 | 进行中 | 采集正在进行中 |