SentenceController.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. package com.qxgmat.controller.admin;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.github.pagehelper.Page;
  4. import com.nuliji.tools.PageMessage;
  5. import com.nuliji.tools.Response;
  6. import com.nuliji.tools.ResponseHelp;
  7. import com.nuliji.tools.Transform;
  8. import com.nuliji.tools.exception.ParameterException;
  9. import com.qxgmat.data.constants.enums.SettingKey;
  10. import com.qxgmat.data.dao.entity.Question;
  11. import com.qxgmat.data.dao.entity.SentenceArticle;
  12. import com.qxgmat.data.dao.entity.SentenceQuestion;
  13. import com.qxgmat.data.dao.entity.Setting;
  14. import com.qxgmat.data.relation.entity.SentenceQuestionRelation;
  15. import com.qxgmat.dto.admin.request.ExerciseStructDto;
  16. import com.qxgmat.dto.admin.request.ManagerDto;
  17. import com.qxgmat.dto.admin.response.SentenceQuestionListDto;
  18. import com.qxgmat.service.SentencePaperService;
  19. import com.qxgmat.service.inline.*;
  20. import com.qxgmat.task.AsyncTask;
  21. import io.swagger.annotations.ApiOperation;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.validation.annotation.Validated;
  24. import org.springframework.web.bind.annotation.*;
  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpSession;
  27. import java.util.Collection;
  28. import java.util.List;
  29. @RestController("AdminSentenceController")
  30. @RequestMapping("/admin/sentence")
  31. public class SentenceController {
  32. @Autowired
  33. private ManagerLogService managerLogService;
  34. @Autowired
  35. private SentenceQuestionService sentenceQuestionService;
  36. @Autowired
  37. private SentencePaperService sentencePaperService;
  38. @Autowired
  39. private SentenceArticleService sentenceArticleService;
  40. @Autowired
  41. private QuestionService questionService;
  42. @Autowired
  43. private SettingService settingService;
  44. @Autowired
  45. private AsyncTask asyncTask;
  46. @RequestMapping(value = "/article/add", method = RequestMethod.POST)
  47. @ApiOperation(value = "添加长难句文章", httpMethod = "POST")
  48. public Response<SentenceArticle> addArticle(@RequestBody @Validated SentenceArticle dto, HttpServletRequest request) {
  49. SentenceArticle entity = Transform.convert(dto, SentenceArticle.class);
  50. entity = sentenceArticleService.add(entity);
  51. managerLogService.log(request);
  52. return ResponseHelp.success(Transform.convert(entity, SentenceArticle.class));
  53. }
  54. @RequestMapping(value = "/article/edit", method = RequestMethod.PUT)
  55. @ApiOperation(value = "编辑长难句文章", httpMethod = "PUT")
  56. public Response<Boolean> editArticle(@RequestBody @Validated SentenceArticle dto, HttpServletRequest request) {
  57. SentenceArticle entity = Transform.convert(dto, SentenceArticle.class);
  58. entity = sentenceArticleService.edit(entity);
  59. managerLogService.log(request);
  60. return ResponseHelp.success(true);
  61. }
  62. @RequestMapping(value = "/article/delete", method = RequestMethod.DELETE)
  63. @ApiOperation(value = "删除长难句文章", httpMethod = "DELETE")
  64. public Response<Boolean> deleteArticle(@RequestParam int id, HttpServletRequest request) {
  65. managerLogService.log(request);
  66. return ResponseHelp.success(sentenceArticleService.delete(id));
  67. }
  68. @RequestMapping(value = "/article/detail", method = RequestMethod.GET)
  69. @ApiOperation(value = "获取长难句文章", httpMethod = "GET")
  70. public Response<SentenceArticle> detailArticle(@RequestParam int id, HttpSession session) {
  71. SentenceArticle entity = sentenceArticleService.get(id);
  72. return ResponseHelp.success(Transform.convert(entity, SentenceArticle.class));
  73. }
  74. @RequestMapping(value = "/article/list", method = RequestMethod.GET)
  75. @ApiOperation(value = "长难句文章列表", httpMethod = "GET")
  76. public Response<PageMessage<SentenceArticle>> listArticle(
  77. @RequestParam(required = false, defaultValue = "1") int page,
  78. @RequestParam(required = false, defaultValue = "100") int size,
  79. @RequestParam(required = false) Number chapter,
  80. @RequestParam(required = false) Number part,
  81. HttpSession session) {
  82. Page<SentenceArticle> p = sentenceArticleService.select(page, size, chapter, part);
  83. List<SentenceArticle> pr = Transform.convert(p, SentenceArticle.class);
  84. return ResponseHelp.success(pr, page, size, p.getTotal());
  85. }
  86. @RequestMapping(value = "/question/add", method = RequestMethod.POST)
  87. @ApiOperation(value = "添加长难句题目", httpMethod = "POST")
  88. public Response<SentenceQuestion> addQuestion(@RequestBody @Validated SentenceQuestionRelation dto, HttpServletRequest request) {
  89. // SentenceQuestion entity = Transform.dtoToEntity(dto);
  90. SentenceQuestion entity = sentencePaperService.addQuestion(dto);
  91. managerLogService.log(request);
  92. return ResponseHelp.success(entity);
  93. }
  94. @RequestMapping(value = "/question/edit", method = RequestMethod.PUT)
  95. @ApiOperation(value = "修改长难句题目", httpMethod = "PUT")
  96. public Response<Boolean> editQuestion(@RequestBody @Validated SentenceQuestionRelation dto, HttpServletRequest request) {
  97. // SentenceQuestion entity = Transform.dtoToEntity(dto);
  98. SentenceQuestion entity = sentencePaperService.editQuestion(dto);
  99. managerLogService.log(request);
  100. return ResponseHelp.success(true);
  101. }
  102. // @RequestMapping(value = "/question/delete", method = RequestMethod.DELETE)
  103. // @ApiOperation(value = "删除长难句题目", httpMethod = "DELETE")
  104. // public Response<Boolean> deleteQuestion(@RequestParam int id, HttpServletRequest request) {
  105. // managerLogService.log(request);
  106. // return ResponseHelp.success(sentenceQuestionService.delete(id));
  107. // }
  108. @RequestMapping(value = "/question/detail", method = RequestMethod.GET)
  109. @ApiOperation(value = "获取长难句题目", httpMethod = "GET")
  110. public Response<SentenceQuestionRelation> detailQuestion(@RequestParam int id, HttpSession session) {
  111. SentenceQuestion entity = sentenceQuestionService.get(id);
  112. SentenceQuestionRelation relation = sentenceQuestionService.relation(entity);
  113. return ResponseHelp.success(relation);
  114. }
  115. @RequestMapping(value = "/question/list", method = RequestMethod.GET)
  116. @ApiOperation(value = "长难句题目列表", httpMethod = "GET")
  117. public Response<PageMessage<SentenceQuestionListDto>> listQuestion(
  118. @RequestParam(required = false, defaultValue = "1") int page,
  119. @RequestParam(required = false, defaultValue = "100") int size,
  120. HttpSession session) {
  121. Page<SentenceQuestion> p = sentenceQuestionService.select(page, size);
  122. List<SentenceQuestionListDto> pr = Transform.convert(p, SentenceQuestionListDto.class);
  123. return ResponseHelp.success(pr, page, size, p.getTotal());
  124. }
  125. @RequestMapping(value = "/paper/auto", method = RequestMethod.POST)
  126. @ApiOperation(value = "自动组卷", httpMethod = "POST")
  127. public Response<Boolean> autoPaper(@RequestBody @Validated ExerciseStructDto dto, HttpServletRequest request) {
  128. // 判断当前组卷状态
  129. Setting setting = settingService.getByKey(SettingKey.SENTENCE_PAPER_STATUS);
  130. JSONObject status = setting.getValue();
  131. if (status.getInteger("process")<100){
  132. throw new ParameterException("组卷进行中,请稍后再试");
  133. }
  134. asyncTask.autoSentencePaper();
  135. return ResponseHelp.success(true);
  136. }
  137. @RequestMapping(value = "/paper/auto", method = RequestMethod.GET)
  138. @ApiOperation(value = "自动组卷状态", httpMethod = "GET")
  139. public Response<JSONObject> autoPaperStatus(HttpServletRequest request) {
  140. // 判断当前组卷状态
  141. Setting setting = settingService.getByKey(SettingKey.SENTENCE_PAPER_STATUS);
  142. JSONObject status = setting.getValue();
  143. return ResponseHelp.success(status);
  144. }
  145. }