puzhibing
4 天以前 361d7e2aaae66fdc95a9e630847ca43b1fe0e3b4
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
-- 合作商已拥有光储子菜单权限时,同时补齐父级目录权限。
-- sys_role_menu 的菜单树要求目录(M)本身也被授权,否则前端不会展示整组子菜单。
 
SET @device_monitoring_menu_id := (
    SELECT menu_id
    FROM sys_menu
    WHERE parent_id = 0
      AND menu_type = 'M'
      AND (path = '/deviceManagement' OR perms = '/deviceManagement')
    ORDER BY menu_id
    LIMIT 1
);
 
SET @energy_data_menu_id := (
    SELECT menu_id
    FROM sys_menu
    WHERE parent_id = 0
      AND menu_type = 'M'
      AND (path = '/energyReport' OR perms = '/energyReport')
    ORDER BY menu_id
    LIMIT 1
);
 
-- 光储监控设备管理:监控摄像头、光伏电站、储能电站、逆变器、能量链任一权限。
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT role_menu.role_id, @device_monitoring_menu_id
FROM sys_role_menu role_menu
INNER JOIN sys_menu child_menu ON child_menu.menu_id = role_menu.menu_id
WHERE @device_monitoring_menu_id IS NOT NULL
  AND (
      child_menu.path LIKE '/deviceManagement/%'
      OR child_menu.perms LIKE '/deviceManagement/%'
  );
 
-- 光储监控数据:视频监控、光伏报表、储能日充放电报表任一权限。
INSERT IGNORE INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT role_menu.role_id, @energy_data_menu_id
FROM sys_role_menu role_menu
INNER JOIN sys_menu child_menu ON child_menu.menu_id = role_menu.menu_id
WHERE @energy_data_menu_id IS NOT NULL
  AND (
      child_menu.path LIKE '/energyReport/%'
      OR child_menu.perms LIKE '/energyReport/%'
      OR child_menu.path = '/videoMonitor'
      OR child_menu.perms = '/energyReport/videoMonitor'
  );