承运商管理
背景
表结构
1. carrier_info 承运商表
CREATE TABLE `carrier_info` (
`carrier_id` bigint NOT NULL AUTO_INCREMENT COMMENT '承运商ID',
`carrier_code` varchar(32) NOT NULL COMMENT '承运商编码',
`carrier_name` varchar(64) NOT NULL COMMENT '承运商名称',
`carrier_status` tinyint NOT NULL DEFAULT '1' COMMENT '是否启用 1是 0 否',
`is_own` tinyint NOT NULL DEFAULT '1' COMMENT '是否自有运输 1是 0否',
`partner_code` varchar(64) NOT NULL COMMENT '合作代码',
`url` varchar(127) NOT NULL COMMENT 'url',
`public_key` varchar(128) NOT NULL COMMENT 'public_key',
`private_key` varchar(128) NOT NULL COMMENT 'private_key',
`token` varchar(512) NOT NULL DEFAULT '0' COMMENT 'token',
`forecast_node` tinyint NOT NULL COMMENT '预报节点 1 建单 2派送网点卸车',
`is_carrier_label` tinyint NOT NULL DEFAULT '0' COMMENT '是否获取承运商标签返回调用方',
`package_limit_formula` varchar(512) DEFAULT NULL COMMENT '包裹限制公式',
`is_refresh_token` tinyint NOT NULL DEFAULT '0' COMMENT '是否刷新token 1是 0否',
`aux1` varchar(128) DEFAULT NULL COMMENT '客户代码',
`aux2` varchar(128) DEFAULT NULL COMMENT '揽收地址取值',
`aux3` varchar(128) DEFAULT NULL COMMENT '备用字段3',
`created_by` bigint NOT NULL DEFAULT '0' COMMENT '创建人',
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`carrier_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='承运商表';
2. carrier_info 按规范添加字段与索引
-- 承运商
-- 第一步先添加字段
ALTER TABLE carrier_info
ADD COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
ADD COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
ADD COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
ADD COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';
-- 第二步历史数据初始化,表原有存在created_by,created_time
update carrier_info set
create_user = created_by,
create_time = created_time,
update_user = created_by,
update_time = created_time
where 1=1;
-- 第三步修改字段约束
ALTER TABLE carrier_info
MODIFY COLUMN `create_user` bigint NOT NULL COMMENT '创建人',
MODIFY COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
MODIFY COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
-- 索引
ALTER TABLE carrier_info
ADD UNIQUE INDEX `uniq_carrier_code`(`carrier_code`),
ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);
-- created_by,created_time待弃用
ALTER TABLE carrier_info
MODIFY COLUMN `created_by` bigint NOT NULL DEFAULT '0' COMMENT '创建人(待弃用)',
MODIFY COLUMN `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(待弃用)';
3. carrier_service 承运商服务类型
CREATE TABLE `carrier_service` (
`carrier_service_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`carrier_id` bigint NOT NULL COMMENT '承运商ID',
`service_type` tinyint NOT NULL COMMENT '服务类型ID 1-揽收 2-干线 3-派送',
PRIMARY KEY (`carrier_service_id`)
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
4. carrier_service 按规范添加字段与索引
-- carrier_service
-- 第一步先添加字段
ALTER TABLE carrier_service
ADD COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
ADD COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
ADD COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
ADD COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';
-- 第二步历史数据初始化
update carrier_service set
create_user = 1,
create_time = now(),
update_user = 1,
update_time = now()
where 1=1;
-- 第三步修改字段约束
ALTER TABLE carrier_service
MODIFY COLUMN `create_user` bigint NOT NULL COMMENT '创建人',
MODIFY COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
MODIFY COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
-- 索引
ALTER TABLE carrier_service
ADD UNIQUE INDEX `uniq_cid_stype`(`carrier_id`,`service_type`),
ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);
5. 承运商服务api
CREATE TABLE `carrier_info_service_api` (
`carrier_service_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`carrier_id` bigint NOT NULL COMMENT '承运商ID',
`carrier_code` varchar(32) NOT NULL COMMENT '承运商编码',
`site_id` bigint NOT NULL COMMENT '网点ID',
`site_code` varchar(32) NOT NULL DEFAULT '' COMMENT '网点编码',
`partner_code` varchar(64) NOT NULL DEFAULT '' COMMENT '合作代码',
`customer_code` varchar(64) NOT NULL DEFAULT '' COMMENT '客户代码',
`sender_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '寄件人取值:1-揽收网点,2-配送网点',
`secret_key_1` varchar(128) DEFAULT NULL COMMENT '秘钥1',
`secret_key_2` varchar(128) DEFAULT NULL COMMENT '秘钥2',
`request_url` varchar(255) DEFAULT NULL COMMENT '请求URL',
`request_token` varchar(255) DEFAULT NULL COMMENT '请求TOKEN',
`pay_account` varchar(64) DEFAULT NULL COMMENT '付款账户',
`pay_party` varchar(64) DEFAULT NULL COMMENT '付款方',
`active_flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '启用状态:0-禁用,1-启用',
`remark` varchar(255) DEFAULT '' COMMENT '备注',
`over_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '完结标识:0-未完结,1-已完结',
`create_user` bigint NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint DEFAULT NULL COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`carrier_service_id`),
UNIQUE KEY `uniq_carrier_site` (`carrier_id`,`site_id`),
KEY `idx_site_id` (`site_id`),
KEY `idx_active_flag` (`active_flag`),
KEY `idx_create_time` (`create_time`),
KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB AUTO_INCREMENT=1952685330071031810 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='承运商-网点 API 表';
6. carrier_site 承运商与网点关系表
CREATE TABLE `carrier_site` (
`cs_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`carrier_id` bigint NOT NULL COMMENT '承运商ID',
`site_id` bigint NOT NULL COMMENT '网点ID',
`priority` int NOT NULL COMMENT '优先级',
`carrier_site_code` varchar(64) NOT NULL DEFAULT '' COMMENT '合作承运商对应网点Code(承运商提供)',
`package_limit_formula` varchar(255) DEFAULT '' COMMENT '包裹限制公式',
`created_by` bigint NOT NULL DEFAULT '0' COMMENT '创建人',
`created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`cs_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='承运商站点关系表';
7. carrier_site 按规范添加字段与索引
-- carrier_site
-- 第一步先添加字段
ALTER TABLE carrier_site
ADD COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
ADD COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
ADD COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
ADD COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';
-- 第二步历史数据初始化,表原有存在created_by,created_time
update carrier_site set
create_user = created_by,
create_time = created_time,
update_user = created_by,
update_time = created_time
where 1=1;
-- 第三步修改字段约束
ALTER TABLE carrier_site
MODIFY COLUMN `create_user` bigint NOT NULL COMMENT '创建人',
MODIFY COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
MODIFY COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
-- 索引
ALTER TABLE carrier_site
ADD UNIQUE INDEX `uniq_cid_sid`(`carrier_id`,`site_id`),
ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);
-- created_by,created_time待弃用
ALTER TABLE carrier_site
MODIFY COLUMN `created_by` bigint NOT NULL DEFAULT '0' COMMENT '创建人(待弃用)',
MODIFY COLUMN `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(待弃用)';
8、carrier_log 承运商日志
CREATE TABLE `carrier_log` (
`log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`carrier_id` bigint NOT NULL DEFAULT '0' COMMENT '承运商ID',
`user_id` bigint NOT NULL DEFAULT '0' COMMENT '操作用户ID/0系统/-1客户',
`log_add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
`log_note` varchar(1000) NOT NULL DEFAULT '' COMMENT '备注',
`log_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '操作IP',
PRIMARY KEY (`log_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=24597 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='承运商操作日志表';
9、carrier_log 按规范添加字段与索引
-- 第一步
ALTER TABLE carrier_log
ADD COLUMN `remark` varchar(256) DEFAULT '' COMMENT '备注',
ADD COLUMN `over_flag` tinyint NOT NULL DEFAULT '0' COMMENT '完结标识 0-未完结,1-已完结',
ADD COLUMN `create_user` bigint DEFAULT NULL COMMENT '创建人',
ADD COLUMN `create_time` datetime DEFAULT NULL COMMENT '创建时间',
ADD COLUMN `update_user` bigint DEFAULT NULL COMMENT '更新人',
ADD COLUMN `update_time` datetime DEFAULT NULL COMMENT '更新时间';
-- 第二步
update carrier_log set
create_user = user_id,
create_time = log_add_time,
update_user = user_id,
update_time = log_add_time
where 1=1;
-- 第三步
ALTER TABLE carrier_log
MODIFY COLUMN `create_user` bigint NOT NULL COMMENT '创建人',
MODIFY COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
MODIFY COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
ALTER TABLE carrier_log
MODIFY COLUMN `user_id` bigint NOT NULL DEFAULT '0' COMMENT '操作用户ID/0系统/-1客户(待弃用)',
MODIFY COLUMN `log_add_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间(待弃用)';
-- 第四部
ALTER TABLE carrier_log
ADD INDEX `idx_carrier_id` (`carrier_id`),
ADD INDEX `idx_create_time` (`create_time`),
ADD INDEX `idx_update_time` (`update_time`);
功能流程图

作者:陆飞 创建时间:2026-01-13 17:17
最后编辑:高美燕 更新时间:2026-03-03 10:08
最后编辑:高美燕 更新时间:2026-03-03 10:08