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
-- 卡片管理-额度分配 按钮权限增量脚本
-- 说明:本功能无表结构变更(复用 t_charging_card / t_charging_card_balance_record / t_group_company),
--       仅在 charging_pile_other 逻辑库新增按钮权限。
-- 幂等:已存在同名 perms 时自动跳过,可重复执行。
 
USE charging_pile_other;
 
-- 额度分配按钮权限;父菜单按现有卡片管理菜单定位(历史数据可能存在多个卡片管理节点,逐一定位均已覆盖)。
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`, `update_by`, `update_time`, `remark`)
SELECT permissions.menu_name, parent.menu_id, permissions.order_num, '#', '', '', 1, 0, 'F', '0', '0', permissions.perms, '#', 'admin', NOW(), '', NULL, ''
FROM `sys_menu` parent
JOIN (
    SELECT '额度分配' AS menu_name, 8 AS order_num, '/chargingCard/allocate' AS perms
) permissions
WHERE parent.perms = '/chargingCard/list'
  AND NOT EXISTS (
      SELECT 1 FROM `sys_menu` existing WHERE existing.perms = permissions.perms
  );
 
-- 默认仅授予管理员角色;其他角色由后台按职责单独授权。
INSERT INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 1, child.menu_id
FROM `sys_menu` child
WHERE child.parent_id = (
    SELECT parent.menu_id FROM `sys_menu` parent WHERE parent.perms = '/chargingCard/list' LIMIT 1
  )
  AND child.perms = '/chargingCard/allocate'
  AND NOT EXISTS (
      SELECT 1 FROM `sys_role_menu` existing
      WHERE existing.role_id = 1 AND existing.menu_id = child.menu_id
  );