-- 业务菜单迁移:旧 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;