93 lines
3.9 KiB
SQL
93 lines
3.9 KiB
SQL
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);
|