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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
-- 设备管理 -> 储能管理菜单及按钮权限
 
SET @device_management_id := (
    SELECT menu_id
    FROM sys_menu
    WHERE menu_id = 258
      AND menu_name = '设备管理'
      AND menu_type = 'M'
    LIMIT 1
);
 
INSERT INTO sys_menu
    (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
     menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT
    '储能管理', @device_management_id, 2, '/deviceManagement/energyStorage/list',
    'deviceManagement/energyStorage', NULL, 1, 0, 'C', '0', 0,
    '/deviceManagement/energyStorage', '#', 'admin', NOW(), '储能管理页面'
WHERE @device_management_id IS NOT NULL
  AND NOT EXISTS (
      SELECT 1 FROM sys_menu
      WHERE parent_id = @device_management_id
        AND (path = '/deviceManagement/energyStorage/list'
             OR perms = '/deviceManagement/energyStorage')
  );
 
SET @energy_storage_id := (
    SELECT menu_id
    FROM sys_menu
    WHERE parent_id = @device_management_id
      AND (path = '/deviceManagement/energyStorage/list'
           OR perms = '/deviceManagement/energyStorage')
    ORDER BY menu_id
    LIMIT 1
);
 
UPDATE sys_menu
SET menu_name = '储能管理',
    parent_id = @device_management_id,
    order_num = 2,
    path = '/deviceManagement/energyStorage/list',
    component = 'deviceManagement/energyStorage',
    query = NULL,
    is_frame = 1,
    is_cache = 0,
    menu_type = 'C',
    visible = '0',
    status = 0,
    perms = '/deviceManagement/energyStorage',
    icon = '#',
    update_time = NOW(),
    remark = '储能管理页面'
WHERE menu_id = @energy_storage_id;
 
INSERT INTO sys_menu
    (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
     menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '储能查询', @energy_storage_id, 1, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyStorage/select', '#', 'admin', NOW(), '储能查询按钮权限'
WHERE @energy_storage_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_storage_id
                  AND perms = '/deviceManagement/energyStorage/select');
 
INSERT INTO sys_menu
    (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
     menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '储能新增', @energy_storage_id, 2, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyStorage/add', '#', 'admin', NOW(), '储能新增按钮权限'
WHERE @energy_storage_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_storage_id
                  AND perms = '/deviceManagement/energyStorage/add');
 
INSERT INTO sys_menu
    (menu_name, parent_id, order_num, path, component, query, is_frame, is_cache,
     menu_type, visible, status, perms, icon, create_by, create_time, remark)
SELECT '储能删除', @energy_storage_id, 3, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyStorage/del', '#', 'admin', NOW(), '储能删除按钮权限'
WHERE @energy_storage_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_storage_id
                  AND perms = '/deviceManagement/energyStorage/del');
 
-- 已拥有“设备列表”的角色同步获得父目录和储能管理权限。
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT source.role_id, target.menu_id
FROM (SELECT DISTINCT role_id FROM sys_role_menu WHERE menu_id IN (258, 259)) source
CROSS JOIN (
    SELECT menu_id FROM sys_menu
    WHERE menu_id = 258 OR menu_id = @energy_storage_id OR parent_id = @energy_storage_id
) target;
 
-- 管理员角色默认拥有新增菜单及按钮权限。
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT 1, menu_id
FROM sys_menu
WHERE menu_id = 258 OR menu_id = @energy_storage_id OR parent_id = @energy_storage_id;