Files
dax-pay/_config/sql/update-datas.sql
DaxPay Dev a243a510aa refactor(i18n): 全面 i18n 改造——删除 nameCn/nameEn/titleCn/titleEn 双列存储,统一为 i18nKey + 语言包翻译
后端:
- 删除菜单/字典/字典项/角色/权限码实体的 nameCn/nameEn/titleCn/titleEn 字段
- 新增 i18nKey 字段(菜单已有,字典/角色/权限码新增)
- 权限码 i18nKey 由 PermCodeScanService 自动推导: perm.{code}
- DictItemData record 简化为仅 i18nKey
- TransService 删除 resolveLocaleAwareField 双语 fallback 逻辑
- PermCode 注解删除 nameCn/nameEn,PermCodes 常量类删除 *_NAME_CN/EN
- 角色删除 existsByNameCn/En 方法和端点

SQL:
- update-tables.sql: 加 i18n_key 列(system_dict/system_dict_item/iam_role)+ DROP 旧列
- update-datas.sql: 批量回填 i18n_key(role.{code} / dict.{dictCode}.{itemCode})
- iam_perm_menu.sql: 删除 title_cn/title_en 列定义和 INSERT 数据
2026-07-14 10:48:26 +08:00

117 lines
3.0 KiB
SQL
Raw 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.
-- ----------------------------
-- 数据升级:菜单展示与 IA 调整 + i18n 改造数据回填
-- 执行顺序update-tables.sql → update-datas.sql
-- ----------------------------
-- ----------------------------
-- 管理端菜单 IA支付管理扁平 + 微信域名验证迁系统配置
-- ----------------------------
-- 支付产品配置 → 通道产品配置,升为支付管理二级
UPDATE "public"."iam_perm_menu"
SET "pid" = 4,
"sort_no" = 2,
"last_modified_time" = NOW()
WHERE "id" = 40105;
-- 微信域名验证:支付配置 → 系统配置
UPDATE "public"."iam_perm_menu"
SET "pid" = 304,
"sort_no" = 7,
"last_modified_time" = NOW()
WHERE "id" = 40507;
-- 支付配置 catalog 已无可见子菜单,隐藏
UPDATE "public"."iam_perm_menu"
SET "hidden" = true,
"last_modified_time" = NOW()
WHERE "id" = 405;
-- 一级菜单顺序
UPDATE "public"."iam_perm_menu"
SET "sort_no" = 3.5,
"last_modified_time" = NOW()
WHERE "id" = 404;
UPDATE "public"."iam_perm_menu"
SET "sort_no" = 4,
"last_modified_time" = NOW()
WHERE "id" = 6;
-- 系统配置排序
UPDATE "public"."iam_perm_menu"
SET "sort_no" = 1,
"last_modified_time" = NOW()
WHERE "id" = 30402;
UPDATE "public"."iam_perm_menu"
SET "sort_no" = 2,
"last_modified_time" = NOW()
WHERE "id" = 30401;
-- ----------------------------
-- 商户管理:全局「通道商户」侧栏菜单(占位)
-- ----------------------------
INSERT INTO "public"."iam_perm_menu" (
"id", "pid", "menu_code", "client_code", "name",
"i18n_key", "icon",
"hidden", "hide_children_menu", "component", "path", "redirect",
"sort_no", "root", "keep_alive", "affix_tab",
"creator", "last_modifier", "version", "deleted",
"menu_type", "active_icon", "badge", "badge_type", "badge_variants",
"iframe_src", "link", "create_time", "last_modified_time"
)
SELECT
40402,
404,
'channel:merchant',
'admin',
'ChannelMerchantGlobal',
'menu.payment.merchant.channelMerchant.global',
'lucide:repeat',
false,
false,
'/_core/fallback/coming-soon',
'/payment/merchant/channel-merchants',
NULL,
2,
false,
true,
false,
1,
1,
0,
false,
'menu',
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NOW(),
NOW()
WHERE NOT EXISTS (
SELECT 1 FROM "public"."iam_perm_menu" WHERE "id" = 40402
);
-- ============================================================
-- i18n 改造:批量回填 i18n_key
-- 规则:角色 role.{code},字典项 dict.{dictCode}.{itemCode}
-- 语言包翻译在前端 locales/langs/{locale}/dict.json 中维护
-- ============================================================
-- 角色表:按 code 生成 i18n_key
UPDATE iam_role
SET i18n_key = 'role.' || code,
last_modified_time = NOW()
WHERE i18n_key IS NULL
AND deleted = false;
-- 字典项表:按 dictCode.code 生成 i18n_key
UPDATE system_dict_item
SET i18n_key = 'dict.' || dict_code || '.' || code,
last_modified_time = NOW()
WHERE i18n_key IS NULL
AND deleted = false;