From 7b6199f0b7b8a064473e10ecdb97037ec1f9b037 Mon Sep 17 00:00:00 2001 From: zhx Date: Mon, 13 Jul 2026 16:06:30 +0800 Subject: [PATCH] chore: add rocket configuration menu SQL --- .../sql/20260713_rocket_config_menu.sql | 113 ++++++++++++++++++ .../sql/20260713_rocket_config_menu.sql | 113 ++++++++++++++++++ 2 files changed, 226 insertions(+) create mode 100644 .deploy/prod-deploy/sql/20260713_rocket_config_menu.sql create mode 100644 .deploy/test-deploy/sql/20260713_rocket_config_menu.sql diff --git a/.deploy/prod-deploy/sql/20260713_rocket_config_menu.sql b/.deploy/prod-deploy/sql/20260713_rocket_config_menu.sql new file mode 100644 index 00000000..b9a6f730 --- /dev/null +++ b/.deploy/prod-deploy/sql/20260713_rocket_config_menu.sql @@ -0,0 +1,113 @@ +-- Webconsole rocket configuration menu and API permissions. +-- Adds the page under 运营管理/数据配置 and grants it to existing data-config roles. + +SET NAMES utf8mb4; + +INSERT INTO sys_resource (id, resource_name, mapping, method, auth_type, perm, update_time) +VALUES + ( + 'rocket:config:list', + '查询火箭配置', + '/admin/rocket/config/list', + 'GET', + 3, + 'rocket:config:list', + NOW() + ), + ( + 'rocket:config:update', + '更新火箭配置', + '/admin/rocket/config/update', + 'POST', + 3, + 'rocket:config:update', + NOW() + ) +ON DUPLICATE KEY UPDATE + resource_name = VALUES(resource_name), + mapping = VALUES(mapping), + method = VALUES(method), + auth_type = VALUES(auth_type), + perm = VALUES(perm), + update_time = NOW(); + +INSERT INTO sys_menu ( + parent_id, + menu_name, + path, + router, + menu_type, + icon, + alias, + sort, + status, + create_user, + update_user, + create_time, + update_time +) +SELECT + parent.id, + '火箭配置', + 'rocket/config/index', + 'rocket/config', + 2, + 'gift', + 'rocket:config', + 850, + 0, + '0', + '0', + NOW(), + NOW() +FROM sys_menu parent +LEFT JOIN sys_menu existing ON existing.alias = 'rocket:config' +WHERE (parent.alias = 'data:conf' OR parent.menu_name = '数据配置') + AND parent.menu_type = 1 + AND existing.id IS NULL +LIMIT 1; + +-- 关键逻辑:重复执行时同步菜单字段,并始终归属当前的数据配置目录。 +UPDATE sys_menu rocket_menu +JOIN ( + SELECT id + FROM sys_menu + WHERE (alias = 'data:conf' OR menu_name = '数据配置') + AND menu_type = 1 + LIMIT 1 +) parent ON 1 = 1 +SET + rocket_menu.parent_id = parent.id, + rocket_menu.menu_name = '火箭配置', + rocket_menu.path = 'rocket/config/index', + rocket_menu.router = 'rocket/config', + rocket_menu.menu_type = 2, + rocket_menu.icon = 'gift', + rocket_menu.sort = 850, + rocket_menu.status = 0, + rocket_menu.update_user = '0', + rocket_menu.update_time = NOW() +WHERE rocket_menu.alias = 'rocket:config'; + +INSERT INTO sys_menu_resource (menu_id, resource_id) +SELECT menu.id, resource.id +FROM sys_menu menu +JOIN sys_resource resource + ON resource.id IN ('rocket:config:list', 'rocket:config:update') +LEFT JOIN sys_menu_resource existing + ON existing.menu_id = menu.id + AND existing.resource_id = resource.id +WHERE menu.alias = 'rocket:config' + AND existing.id IS NULL; + +-- 沿用数据配置目录的现有角色授权,避免将火箭配置开放给无关角色。 +INSERT INTO sys_role_menu (role_id, menu_id) +SELECT DISTINCT source_role.role_id, rocket_menu.id +FROM sys_role_menu source_role +JOIN sys_menu source_menu ON source_menu.id = source_role.menu_id +JOIN sys_menu rocket_menu ON rocket_menu.alias = 'rocket:config' +LEFT JOIN sys_role_menu existing + ON existing.role_id = source_role.role_id + AND existing.menu_id = rocket_menu.id +WHERE source_menu.alias = 'data:conf' + AND existing.id IS NULL; diff --git a/.deploy/test-deploy/sql/20260713_rocket_config_menu.sql b/.deploy/test-deploy/sql/20260713_rocket_config_menu.sql new file mode 100644 index 00000000..b9a6f730 --- /dev/null +++ b/.deploy/test-deploy/sql/20260713_rocket_config_menu.sql @@ -0,0 +1,113 @@ +-- Webconsole rocket configuration menu and API permissions. +-- Adds the page under 运营管理/数据配置 and grants it to existing data-config roles. + +SET NAMES utf8mb4; + +INSERT INTO sys_resource (id, resource_name, mapping, method, auth_type, perm, update_time) +VALUES + ( + 'rocket:config:list', + '查询火箭配置', + '/admin/rocket/config/list', + 'GET', + 3, + 'rocket:config:list', + NOW() + ), + ( + 'rocket:config:update', + '更新火箭配置', + '/admin/rocket/config/update', + 'POST', + 3, + 'rocket:config:update', + NOW() + ) +ON DUPLICATE KEY UPDATE + resource_name = VALUES(resource_name), + mapping = VALUES(mapping), + method = VALUES(method), + auth_type = VALUES(auth_type), + perm = VALUES(perm), + update_time = NOW(); + +INSERT INTO sys_menu ( + parent_id, + menu_name, + path, + router, + menu_type, + icon, + alias, + sort, + status, + create_user, + update_user, + create_time, + update_time +) +SELECT + parent.id, + '火箭配置', + 'rocket/config/index', + 'rocket/config', + 2, + 'gift', + 'rocket:config', + 850, + 0, + '0', + '0', + NOW(), + NOW() +FROM sys_menu parent +LEFT JOIN sys_menu existing ON existing.alias = 'rocket:config' +WHERE (parent.alias = 'data:conf' OR parent.menu_name = '数据配置') + AND parent.menu_type = 1 + AND existing.id IS NULL +LIMIT 1; + +-- 关键逻辑:重复执行时同步菜单字段,并始终归属当前的数据配置目录。 +UPDATE sys_menu rocket_menu +JOIN ( + SELECT id + FROM sys_menu + WHERE (alias = 'data:conf' OR menu_name = '数据配置') + AND menu_type = 1 + LIMIT 1 +) parent ON 1 = 1 +SET + rocket_menu.parent_id = parent.id, + rocket_menu.menu_name = '火箭配置', + rocket_menu.path = 'rocket/config/index', + rocket_menu.router = 'rocket/config', + rocket_menu.menu_type = 2, + rocket_menu.icon = 'gift', + rocket_menu.sort = 850, + rocket_menu.status = 0, + rocket_menu.update_user = '0', + rocket_menu.update_time = NOW() +WHERE rocket_menu.alias = 'rocket:config'; + +INSERT INTO sys_menu_resource (menu_id, resource_id) +SELECT menu.id, resource.id +FROM sys_menu menu +JOIN sys_resource resource + ON resource.id IN ('rocket:config:list', 'rocket:config:update') +LEFT JOIN sys_menu_resource existing + ON existing.menu_id = menu.id + AND existing.resource_id = resource.id +WHERE menu.alias = 'rocket:config' + AND existing.id IS NULL; + +-- 沿用数据配置目录的现有角色授权,避免将火箭配置开放给无关角色。 +INSERT INTO sys_role_menu (role_id, menu_id) +SELECT DISTINCT source_role.role_id, rocket_menu.id +FROM sys_role_menu source_role +JOIN sys_menu source_menu ON source_menu.id = source_role.menu_id +JOIN sys_menu rocket_menu ON rocket_menu.alias = 'rocket:config' +LEFT JOIN sys_role_menu existing + ON existing.role_id = source_role.role_id + AND existing.menu_id = rocket_menu.id +WHERE source_menu.alias = 'data:conf' + AND existing.id IS NULL;