55 lines
1.4 KiB
SQL
55 lines
1.4 KiB
SQL
-- 添加恒星系统管理菜单项
|
||
-- 将其放在天体数据管理之前(sort_order=0)
|
||
|
||
-- 首先调整天体数据管理的sort_order,从1改为2
|
||
UPDATE menus SET sort_order = 2 WHERE id = 3 AND name = 'celestial_bodies';
|
||
|
||
-- 添加恒星系统管理菜单(sort_order=1,在天体数据管理之前)
|
||
INSERT INTO menus (
|
||
parent_id,
|
||
name,
|
||
title,
|
||
icon,
|
||
path,
|
||
component,
|
||
sort_order,
|
||
is_active,
|
||
description
|
||
) VALUES (
|
||
2, -- parent_id: 数据管理
|
||
'star_systems',
|
||
'恒星系统管理',
|
||
'StarOutlined',
|
||
'/admin/star-systems',
|
||
'StarSystems',
|
||
1, -- sort_order: 在天体数据管理(2)之前
|
||
true,
|
||
'管理太阳系和系外恒星系统'
|
||
) ON CONFLICT DO NOTHING;
|
||
|
||
-- 获取新插入的菜单ID并为管理员角色授权
|
||
DO $$
|
||
DECLARE
|
||
menu_id INT;
|
||
admin_role_id INT;
|
||
BEGIN
|
||
-- 获取刚插入的菜单ID
|
||
SELECT id INTO menu_id FROM menus WHERE name = 'star_systems';
|
||
|
||
-- 获取管理员角色ID(通常是1)
|
||
SELECT id INTO admin_role_id FROM roles WHERE name = 'admin' LIMIT 1;
|
||
|
||
-- 为管理员角色授权
|
||
IF menu_id IS NOT NULL AND admin_role_id IS NOT NULL THEN
|
||
INSERT INTO role_menus (role_id, menu_id)
|
||
VALUES (admin_role_id, menu_id)
|
||
ON CONFLICT DO NOTHING;
|
||
END IF;
|
||
END $$;
|
||
|
||
-- 验证结果
|
||
SELECT id, name, title, path, parent_id, sort_order
|
||
FROM menus
|
||
WHERE parent_id = 2
|
||
ORDER BY sort_order, id;
|