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
47
48
49
50
51
52
53
54
-- 卡片管理操作功能增量脚本
-- 先在 charging_pile_account 逻辑库执行余额变更记录表,再在 charging_pile_other 逻辑库执行菜单权限。
 
USE charging_pile_account;
 
CREATE TABLE IF NOT EXISTS `t_charging_card_balance_record` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `card_id` bigint NOT NULL COMMENT '卡片ID',
  `change_type` tinyint NOT NULL COMMENT '变更类型:1增加,2减少',
  `amount` decimal(12,2) NOT NULL COMMENT '变更金额',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
  `create_by` bigint DEFAULT NULL COMMENT '操作人ID',
  PRIMARY KEY (`id`),
  KEY `idx_card_id` (`card_id`),
  KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充电卡余额变更记录';
 
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, 1 AS order_num, '/chargingCard/add' AS perms
    UNION ALL SELECT '卡片编辑', 2, '/chargingCard/edit'
    UNION ALL SELECT '卡片删除', 3, '/chargingCard/delete'
    UNION ALL SELECT '卡片启停', 4, '/chargingCard/status'
    UNION ALL SELECT '余额更新', 5, '/chargingCard/balance'
    UNION ALL SELECT '卡片导入', 6, '/chargingCard/import'
    UNION ALL SELECT '卡片导出', 7, '/chargingCard/export'
) 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 IN (
      '/chargingCard/add', '/chargingCard/edit', '/chargingCard/delete', '/chargingCard/status',
      '/chargingCard/balance', '/chargingCard/import', '/chargingCard/export'
  )
  AND NOT EXISTS (
      SELECT 1 FROM `sys_role_menu` existing
      WHERE existing.role_id = 1 AND existing.menu_id = child.menu_id
  );