puzhibing
昨天 770c90dd33db8f975db417531686e93e17e5a3a8
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
-- 设备管理 -> 能量链管理菜单及查询权限
 
SET @device_management_id := 258;
 
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, 3, '/deviceManagement/energyChain/list',
       'deviceManagement/energyChain', NULL, 1, 0, 'C', '0', 0,
       '/deviceManagement/energyChain', '#', 'admin', NOW(), '能量链管理页面'
WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = @device_management_id AND menu_type = 'M')
  AND NOT EXISTS (
      SELECT 1 FROM sys_menu
      WHERE parent_id = @device_management_id
        AND (path = '/deviceManagement/energyChain/list'
             OR perms = '/deviceManagement/energyChain')
  );
 
SET @energy_chain_id := (
    SELECT menu_id FROM sys_menu
    WHERE parent_id = @device_management_id
      AND (path = '/deviceManagement/energyChain/list'
           OR perms = '/deviceManagement/energyChain')
    ORDER BY menu_id LIMIT 1
);
 
UPDATE sys_menu
SET menu_name = '能量链管理', order_num = 3,
    path = '/deviceManagement/energyChain/list',
    component = 'deviceManagement/energyChain',
    menu_type = 'C', visible = '0', status = 0,
    perms = '/deviceManagement/energyChain', update_time = NOW(),
    remark = '能量链管理页面'
WHERE menu_id = @energy_chain_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_chain_id, 1, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyChain/select', '#', 'admin', NOW(), '能量链查询按钮权限'
WHERE @energy_chain_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_chain_id
                  AND perms = '/deviceManagement/energyChain/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_chain_id, 2, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyChain/add', '#', 'admin', NOW(), '能量链新增按钮权限'
WHERE @energy_chain_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_chain_id
                  AND perms = '/deviceManagement/energyChain/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_chain_id, 3, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyChain/update', '#', 'admin', NOW(), '能量链修改按钮权限'
WHERE @energy_chain_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_chain_id
                  AND perms = '/deviceManagement/energyChain/update');
 
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_chain_id, 4, '', NULL, NULL, 1, 0, 'F', '0', 0,
       '/deviceManagement/energyChain/del', '#', 'admin', NOW(), '能量链删除按钮权限'
WHERE @energy_chain_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE parent_id = @energy_chain_id
                  AND perms = '/deviceManagement/energyChain/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, 264)) source
CROSS JOIN (
    SELECT menu_id FROM sys_menu
    WHERE menu_id = 258 OR menu_id = @energy_chain_id OR parent_id = @energy_chain_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_chain_id OR parent_id = @energy_chain_id;