DownloadController.java 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package com.qmth.distributed.print.api;
  2. import com.qmth.boot.api.constant.ApiConstant;
  3. import com.qmth.distributed.print.business.bean.params.DownloadPaperFileParam;
  4. import com.qmth.distributed.print.business.service.DownloadService;
  5. import com.qmth.distributed.print.business.service.PrintCommonService;
  6. import com.qmth.distributed.print.business.templete.execute.AsyncDownloadPaperFileBatchService;
  7. import com.qmth.teachcloud.common.bean.result.TaskListResult;
  8. import com.qmth.teachcloud.common.contant.SystemConstant;
  9. import com.qmth.teachcloud.common.entity.TBTask;
  10. import com.qmth.teachcloud.common.enums.TaskTypeEnum;
  11. import com.qmth.teachcloud.common.util.ResultUtil;
  12. import io.swagger.annotations.*;
  13. import org.springframework.validation.BindingResult;
  14. import org.springframework.web.bind.annotation.*;
  15. import javax.annotation.Resource;
  16. import javax.servlet.http.HttpServletResponse;
  17. import javax.validation.Valid;
  18. import javax.validation.constraints.Max;
  19. import javax.validation.constraints.Min;
  20. import java.util.Map;
  21. import java.util.Objects;
  22. /**
  23. * 下载管理
  24. */
  25. @Api(tags = "系统管理-下载管理Controller")
  26. @RestController
  27. @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DATA + "/download")
  28. public class DownloadController {
  29. @Resource
  30. private DownloadService downloadService;
  31. @Resource
  32. private PrintCommonService printCommonService;
  33. @Resource
  34. private AsyncDownloadPaperFileBatchService asyncDownloadPaperFileBatchService;
  35. /**
  36. * 分页查询
  37. */
  38. @ApiOperation(value = "分页查询")
  39. @RequestMapping(value = "/page", method = RequestMethod.POST)
  40. @ApiResponses({@ApiResponse(code = 200, message = "分页查询", response = TaskListResult.class)})
  41. public Object page(@ApiParam(value = "考试ID", required = true) @RequestParam() Long examId,
  42. @ApiParam(value = "课程开课机构ID") @RequestParam(required = false) Long orgId,
  43. @ApiParam(value = "课程代码") @RequestParam(required = false) String courseCode,
  44. @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
  45. @ApiParam(value = "命题老师工号/姓名") @RequestParam(required = false) String userParam,
  46. @ApiParam(value = "分页页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
  47. @ApiParam(value = "分页数", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
  48. return ResultUtil.ok(downloadService.page(examId, courseCode, paperNumber, orgId, userParam, pageNumber, pageSize));
  49. }
  50. /**
  51. * 单个科目下载(只下载未曝光试卷)
  52. *
  53. * @param id 任务ID
  54. */
  55. @ApiOperation(value = "单课程下载")
  56. @RequestMapping(value = "/download_one", method = RequestMethod.POST)
  57. @ApiResponses({@ApiResponse(code = 200, message = "单课程下载", response = TaskListResult.class)})
  58. public void downloadOne(HttpServletResponse response, @ApiParam(value = "任务ID", required = false) @RequestParam(required = false) Long id) throws Exception {
  59. downloadService.paperDownload(response, id);
  60. }
  61. @ApiOperation(value = "批量下载")
  62. @RequestMapping(value = "/download_batch", method = RequestMethod.POST)
  63. @ApiResponses({@ApiResponse(code = 200, message = "批量下载", response = TaskListResult.class)})
  64. public Object downloadBatch(@Valid @RequestBody DownloadPaperFileParam downloadPaperFileParam, BindingResult bindingResult) throws Exception {
  65. if (bindingResult.hasErrors()) {
  66. return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
  67. }
  68. Map<String, Object> map = printCommonService.saveTask(TaskTypeEnum.DOWNLOAD_PAPER_FILE_BATCH);
  69. map.put("downloadPaperFileParam", downloadPaperFileParam);
  70. asyncDownloadPaperFileBatchService.exportTask(map);
  71. TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
  72. return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
  73. }
  74. }