TasksLogController.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using Microsoft.AspNetCore.Mvc;
  2. using SqlSugar;
  3. using ZR.Model;
  4. using ZR.Model.System;
  5. using ZR.Model.System.Dto;
  6. namespace ZR.Admin.WebApi.Controllers.System
  7. {
  8. /// <summary>
  9. /// 任务日志
  10. /// </summary>
  11. [Route("/monitor/jobLog")]
  12. [ApiExplorerSettings(GroupName = "sys")]
  13. public class TasksLogController : BaseController
  14. {
  15. private readonly ISysTasksLogService tasksLogService;
  16. public TasksLogController(ISysTasksLogService tasksLogService)
  17. {
  18. this.tasksLogService = tasksLogService;
  19. }
  20. /// <summary>
  21. /// 查询日志
  22. /// </summary>
  23. /// <param name="queryDto"></param>
  24. /// <param name="pager"></param>
  25. /// <returns></returns>
  26. [HttpGet("list")]
  27. public IActionResult GetList([FromQuery] PagerInfo pager, [FromQuery] TasksLogQueryDto queryDto)
  28. {
  29. queryDto.BeginTime = DateTimeHelper.GetBeginTime(queryDto.BeginTime, -7);
  30. queryDto.EndTime = DateTimeHelper.GetBeginTime(queryDto.EndTime, 7);
  31. var predicate = Expressionable.Create<SysTasksLog>().And(it => it.CreateTime >= queryDto.BeginTime && it.CreateTime <= queryDto.EndTime);
  32. predicate = predicate.AndIF(queryDto.JobName.IfNotEmpty(), m => m.JobName.Contains(queryDto.JobName));
  33. predicate = predicate.AndIF(queryDto.JobGroup.IfNotEmpty(), m => m.JobGroup == queryDto.JobGroup);
  34. predicate = predicate.AndIF(queryDto.Status.IfNotEmpty(), m => m.Status == queryDto.Status);
  35. predicate = predicate.AndIF(queryDto.JobId.IfNotEmpty(), m => m.JobId == queryDto.JobId);
  36. var response = tasksLogService.GetPages(predicate.ToExpression(), pager, m => m.CreateTime, OrderByType.Desc);
  37. return SUCCESS(response, TIME_FORMAT_FULL);
  38. }
  39. /// <summary>
  40. /// 删除定时任务调用日志
  41. /// </summary>
  42. /// <param name="jobIds"></param>
  43. /// <returns></returns>
  44. [HttpDelete("{jobIds}")]
  45. [ActionPermissionFilter(Permission = "PRIV_JOBLOG_DELETE")]
  46. [Log(Title = "删除任务日志", BusinessType = BusinessType.DELETE)]
  47. public IActionResult Delete(string jobIds)
  48. {
  49. long[] jobIdArr = Tools.SpitLongArrary(jobIds);
  50. int result = tasksLogService.Delete(jobIdArr);
  51. return ToResponse(result);
  52. }
  53. /// <summary>
  54. /// 清空日志
  55. /// </summary>
  56. /// <returns></returns>
  57. [HttpDelete("clean")]
  58. [ActionPermissionFilter(Permission = "PRIV_JOBLOG_REMOVE")]
  59. [Log(Title = "清空任务日志", BusinessType = BusinessType.CLEAN)]
  60. public IActionResult Clean()
  61. {
  62. tasksLogService.DeleteTable();
  63. return SUCCESS(1);
  64. }
  65. /// <summary>
  66. /// 定时任务日志导出
  67. /// </summary>
  68. /// <returns></returns>
  69. [Log(BusinessType = BusinessType.EXPORT, IsSaveResponseData = false, Title = "定时任务日志导出")]
  70. [HttpGet("export")]
  71. [ActionPermissionFilter(Permission = "PRIV_JOBLOG_EXPORT")]
  72. public IActionResult Export()
  73. {
  74. var list = tasksLogService.GetAll();
  75. string sFileName = ExportExcel(list, "jobLog", "定时任务日志");
  76. return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
  77. }
  78. }
  79. }