hyapp-server/server/admin/migrations/116_remove_direct_gift_point_policy.sql
2026-07-22 13:55:55 +08:00

99 lines
3.6 KiB
SQL

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Remove publish audit children before their parent rows. The joins start from the exact template through
-- idx_admin_policy_instances_template, then use the existing job/item indexes; no audit-table full scan is required.
-- These are policy configuration/audit tables only; balances, wallet transactions, Daily Task definitions,
-- and Host salary policies are outside this migration.
DELETE item
FROM admin_policy_publish_items AS item
INNER JOIN admin_policy_publish_jobs AS job ON job.job_id = item.job_id
INNER JOIN admin_policy_instances AS instance
ON instance.instance_id = job.instance_id
AND instance.template_code = 'fami_guild_revenue_policy'
WHERE job.template_code = 'fami_guild_revenue_policy';
DELETE job
FROM admin_policy_publish_jobs AS job
INNER JOIN admin_policy_instances AS instance
ON instance.instance_id = job.instance_id
AND instance.template_code = 'fami_guild_revenue_policy'
WHERE job.template_code = 'fami_guild_revenue_policy';
-- template_code is the exact removed capability identity; no product-name branch is added to runtime code.
DELETE FROM admin_policy_instances
WHERE template_code = 'fami_guild_revenue_policy';
DELETE FROM admin_policy_template_versions
WHERE template_code = 'fami_guild_revenue_policy';
DELETE FROM admin_policy_templates
WHERE template_code = 'fami_guild_revenue_policy';
-- Keep the three POINT financial fields. Team salary, coin-seller and invite configuration have independent owners;
-- their duplicate PolicyConfig sections are removed so Admin cannot continue presenting inert settings.
UPDATE admin_policy_template_versions
SET rule_json = JSON_REMOVE(
rule_json,
'$.allow_self_brushing',
'$.google_coin_per_usd',
'$.host.point_ratio_percent',
'$.host.use_gift_type_ratio',
'$.host.affects_room_heat',
'$.agency',
'$.agent',
'$.bd',
'$.manager',
'$.coin_seller',
'$.game_invite',
'$.tasks'
);
UPDATE admin_policy_templates
SET rule_json = JSON_REMOVE(
rule_json,
'$.allow_self_brushing',
'$.google_coin_per_usd',
'$.host.point_ratio_percent',
'$.host.use_gift_type_ratio',
'$.host.affects_room_heat',
'$.agency',
'$.agent',
'$.bd',
'$.manager',
'$.coin_seller',
'$.game_invite',
'$.tasks'
);
-- 菜单和权限 code 都有唯一索引;以下点更新只修正文案,不重命名权限码、路由或存量 template_code。
UPDATE admin_menus
SET title = 'POINT 钱包政策',
updated_at_ms = CAST(UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)) * 1000 AS UNSIGNED)
WHERE code = 'policy-template';
UPDATE admin_permissions
SET name = CASE code
WHEN 'policy-template:view' THEN 'POINT 钱包政策查看'
WHEN 'policy-template:create' THEN 'POINT 钱包政策创建'
WHEN 'policy-instance:create' THEN 'POINT 钱包政策实例创建'
WHEN 'policy-instance:update' THEN 'POINT 钱包政策实例更新'
WHEN 'policy-instance:publish' THEN 'POINT 钱包政策实例发布'
ELSE name
END,
description = CASE code
WHEN 'policy-template:view' THEN '允许查看 POINT 钱包政策和实例'
WHEN 'policy-template:create' THEN '允许创建 POINT 钱包政策'
WHEN 'policy-instance:create' THEN '允许创建 POINT 钱包政策实例'
WHEN 'policy-instance:update' THEN '允许更新 POINT 钱包政策实例状态'
WHEN 'policy-instance:publish' THEN '允许发布 POINT 钱包政策实例到运行侧'
ELSE description
END,
updated_at_ms = CAST(UNIX_TIMESTAMP(CURRENT_TIMESTAMP(3)) * 1000 AS UNSIGNED)
WHERE code IN (
'policy-template:view',
'policy-template:create',
'policy-instance:create',
'policy-instance:update',
'policy-instance:publish'
);