-- 卡片管理操作功能增量脚本 -- 先在 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 );