TasksLogController.cs 3.5 KB

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