migrate-menus.sql 3.53 KB
-- 业务菜单迁移:旧 system_menu(已改名 pcbak_system_menu)-> 新 system_menu
-- id 统一 +100000;parent_id 规则:
--   0 -> 0
--   2(旧「系统管理」)-> 1(上游「系统管理」)
--   >=153(业务树内部)-> +100000
--   24(旧「组织管理」)-> 100024
-- 排除 system/notice/index(上游已有通知公告)
--
-- ★ path 归一化:老菜单子页写的是绝对路径 `/park/park-lot`,而 yudao 约定
--   「目录绝对路径 + 子页相对路径」(如 /system + user)。原样搬运会让侧边栏
--   pathResolve('/park','/park/park-lot') 拼成 /park/park/park-lot → 404。
--   故 type=2 的路径去掉第一段,只留相对部分(/park/park-lot → park-lot)。

INSERT INTO system_menu
(id, name, permission, type, sort, parent_id, path, icon, component, component_name,
 status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT
  id + 100000, name, COALESCE(permission, ''), type, sort,
  CASE
    WHEN parent_id = 0 THEN 0
    WHEN parent_id = 2 THEN 1
    WHEN parent_id >= 153 THEN parent_id + 100000
    WHEN parent_id = 24 THEN 100024
    ELSE parent_id
  END,
  CASE
    WHEN type = 2 AND path LIKE '/%' AND LOCATE('/', path, 2) > 0
      THEN SUBSTRING(path, LOCATE('/', path, 2) + 1)
    ELSE path
  END,
  icon, component, component_name,
  status, visible, b'1', b'1',
  'migrate', NOW(), 'migrate', NOW(), b'0'
FROM pcbak_system_menu
WHERE id >= 153 AND del_flag = 0 AND component <> 'system/notice/index';

-- 停车专有系统页:组织管理(旧 id=24)及其按钮(131-135)
INSERT INTO system_menu
(id, name, permission, type, sort, parent_id, path, icon, component, component_name,
 status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT
  id + 100000, name, COALESCE(permission, ''), type, sort, 1,
  CASE
    WHEN type = 2 AND path LIKE '/%' AND LOCATE('/', path, 2) > 0
      THEN SUBSTRING(path, LOCATE('/', path, 2) + 1)
    ELSE path
  END,
  icon, component, component_name,
  status, visible, b'1', b'1',
  'migrate', NOW(), 'migrate', NOW(), b'0'
FROM pcbak_system_menu
WHERE id = 24 AND del_flag = 0;

INSERT INTO system_menu
(id, name, permission, type, sort, parent_id, path, icon, component, component_name,
 status, visible, keep_alive, always_show, creator, create_time, updater, update_time, deleted)
SELECT
  id + 100000, name, COALESCE(permission, ''), type, sort, parent_id + 100000, path, icon, component, component_name,
  status, visible, b'1', b'1',
  'migrate', NOW(), 'migrate', NOW(), b'0'
FROM pcbak_system_menu
WHERE parent_id = 24 AND del_flag = 0;

-- 超级管理员可见全部迁移菜单
INSERT IGNORE INTO system_role_menu
(role_id, menu_id, creator, create_time, updater, update_time, deleted, tenant_id)
SELECT 1, id, 'migrate', NOW(), 'migrate', NOW(), b'0', 1
FROM system_menu WHERE id >= 100000;

-- 字典:旧 5 类 / 17 条,id +10000 避免与上游 seed 冲突
INSERT IGNORE INTO system_dict_type
(id, name, type, status, remark, creator, create_time, updater, update_time, deleted)
SELECT id + 10000, name, type, status, remark, 'migrate', NOW(), 'migrate', NOW(), b'0'
FROM pcbak_system_dict_type WHERE del_flag = 0;

INSERT IGNORE INTO system_dict_data
(id, sort, label, value, dict_type, status, color_type, css_class, remark,
 creator, create_time, updater, update_time, deleted)
SELECT id + 10000, sort, label, value, dict_type, status, color_type, css_class, remark,
       'migrate', NOW(), 'migrate', NOW(), b'0'
FROM pcbak_system_dict_data WHERE del_flag = 0;