hyapp-server/scripts/mysql/057_add_yumi_app.sql
2026-07-05 01:55:03 +08:00

93 lines
3.9 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.

SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
USE hyapp_user;
SET @now_ms = CAST(UNIX_TIMESTAMP(UTC_TIMESTAMP(3)) * 1000 AS UNSIGNED);
-- apps 同时按 app_code 和 package_name/platform 唯一;包名若已属于别的 app必须中止避免 upsert 误改非 Yumi 行。
CREATE TEMPORARY TABLE yumi_app_package_conflict_guard (
guard_id TINYINT NOT NULL PRIMARY KEY
) ENGINE=Memory;
INSERT INTO yumi_app_package_conflict_guard (guard_id) VALUES (1);
INSERT INTO yumi_app_package_conflict_guard (guard_id)
SELECT 1
FROM apps
WHERE package_name = 'com.org.yumi'
AND platform = ''
AND app_code <> 'yumi'
LIMIT 1;
DROP TEMPORARY TABLE yumi_app_package_conflict_guard;
-- App 注册表是 gateway 按 app_code 或包名解析租户的事实来源Yumi 本地联调必须先注册为 active。
INSERT INTO apps (app_code, app_name, package_name, platform, status, created_at_ms, updated_at_ms)
VALUES ('yumi', 'Yumi', 'com.org.yumi', '', 'active', @now_ms, @now_ms)
ON DUPLICATE KEY UPDATE
app_name = VALUES(app_name),
package_name = VALUES(package_name),
platform = VALUES(platform),
status = VALUES(status),
updated_at_ms = VALUES(updated_at_ms);
-- 快捷建号和三方注册都会读取 app 级风控配置;补齐默认值避免 app 支持后注册链路再失败。
INSERT INTO auth_risk_configs (app_code, max_accounts_per_device, updated_by_admin_id, created_at_ms, updated_at_ms)
VALUES ('yumi', 1, 0, @now_ms, @now_ms)
ON DUPLICATE KEY UPDATE
app_code = app_code;
-- 注册资料会校验 countries本地 Yumi 没有国家主数据时快捷建号会被 country is not supported 拦住。
INSERT INTO countries (
app_code, country_name, country_code, iso_alpha3, iso_numeric, country_display_name,
phone_country_code, flag, enabled, sort_order, created_by_user_id, updated_by_user_id, created_at_ms, updated_at_ms
)
SELECT
'yumi', country_name, country_code, iso_alpha3, iso_numeric, country_display_name,
phone_country_code, flag, enabled, sort_order, created_by_user_id, updated_by_user_id, @now_ms, @now_ms
FROM countries
WHERE app_code = 'lalu'
ON DUPLICATE KEY UPDATE
country_name = VALUES(country_name),
iso_alpha3 = VALUES(iso_alpha3),
iso_numeric = VALUES(iso_numeric),
country_display_name = VALUES(country_display_name),
phone_country_code = VALUES(phone_country_code),
flag = VALUES(flag),
enabled = VALUES(enabled),
sort_order = VALUES(sort_order),
updated_by_user_id = VALUES(updated_by_user_id),
updated_at_ms = VALUES(updated_at_ms);
-- 区域映射用于注册时把国家收敛到服务端 region_id复制 Lalu 目录即可满足本地联调。
INSERT INTO regions (
app_code, region_code, name, status, sort_order, created_by_user_id, updated_by_user_id, created_at_ms, updated_at_ms
)
SELECT
'yumi', region_code, name, status, sort_order, created_by_user_id, updated_by_user_id, @now_ms, @now_ms
FROM regions
WHERE app_code = 'lalu'
ON DUPLICATE KEY UPDATE
name = VALUES(name),
status = VALUES(status),
sort_order = VALUES(sort_order),
updated_by_user_id = VALUES(updated_by_user_id),
updated_at_ms = VALUES(updated_at_ms);
INSERT INTO region_countries (
app_code, region_id, country_code, status, created_by_user_id, updated_by_user_id, created_at_ms, updated_at_ms
)
SELECT
'yumi', target_region.region_id, source_mapping.country_code, source_mapping.status,
source_mapping.created_by_user_id, source_mapping.updated_by_user_id, @now_ms, @now_ms
FROM region_countries source_mapping
JOIN regions source_region
ON source_region.app_code = source_mapping.app_code
AND source_region.region_id = source_mapping.region_id
JOIN regions target_region
ON target_region.app_code = 'yumi'
AND target_region.region_code = source_region.region_code
WHERE source_mapping.app_code = 'lalu'
ON DUPLICATE KEY UPDATE
region_id = VALUES(region_id),
status = VALUES(status),
updated_by_user_id = VALUES(updated_by_user_id),
updated_at_ms = VALUES(updated_at_ms);