这是一个国际物流比价系统,用于对比不同物流公司的产品报价,帮助用户找到最优物流方案。系统包含物流公司、产品、报价三个核心层级,支持空运和海运两种运输方式。
系统名称:国际物流比价系统 (International Logistics Price Comparison System)
一句话定位:录入多家物流商的产品报价,按重量/体积等参数一键比价,找到最优发货方案。
admin(管理员):拥有所有权限,可管理用户、配置系统、增删改所有数据
user(普通用户):只能操作自己录入的数据,可查看和比价,不可管理用户
权限分为模块权限(home/mgmt/price/cmp/batch)和操作权限(add/edit/del)
| 项目 | 说明 |
|---|---|
| Base URL | https://wl.omejia.com/data.php |
| 协议 | HTTPS |
| 请求方式 | GET(OPTIONS 仅用于同源预检) |
| 响应格式 | JSON (UTF-8) |
| 字符编码 | UTF-8 |
| 跨域支持 | 仅允许 https://wl.omejia.com 浏览器来源;服务端调用不受 CORS 影响 |
GET /data.php?action=overview HTTP/1.1
Host: wl.omejia.com
X-API-Key: wl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{
"code": 0,
"message": "success",
"data": { ... },
"timestamp": 1696876800
}
| 字段 | 类型 | 说明 |
|---|---|---|
| code | int | 状态码,0 表示成功,其他表示错误 |
| message | string | 返回消息描述 |
| data | object/array | 返回数据主体 |
| timestamp | int | 服务器时间戳(秒) |
国际物流比价系统是一个用于管理多家物流商产品报价并进行智能比价的工具,支持空运和海运两种运输方式,帮助用户快速找到最优物流方案。
| 模块 | 说明 | 对应表 |
|---|---|---|
| 🏠 首页概览 | 数据统计、快捷入口 | - |
| 🏢 物流公司管理 | 管理物流公司信息 | logistics_companies |
| 📦 物流产品管理 | 管理各公司的物流产品 | logistics_products |
| 💰 报价管理 | 管理产品的报价规则 | pricing_records |
| ⚖️ 比价查询 | 按参数对比各产品报价 | pricing_records, logistics_products |
| 📋 批量比价 | 批量导入订单进行比价 | batch_orders |
| 📮 偏远邮编 | 管理偏远地区邮编库 | remote_zipcodes |
| 🔗 数据源管理 | 管理外部数据导入URL | data_urls |
| 👥 用户管理 | 管理员管理系统用户 | users |
| ⚙️ 系统设置 | 系统协议等配置 | settings |
| 地址 | 说明 |
|---|---|
https://wl.omejia.com/ | 系统主页(登录后使用) |
https://wl.omejia.com/data-api.html | 本 API 文档页面 |
https://wl.omejia.com/data.php | API 接口入口 |
说明:必须先有公司,才能在公司下创建产品;必须先有产品,才能在产品下录入报价。一个公司可以有多个产品,一个产品可以有多条报价(不同国家/不同类型)。
created_by 字段标识创建者["home","mgmt","price","cmp","batch"]["add","edit","del"]
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ logistics_ │ │ logistics_ │ │ pricing_ │
│ companies │ │ products │ │ records │
│ (物流公司) │1 n │ (物流产品) │1 n │ (报价记录) │
├─────────────────────┤◄────────┤ ├────────►│ │
│ 🔑 id (varchar) │ │ 🔑 id (varchar) │ │ 🔑 id (varchar) │
│ name │ │ 🔵 company_id │ │ 🔵 company_id │
│ code │ │ name │ │ 🔵 product_id │
│ status │ │ type │ │ destination_ │
│ service_area │ │ pricing_type │ │ country │
│ tracking │ │ battery │ │ type │
│ reliable │ │ status │ │ base_pricing │
│ phone/website │ │ created_by │ │ additional_fees │
│ created_by │ │ created_at │ │ weight_limits │
│ created_at │ │ │ │ length_limits │
│ │ │ │ │ girth_limits │
└─────────────────────┘ └─────────────────────┘ │ created_by │
│ created_at │
└─────────────────────┘
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ users │ │ batch_orders │ │ remote_zipcodes │
│ (用户表) │ │ (批量订单) │ │ (偏远邮编) │
├─────────────────────┤ ├─────────────────────┤ ├─────────────────────┤
│ 🔑 id (int) │ │ 🔑 id (int) │ │ 🔑 id (int) │
│ ✨ username │ │ order_no │ │ ✨ zipcode │
│ 🔒 password │ │ params │ │ │
│ role │ │ imported_at │ │ │
│ perms │ │ │ │ │
│ ops │ └─────────────────────┘ └─────────────────────┘
│ status │
│ created_at │ ┌─────────────────────┐ ┌─────────────────────┐
│ │ │ data_urls │ │ settings │
└─────────────────────┘ │ (数据源URL) │ │ (系统配置) │
├─────────────────────┤ ├─────────────────────┤
│ 🔑 id (int) │ │ 🔑 skey │
│ url │ │ svalue │
│ sort_order │ │ │
│ │ │ │
└─────────────────────┘ └─────────────────────┘
🔑 PK (主键) 🔵 FK (外键) ✨ UNIQUE (唯一) 🔒 敏感字段(已过滤)
| 主表 | 关联字段 | 从表 | 关联字段 | 基数 | 说明 |
|---|---|---|---|---|---|
| logistics_companies | id | logistics_products | company_id | 1 : N | 一个公司有多个产品 |
| logistics_companies | id | pricing_records | company_id | 1 : N | 一个公司有多条报价 |
| logistics_products | id | pricing_records | product_id | 1 : N | 一个产品有多条报价 |
pricing_records.company_id:虽然可以通过 product_id 关联到公司,但为了查询效率做了冗余存储pricing_records.type:报价类型,与产品的 type 可能一致,也可能因不同目的地而异不同表的 status 字段含义不同,AI 分析时务必注意区分。本系统状态使用字符串枚举而非数字。
业务说明:存储所有合作的物流公司基础信息。一个公司可以有多个物流产品,是产品和报价的上级归属。
数据来源:管理员或有权限的用户在「物流公司管理」模块手动录入
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | varchar(32) | 物流公司唯一ID(时间戳生成) | PK |
| name | varchar(128) | 物流公司名称 | NOT NULL |
| code | varchar(64) | 公司简称/代码 | |
| status | varchar(16) | 状态:active=启用, inactive=禁用 | 默认 active |
| phone | varchar(64) | 联系电话 | |
| website | varchar(255) | 官方网站 | |
| address | varchar(255) | 公司地址 | |
| service_area | varchar(16) | 服务区域:us=美国, ca=加拿大, uk=英国, au=澳大利亚 | |
| tracking | varchar(8) | 是否支持全程轨迹:yes/no | 默认 yes |
| reliable | varchar(8) | 靠谱度评分(%) | 默认 100 |
| reliable_note | varchar(255) | 靠谱度备注 | |
| notes | text | 备注信息 | |
| created_by | varchar(64) | 创建者用户名 | |
| created_at | varchar(40) | 创建时间(ISO格式) |
{
"id": "1770000959359",
"name": "际通",
"code": "JT",
"status": "active",
"phone": "",
"website": "",
"address": "",
"service_area": "us",
"tracking": "yes",
"reliable": "100",
"reliable_note": "",
"notes": "",
"created_by": "",
"created_at": "2026-02-02T02:55:59.359Z"
}
业务说明:存储各物流公司提供的具体物流产品(如美森大包、空运专线等)。每个产品归属于一个物流公司。
数据来源:用户在「快递产品管理」模块手动录入
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | varchar(32) | 产品唯一ID | PK |
| company_id | varchar(32) | 所属物流公司ID | FK |
| name | varchar(128) | 产品名称 | NOT NULL |
| type | varchar(16) | 运输方式:air=空运, sea=海运 | |
| pricing_type | varchar(16) | 报价方式:type1=首重续重, type2=公斤段, type3=最低消费 | |
| battery | varchar(8) | 是否带电:yes/no | 默认 no |
| status | varchar(16) | 状态:active=启用, inactive=禁用 | 默认 active |
| created_by | varchar(64) | 创建者用户名 | |
| created_at | varchar(40) | 创建时间 |
{
"id": "1770000978688",
"company_id": "1770000959359",
"name": "美森大包",
"type": "sea",
"pricing_type": "type1",
"battery": "no",
"status": "active",
"created_by": "",
"created_at": "2026-02-02T02:56:18.688Z"
}
业务说明:存储具体的报价规则,是比价计算的核心数据。每条报价关联一个产品和一个目的国家,包含基础定价、附加费、重量/尺寸限制等。
数据来源:用户在「报价管理」模块手动录入
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | varchar(32) | 报价记录唯一ID | PK |
| company_id | varchar(32) | 所属物流公司ID(冗余) | FK |
| product_id | varchar(32) | 所属产品ID | FK |
| destination_country | varchar(64) | 目的国家/地区 | |
| type | varchar(16) | 报价类型标识 | |
| base_pricing | longtext | 基础定价(JSON格式) | |
| additional_fees | longtext | 附加费用(JSON格式) | |
| weight_limits | longtext | 重量限制(JSON格式) | |
| length_limits | longtext | 长度限制(JSON格式) | |
| girth_limits | longtext | 围长限制(JSON格式) | |
| created_by | varchar(64) | 创建者用户名 | |
| created_at | varchar(40) | 创建时间 |
{
"id": "1770026053836",
"company_id": "1770000959359",
"product_id": "1785205383708",
"destination_country": "美国",
"type": "type1",
"base_pricing": {
"firstWeight": "6.1",
"firstPrice": "295",
"additionalWeight": "",
"additionalPrice": ""
},
"additional_fees": {
"handlingFee": "",
"volumeFactor": "8000",
"deliveryTime": "",
"oversizeSegments": [
{"minLen": 120, "fee": 120},
{"minLen": 240, "fee": 750}
],
"girthFeeSegments": [
{"minG": 325, "fee": 750}
],
"remoteFee": "",
"taxFee": "0",
"lastMile": "UPS、FedEx"
},
"weight_limits": {"minWeight": "6.1", "maxWeight": "10.1"},
"length_limits": {"minLength": "0", "maxLength": "270"},
"girth_limits": {"minGirth": "0", "maxGirth": "400"},
"created_by": "",
"created_at": "2026-02-02T09:54:13.836Z"
}
业务说明:存储批量比价的订单数据,用于批量导入多个包裹信息后统一比价。
数据来源:用户在「批量比价」模块手动添加或从外部数据源导入
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | int(10) unsigned | 自增ID | PK |
| order_no | varchar(64) | 订单号 | 索引 |
| params | longtext | 订单参数(JSON格式,含重量、尺寸、目的地等) | NOT NULL |
| imported_at | varchar(40) | 导入时间 |
业务说明:存储偏远地区的邮政编码,比价时如果收货邮编在此库中,会额外计算偏远费。
数据来源:用户在「偏远地区邮编库」模块批量录入
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | int(10) unsigned | 自增ID | PK |
| zipcode | varchar(32) | 邮编 | UNIQUE |
业务说明:存储外部数据源的 API 地址,系统可定时从这些地址拉取报价数据进行同步。
数据来源:管理员在「数据源管理」模块配置
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | int(10) unsigned | 自增ID | PK |
| url | varchar(512) | 数据源 API URL | NOT NULL |
| sort_order | int(11) | 排序序号 | 默认 0 |
业务说明:存储系统级配置项,使用 key-value 结构。
数据来源:系统初始化时生成,管理员可修改
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| skey | varchar(64) | 配置键名 | PK |
| svalue | longtext | 配置值 |
{
"skey": "agreement",
"svalue": "欢迎使用国际物流比价系统!\n\n一、服务条款\n1. 本系统仅供内部使用..."
}
password 字段为敏感字段,API 不会返回。其他用户信息可正常读取用于分析。
业务说明:存储系统用户账号信息,用于登录鉴权和权限控制。
数据来源:管理员在「用户管理」模块创建
| 字段名 | 类型 | 说明 | 约束 |
|---|---|---|---|
| id | int(10) unsigned | 自增ID | PK |
| username | varchar(64) | 用户名 | UNIQUE |
| password | varchar(128) | 密码(bcrypt加密)已过滤 | NOT NULL |
| role | varchar(16) | 角色:admin=管理员, user=普通用户 | 默认 user |
| perms | text | 模块权限(JSON数组) | |
| ops | text | 操作权限(JSON数组) | |
| status | varchar(16) | 状态:active=正常, inactive=禁用 | 默认 active |
| created_at | datetime | 创建时间 | 默认当前时间 |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:overview |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
{
"code": 0,
"message": "success",
"data": {
"table_counts": {
"logistics_companies": 23,
"logistics_products": 52,
"pricing_records": 45,
"batch_orders": 0,
"remote_zipcodes": 1,
"data_urls": 0,
"settings": 1,
"users": 1
},
"status_stats": {
"logistics_companies": {
"active": 20,
"inactive": 3
},
"logistics_products": {
"active": 48,
"inactive": 4
},
"users": {
"active": 1
}
},
"today_stats": {
"logistics_companies": 0,
"logistics_products": 0,
"pricing_records": 0,
"batch_orders": 0
},
"system_info": {
"name": "国际物流比价系统",
"version": "3.1",
"tables": 8
}
},
"timestamp": 1696876800
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:schema |
| table | string | 是 | 表名(必须在白名单内) |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
{
"code": 0,
"message": "success",
"data": {
"table": "logistics_companies",
"table_comment": "物流公司表",
"engine": "InnoDB",
"rows": 23,
"columns": [
{
"field": "id",
"type": "varchar(32)",
"null": "NO",
"key": "PRI",
"default": null,
"extra": "",
"is_sensitive": false
},
{
"field": "name",
"type": "varchar(128)",
"null": "NO",
"key": "",
"default": null,
"extra": "",
"is_sensitive": false
}
],
"primary_keys": ["id"]
},
"timestamp": 1696876800
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:list |
| table | string | 是 | 表名(必须在白名单内) |
| page | int | 否 | 页码,默认 1 |
| page_size | int | 否 | 每页条数,默认 20,最大 1000 |
| keyword | string | 否 | 关键词模糊搜索(搜索所有文本字段) |
| status | string | 否 | 状态筛选(该表有 status 字段时有效) |
| start_time | string | 否 | 开始时间(该表有时间字段时有效) |
| end_time | string | 否 | 结束时间(该表有时间字段时有效) |
| sort_by | string | 否 | 排序字段(必须在排序白名单内) |
| sort_order | string | 否 | 排序方向:ASC / DESC,默认 DESC |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
{
"code": 0,
"message": "success",
"data": {
"table": "logistics_companies",
"total": 23,
"page": 1,
"page_size": 20,
"total_pages": 2,
"list": [
{
"id": "1770000959359",
"name": "际通",
"code": "JT",
"status": "active",
"..."
}
]
},
"timestamp": 1696876800
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:detail |
| table | string | 是 | 表名 |
| id | string | 是 | 记录主键值 |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:stats |
| table | string | 是 | 表名 |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:daily_stats |
| table | string | 是 | 表名 |
| days | int | 否 | 统计天数,默认 30,最大 365 |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
{
"code": 0,
"message": "success",
"data": {
"table": "pricing_records",
"days": 7,
"total_in_period": 12,
"daily_data": [
{"date": "2026-10-02", "count": 3},
{"date": "2026-10-03", "count": 0},
{"date": "2026-10-04", "count": 5},
{"date": "2026-10-05", "count": 2},
{"date": "2026-10-06", "count": 1},
{"date": "2026-10-07", "count": 0},
{"date": "2026-10-08", "count": 1}
]
},
"timestamp": 1696876800
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:group_stats |
| table | string | 是 | 表名 |
| group_by | string | 是 | 分组字段(必须在该表允许的分组字段内) |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
| 表名 | 允许的分组字段 |
|---|---|
| logistics_companies | status, service_area, tracking |
| logistics_products | company_id, type, pricing_type, battery, status |
| pricing_records | company_id, product_id, destination_country, type |
| users | role, status |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| action | string | 是 | 固定值:schema_all |
| X-API-Key | HTTP Header | 是 | 只读 API 密钥;不得放入 URL |
快速生成每日数据概览,了解系统整体运营状况。
// 1. 获取整体概览
GET /data.php?action=overview
// 2. 获取核心表今日趋势
GET /data.php?action=daily_stats&table=pricing_records&days=7
GET /data.php?action=daily_stats&table=logistics_products&days=7
// 3. 按状态分布
GET /data.php?action=group_stats&table=logistics_companies&group_by=status
分析各物流公司的产品丰富度和报价覆盖情况,找出数据空白点。
// 1. 按公司分组统计产品数量
GET /data.php?action=group_stats&table=logistics_products&group_by=company_id
// 2. 按公司分组统计报价数量
GET /data.php?action=group_stats&table=pricing_records&group_by=company_id
// 3. 按运输方式分布
GET /data.php?action=group_stats&table=logistics_products&group_by=type
// 4. 找出产品少的公司
GET /data.php?action=list&table=logistics_companies&status=active&sort_by=id
// 然后对比各公司产品数量,找出低于平均值的公司
基于历史数据趋势,预测未来数据增长。
// 获取近 90 天报价录入趋势
GET /data.php?action=daily_stats&table=pricing_records&days=90
// 获取近 90 天产品新增趋势
GET /data.php?action=daily_stats&table=logistics_products&days=90
// 分析:
// 1. 计算日均新增量
// 2. 观察周内波动规律
// 3. 预测未来 30 天增长
// 4. 给出数据完善建议
对比不同公司的产品结构和报价策略。
// 1. 获取所有活跃公司
GET /data.php?action=list&table=logistics_companies&status=active&page_size=100
// 2. 按公司分组产品数量
GET /data.php?action=group_stats&table=logistics_products&group_by=company_id
// 3. 按公司分组报价数量
GET /data.php?action=group_stats&table=pricing_records&group_by=company_id
// 4. 空运 vs 海运产品分布
GET /data.php?action=group_stats&table=logistics_products&group_by=type
// 5. 报价方式分布
GET /data.php?action=group_stats&table=logistics_products&group_by=pricing_type
| 错误码 | 名称 | 说明 | 排查建议 |
|---|---|---|---|
| 0 | success | 请求成功 | - |
| 1 | 参数错误 | 请求参数不正确,如表名无效、缺少必填参数等 | 检查 table 参数是否在白名单内,检查必填参数是否完整 |
| 401 | 未授权 | API 密钥无效或缺失 | 检查 X-API-Key 请求头是否正确,密钥是否已被禁用 |
| 403 | IP 限制 | 请求 IP 不在白名单中 | 联系管理员将你的 IP 加入白名单,或确认 IP 白名单是否启用 |
| 429 | 频率限制 | 请求过于频繁,超出每分钟限制 | 降低请求频率,默认每分钟 60 次。批量数据请使用分页。 |
| 500 | 服务器错误 | 服务器内部错误 | 联系管理员查看日志,检查数据库连接是否正常 |