PreviewController.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. package com.qxgmat.controller.admin;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.PageMessage;
  4. import com.nuliji.tools.Response;
  5. import com.nuliji.tools.ResponseHelp;
  6. import com.nuliji.tools.Transform;
  7. import com.qxgmat.data.constants.enums.QuestionType;
  8. import com.qxgmat.data.constants.enums.module.PaperModule;
  9. import com.qxgmat.data.constants.enums.module.QuestionModule;
  10. import com.qxgmat.data.constants.enums.status.PreviewStatus;
  11. import com.qxgmat.data.dao.entity.PreviewPaper;
  12. import com.qxgmat.data.dao.entity.UserPaper;
  13. import com.qxgmat.dto.admin.request.PreviewDto;
  14. import com.qxgmat.dto.admin.response.PreviewDetailDto;
  15. import com.qxgmat.dto.admin.response.PreviewListDto;
  16. import com.qxgmat.service.extend.PreviewService;
  17. import com.qxgmat.service.extend.QuestionFlowService;
  18. import com.qxgmat.service.inline.ManagerLogService;
  19. import com.qxgmat.service.inline.PreviewPaperService;
  20. import com.qxgmat.service.inline.QuestionNoService;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiOperation;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.http.MediaType;
  25. import org.springframework.validation.annotation.Validated;
  26. import org.springframework.web.bind.annotation.*;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpSession;
  29. import java.util.List;
  30. @RestController("AdminPreviewController")
  31. @RequestMapping("/admin/preview")
  32. @Api(tags = "预习作业接口", description = "设置预习作业", produces = MediaType.APPLICATION_JSON_VALUE)
  33. public class PreviewController {
  34. @Autowired
  35. private ManagerLogService managerLogService;
  36. @Autowired
  37. private PreviewService previewService;
  38. @Autowired
  39. private PreviewPaperService previewPaperService;
  40. @Autowired
  41. private QuestionNoService questionNoService;
  42. @Autowired
  43. private QuestionFlowService questionFlowService;
  44. @RequestMapping(value = "/add", method = RequestMethod.POST)
  45. @ApiOperation(value = "添加预习作业", httpMethod = "POST")
  46. public Response<PreviewPaper> add(@RequestBody @Validated PreviewDto dto, HttpServletRequest request) {
  47. PreviewPaper entity = Transform.dtoToEntity(dto);
  48. // 获取考题模块
  49. QuestionModule module = QuestionModule.WithPaper(PaperModule.ValueOf(entity.getPaperModule()));
  50. UserPaper tmpPaper = UserPaper.builder()
  51. .questionNoIds(entity.getQuestionNoIds())
  52. .questionNumber(entity.getQuestionNoIds().length)
  53. .build();
  54. // 初始化paper:主要是计算做题时间
  55. questionFlowService.initPaper(tmpPaper, module);
  56. entity.setTime(tmpPaper.getTime());
  57. entity = previewService.edit(entity);
  58. managerLogService.log(request);
  59. return ResponseHelp.success(entity);
  60. }
  61. @RequestMapping(value = "/edit", method = RequestMethod.PUT)
  62. @ApiOperation(value = "编辑预习作业", httpMethod = "PUT")
  63. public Response<Boolean> edit(@RequestBody @Validated PreviewDto dto, HttpServletRequest request) {
  64. PreviewPaper entity = Transform.dtoToEntity(dto);
  65. // 获取考题模块
  66. QuestionModule module = QuestionModule.WithPaper(PaperModule.ValueOf(entity.getPaperModule()));
  67. UserPaper tmpPaper = UserPaper.builder()
  68. .questionNoIds(entity.getQuestionNoIds())
  69. .questionNumber(entity.getQuestionNoIds().length)
  70. .build();
  71. // 初始化paper:主要是计算做题时间
  72. questionFlowService.initPaper(tmpPaper, module);
  73. entity.setTime(tmpPaper.getTime());
  74. entity = previewService.edit(entity);
  75. managerLogService.log(request);
  76. return ResponseHelp.success(true);
  77. }
  78. @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
  79. @ApiOperation(value = "删除预习作业", httpMethod = "DELETE")
  80. public Response<Boolean> delete(@RequestParam int id, HttpServletRequest request) {
  81. managerLogService.log(request);
  82. return ResponseHelp.success(previewPaperService.delete(id));
  83. }
  84. @RequestMapping(value = "/detail", method = RequestMethod.GET)
  85. @ApiOperation(value = "获取预习作业", httpMethod = "GET")
  86. public Response<PreviewDetailDto> detail(@RequestParam int id, HttpSession session) {
  87. PreviewPaper entity = previewPaperService.get(id);
  88. PreviewDetailDto dto = Transform.convert(entity, PreviewDetailDto.class);
  89. // List<QuestionNoRelation> questionNos = questionNoService.listWithRelationByIds(entity.getQuestionNoIds());
  90. // List<QuestionNoExtendDto> questionNoExtendDtos = Transform.convert(questionNos, QuestionNoExtendDto.class);
  91. //
  92. // dto.setQuestionNos(questionNoExtendDtos);
  93. return ResponseHelp.success(dto);
  94. }
  95. @RequestMapping(value = "/list", method = RequestMethod.GET)
  96. @ApiOperation(value = "预习作业列表", httpMethod = "GET")
  97. public Response<PageMessage<PreviewListDto>> list(
  98. @RequestParam(required = false, defaultValue = "1") int page,
  99. @RequestParam(required = false, defaultValue = "100") int size,
  100. @RequestParam(required = false) Integer category,
  101. @RequestParam(required = false) Integer status,
  102. HttpSession session) {
  103. Page<PreviewPaper> p = previewPaperService.select(page, size, category, PreviewStatus.ValueOf(status));
  104. List<PreviewListDto> pr = Transform.convert(p, PreviewListDto.class);
  105. return ResponseHelp.success(pr, page, size, p.getTotal());
  106. }
  107. }