TrainRecordController.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using DocumentFormat.OpenXml.Office2010.ExcelAc;
  2. using Exam.Share.Dtos.Trains;
  3. using Exam.Share.ViewResponses.Train;
  4. using Hotline.Application.Exam.Constants.ApiRoutes;
  5. using Hotline.Share.Dtos.Trains;
  6. using Hotline.Share.Requests.Exam;
  7. using Hotline.Share.Requests.Train;
  8. using Hotline.Share.ViewResponses.Trains;
  9. using Microsoft.AspNetCore.Http;
  10. using Microsoft.AspNetCore.Mvc;
  11. using Train.Application.Interface.Train;
  12. namespace Hotline.Api.Controllers.Exam
  13. {
  14. public class TrainRecordController : BaseController
  15. {
  16. private readonly ITrainRecordService _trainRecordService;
  17. public TrainRecordController(ITrainRecordService trainRecordService)
  18. {
  19. this._trainRecordService = trainRecordService;
  20. }
  21. /// <summary>
  22. /// 获取培训记录
  23. /// </summary>
  24. /// <param name="trainRecordPagedRequest"></param>
  25. /// <returns></returns>
  26. [HttpPost(TrainRecordApiRoute.GetPagedList)]
  27. public async Task<TrainRecordPageViewResponse> GetPagedList([FromBody]TrainRecordPagedRequest trainRecordPagedRequest)
  28. {
  29. var trainRecordPageViewResponse = await _trainRecordService.GetPagedListAsync(trainRecordPagedRequest);
  30. return trainRecordPageViewResponse as TrainRecordPageViewResponse;
  31. }
  32. /// <summary>
  33. /// 初次培训
  34. /// </summary>
  35. /// <param name="addTrainDto"></param>
  36. /// <param name="cancellationToken"></param>
  37. /// <returns></returns>
  38. [HttpPost(TrainRecordApiRoute.Train)]
  39. public async Task<TrainPracticeDto> Train([FromBody] AddTrainDto addTrainDto, CancellationToken cancellationToken)
  40. {
  41. return await _trainRecordService.TrainAsync(addTrainDto, cancellationToken);
  42. }
  43. /// <summary>
  44. /// 获取培训习题
  45. /// </summary>
  46. /// <param name="trainPracticeRequest"></param>
  47. /// <returns></returns>
  48. [HttpGet(TrainRecordApiRoute.GetTrainPractice)]
  49. public async Task<TrainPracticeDto> GetTrainPractice([FromQuery]TrainPracticeRequest trainPracticeRequest)
  50. {
  51. return await _trainRecordService.GetTrainPracticeAsync(trainPracticeRequest);
  52. }
  53. /// <summary>
  54. /// 完成培训课件学习
  55. /// </summary>
  56. /// <param name="completeTrainPracticeDto"></param>
  57. /// <returns></returns>
  58. [HttpPost(TrainRecordApiRoute.CompleteTrainKnowladge)]
  59. public async Task CompleteTrainKnowladge([FromBody] CompleteTrainKnowladgeDto completeTrainPracticeDto, CancellationToken cancellationToken)
  60. {
  61. await _trainRecordService.CompleteTrainKnowladgeAsync(completeTrainPracticeDto, cancellationToken);
  62. }
  63. /// <summary>
  64. /// 结束培训
  65. /// </summary>
  66. /// <param name="completeTrainRecordDto"></param>
  67. /// <returns></returns>
  68. [HttpPost(TrainRecordApiRoute.CompleteTrainRecord)]
  69. public async Task CompleteTrainRecord(CompleteTrainRecordDto completeTrainRecordDto, CancellationToken cancellationToken)
  70. {
  71. await _trainRecordService.CompleteTrainRecordAsync(completeTrainRecordDto, cancellationToken);
  72. }
  73. /// <summary>
  74. /// 培训结果统计
  75. /// </summary>
  76. /// <param name="trainResultReportPagedRequest"></param>
  77. /// <returns></returns>
  78. [HttpPost(TrainRecordApiRoute.AnalysisTrainResult)]
  79. public async Task<TrainResultPagedViewResponse> AnalysisTrainResult([FromBody]TrainResultReportPagedRequest trainResultReportPagedRequest)
  80. {
  81. return await _trainRecordService.AnalysisTrainResult(trainResultReportPagedRequest);
  82. }
  83. /// <summary>
  84. /// 计算培训结果比例
  85. /// </summary>
  86. /// <param name="trainResultReportPagedRequest"></param>
  87. /// <returns></returns>
  88. [HttpPost(TrainRecordApiRoute.CalcuteAnalysisRate)]
  89. public async Task<TrainResultRateViewResponse> CalcuteAnalysisRate([FromBody] TrainResultReportPagedRequest trainResultReportPagedRequest)
  90. {
  91. return await _trainRecordService.CalcuteAnalysisRate(trainResultReportPagedRequest);
  92. }
  93. }
  94. }