155 lines
7.7 KiB
SQL
Executable File
155 lines
7.7 KiB
SQL
Executable File
-- ============================================
|
||
-- 物流追踪系统数据库表
|
||
-- ============================================
|
||
|
||
-- 1. 物流订单表(主表)
|
||
CREATE TABLE IF NOT EXISTS `zyt_express_tracking` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`order_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联订单ID(prescription_order表)',
|
||
`order_type` varchar(50) NOT NULL DEFAULT 'prescription' COMMENT '订单类型',
|
||
`tracking_number` varchar(80) NOT NULL DEFAULT '' COMMENT '快递单号',
|
||
`express_company` varchar(50) NOT NULL DEFAULT 'auto' COMMENT '快递公司编码',
|
||
`express_company_name` varchar(100) NOT NULL DEFAULT '' COMMENT '快递公司名称',
|
||
`recipient_phone` varchar(20) NOT NULL DEFAULT '' COMMENT '收件人手机号',
|
||
`recipient_name` varchar(100) NOT NULL DEFAULT '' COMMENT '收件人姓名',
|
||
`recipient_address` varchar(500) NOT NULL DEFAULT '' COMMENT '收件地址',
|
||
|
||
-- 物流状态
|
||
`current_state` varchar(10) NOT NULL DEFAULT '0' COMMENT '当前物流状态:0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投,8清关,10待清关,11清关中,12已清关,13清关异常,14拒签',
|
||
`current_state_text` varchar(50) NOT NULL DEFAULT '' COMMENT '当前状态文本',
|
||
`is_signed` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已签收:0否,1是',
|
||
`sign_time` int(11) NOT NULL DEFAULT '0' COMMENT '签收时间',
|
||
|
||
-- 最新轨迹
|
||
`latest_trace_time` varchar(50) NOT NULL DEFAULT '' COMMENT '最新轨迹时间',
|
||
`latest_trace_context` varchar(500) NOT NULL DEFAULT '' COMMENT '最新轨迹内容',
|
||
`latest_location` varchar(200) NOT NULL DEFAULT '' COMMENT '最新位置',
|
||
|
||
-- 查询信息
|
||
`last_query_time` int(11) NOT NULL DEFAULT '0' COMMENT '最后查询时间',
|
||
`query_count` int(11) NOT NULL DEFAULT '0' COMMENT '查询次数',
|
||
`data_source` varchar(50) NOT NULL DEFAULT '' COMMENT '数据来源:kuaidi100/official',
|
||
|
||
-- 预计信息
|
||
`estimated_arrival_time` varchar(50) NOT NULL DEFAULT '' COMMENT '预计到达时间',
|
||
`total_time` varchar(50) NOT NULL DEFAULT '' COMMENT '总耗时',
|
||
`remain_time` varchar(50) NOT NULL DEFAULT '' COMMENT '剩余时间',
|
||
|
||
-- 自动更新控制
|
||
`auto_update` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否自动更新:0否,1是',
|
||
`update_interval` int(11) NOT NULL DEFAULT '1800' COMMENT '更新间隔(秒),默认30分钟',
|
||
`next_update_time` int(11) NOT NULL DEFAULT '0' COMMENT '下次更新时间',
|
||
|
||
-- 通知设置
|
||
`notify_on_sign` tinyint(1) NOT NULL DEFAULT '1' COMMENT '签收时通知:0否,1是',
|
||
`notify_on_problem` tinyint(1) NOT NULL DEFAULT '1' COMMENT '异常时通知:0否,1是',
|
||
`notified_states` varchar(500) NOT NULL DEFAULT '' COMMENT '已通知的状态(JSON数组)',
|
||
|
||
-- 扩展信息
|
||
`route_info` text COMMENT '路由信息(JSON)',
|
||
`extra_data` text COMMENT '扩展数据(JSON)',
|
||
|
||
-- 时间戳
|
||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||
`delete_time` int(11) DEFAULT NULL COMMENT '删除时间',
|
||
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tracking_number` (`tracking_number`),
|
||
KEY `idx_order_id` (`order_id`),
|
||
KEY `idx_state` (`current_state`),
|
||
KEY `idx_auto_update` (`auto_update`, `next_update_time`),
|
||
KEY `idx_create_time` (`create_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流追踪主表';
|
||
|
||
-- 2. 物流轨迹明细表
|
||
CREATE TABLE IF NOT EXISTS `zyt_express_trace` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`tracking_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联tracking表ID',
|
||
`tracking_number` varchar(80) NOT NULL DEFAULT '' COMMENT '快递单号(冗余,便于查询)',
|
||
|
||
-- 轨迹信息
|
||
`trace_time` varchar(50) NOT NULL DEFAULT '' COMMENT '轨迹时间',
|
||
`trace_time_stamp` int(11) NOT NULL DEFAULT '0' COMMENT '轨迹时间戳',
|
||
`trace_context` varchar(1000) NOT NULL DEFAULT '' COMMENT '轨迹内容',
|
||
|
||
-- 状态信息
|
||
`status` varchar(50) NOT NULL DEFAULT '' COMMENT '物流状态名称',
|
||
`status_code` varchar(10) NOT NULL DEFAULT '' COMMENT '物流状态码',
|
||
|
||
-- 位置信息
|
||
`location` varchar(200) NOT NULL DEFAULT '' COMMENT '当前位置',
|
||
`area_code` varchar(50) NOT NULL DEFAULT '' COMMENT '行政区域编码',
|
||
`area_name` varchar(200) NOT NULL DEFAULT '' COMMENT '行政区域名称',
|
||
`area_center` varchar(100) NOT NULL DEFAULT '' COMMENT '区域中心坐标',
|
||
|
||
-- 扩展信息
|
||
`extra_data` text COMMENT '扩展数据(JSON)',
|
||
|
||
-- 时间戳
|
||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tracking_id` (`tracking_id`),
|
||
KEY `idx_tracking_number` (`tracking_number`),
|
||
KEY `idx_trace_time_stamp` (`trace_time_stamp`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流轨迹明细表';
|
||
|
||
-- 3. 物流状态变更记录表
|
||
CREATE TABLE IF NOT EXISTS `zyt_express_state_log` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`tracking_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联tracking表ID',
|
||
`tracking_number` varchar(80) NOT NULL DEFAULT '' COMMENT '快递单号',
|
||
|
||
-- 状态变更
|
||
`old_state` varchar(10) NOT NULL DEFAULT '' COMMENT '旧状态',
|
||
`old_state_text` varchar(50) NOT NULL DEFAULT '' COMMENT '旧状态文本',
|
||
`new_state` varchar(10) NOT NULL DEFAULT '' COMMENT '新状态',
|
||
`new_state_text` varchar(50) NOT NULL DEFAULT '' COMMENT '新状态文本',
|
||
|
||
-- 变更信息
|
||
`change_time` int(11) NOT NULL DEFAULT '0' COMMENT '变更时间',
|
||
`change_reason` varchar(500) NOT NULL DEFAULT '' COMMENT '变更原因(最新轨迹内容)',
|
||
|
||
-- 通知信息
|
||
`is_notified` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否已通知:0否,1是',
|
||
`notify_time` int(11) NOT NULL DEFAULT '0' COMMENT '通知时间',
|
||
`notify_result` varchar(500) NOT NULL DEFAULT '' COMMENT '通知结果',
|
||
|
||
-- 时间戳
|
||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tracking_id` (`tracking_id`),
|
||
KEY `idx_tracking_number` (`tracking_number`),
|
||
KEY `idx_change_time` (`change_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流状态变更记录表';
|
||
|
||
-- 4. 物流查询日志表
|
||
CREATE TABLE IF NOT EXISTS `zyt_express_query_log` (
|
||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
`tracking_number` varchar(80) NOT NULL DEFAULT '' COMMENT '快递单号',
|
||
`express_company` varchar(50) NOT NULL DEFAULT '' COMMENT '快递公司编码',
|
||
|
||
-- 查询信息
|
||
`query_type` varchar(50) NOT NULL DEFAULT 'manual' COMMENT '查询类型:manual手动,auto自动',
|
||
`query_source` varchar(50) NOT NULL DEFAULT '' COMMENT '查询来源:kuaidi100/official',
|
||
`query_time` int(11) NOT NULL DEFAULT '0' COMMENT '查询时间',
|
||
|
||
-- 查询结果
|
||
`is_success` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否成功:0否,1是',
|
||
`error_code` varchar(50) NOT NULL DEFAULT '' COMMENT '错误码',
|
||
`error_message` varchar(500) NOT NULL DEFAULT '' COMMENT '错误信息',
|
||
|
||
-- 响应信息
|
||
`response_time` int(11) NOT NULL DEFAULT '0' COMMENT '响应时间(毫秒)',
|
||
`trace_count` int(11) NOT NULL DEFAULT '0' COMMENT '轨迹数量',
|
||
|
||
-- 时间戳
|
||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tracking_number` (`tracking_number`),
|
||
KEY `idx_query_time` (`query_time`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流查询日志表';
|