yumi-admin/scripts/sql/sync_region_broadcast_menu.sql
2026-05-25 21:03:07 +08:00

76 lines
1.5 KiB
SQL

SET NAMES utf8mb4;
SET @operate_manager_id := (
SELECT id
FROM sys_menu
WHERE alias = 'OperateManager'
LIMIT 1
);
INSERT INTO sys_menu (
id,
parent_id,
menu_name,
path,
menu_type,
icon,
create_user,
update_user,
sort,
status,
router,
alias
)
SELECT
menu_id.next_id,
@operate_manager_id,
'区域飘屏',
'operate/region-broadcast',
2,
'lucide:radio-tower',
'0',
'0',
18,
0,
'region-broadcast',
'OperateRegionBroadcast'
FROM (
SELECT COALESCE(MAX(id), 1700000000) + 1 AS next_id
FROM sys_menu
) AS menu_id
WHERE @operate_manager_id IS NOT NULL
AND NOT EXISTS (
SELECT 1 FROM sys_menu WHERE alias = 'OperateRegionBroadcast'
);
UPDATE sys_menu
SET
parent_id = @operate_manager_id,
menu_name = '区域飘屏',
path = 'operate/region-broadcast',
menu_type = 2,
icon = 'lucide:radio-tower',
update_user = '0',
sort = 18,
status = 0,
router = 'region-broadcast'
WHERE alias = 'OperateRegionBroadcast'
AND @operate_manager_id IS NOT NULL;
INSERT INTO sys_role_menu (role_id, menu_id)
SELECT DISTINCT
role_menu.role_id,
target_menu.id
FROM sys_role_menu AS role_menu
JOIN sys_menu AS source_menu
ON source_menu.id = role_menu.menu_id
AND source_menu.alias = 'OperateManager'
JOIN sys_menu AS target_menu
ON target_menu.alias = 'OperateRegionBroadcast'
WHERE NOT EXISTS (
SELECT 1
FROM sys_role_menu AS existing_role_menu
WHERE existing_role_menu.role_id = role_menu.role_id
AND existing_role_menu.menu_id = target_menu.id
);