Files
xxk-proxy/java/sql/mysql/xxk_agent_mode_upgrade.sql
2026-06-11 10:31:24 +08:00

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`;