85 lines
2.7 KiB
SQL
85 lines
2.7 KiB
SQL
-- ==================================================
|
|
-- 修复毕业生菜单结构 - 404错误解决方案
|
|
-- 创建日期: 2025-01-26
|
|
-- 说明: 将错误的C类型嵌套改为正确的M类型目录+C类型页面结构
|
|
-- ==================================================
|
|
|
|
-- 1. 查看修复前的结构
|
|
SELECT '=== 修复前的菜单结构 ===' as info;
|
|
SELECT menu_id, parent_id, menu_name, path, component, menu_type, visible
|
|
FROM sys_menu
|
|
WHERE menu_id BETWEEN 8800 AND 8804
|
|
ORDER BY menu_id;
|
|
|
|
-- 2. 删除现有的错误权限关联
|
|
DELETE FROM sys_role_menu WHERE menu_id BETWEEN 8801 AND 8816;
|
|
|
|
-- 3. 重新创建毕业生管理目录菜单(M类型)
|
|
INSERT INTO sys_menu (
|
|
menu_id, menu_name, parent_id, order_num, path, component,
|
|
query_param, is_frame, is_cache, menu_type, visible, status,
|
|
perms, icon, create_by, create_time, update_by, update_time, remark
|
|
) VALUES (
|
|
8800, '毕业生管理', 8000, 3, 'graduate', NULL,
|
|
NULL, 1, 0, 'M', '0', '0',
|
|
NULL, 'education', 103, NOW(), 103, NOW(), '毕业生信息管理目录'
|
|
);
|
|
|
|
-- 4. 修改现有菜单的parent_id和path,改为正确的目录结构
|
|
UPDATE sys_menu SET
|
|
parent_id = 8800,
|
|
path = 'info',
|
|
order_num = 1
|
|
WHERE menu_id = 8801;
|
|
|
|
UPDATE sys_menu SET
|
|
parent_id = 8800,
|
|
path = 'info/add',
|
|
order_num = 2,
|
|
visible = '1'
|
|
WHERE menu_id = 8802;
|
|
|
|
UPDATE sys_menu SET
|
|
parent_id = 8800,
|
|
path = 'info/edit/:id(\\d+)',
|
|
order_num = 3,
|
|
visible = '1'
|
|
WHERE menu_id = 8803;
|
|
|
|
UPDATE sys_menu SET
|
|
parent_id = 8800,
|
|
path = 'statistics',
|
|
order_num = 4
|
|
WHERE menu_id = 8804;
|
|
|
|
-- 5. 重新分配权限给超级管理员
|
|
INSERT INTO sys_role_menu (role_id, menu_id) VALUES
|
|
(1, 8800), -- 毕业生管理目录菜单
|
|
(1, 8801), -- 毕业生信息子菜单
|
|
(1, 8802), -- 毕业生信息新增页面
|
|
(1, 8803), -- 毕业生信息编辑页面
|
|
(1, 8804), -- 毕业生统计分析页面
|
|
(1, 8810), -- 毕业生信息查询权限
|
|
(1, 8811), -- 毕业生信息新增权限
|
|
(1, 8812), -- 毕业生信息修改权限
|
|
(1, 8813), -- 毕业生信息删除权限
|
|
(1, 8814), -- 毕业生信息导出权限
|
|
(1, 8815), -- 毕业生信息审核权限
|
|
(1, 8816); -- 毕业生统计分析权限
|
|
|
|
-- 6. 验证修复后的结构
|
|
SELECT '=== 修复后的菜单结构 ===' as info;
|
|
SELECT menu_id, parent_id, menu_name, path, component, menu_type, visible
|
|
FROM sys_menu
|
|
WHERE menu_id BETWEEN 8800 AND 8804
|
|
ORDER BY menu_id;
|
|
|
|
-- 7. 验证权限分配结果
|
|
SELECT '=== 超级管理员权限分配验证 ===' as info;
|
|
SELECT rm.role_id, r.role_name, rm.menu_id, m.menu_name, m.path
|
|
FROM sys_role_menu rm
|
|
JOIN sys_role r ON rm.role_id = r.role_id
|
|
JOIN sys_menu m ON rm.menu_id = m.menu_id
|
|
WHERE rm.role_id = 1 AND rm.menu_id BETWEEN 8800 AND 8816
|
|
ORDER BY rm.menu_id;
|