ExerciseController.java 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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.status.DirectionStatus;
  8. import com.qxgmat.data.dao.entity.ExercisePaper;
  9. import com.qxgmat.data.dao.entity.ExerciseStruct;
  10. import com.qxgmat.data.dao.entity.Question;
  11. import com.qxgmat.dto.admin.request.ExerciseStructDto;
  12. import com.qxgmat.dto.admin.response.ExercisePaperListDto;
  13. import com.qxgmat.dto.admin.response.ExerciseQuestionListDto;
  14. import com.qxgmat.service.ExercisePaperService;
  15. import com.qxgmat.service.inline.ExerciseStructService;
  16. import com.qxgmat.service.inline.ManagerLogService;
  17. import com.qxgmat.service.inline.QuestionService;
  18. import io.swagger.annotations.Api;
  19. import io.swagger.annotations.ApiOperation;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.http.MediaType;
  22. import org.springframework.validation.annotation.Validated;
  23. import org.springframework.web.bind.annotation.*;
  24. import javax.servlet.http.HttpServletRequest;
  25. import javax.servlet.http.HttpSession;
  26. import java.util.List;
  27. @RestController("AdminExerciseController")
  28. @RequestMapping("/admin/exercise")
  29. @Api(tags = "练习接口", description = "练习相关", produces = MediaType.APPLICATION_JSON_VALUE)
  30. public class ExerciseController {
  31. @Autowired
  32. private ManagerLogService managerLogService;
  33. @Autowired
  34. private ExerciseStructService exerciseStructService;
  35. @Autowired
  36. private ExercisePaperService exercisePaperService;
  37. @Autowired
  38. private QuestionService questionService;
  39. @RequestMapping(value = "/struct/add", method = RequestMethod.POST)
  40. @ApiOperation(value = "添加练习层级", httpMethod = "POST")
  41. public Response<ExerciseStruct> add(@RequestBody @Validated ExerciseStructDto dto, HttpServletRequest request) {
  42. ExerciseStruct entity = Transform.dtoToEntity(dto);
  43. entity = exerciseStructService.add(entity);
  44. managerLogService.log(request);
  45. return ResponseHelp.success(entity);
  46. }
  47. @RequestMapping(value = "/struct/edit", method = RequestMethod.PUT)
  48. @ApiOperation(value = "编辑练习层级", httpMethod = "PUT")
  49. public Response<Boolean> edit(@RequestBody @Validated ExerciseStructDto dto, HttpServletRequest request) {
  50. ExerciseStruct entity = Transform.dtoToEntity(dto);
  51. entity = exerciseStructService.edit(entity);
  52. managerLogService.log(request);
  53. return ResponseHelp.success(true);
  54. }
  55. @RequestMapping(value = "/struct/delete", method = RequestMethod.DELETE)
  56. @ApiOperation(value = "删除练习层级", httpMethod = "DELETE")
  57. public Response<Boolean> delete(@RequestParam int id, HttpServletRequest request) {
  58. managerLogService.log(request);
  59. return ResponseHelp.success(exerciseStructService.delete(id));
  60. }
  61. @RequestMapping(value = "/struct/all", method = RequestMethod.GET)
  62. @ApiOperation(value = "所有练习层级", httpMethod = "GET")
  63. public Response<List<ExerciseStruct>> all(HttpSession session) {
  64. List<ExerciseStruct> p = exerciseStructService.all();
  65. return ResponseHelp.success(p);
  66. }
  67. @RequestMapping(value = "/paper/list", method = RequestMethod.GET)
  68. @ApiOperation(value = "练习册列表", httpMethod = "GET")
  69. public Response<PageMessage<ExercisePaperListDto>> listPaper(
  70. @RequestParam(required = false, defaultValue = "1") int page,
  71. @RequestParam(required = false, defaultValue = "100") int size,
  72. HttpSession session) {
  73. Page<ExercisePaper> p = exercisePaperService.select(page, size);
  74. List<ExercisePaperListDto> pr = Transform.convert(p, ExercisePaperListDto.class);
  75. return ResponseHelp.success(pr, page, size, p.getTotal());
  76. }
  77. @RequestMapping(value = "/question/list", method = RequestMethod.GET)
  78. @ApiOperation(value = "练习册试题列表", httpMethod = "GET")
  79. public Response<PageMessage<ExerciseQuestionListDto>> listQuestion(
  80. @RequestParam(required = false, defaultValue = "1") int page,
  81. @RequestParam(required = false, defaultValue = "100") int size,
  82. @RequestParam(required = false, name = "struct_id") Integer structId,
  83. @RequestParam(required = false, name = "question_no_id") Integer questionNoId,
  84. @RequestParam(required = false, name="paper_id") Integer paperId,
  85. @RequestParam(required = false, name="place") String place,
  86. @RequestParam(required = false, name="difficult") String difficult,
  87. @RequestParam(required = false, name="start_time") String startTime,
  88. @RequestParam(required = false, name="end_time") String endTime,
  89. @RequestParam(required = false, defaultValue = "id") String order,
  90. @RequestParam(required = false, defaultValue = "desc") String direction,
  91. HttpSession session) {
  92. Page<Question> p = questionService.listExerciseAdmin(page, size, structId, questionNoId, paperId, place, difficult, startTime, endTime, order, DirectionStatus.ValueOf(direction));
  93. List<ExerciseQuestionListDto> pr = Transform.convert(p, ExerciseQuestionListDto.class);
  94. // 绑定练习册
  95. // Collection previewIds = Transform.getIds(p, Question.class, "moduleId");
  96. // List<HomeworkPreview> homeworkPreviewList = homeworkPreviewService.select(previewIds);
  97. // Transform.combine(pr, homeworkPreviewList, UserHomeworkPreviewListDto.class, "moduleId", "preview", HomeworkPreview.class, "id", HomeworkPreviewExtendDto.class);
  98. return ResponseHelp.success(pr, page, size, p.getTotal());
  99. }
  100. }