yumi-golang/migrations/035_resident_smash_egg_newbie_pool.sql
2026-05-15 09:58:01 +08:00

122 lines
4.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

SET @current_schema := DATABASE();
SET @add_newbie_pool_enabled_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_config'
AND column_name = 'newbie_pool_enabled'
),
'ALTER TABLE `smash_egg_config` ADD COLUMN `newbie_pool_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT ''是否启用新人奖池'' AFTER `rtp_basis_points`',
'SELECT 1'
);
PREPARE add_newbie_pool_enabled_stmt FROM @add_newbie_pool_enabled_sql;
EXECUTE add_newbie_pool_enabled_stmt;
DEALLOCATE PREPARE add_newbie_pool_enabled_stmt;
SET @add_newbie_window_days_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_config'
AND column_name = 'newbie_window_days'
),
'ALTER TABLE `smash_egg_config` ADD COLUMN `newbie_window_days` int NOT NULL DEFAULT 7 COMMENT ''新人资格窗口天数'' AFTER `newbie_pool_enabled`',
'SELECT 1'
);
PREPARE add_newbie_window_days_stmt FROM @add_newbie_window_days_sql;
EXECUTE add_newbie_window_days_stmt;
DEALLOCATE PREPARE add_newbie_window_days_stmt;
SET @add_newbie_max_draw_count_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_config'
AND column_name = 'newbie_max_draw_count'
),
'ALTER TABLE `smash_egg_config` ADD COLUMN `newbie_max_draw_count` int NOT NULL DEFAULT 3 COMMENT ''每个用户最多使用新人奖池的抽奖请求次数'' AFTER `newbie_window_days`',
'SELECT 1'
);
PREPARE add_newbie_max_draw_count_stmt FROM @add_newbie_max_draw_count_sql;
EXECUTE add_newbie_max_draw_count_stmt;
DEALLOCATE PREPARE add_newbie_max_draw_count_stmt;
SET @add_newbie_min_recharge_amount_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_config'
AND column_name = 'newbie_min_recharge_amount'
),
'ALTER TABLE `smash_egg_config` ADD COLUMN `newbie_min_recharge_amount` bigint NOT NULL DEFAULT 0 COMMENT ''新人奖池最低累计充值金额0表示不限制'' AFTER `newbie_max_draw_count`',
'SELECT 1'
);
PREPARE add_newbie_min_recharge_amount_stmt FROM @add_newbie_min_recharge_amount_sql;
EXECUTE add_newbie_min_recharge_amount_stmt;
DEALLOCATE PREPARE add_newbie_min_recharge_amount_stmt;
SET @add_reward_pool_type_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_reward_config'
AND column_name = 'pool_type'
),
'ALTER TABLE `smash_egg_reward_config` ADD COLUMN `pool_type` varchar(32) NOT NULL DEFAULT ''GENERAL'' COMMENT ''奖池类型 GENERAL/NEWBIE'' AFTER `sys_origin`',
'SELECT 1'
);
PREPARE add_reward_pool_type_stmt FROM @add_reward_pool_type_sql;
EXECUTE add_reward_pool_type_stmt;
DEALLOCATE PREPARE add_reward_pool_type_stmt;
SET @add_draw_record_pool_type_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.columns
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_draw_record'
AND column_name = 'pool_type'
),
'ALTER TABLE `smash_egg_draw_record` ADD COLUMN `pool_type` varchar(32) NOT NULL DEFAULT ''GENERAL'' COMMENT ''奖池类型 GENERAL/NEWBIE'' AFTER `user_id`',
'SELECT 1'
);
PREPARE add_draw_record_pool_type_stmt FROM @add_draw_record_pool_type_sql;
EXECUTE add_draw_record_pool_type_stmt;
DEALLOCATE PREPARE add_draw_record_pool_type_stmt;
SET @add_reward_pool_index_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.statistics
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_reward_config'
AND index_name = 'idx_smash_egg_reward_pool'
),
'ALTER TABLE `smash_egg_reward_config` ADD KEY `idx_smash_egg_reward_pool` (`config_id`, `pool_type`, `enabled`, `sort`)',
'SELECT 1'
);
PREPARE add_reward_pool_index_stmt FROM @add_reward_pool_index_sql;
EXECUTE add_reward_pool_index_stmt;
DEALLOCATE PREPARE add_reward_pool_index_stmt;
SET @add_draw_user_pool_index_sql := IF(
NOT EXISTS (
SELECT 1
FROM information_schema.statistics
WHERE table_schema = @current_schema
AND table_name = 'smash_egg_draw_record'
AND index_name = 'idx_smash_egg_draw_record_user_pool'
),
'ALTER TABLE `smash_egg_draw_record` ADD KEY `idx_smash_egg_draw_record_user_pool` (`sys_origin`, `user_id`, `pool_type`, `status`, `create_time`)',
'SELECT 1'
);
PREPARE add_draw_user_pool_index_stmt FROM @add_draw_user_pool_index_sql;
EXECUTE add_draw_user_pool_index_stmt;
DEALLOCATE PREPARE add_draw_user_pool_index_stmt;