admin_sys_menu_job.sql 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. -- =====================================================
  2. -- adminUI 总后台 sys_menu:定时任务菜单(归属「系统配置」分组)
  3. -- 可重复执行;固定 menu_id 区间 2613-2620
  4. -- 若首次执行失败过,先清理孤儿按钮再执行本脚本
  5. -- =====================================================
  6. -- 0. 诊断:查看当前库里「系统配置」在哪(可选执行)
  7. -- SELECT menu_id, parent_id, menu_name, menu_type, path, component
  8. -- FROM sys_menu
  9. -- WHERE menu_name LIKE '%系统配置%' OR menu_id IN (2000, 2600)
  10. -- ORDER BY menu_id;
  11. -- 1. 清理上次失败留下的孤儿数据(按钮先写入但页面未写入时)
  12. DELETE FROM sys_role_menu WHERE menu_id BETWEEN 2613 AND 2620;
  13. DELETE FROM sys_menu WHERE menu_id BETWEEN 2613 AND 2620;
  14. -- 2. 解析父菜单「系统配置」(多种环境兼容)
  15. SET @parent_id := (
  16. SELECT menu_id FROM sys_menu
  17. WHERE menu_id = 2600
  18. LIMIT 1
  19. );
  20. SET @parent_id := COALESCE(@parent_id, (
  21. SELECT menu_id FROM sys_menu
  22. WHERE menu_name = '系统配置' AND menu_type = 'M'
  23. ORDER BY menu_id
  24. LIMIT 1
  25. ));
  26. SET @parent_id := COALESCE(@parent_id, (
  27. SELECT menu_id FROM sys_menu
  28. WHERE menu_name = '系统配置'
  29. ORDER BY menu_id
  30. LIMIT 1
  31. ));
  32. -- 3. 若仍未找到,且已有「总后台」2000,则自动补建「系统配置」分组
  33. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, icon, visible, status, is_frame, is_cache, create_by, create_time, remark)
  34. SELECT 2600, '系统配置', 2000, 6, '', '', 'M', 'el-icon-s-tools', '0', '0', 0, 0, 'admin', NOW(), '顶部导航分组'
  35. FROM DUAL
  36. WHERE @parent_id IS NULL
  37. AND EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2000)
  38. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2600);
  39. SET @parent_id := COALESCE(@parent_id, (
  40. SELECT menu_id FROM sys_menu WHERE menu_id = 2600 LIMIT 1
  41. ));
  42. -- 4. 定时任务(页面)
  43. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, icon, visible, status, is_frame, is_cache, perms, create_by, create_time, remark)
  44. SELECT 2613, '定时任务', @parent_id, 13, 'job', 'monitor/job/index', 'C', 'job', '0', '0', 0, 0, 'monitor:job:list', 'admin', NOW(), 'Quartz 调度任务管理'
  45. FROM DUAL
  46. WHERE @parent_id IS NOT NULL
  47. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613);
  48. -- 5. 调度日志(页面)
  49. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, icon, visible, status, is_frame, is_cache, perms, create_by, create_time, remark)
  50. SELECT 2614, '调度日志', @parent_id, 14, 'jobLog', 'monitor/job/log', 'C', 'log', '0', '0', 0, 0, 'monitor:job:list', 'admin', NOW(), 'Quartz 调度日志'
  51. FROM DUAL
  52. WHERE @parent_id IS NOT NULL
  53. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2614);
  54. -- 6. 按钮权限(必须在 2613 存在后才写入)
  55. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  56. SELECT 2615, '任务查询', 2613, 1, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:query', 'admin', NOW()
  57. FROM DUAL
  58. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  59. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2615);
  60. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  61. SELECT 2616, '任务新增', 2613, 2, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:add', 'admin', NOW()
  62. FROM DUAL
  63. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  64. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2616);
  65. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  66. SELECT 2617, '任务修改', 2613, 3, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:edit', 'admin', NOW()
  67. FROM DUAL
  68. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  69. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2617);
  70. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  71. SELECT 2618, '任务删除', 2613, 4, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:remove', 'admin', NOW()
  72. FROM DUAL
  73. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  74. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2618);
  75. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  76. SELECT 2619, '状态修改', 2613, 5, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:changeStatus', 'admin', NOW()
  77. FROM DUAL
  78. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  79. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2619);
  80. INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, is_frame, is_cache, perms, create_by, create_time)
  81. SELECT 2620, '任务导出', 2613, 6, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:export', 'admin', NOW()
  82. FROM DUAL
  83. WHERE EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2613)
  84. AND NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2620);
  85. -- 7. 为超级管理员角色(role_id=1)授权
  86. INSERT INTO sys_role_menu (role_id, menu_id)
  87. SELECT 1, m.menu_id
  88. FROM sys_menu m
  89. WHERE m.menu_id BETWEEN 2613 AND 2620
  90. AND NOT EXISTS (
  91. SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id
  92. );
  93. -- 8. 执行结果检查(应看到 2613/定时任务 和 2614/调度日志)
  94. SELECT menu_id, parent_id, menu_name, component, perms
  95. FROM sys_menu
  96. WHERE menu_id BETWEEN 2613 AND 2620
  97. ORDER BY menu_id;