SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; SET @now_ms = CAST(UNIX_TIMESTAMP(UTC_TIMESTAMP(3)) * 1000 AS UNSIGNED); -- 088 已执行的环境不会重放历史迁移;只覆盖 Fami v1 的四个确定业务字段,保留运营后续补充的提现、任务等规则。 UPDATE admin_policy_templates SET rule_json = JSON_SET( JSON_SET( rule_json, '$.host', COALESCE(JSON_EXTRACT(rule_json, '$.host'), JSON_OBJECT()), '$.agency', COALESCE(JSON_EXTRACT(rule_json, '$.agency'), JSON_OBJECT()) ), '$.host.point_ratio_percent', 100, '$.host.use_gift_type_ratio', JSON_EXTRACT('true', '$'), '$.agency.point_ratio_percent', 20, '$.agency.share_base', 'host_income' ), description = 'Fami 主播 POINT 收益政策;Agency 按主播实际 POINT 收益由平台额外发放 20%,以发布后的运行快照为准。', updated_at_ms = @now_ms WHERE template_code = 'fami_guild_revenue_policy' AND template_version = 'v1'; -- 版本表是发布读取源,必须与模板当前版本同时升级,避免列表展示和实际发布使用不同规则。 UPDATE admin_policy_template_versions SET rule_json = JSON_SET( JSON_SET( rule_json, '$.host', COALESCE(JSON_EXTRACT(rule_json, '$.host'), JSON_OBJECT()), '$.agency', COALESCE(JSON_EXTRACT(rule_json, '$.agency'), JSON_OBJECT()) ), '$.host.point_ratio_percent', 100, '$.host.use_gift_type_ratio', JSON_EXTRACT('true', '$'), '$.agency.point_ratio_percent', 20, '$.agency.share_base', 'host_income' ), updated_at_ms = @now_ms WHERE template_code = 'fami_guild_revenue_policy' AND template_version = 'v1'; -- 模板版本被原地修正后,所有引用它的 Fami 实例都必须退回待发布状态;不能只处理默认 instance_code, -- 否则区域/备用实例会显示 published,却继续运行旧快照。wallet 运行侧仍只由显式发布流程写入。 UPDATE admin_policy_instances SET publish_status = 'draft', publish_error = '', updated_at_ms = @now_ms WHERE app_code = 'fami' AND template_code = 'fami_guild_revenue_policy' AND template_version = 'v1';