ExamManageController.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. var questionPageViewResponse = await _examManageService.GetPagedListAsync(questionPagedRequest);
  58. return questionPageViewResponse as ExamManagePageViewResponse;
  59. }
  60. /// <summary>
  61. /// 获取考试
  62. /// </summary>
  63. /// <param name="id"></param>
  64. /// <returns></returns>
  65. [HttpGet(ExamManageApiRoute.Get)]
  66. public async Task<ExamManageDto> Get(string id)
  67. {
  68. var questionDto = await _examManageService.GetAsync(new EntityQueryRequest
  69. {
  70. Id = id
  71. });
  72. return questionDto;
  73. }
  74. /// <summary>
  75. /// 组卷
  76. /// </summary>
  77. /// <param name="generateExamTestPaperRequest"></param>
  78. /// <returns></returns>
  79. [HttpPost(ExamManageApiRoute.GenerateTestPaper)]
  80. public async Task GenerateTestPaper([FromBody]GenerateExamTestPaperRequest generateExamTestPaperRequest)
  81. {
  82. await _examManageService.GenerateTestPaper(generateExamTestPaperRequest, HttpContext.RequestAborted);
  83. }
  84. /// <summary>
  85. /// 更新开启状态
  86. /// </summary>
  87. /// <param name="statusActionRequests"></param>
  88. /// <returns></returns>
  89. [HttpPost(ExamManageApiRoute.UpdateStatus)]
  90. public async Task UpdateStatus([FromBody] List<StatusActionRequest> statusActionRequests)
  91. {
  92. await _examManageService.UpdateStatus(statusActionRequests, HttpContext.RequestAborted);
  93. }
  94. }
  95. }