TaskLogService.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. [Order(71)]
  15. [DynamicApi(Area = AdminConsts.AreaName)]
  16. public class TaskLogService : BaseService, ITaskLogService, IDynamicApi
  17. {
  18. private ITaskLogRepository _taskLogRepository => LazyGetRequiredService<ITaskLogRepository>();
  19. public TaskLogService()
  20. {
  21. }
  22. /// <summary>
  23. /// 查询分页
  24. /// </summary>
  25. /// <param name="input"></param>
  26. /// <returns></returns>
  27. [HttpPost]
  28. public async Task<PageOutput<TaskLog>> GetPageAsync(PageInput<TaskLogGetPageDto> input)
  29. {
  30. if (!(input.Filter != null && input.Filter.TaskId.NotNull()))
  31. {
  32. throw ResultOutput.Exception("请选择任务");
  33. }
  34. var list = await _taskLogRepository.Select
  35. .WhereDynamicFilter(input.DynamicFilter)
  36. .Where(a => a.TaskId == input.Filter.TaskId)
  37. .Count(out var total)
  38. .OrderBy(c => c.Round)
  39. .Page(input.CurrentPage, input.PageSize)
  40. .ToListAsync();
  41. var data = new PageOutput<TaskLog>()
  42. {
  43. List = list,
  44. Total = total
  45. };
  46. return data;
  47. }
  48. }