提交试算落库
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
-- ----------------------------
|
||||
-- BMS 下单计费试算落库
|
||||
-- charset: utf8mb4
|
||||
-- prc_quote:相同试算参数唯一,命中则直接返回
|
||||
-- prc_quote_fee:运费/挂号费各一行,附加费按具体名称各一行
|
||||
-- ----------------------------
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_quote (
|
||||
quote_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '试算ID',
|
||||
quote_key CHAR(32) NOT NULL COMMENT '试算指纹 MD5(客户|产品|国家|重量|计费日期)',
|
||||
customer_id BIGINT(20) NOT NULL COMMENT '客户ID',
|
||||
product_code VARCHAR(20) NOT NULL COMMENT '产品代码',
|
||||
product_name VARCHAR(100) DEFAULT NULL COMMENT '产品名称',
|
||||
country_code CHAR(2) DEFAULT NULL COMMENT '国家二字码',
|
||||
country_name VARCHAR(50) DEFAULT NULL COMMENT '国家名称',
|
||||
weight DECIMAL(10,3) NOT NULL COMMENT '计费重量KG',
|
||||
biz_date DATE NOT NULL COMMENT '计费日期',
|
||||
tms_id BIGINT(20) DEFAULT NULL COMMENT '多租户系统ID',
|
||||
match_source VARCHAR(30) DEFAULT NULL COMMENT '命中来源 PACKAGE_FIXED/套餐固定价 PACKAGE_DISCOUNT/套餐折扣 PRODUCT_DEFAULT/产品默认价',
|
||||
match_message VARCHAR(200) DEFAULT NULL COMMENT '命中说明',
|
||||
price_set_id BIGINT(20) DEFAULT NULL COMMENT '价格套餐ID',
|
||||
price_set_code VARCHAR(20) DEFAULT NULL COMMENT '套餐编码',
|
||||
price_set_name VARCHAR(50) DEFAULT NULL COMMENT '套餐名称',
|
||||
set_type VARCHAR(10) DEFAULT NULL COMMENT '计价类型 FIXED=固定价 DISCOUNT=折扣',
|
||||
bind_priority INT(11) DEFAULT NULL COMMENT '客户套餐优先级',
|
||||
customer_priceset_id BIGINT(20) DEFAULT NULL COMMENT '客户套餐绑定ID',
|
||||
product_country_id BIGINT(20) DEFAULT NULL COMMENT '关联 bms_product_country.detail_id',
|
||||
weight_min DECIMAL(10,4) DEFAULT NULL COMMENT '重量段下限',
|
||||
weight_max DECIMAL(10,4) DEFAULT NULL COMMENT '重量段上限',
|
||||
weight_label VARCHAR(50) DEFAULT NULL COMMENT '重量段展示',
|
||||
effective_date DATE DEFAULT NULL COMMENT '产品明细生效日',
|
||||
charge_weight DECIMAL(10,3) DEFAULT NULL COMMENT '计费重量',
|
||||
freight_rate DECIMAL(10,4) DEFAULT NULL COMMENT '运费单价',
|
||||
base_freight_rate DECIMAL(10,4) DEFAULT NULL COMMENT '折扣前单价',
|
||||
discount_percent DECIMAL(5,2) DEFAULT NULL COMMENT '折扣百分数',
|
||||
registration_fee DECIMAL(10,2) DEFAULT NULL COMMENT '挂号费',
|
||||
freight_amount DECIMAL(10,2) DEFAULT NULL COMMENT '运费金额',
|
||||
surcharge_amount DECIMAL(10,2) DEFAULT NULL COMMENT '附加费合计',
|
||||
payable_total DECIMAL(10,2) DEFAULT NULL COMMENT '应付总额',
|
||||
currency VARCHAR(10) NOT NULL DEFAULT 'RMB' COMMENT '币种',
|
||||
round_mode VARCHAR(20) NOT NULL DEFAULT 'HALF_UP' COMMENT '取值方式(字典bms_round_mode)',
|
||||
created_by VARCHAR(64) DEFAULT '' COMMENT '创建人',
|
||||
created_at DATETIME DEFAULT NULL COMMENT '创建时间',
|
||||
updated_by VARCHAR(64) DEFAULT '' COMMENT '更新人',
|
||||
updated_at DATETIME DEFAULT NULL COMMENT '更新时间',
|
||||
PRIMARY KEY (quote_id),
|
||||
UNIQUE KEY uk_quote_key (quote_key),
|
||||
INDEX idx_quote_customer (customer_id, biz_date),
|
||||
INDEX idx_quote_product (product_code, country_code)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计费试算主表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS prc_quote_fee (
|
||||
fee_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '费用明细ID',
|
||||
quote_id BIGINT(20) NOT NULL COMMENT '试算ID',
|
||||
fee_type VARCHAR(30) NOT NULL COMMENT '费用类型(字典bms_fee_type)',
|
||||
fee_name VARCHAR(100) DEFAULT NULL COMMENT '费用名称(附加费取配置名称)',
|
||||
sc_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '附加费配置ID,运费/挂号费为0',
|
||||
amount DECIMAL(12,2) NOT NULL DEFAULT 0 COMMENT '金额',
|
||||
currency VARCHAR(10) NOT NULL DEFAULT 'RMB' COMMENT '币种',
|
||||
round_mode VARCHAR(20) DEFAULT 'HALF_UP' COMMENT '取值方式(字典bms_round_mode)',
|
||||
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
|
||||
created_at DATETIME DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (fee_id),
|
||||
UNIQUE KEY uk_quote_fee_item (quote_id, fee_type, sc_id),
|
||||
INDEX idx_quote_fee_type (fee_type),
|
||||
CONSTRAINT fk_quote_fee_quote FOREIGN KEY (quote_id) REFERENCES prc_quote (quote_id) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='计费试算费用明细-附加费按具体名称一行';
|
||||
@@ -0,0 +1,21 @@
|
||||
-- ----------------------------
|
||||
-- prc_quote_fee:附加费按具体名称多行
|
||||
-- 原 uk_quote_fee_type(quote_id, fee_type) 被外键 fk_quote_fee_quote 依赖,
|
||||
-- 必须先补 quote_id 索引再删旧唯一键
|
||||
-- ----------------------------
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
-- 1) 外键所需的 quote_id 索引(与旧唯一键分离)
|
||||
ALTER TABLE prc_quote_fee ADD INDEX idx_quote_fee_quote_id (quote_id);
|
||||
|
||||
-- 2) 附加费配置ID
|
||||
ALTER TABLE prc_quote_fee ADD COLUMN sc_id BIGINT(20) NOT NULL DEFAULT 0 COMMENT '附加费配置ID,运费/挂号费为0' AFTER fee_name;
|
||||
|
||||
-- 3) 新唯一:同一试算可有多条附加费
|
||||
ALTER TABLE prc_quote_fee ADD UNIQUE KEY uk_quote_fee_item (quote_id, fee_type, sc_id);
|
||||
|
||||
-- 4) 现可安全删掉旧唯一键
|
||||
ALTER TABLE prc_quote_fee DROP INDEX uk_quote_fee_type;
|
||||
|
||||
-- 5) 更新费用名称注释
|
||||
ALTER TABLE prc_quote_fee MODIFY COLUMN fee_name VARCHAR(100) DEFAULT NULL COMMENT '费用名称(附加费取配置名称)';
|
||||
Reference in New Issue
Block a user