migrate-menus.sql
3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
-- 业务菜单迁移:旧 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;