承运商管理

背景

表结构

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