ExamStudentAppService.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using YBEE.EQM.Core;
  2. namespace YBEE.EQM.Application;
  3. /// <summary>
  4. /// 监测学生管理服务
  5. /// </summary>
  6. [ApiDescriptionSettings(Name = "exam-student")]
  7. [Route("exam/student")]
  8. public class ExamStudentAppService(IExamStudentService examStudentService) : IDynamicApiController
  9. {
  10. #region 批量导入
  11. /// <summary>
  12. /// 上传批量导入文件
  13. /// </summary>
  14. /// <param name="input"></param>
  15. /// <returns></returns>
  16. [RequestSizeLimit(long.MaxValue)]
  17. [RequestFormLimits(MultipartBodyLengthLimit = long.MaxValue)]
  18. public async Task<UploadExamDataOutput<UploadExamStudentOutput>> Upload([FromForm] UploadExamStudentInput input)
  19. {
  20. string fileExt = Path.GetExtension(input.File.FileName).ToLower();
  21. if (fileExt != ".xls" && fileExt != ".xlsx")
  22. {
  23. throw Oops.Oh(ErrorCode.E1010);
  24. }
  25. string filePath = Path.Combine(FileUtil.GetTempFileRoot(), $"{Guid.NewGuid()}{fileExt}");
  26. using FileStream fs = File.Create(filePath);
  27. await input.File.CopyToAsync(fs);
  28. await fs.FlushAsync();
  29. fs.Close();
  30. var ret = await examStudentService.Upload(filePath, input.ExamPlanId, input.ExamGradeId);
  31. return ret;
  32. }
  33. /// <summary>
  34. /// 批量导入监测学生
  35. /// </summary>
  36. /// <param name="input"></param>
  37. /// <returns></returns>
  38. public async Task Import(ImportExamStudentInput input)
  39. {
  40. await examStudentService.Import(input);
  41. }
  42. #endregion
  43. #region 创建更新删除
  44. /// <summary>
  45. /// 添加监测学生
  46. /// </summary>
  47. /// <param name="input"></param>
  48. /// <returns></returns>
  49. public async Task Add(AddExamStudentInput input)
  50. {
  51. await examStudentService.Add(input);
  52. }
  53. /// <summary>
  54. /// 更新监测学生
  55. /// </summary>
  56. /// <param name="input"></param>
  57. /// <returns></returns>
  58. public async Task Update(UpdateExamStudentInput input)
  59. {
  60. await examStudentService.Update(input);
  61. }
  62. /// <summary>
  63. /// 删除监测学生
  64. /// </summary>
  65. /// <param name="input"></param>
  66. /// <returns></returns>
  67. public async Task Del(BaseId<long> input)
  68. {
  69. await examStudentService.Del(input);
  70. }
  71. /// <summary>
  72. /// 清空监测学生
  73. /// </summary>
  74. /// <param name="input"></param>
  75. /// <returns></returns>
  76. public async Task Clear(ClearExamStudentInput input)
  77. {
  78. await examStudentService.Clear(input);
  79. }
  80. #endregion
  81. #region 查询
  82. /// <summary>
  83. /// 分页查询监测学生列表
  84. /// </summary>
  85. /// <param name="input"></param>
  86. /// <returns></returns>
  87. public async Task<PageResult<ExamStudentOutput>> QueryPageList(ExamStudentPageInput input)
  88. {
  89. return await examStudentService.QueryPageList(input);
  90. }
  91. /// <summary>
  92. /// 获取机构班级上报人数统计列表
  93. /// </summary>
  94. /// <param name="examPlanId"></param>
  95. /// <returns></returns>
  96. public async Task<ExamStudentGradeClassStudentCountOutput> GetOrgGradeClassStudentCount([FromQuery][Required] int examPlanId)
  97. {
  98. return await examStudentService.GetOrgGradeClassStudentCount(examPlanId);
  99. }
  100. /// <summary>
  101. /// 分页查询班级学生人数
  102. /// </summary>
  103. /// <param name="input"></param>
  104. /// <returns></returns>
  105. public async Task<PageResult<ExamStudentCountItem>> QueryStudentCountPageList(ExamStudentCountPageInput input)
  106. {
  107. return await examStudentService.QueryStudentCountPageList(input);
  108. }
  109. #endregion
  110. }