-- 物流费用计算系统数据库表结构 -- 创建数据库: logistics -- ============================================ -- 物流公司配置表 -- ============================================ CREATE TABLE IF NOT EXISTS logistics_company ( id INT AUTO_INCREMENT PRIMARY KEY, company_code VARCHAR(50) NOT NULL COMMENT '公司代码', company_name VARCHAR(100) NOT NULL COMMENT '公司名称', country VARCHAR(10) NOT NULL COMMENT '国家代码: US, UK, AU, DE等', logistics_type VARCHAR(20) NOT NULL COMMENT '物流类型: EXPRESS, COURIER, OCEAN, AIR', port VARCHAR(20) DEFAULT 'DEFAULT' COMMENT '港口: DEFAULT, WEST, EAST等', currency VARCHAR(10) DEFAULT 'USD' COMMENT '货币', active TINYINT DEFAULT 1 COMMENT '是否启用: 0-禁用, 1-启用', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, UNIQUE KEY uk_company_code (company_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物流公司配置表'; -- ============================================ -- 英国物流价格表 -- ============================================ -- 英国卡派-分区表 CREATE TABLE IF NOT EXISTS uk_postcode_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode_prefix VARCHAR(10) NOT NULL COMMENT '邮编前缀', zone VARCHAR(10) NOT NULL COMMENT '分区', is_remote TINYINT DEFAULT 0 COMMENT '是否偏远: 0-否, 1-是', UNIQUE KEY uk_postcode (postcode_prefix) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='英国邮编分区表'; -- 英国卡派-运费表 CREATE TABLE IF NOT EXISTS uk_kp_nv_price ( id INT AUTO_INCREMENT PRIMARY KEY, zone VARCHAR(10) NOT NULL COMMENT '分区', tuopan INT NOT NULL COMMENT '托盘数', fee DECIMAL(10,2) NOT NULL COMMENT '运费', INDEX idx_zone (zone) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='英国卡派NV运费表'; -- ============================================ -- 美国物流价格表 -- ============================================ -- 美国邮编分区表 CREATE TABLE IF NOT EXISTS us_postcode_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(5) NOT NULL COMMENT '邮编(5位)', port VARCHAR(20) DEFAULT 'west' COMMENT '港口: west, east', zone VARCHAR(10) COMMENT '分区', remote_type INT DEFAULT 0 COMMENT '偏远类型: 0-非偏远, 1-偏远, 2-超偏远, 3-超超偏远', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国邮编分区表'; -- 美国快递-邮差小马 价格表 CREATE TABLE IF NOT EXISTS us_fedex_pp_price ( id INT AUTO_INCREMENT PRIMARY KEY, lbs INT NOT NULL COMMENT '重量(磅)', zone_2 DECIMAL(10,2) COMMENT '2区价格', zone_3 DECIMAL(10,2) COMMENT '3区价格', zone_4 DECIMAL(10,2) COMMENT '4区价格', zone_5 DECIMAL(10,2) COMMENT '5区价格', zone_6 DECIMAL(10,2) COMMENT '6区价格', zone_7 DECIMAL(10,2) COMMENT '7区价格', zone_8 DECIMAL(10,2) COMMENT '8区价格', INDEX idx_lbs (lbs) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Fedex邮差小马价格表'; -- 美国快递-金宏亚 价格表 CREATE TABLE IF NOT EXISTS us_fedex_kh_price ( id INT AUTO_INCREMENT PRIMARY KEY, lbs INT NOT NULL COMMENT '重量(磅)', zone_2 DECIMAL(10,2) COMMENT '2区价格', zone_3 DECIMAL(10,2) COMMENT '3区价格', zone_4 DECIMAL(10,2) COMMENT '4区价格', zone_5 DECIMAL(10,2) COMMENT '5区价格', zone_6 DECIMAL(10,2) COMMENT '6区价格', zone_7 DECIMAL(10,2) COMMENT '7区价格', zone_8 DECIMAL(10,2) COMMENT '8区价格', INDEX idx_lbs (lbs) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Fedex金宏亚价格表'; -- 美国快递-FEDEX 价格表 CREATE TABLE IF NOT EXISTS us_fedex_price ( id INT AUTO_INCREMENT PRIMARY KEY, lbs INT NOT NULL COMMENT '重量(磅)', zone_2 DECIMAL(10,2) COMMENT '2区价格', zone_3 DECIMAL(10,2) COMMENT '3区价格', zone_4 DECIMAL(10,2) COMMENT '4区价格', zone_5 DECIMAL(10,2) COMMENT '5区价格', zone_6 DECIMAL(10,2) COMMENT '6区价格', zone_7 DECIMAL(10,2) COMMENT '7区价格', zone_8 DECIMAL(10,2) COMMENT '8区价格', INDEX idx_lbs (lbs) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国FEDEX价格表'; -- 美国卡派-GIGA 价格表 CREATE TABLE IF NOT EXISTS us_giga_price ( id INT AUTO_INCREMENT PRIMARY KEY, zip_code VARCHAR(5) NOT NULL COMMENT '邮编', delivery_warehouse VARCHAR(50) COMMENT '仓库', general_area VARCHAR(50) COMMENT '地区', fee_type VARCHAR(20) COMMENT '费用类型', zone VARCHAR(10) COMMENT '分区', local_pickup_fee DECIMAL(10,2) COMMENT '本地取货费', warehouse_handling_fee DECIMAL(10,2) COMMENT '仓库操作费', delivery_fee_rate DECIMAL(10,2) COMMENT '配送费率', additional_delivery_fee DECIMAL(10,2) COMMENT '额外配送费', assembly_fee DECIMAL(10,2) COMMENT '装配费', INDEX idx_zip (zip_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国GIGA价格表'; -- 美国卡派-CEVA 价格表 CREATE TABLE IF NOT EXISTS us_ceva_price ( id INT AUTO_INCREMENT PRIMARY KEY, ceva_weight INT NOT NULL COMMENT 'CEVA重量', zone_ca DECIMAL(10,2) COMMENT 'CA区价格', zone_wa DECIMAL(10,2) COMMENT 'WA区价格', zone_or DECIMAL(10,2) COMMENT 'OR区价格', zone_nv DECIMAL(10,2) COMMENT 'NV区价格', zone_az DECIMAL(10,2) COMMENT 'AZ区价格', zone_co DECIMAL(10,2) COMMENT 'CO区价格', zone_ut DECIMAL(10,2) COMMENT 'UT区价格', zone_nm DECIMAL(10,2) COMMENT 'NM区价格', remote_area_surcharge DECIMAL(10,2) COMMENT '偏远地区附加费', INDEX idx_weight (ceva_weight) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA价格表'; -- 美国卡派-CEVA 邮编分区表 CREATE TABLE IF NOT EXISTS us_ceva_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postal_code VARCHAR(5) NOT NULL COMMENT '邮编', state VARCHAR(20) COMMENT '州', beyond_zone VARCHAR(10) COMMENT '超出分区', remote_type VARCHAR(20) DEFAULT 'standard' COMMENT '偏远类型: standard, remote', INDEX idx_postal (postal_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA邮编分区表'; -- 美国卡派-CEVA 分区表 CREATE TABLE IF NOT EXISTS us_ceva_zone_grade ( id INT AUTO_INCREMENT PRIMARY KEY, to_state VARCHAR(20) NOT NULL COMMENT '目的地州', ca DECIMAL(10,2) COMMENT 'CA分区', wa DECIMAL(10,2) COMMENT 'WA分区', INDEX idx_state (to_state) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国CEVA分区等级表'; -- 美国卡派-Metro 价格表 CREATE TABLE IF NOT EXISTS us_metro_price ( id INT AUTO_INCREMENT PRIMARY KEY, origins VARCHAR(20) NOT NULL COMMENT '出发地', zone_1l DECIMAL(10,2) COMMENT 'Zone 1L价格', zone_2l DECIMAL(10,2) COMMENT 'Zone 2L价格', zone_3l DECIMAL(10,2) COMMENT 'Zone 3L价格', zone_4l DECIMAL(10,2) COMMENT 'Zone 4L价格', zone_5l DECIMAL(10,2) COMMENT 'Zone 5L价格', zone_6l DECIMAL(10,2) COMMENT 'Zone 6L价格', zone_7l DECIMAL(10,2) COMMENT 'Zone 7L价格', zone_8l DECIMAL(10,2) COMMENT 'Zone 8L价格', zone_9l DECIMAL(10,2) COMMENT 'Zone 9L价格', INDEX idx_origins (origins) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro价格表'; -- 美国卡派-Metro 邮编分区表 CREATE TABLE IF NOT EXISTS us_metro_zone ( id INT AUTO_INCREMENT PRIMARY KEY, zip_code VARCHAR(5) NOT NULL COMMENT '邮编', new_zone_name VARCHAR(20) COMMENT '新分区名', INDEX idx_zip (zip_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro邮编分区表'; -- 美国卡派-Metro 偏远表 CREATE TABLE IF NOT EXISTS us_metro_remote ( id INT AUTO_INCREMENT PRIMARY KEY, zip_code VARCHAR(5) NOT NULL COMMENT '邮编', area_type VARCHAR(50) COMMENT '区域类型', INDEX idx_zip (zip_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国Metro偏远表'; -- 美国卡派-XMILES 邮编表 CREATE TABLE IF NOT EXISTS us_xmiles_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(5) NOT NULL COMMENT '邮编', area VARCHAR(20) COMMENT '地区', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国XMILES邮编分区表'; -- 美国卡派-AM 价格表 CREATE TABLE IF NOT EXISTS us_am_price ( id INT AUTO_INCREMENT PRIMARY KEY, pu_zone VARCHAR(5) NOT NULL COMMENT 'PU区', dl_zone VARCHAR(5) NOT NULL COMMENT 'DL区', zone_combo VARCHAR(10) NOT NULL COMMENT '分区组合', minimum_weight DECIMAL(10,2) NOT NULL COMMENT '最小重量', maximum_weight DECIMAL(10,2) NOT NULL COMMENT '最大重量', fee_without_sc DECIMAL(10,2) COMMENT '无附加费价格', shipping_cost DECIMAL(10,2) COMMENT '运费', surcharge DECIMAL(10,2) DEFAULT 0 COMMENT '附加费', INDEX idx_zone_combo (zone_combo) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国AM卡派价格表'; -- 美国卡派-AM 邮编表 CREATE TABLE IF NOT EXISTS us_am_postcode ( id INT AUTO_INCREMENT PRIMARY KEY, zip_code VARCHAR(5) NOT NULL COMMENT '邮编', zone VARCHAR(5) NOT NULL COMMENT '分区', INDEX idx_zip (zip_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='美国AM卡派邮编表'; -- ============================================ -- 澳洲物流价格表 -- ============================================ -- 澳洲eparcel价格表 CREATE TABLE IF NOT EXISTS au_eparcel_price ( id INT AUTO_INCREMENT PRIMARY KEY, post VARCHAR(20) NOT NULL COMMENT '邮寄方式', weight_0_5 DECIMAL(10,2) COMMENT '0.5kg价格', weight_1 DECIMAL(10,2) COMMENT '1kg价格', weight_2 DECIMAL(10,2) COMMENT '2kg价格', weight_3 DECIMAL(10,2) COMMENT '3kg价格', weight_4 DECIMAL(10,2) COMMENT '4kg价格', weight_5 DECIMAL(10,2) COMMENT '5kg价格', weight_7 DECIMAL(10,2) COMMENT '7kg价格', weight_10 DECIMAL(10,2) COMMENT '10kg价格', weight_15 DECIMAL(10,2) COMMENT '15kg价格', INDEX idx_post (post) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲eparcel价格表'; -- 澳洲eparcel邮编表 CREATE TABLE IF NOT EXISTS au_eparcel_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(10) NOT NULL COMMENT '邮编', zone VARCHAR(10) COMMENT '分区', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲eparcel邮编表'; -- 澳洲toll价格表 CREATE TABLE IF NOT EXISTS au_toll_price ( id INT AUTO_INCREMENT PRIMARY KEY, post VARCHAR(20) NOT NULL COMMENT '邮寄方式', zone_1 DECIMAL(10,2) COMMENT '1区价格', zone_2 DECIMAL(10,2) COMMENT '2区价格', zone_3 DECIMAL(10,2) COMMENT '3区价格', zone_4 DECIMAL(10,2) COMMENT '4区价格', INDEX idx_post (post) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll价格表'; -- 澳洲toll邮编表 CREATE TABLE IF NOT EXISTS au_toll_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(10) NOT NULL COMMENT '邮编', zone VARCHAR(10) COMMENT '分区', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll邮编表'; -- 澳洲toll偏远表 CREATE TABLE IF NOT EXISTS au_toll_remote ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(10) NOT NULL COMMENT '邮编', remote_type VARCHAR(20) COMMENT '偏远类型', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲toll偏远表'; -- 澳洲allied价格表 CREATE TABLE IF NOT EXISTS au_allied_price ( id INT AUTO_INCREMENT PRIMARY KEY, post VARCHAR(20) NOT NULL COMMENT '邮寄方式', zone_1 DECIMAL(10,2) COMMENT '1区价格', zone_2 DECIMAL(10,2) COMMENT '2区价格', zone_3 DECIMAL(10,2) COMMENT '3区价格', zone_4 DECIMAL(10,2) COMMENT '4区价格', INDEX idx_post (post) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied价格表'; -- 澳洲allied邮编表 CREATE TABLE IF NOT EXISTS au_allied_zone ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(10) NOT NULL COMMENT '邮编', zone VARCHAR(10) COMMENT '分区', remote_zone VARCHAR(10) COMMENT '偏远分区', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied邮编表'; -- 澳洲allied偏远表 CREATE TABLE IF NOT EXISTS au_allied_remote ( id INT AUTO_INCREMENT PRIMARY KEY, postcode VARCHAR(10) NOT NULL COMMENT '邮编', remote_type VARCHAR(20) COMMENT '偏远类型', INDEX idx_postcode (postcode) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='澳洲allied偏远表'; -- ============================================ -- 欧洲物流价格表 -- ============================================ -- 欧洲卡派-DHL价格表 CREATE TABLE IF NOT EXISTS eur_dhl_price ( id INT AUTO_INCREMENT PRIMARY KEY, price_type VARCHAR(20) NOT NULL COMMENT '价格类型', country VARCHAR(50) NOT NULL COMMENT '国家', postalcode VARCHAR(10) COMMENT '邮编', ip_1 DECIMAL(10,2) COMMENT '1IP价格', ip_2 DECIMAL(10,2) COMMENT '2IP价格', ip_3 DECIMAL(10,2) COMMENT '3IP价格', ip_4 DECIMAL(10,2) COMMENT '4IP价格', ip_5 DECIMAL(10,2) COMMENT '5IP价格', ip_6 DECIMAL(10,2) COMMENT '6IP价格', INDEX idx_country (country) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='欧洲DHL卡派价格表'; -- ============================================ -- 物流公司配置数据 -- ============================================ INSERT INTO logistics_company (company_code, company_name, country, logistics_type, port, currency) VALUES -- 英国 ('UK_DPD', '智谷-DPD', 'UK', 'EXPRESS', 'DEFAULT', 'GBP'), ('UK_BIG', '智谷-大件', 'UK', 'COURIER', 'DEFAULT', 'GBP'), ('UK_KPZG', '海GB-卡派', 'UK', 'COURIER', 'DEFAULT', 'GBP'), ('UK_KPNV', '卡派-NV', 'UK', 'COURIER', 'DEFAULT', 'GBP'), -- 美国 ('US_FEDEX_PP', 'Fedex-邮差小马', 'US', 'EXPRESS', 'WEST', 'USD'), ('US_FEDEX_KH', 'Fedex-金宏亚', 'US', 'EXPRESS', 'WEST', 'USD'), ('US_FEDEX_HOME', 'Fedex-HOME', 'US', 'EXPRESS', 'WEST', 'USD'), ('US_FEDEX_GROUND', 'Fedex-GROUND', 'US', 'EXPRESS', 'WEST', 'USD'), ('US_GIGA', '大健-GIGA', 'US', 'COURIER', 'DEFAULT', 'USD'), ('US_CEVA', '大健-CEVA', 'US', 'COURIER', 'DEFAULT', 'USD'), ('US_METRO', 'Metro-SAIR', 'US', 'COURIER', 'DEFAULT', 'USD'), ('US_XMILES', 'XMILES-SAIR', 'US', 'COURIER', 'DEFAULT', 'USD'), ('US_AM_WEST', 'AM-美西', 'US', 'COURIER', 'WEST', 'USD'), ('US_AM_EAST', 'AM-美东', 'US', 'COURIER', 'EAST', 'USD'), -- 澳洲 ('AU_EPARCEL', 'AU-eparcel', 'AU', 'EXPRESS', 'DEFAULT', 'AUD'), ('AU_TOLL', 'AU-Toll', 'AU', 'COURIER', 'DEFAULT', 'AUD'), ('AU_ALLIED', 'AU-Allied', 'AU', 'COURIER', 'DEFAULT', 'AUD');