48 lines
1.6 KiB
SQL
48 lines
1.6 KiB
SQL
-- 代理模式改造升级脚本
|
|
-- 适用范围:
|
|
-- 1. 将会员资料补充代理级别字段。
|
|
-- 2. 为历史会员回填默认代理级别为二级代理。
|
|
-- 3. 规范异常代理级别值,保证新代码可直接使用。
|
|
--
|
|
-- 执行建议:
|
|
-- 1. 执行前先备份数据库。
|
|
-- 2. 在业务低峰期执行。
|
|
-- 3. 执行完成后再发布本次 Java / UI / member-web 代码。
|
|
|
|
SET @current_schema = DATABASE();
|
|
|
|
-- 1) 如果 xxk_member_profile.agent_level 不存在,则新增字段
|
|
SET @has_agent_level = (
|
|
SELECT COUNT(1)
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = @current_schema
|
|
AND TABLE_NAME = 'xxk_member_profile'
|
|
AND COLUMN_NAME = 'agent_level'
|
|
);
|
|
|
|
SET @ddl_sql = IF(
|
|
@has_agent_level = 0,
|
|
'ALTER TABLE `xxk_member_profile`
|
|
ADD COLUMN `agent_level` TINYINT NOT NULL DEFAULT 2 COMMENT ''代理级别(1一级代理 2二级代理)'' AFTER `invite_code`',
|
|
'SELECT ''xxk_member_profile.agent_level already exists'' AS message'
|
|
);
|
|
|
|
PREPARE stmt FROM @ddl_sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
-- 2) 历史数据回填:
|
|
-- 空值、0、其他非法值一律收敛成二级代理
|
|
UPDATE `xxk_member_profile`
|
|
SET `agent_level` = 2
|
|
WHERE `agent_level` IS NULL
|
|
OR `agent_level` NOT IN (1, 2);
|
|
|
|
|
|
UPDATE `sys_menu` SET `name` = '代理返佣流水' WHERE `id` = 1200
|
|
|
|
|
|
ALTER TABLE `xxk_distribution_config`
|
|
ADD COLUMN IF NOT EXISTS `withdraw_threshold` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '提现门槛金额' AFTER `second_level_rate`,
|
|
ADD COLUMN IF NOT EXISTS `withdraw_fee_rate` decimal(10,4) NOT NULL DEFAULT 0.0000 COMMENT '提现手续费比例' AFTER `withdraw_threshold`;
|