TaskLogService.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Threading.Tasks;
  2. using ZhonTai.Admin.Core.Dto;
  3. using ZhonTai.Admin.Domain.Task.Dto;
  4. using ZhonTai.DynamicApi;
  5. using ZhonTai.DynamicApi.Attributes;
  6. using Microsoft.AspNetCore.Mvc;
  7. using ZhonTai.Admin.Core.Consts;
  8. using FreeScheduler;
  9. using ZhonTai.Admin.Repositories;
  10. namespace ZhonTai.Admin.Services.TaskScheduler;
  11. /// <summary>
  12. /// 任务日志服务
  13. /// </summary>
  14. [DynamicApi(Area = AdminConsts.AreaName)]
  15. public class TaskLogService : BaseService, ITaskLogService, IDynamicApi
  16. {
  17. private ITaskLogRepository _taskLogRepository => LazyGetRequiredService<ITaskLogRepository>();
  18. public TaskLogService()
  19. {
  20. }
  21. /// <summary>
  22. /// 查询分页
  23. /// </summary>
  24. /// <param name="input"></param>
  25. /// <returns></returns>
  26. [HttpPost]
  27. public async Task<PageOutput<TaskLog>> GetPageAsync(PageInput<TaskLogGetPageDto> input)
  28. {
  29. if (!(input.Filter != null && input.Filter.TaskId.NotNull()))
  30. {
  31. throw ResultOutput.Exception("请选择任务");
  32. }
  33. var list = await _taskLogRepository.Select
  34. .WhereDynamicFilter(input.DynamicFilter)
  35. .Where(a => a.TaskId == input.Filter.TaskId)
  36. .Count(out var total)
  37. .OrderBy(c => c.Round)
  38. .Page(input.CurrentPage, input.PageSize)
  39. .ToListAsync();
  40. var data = new PageOutput<TaskLog>()
  41. {
  42. List = list,
  43. Total = total
  44. };
  45. return data;
  46. }
  47. }