job_log.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # -*- coding: utf-8 -*-
  2. # @Author : YY
  3. from typing import List
  4. from pydantic import BeforeValidator
  5. from typing_extensions import Annotated
  6. from ruoyi_apscheduler.domain.entity import SysJobLog
  7. from ruoyi_apscheduler.service.job_log import SysJobLogService
  8. from ruoyi_common.base.model import AjaxResponse, TableResponse
  9. from ruoyi_common.base.transformer import ids_to_list
  10. from ruoyi_common.descriptor.serializer import JsonSerializer
  11. from ruoyi_common.descriptor.validator import QueryValidator
  12. from ruoyi_framework.descriptor.permission import HasPerm, PreAuthorize
  13. from .. import reg
  14. @reg.api.route("/monitor/jobLog/list", methods=["GET"])
  15. @QueryValidator(is_page=True)
  16. @PreAuthorize(HasPerm('monitor:job:list'))
  17. @JsonSerializer()
  18. def common_joblog_list(dto: SysJobLog):
  19. """
  20. 获取定时任务日志列表
  21. Args:
  22. dto: 查询条件
  23. Returns:
  24. TableResponse: 响应数据
  25. """
  26. rows:List[SysJobLog] = SysJobLogService.select_job_log_list(dto)
  27. table_response = TableResponse(rows=rows)
  28. return table_response
  29. @reg.api.route("/monitor/jobLog/export", methods=["POST"])
  30. @PreAuthorize(HasPerm('monitor:job:export'))
  31. @JsonSerializer()
  32. def common_joblog_export():
  33. """
  34. 导出定时任务日志
  35. Returns:
  36. Response: 响应数据
  37. """
  38. return "Hello, World!"
  39. @reg.api.route("/monitor/jobLog/<int:id>", methods=["GET"])
  40. @PreAuthorize(HasPerm('monitor:job:query'))
  41. @JsonSerializer()
  42. def common_joblog_detail(id:int):
  43. """
  44. 获取定时任务日志详情
  45. Args:
  46. id: 日志ID
  47. Returns:
  48. AjaxResponse: 响应数据
  49. """
  50. joblog = SysJobLogService.select_job_log_by_id(id)
  51. ajax_response = AjaxResponse.from_success(data=joblog)
  52. return ajax_response
  53. @reg.api.route("/monitor/jobLog/<ids>", methods=["DELETE"])
  54. @PreAuthorize(HasPerm('monitor:job:remove'))
  55. @JsonSerializer()
  56. def common_joblog_remove(
  57. ids: Annotated[List[int],BeforeValidator(ids_to_list)]
  58. ) -> AjaxResponse:
  59. """
  60. 批量删除定时任务日志
  61. Args:
  62. ids(List[int]): 日志ID列表
  63. Returns:
  64. AjaxResponse: 响应数据
  65. """
  66. flag = SysJobLogService.delete_job_log_by_ids(ids)
  67. ajax_response = AjaxResponse.from_success() if flag > 0 else AjaxResponse.from_error()
  68. return ajax_response
  69. @reg.api.route("/monitor/jobLog/clean", methods=["DELETE"])
  70. @PreAuthorize(HasPerm('monitor:job:remove'))
  71. @JsonSerializer()
  72. def common_joblog_clean():
  73. """
  74. 清空定时任务日志
  75. Returns:
  76. AjaxResponse: 响应数据
  77. """
  78. SysJobLogService.clean_job_logs()
  79. return AjaxResponse.from_success()