_write_utf8_sql.py 6.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- coding: utf-8 -*-
  2. from pathlib import Path
  3. BASE = Path(__file__).resolve().parent
  4. ADMIN_SYS_MENU_JOB = (
  5. "-- =====================================================\n"
  6. "-- adminUI 总后台 sys_menu:定时任务菜单(归属「系统配置」分组)\n"
  7. "-- 前提:已执行 admin_menu_init.sql(系统配置 menu_id=2600)\n"
  8. "-- 可重复执行;固定 menu_id 区间 2613-2620\n"
  9. "-- =====================================================\n\n"
  10. "-- 1. 定时任务(页面)\n"
  11. "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)\n"
  12. "SELECT 2613, '定时任务', m.menu_id, 13, 'job', 'monitor/job/index', 'C', 'job', '0', '0', 0, 0, 'monitor:job:list', 'admin', NOW(), 'Quartz 调度任务管理'\n"
  13. "FROM sys_menu m\n"
  14. "WHERE (m.menu_id = 2600 OR (m.menu_name = '系统配置' AND m.parent_id = 2000))\n"
  15. " AND NOT EXISTS (SELECT 1 FROM sys_menu x WHERE x.menu_id = 2613);\n\n"
  16. "-- 2. 调度日志(页面)\n"
  17. "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)\n"
  18. "SELECT 2614, '调度日志', m.menu_id, 14, 'jobLog', 'monitor/job/log', 'C', 'log', '0', '0', 0, 0, 'monitor:job:list', 'admin', NOW(), 'Quartz 调度日志'\n"
  19. "FROM sys_menu m\n"
  20. "WHERE (m.menu_id = 2600 OR (m.menu_name = '系统配置' AND m.parent_id = 2000))\n"
  21. " AND NOT EXISTS (SELECT 1 FROM sys_menu x WHERE x.menu_id = 2614);\n\n"
  22. "-- 3. 按钮权限(挂在定时任务页面下)\n"
  23. "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)\n"
  24. "SELECT 2615, '任务查询', 2613, 1, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:query', 'admin', NOW()\n"
  25. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2615);\n\n"
  26. "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)\n"
  27. "SELECT 2616, '任务新增', 2613, 2, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:add', 'admin', NOW()\n"
  28. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2616);\n\n"
  29. "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)\n"
  30. "SELECT 2617, '任务修改', 2613, 3, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:edit', 'admin', NOW()\n"
  31. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2617);\n\n"
  32. "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)\n"
  33. "SELECT 2618, '任务删除', 2613, 4, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:remove', 'admin', NOW()\n"
  34. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2618);\n\n"
  35. "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)\n"
  36. "SELECT 2619, '状态修改', 2613, 5, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:changeStatus', 'admin', NOW()\n"
  37. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2619);\n\n"
  38. "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)\n"
  39. "SELECT 2620, '任务导出', 2613, 6, '#', '', 'F', '0', '0', 0, 0, 'monitor:job:export', 'admin', NOW()\n"
  40. "FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM sys_menu WHERE menu_id = 2620);\n\n"
  41. "-- 4. 为超级管理员角色(role_id=1)授权;若角色 ID 不同请自行调整\n"
  42. "INSERT INTO sys_role_menu (role_id, menu_id)\n"
  43. "SELECT 1, m.menu_id\n"
  44. "FROM sys_menu m\n"
  45. "WHERE m.menu_id BETWEEN 2613 AND 2620\n"
  46. " AND NOT EXISTS (\n"
  47. " SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 1 AND rm.menu_id = m.menu_id\n"
  48. " );\n"
  49. )
  50. FS_TASK_SYS_JOB_SEED = (
  51. "-- fs-task 迁移后 sys_job 示例数据(status=0 启用,status=1 暂停)\n"
  52. "-- invoke_target 须与 fs-task / fs-service 中 Spring Bean 方法一致\n\n"
  53. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  54. "SELECT '租户模块使用统计', 'DEFAULT', 'lobsterBridgeDataSyncService.executeModuleUsageStatistics()', '0 0 2 * * ?', '3', '1', '1', 'admin', NOW(), '原 LobsterBridge @Scheduled,每日凌晨2点'\n"
  55. "WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = 'lobsterBridgeDataSyncService.executeModuleUsageStatistics()');\n\n"
  56. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  57. "SELECT '龙虾桥接数据同步', 'DEFAULT', 'lobsterBridgeDataSyncService.syncLobsterBridgeData()', '0 0/10 * * * ?', '3', '1', '1', 'admin', NOW(), '原 fixedDelay 10分钟,用 cron 近似'\n"
  58. "WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = 'lobsterBridgeDataSyncService.syncLobsterBridgeData()');\n\n"
  59. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  60. "SELECT '平台统计-每小时', 'DEFAULT', 'platformStatisticsServiceImpl.executeHourlyStats()', '0 0 * * * ?', '3', '1', '1', 'admin', NOW(), '原 fs-service @Scheduled'\n"
  61. "WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = 'platformStatisticsServiceImpl.executeHourlyStats()');\n\n"
  62. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  63. "SELECT '平台统计-每日', 'DEFAULT', 'platformStatisticsServiceImpl.executeDailySummary()', '0 0 1 * * ?', '3', '1', '1', 'admin', NOW(), '原 fs-service @Scheduled'\n"
  64. "WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = 'platformStatisticsServiceImpl.executeDailySummary()');\n\n"
  65. "INSERT INTO sys_job (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)\n"
  66. "SELECT '聚水潭Token刷新', 'DEFAULT', 'jstTokenService.scheduleTokenRefresh()', '0 0 3 */28 * ?', '3', '1', '1', 'admin', NOW(), '原 fs-service @Scheduled'\n"
  67. "WHERE NOT EXISTS (SELECT 1 FROM sys_job WHERE invoke_target = 'jstTokenService.scheduleTokenRefresh()');\n"
  68. )
  69. def write(name, content):
  70. path = BASE / name
  71. path.write_text(content, encoding="utf-8")
  72. print("OK", path.name)
  73. if __name__ == "__main__":
  74. write("admin_sys_menu_job.sql", ADMIN_SYS_MENU_JOB)
  75. write("fs_task_sys_job_seed.sql", FS_TASK_SYS_JOB_SEED)