yumi-golang/migrations/028_task_center_condition_jump.sql
2026-05-09 00:16:01 +08:00

67 lines
2.4 KiB
SQL
Raw Permalink 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.

CREATE TABLE IF NOT EXISTS `task_center_condition_jump_config` (
`id` bigint NOT NULL COMMENT '主键ID',
`config_id` bigint NOT NULL COMMENT '任务中心配置ID',
`sys_origin` varchar(32) NOT NULL COMMENT '来源系统',
`task_category` varchar(32) NOT NULL COMMENT '任务分类DAILY/NEWBIE',
`condition_type` varchar(64) NOT NULL COMMENT '完成条件类型',
`jump_type` varchar(64) NOT NULL DEFAULT 'NONE' COMMENT '跳转类型',
`jump_page` varchar(512) NOT NULL DEFAULT '' COMMENT '跳转参数',
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序',
`create_time` datetime(3) DEFAULT NULL COMMENT '创建时间',
`update_time` datetime(3) DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_center_condition_jump` (`sys_origin`, `task_category`, `condition_type`),
KEY `idx_task_center_condition_jump_config_id` (`config_id`),
KEY `idx_task_center_condition_jump_sys_category` (`sys_origin`, `task_category`),
KEY `idx_task_center_condition_jump_condition` (`condition_type`),
KEY `idx_task_center_condition_jump_sort` (`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务中心条件跳转配置';
INSERT INTO task_center_condition_jump_config (
id,
config_id,
sys_origin,
task_category,
condition_type,
jump_type,
jump_page,
sort_order,
create_time,
update_time
)
SELECT
id,
config_id,
sys_origin,
task_category,
condition_type,
CASE
WHEN condition_type = 'RECHARGE_GOLD' THEN 'RECHARGE_IN_APP'
ELSE first_jump_type
END AS jump_type,
first_jump_page AS jump_page,
sort_order,
create_time,
update_time
FROM (
SELECT
MIN(id) AS id,
config_id,
sys_origin,
task_category,
condition_type,
COALESCE(NULLIF(SUBSTRING_INDEX(GROUP_CONCAT(jump_type ORDER BY sort_order ASC, id ASC SEPARATOR '\n'), '\n', 1), ''), 'ROOM_RANDOM_WITH_MIC') AS first_jump_type,
COALESCE(SUBSTRING_INDEX(GROUP_CONCAT(jump_page ORDER BY sort_order ASC, id ASC SEPARATOR '\n'), '\n', 1), '') AS first_jump_page,
MIN(sort_order) AS sort_order,
COALESCE(MIN(create_time), NOW(3)) AS create_time,
NOW(3) AS update_time
FROM task_center_task_config
WHERE condition_type <> ''
GROUP BY config_id, sys_origin, task_category, condition_type
) source
ON DUPLICATE KEY UPDATE
jump_type = VALUES(jump_type),
jump_page = VALUES(jump_page),
sort_order = VALUES(sort_order),
update_time = VALUES(update_time);