fix_graduate_menu_structure.sql 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. -- ==================================================
  2. -- 修复毕业生菜单结构 - 404错误解决方案
  3. -- 创建日期: 2025-01-26
  4. -- 说明: 将错误的C类型嵌套改为正确的M类型目录+C类型页面结构
  5. -- ==================================================
  6. -- 1. 查看修复前的结构
  7. SELECT '=== 修复前的菜单结构 ===' as info;
  8. SELECT menu_id, parent_id, menu_name, path, component, menu_type, visible
  9. FROM sys_menu
  10. WHERE menu_id BETWEEN 8800 AND 8804
  11. ORDER BY menu_id;
  12. -- 2. 删除现有的错误权限关联
  13. DELETE FROM sys_role_menu WHERE menu_id BETWEEN 8801 AND 8816;
  14. -- 3. 重新创建毕业生管理目录菜单(M类型)
  15. INSERT INTO sys_menu (
  16. menu_id, menu_name, parent_id, order_num, path, component,
  17. query_param, is_frame, is_cache, menu_type, visible, status,
  18. perms, icon, create_by, create_time, update_by, update_time, remark
  19. ) VALUES (
  20. 8800, '毕业生管理', 8000, 3, 'graduate', NULL,
  21. NULL, 1, 0, 'M', '0', '0',
  22. NULL, 'education', 103, NOW(), 103, NOW(), '毕业生信息管理目录'
  23. );
  24. -- 4. 修改现有菜单的parent_id和path,改为正确的目录结构
  25. UPDATE sys_menu SET
  26. parent_id = 8800,
  27. path = 'info',
  28. order_num = 1
  29. WHERE menu_id = 8801;
  30. UPDATE sys_menu SET
  31. parent_id = 8800,
  32. path = 'info/add',
  33. order_num = 2,
  34. visible = '1'
  35. WHERE menu_id = 8802;
  36. UPDATE sys_menu SET
  37. parent_id = 8800,
  38. path = 'info/edit/:id(\\d+)',
  39. order_num = 3,
  40. visible = '1'
  41. WHERE menu_id = 8803;
  42. UPDATE sys_menu SET
  43. parent_id = 8800,
  44. path = 'statistics',
  45. order_num = 4
  46. WHERE menu_id = 8804;
  47. -- 5. 重新分配权限给超级管理员
  48. INSERT INTO sys_role_menu (role_id, menu_id) VALUES
  49. (1, 8800), -- 毕业生管理目录菜单
  50. (1, 8801), -- 毕业生信息子菜单
  51. (1, 8802), -- 毕业生信息新增页面
  52. (1, 8803), -- 毕业生信息编辑页面
  53. (1, 8804), -- 毕业生统计分析页面
  54. (1, 8810), -- 毕业生信息查询权限
  55. (1, 8811), -- 毕业生信息新增权限
  56. (1, 8812), -- 毕业生信息修改权限
  57. (1, 8813), -- 毕业生信息删除权限
  58. (1, 8814), -- 毕业生信息导出权限
  59. (1, 8815), -- 毕业生信息审核权限
  60. (1, 8816); -- 毕业生统计分析权限
  61. -- 6. 验证修复后的结构
  62. SELECT '=== 修复后的菜单结构 ===' as info;
  63. SELECT menu_id, parent_id, menu_name, path, component, menu_type, visible
  64. FROM sys_menu
  65. WHERE menu_id BETWEEN 8800 AND 8804
  66. ORDER BY menu_id;
  67. -- 7. 验证权限分配结果
  68. SELECT '=== 超级管理员权限分配验证 ===' as info;
  69. SELECT rm.role_id, r.role_name, rm.menu_id, m.menu_name, m.path
  70. FROM sys_role_menu rm
  71. JOIN sys_role r ON rm.role_id = r.role_id
  72. JOIN sys_menu m ON rm.menu_id = m.menu_id
  73. WHERE rm.role_id = 1 AND rm.menu_id BETWEEN 8800 AND 8816
  74. ORDER BY rm.menu_id;