ExamManageController.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. using Exam.Infrastructure.Data.Entity;
  2. using Exam.Share;
  3. using Exam.Share.ViewResponses.Exam;
  4. using Hotline.Application.Exam.Constants.ApiRoutes;
  5. using Hotline.Application.Exam.Interface.ExamManages;
  6. using Hotline.Repository.SqlSugar.Exam.Interface;
  7. using Hotline.Share.Requests.Exam;
  8. using Microsoft.AspNetCore.Authorization;
  9. using Microsoft.AspNetCore.Mvc;
  10. namespace Hotline.Api.Controllers.Exam
  11. {
  12. public class ExamManageController : BaseController
  13. {
  14. private readonly IExamManageService _examManageService;
  15. public ExamManageController(IExamManageService examManageService)
  16. {
  17. _examManageService = examManageService;
  18. }
  19. /// <summary>
  20. /// 新增考试
  21. /// </summary>
  22. /// <param name="questionDto"></param>
  23. /// <returns></returns>
  24. [HttpPost(ExamManageApiRoute.Add)]
  25. public async Task Add([FromBody] AddExamManageDto questionDto)
  26. {
  27. await _examManageService.AddAsync(questionDto, HttpContext.RequestAborted);
  28. }
  29. /// <summary>
  30. /// 修改考试
  31. /// </summary>
  32. /// <param name="questionDto"></param>
  33. /// <returns></returns>
  34. [HttpPut(ExamManageApiRoute.Update)]
  35. public async Task Update([FromBody] UpdateExamManageDto questionDto)
  36. {
  37. await _examManageService.UpdateAsync(questionDto, HttpContext.RequestAborted);
  38. }
  39. /// <summary>
  40. /// 删除考试
  41. /// </summary>
  42. /// <param name="entityQueryRequest"></param>
  43. /// <returns></returns>
  44. [HttpDelete(ExamManageApiRoute.Delete)]
  45. public async Task Delete([FromBody] EntityQueryRequest entityQueryRequest)
  46. {
  47. await _examManageService.DeleteAsync(entityQueryRequest, HttpContext.RequestAborted);
  48. }
  49. /// <summary>
  50. /// 获取考试分页列表
  51. /// </summary>
  52. /// <param name="questionPagedRequest"></param>
  53. /// <returns></returns>
  54. [HttpPost(ExamManageApiRoute.GetPagedList)]
  55. public async Task<ExamManagePageViewResponse> GetPagedList([FromBody] ExamManagePagedRequest questionPagedRequest)
  56. {
  57. await _examManageService.UpdateExamStatus(new EntityQueryRequest(), HttpContext.RequestAborted);
  58. var questionPageViewResponse = await _examManageService.GetPagedListAsync(questionPagedRequest);
  59. return questionPageViewResponse as ExamManagePageViewResponse;
  60. }
  61. /// <summary>
  62. /// 获取考试
  63. /// </summary>
  64. /// <param name="id"></param>
  65. /// <returns></returns>
  66. [HttpGet(ExamManageApiRoute.Get)]
  67. public async Task<ExamManageDto> Get(string id)
  68. {
  69. var questionDto = await _examManageService.GetAsync(new EntityQueryRequest
  70. {
  71. Id = id
  72. });
  73. return questionDto;
  74. }
  75. /// <summary>
  76. /// 组卷
  77. /// </summary>
  78. /// <param name="generateExamTestPaperRequest"></param>
  79. /// <returns></returns>
  80. [HttpPost(ExamManageApiRoute.GenerateTestPaper)]
  81. public async Task GenerateTestPaper([FromBody]GenerateExamTestPaperRequest generateExamTestPaperRequest)
  82. {
  83. await _examManageService.GenerateTestPaper(generateExamTestPaperRequest, HttpContext.RequestAborted);
  84. }
  85. /// <summary>
  86. /// 更新开启状态
  87. /// </summary>
  88. /// <param name="statusActionRequests"></param>
  89. /// <returns></returns>
  90. [HttpPost(ExamManageApiRoute.UpdateStatus)]
  91. public async Task UpdateStatus([FromBody] List<StatusActionRequest> statusActionRequests)
  92. {
  93. await _examManageService.UpdateStatus(statusActionRequests, HttpContext.RequestAborted);
  94. }
  95. /// <summary>
  96. /// 更新考试状态
  97. /// </summary>
  98. /// <param name="entityQueryRequest"></param>
  99. /// <returns></returns>
  100. [HttpPost(ExamManageApiRoute.UpdateExamStatus)]
  101. public async Task UpdateExamStatus([FromBody] EntityQueryRequest entityQueryRequest)
  102. {
  103. await _examManageService.UpdateExamStatus(entityQueryRequest, HttpContext.RequestAborted);
  104. }
  105. }
  106. }