| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- -- ==================================================
- -- 修复毕业生菜单结构 - 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;
|