56 lines
2.1 KiB
SQL
56 lines
2.1 KiB
SQL
-- prc_surcharge: drop calc_rule; keep dict_value / block_title; charge_type stores billing mode
|
||
SET NAMES utf8mb4;
|
||
|
||
-- If calc_rule exists, copy into charge_type then drop
|
||
SET @col := (
|
||
SELECT COLUMN_NAME FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'prc_surcharge'
|
||
AND COLUMN_NAME = 'calc_rule'
|
||
LIMIT 1
|
||
);
|
||
SET @sql := IF(@col IS NULL,
|
||
'SELECT 1',
|
||
'UPDATE prc_surcharge SET charge_type = calc_rule WHERE calc_rule IS NOT NULL AND calc_rule <> ''''');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col := (
|
||
SELECT COLUMN_NAME FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'prc_surcharge'
|
||
AND COLUMN_NAME = 'calc_rule'
|
||
LIMIT 1
|
||
);
|
||
SET @sql := IF(@col IS NULL,
|
||
'SELECT 1',
|
||
'ALTER TABLE prc_surcharge DROP COLUMN calc_rule');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col := (
|
||
SELECT COLUMN_NAME FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'prc_surcharge'
|
||
AND COLUMN_NAME = 'dict_value'
|
||
LIMIT 1
|
||
);
|
||
SET @sql := IF(@col IS NULL,
|
||
'ALTER TABLE prc_surcharge ADD COLUMN dict_value varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ''渠道产品 payment_product_type.dict_value'' AFTER charge_type',
|
||
'SELECT 1');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
SET @col := (
|
||
SELECT COLUMN_NAME FROM information_schema.COLUMNS
|
||
WHERE TABLE_SCHEMA = DATABASE()
|
||
AND TABLE_NAME = 'prc_surcharge'
|
||
AND COLUMN_NAME = 'block_title'
|
||
LIMIT 1
|
||
);
|
||
SET @sql := IF(@col IS NULL,
|
||
'ALTER TABLE prc_surcharge ADD COLUMN block_title varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT ''分区/区块(pay_postcode_group.block_title)'' AFTER country_code',
|
||
'SELECT 1');
|
||
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||
|
||
-- legacy amount modes: FIXED -> ALWAYS; RATE no longer used as amount mode -> MANUAL
|
||
UPDATE prc_surcharge SET charge_type = 'ALWAYS' WHERE charge_type IS NULL OR charge_type = '' OR upper(charge_type) = 'FIXED';
|
||
UPDATE prc_surcharge SET charge_type = 'MANUAL' WHERE upper(charge_type) = 'RATE';
|