KmtExerciseController.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. package com.aijia.kmt.controller;
  2. import com.aijia.basic.utils.StringUtils;
  3. import com.aijia.core.security.exception.CommonException;
  4. import com.aijia.core.web.BaseController;
  5. import com.aijia.core.web.ResponseConstant;
  6. import com.aijia.core.web.ResponseEntity;
  7. import com.aijia.kmt.service.*;
  8. import com.aijia.kmt.vo.*;
  9. import com.aijia.kmt.vo.rollbackai.AddExerciseQuestionRequest;
  10. import com.aijia.kmt.vo.rollbackai.ExerciseBooksEditRequest;
  11. import com.aijia.kmt.vo.rollbackai.ExerciseQuestionDealRequest;
  12. import com.aijia.kmt.vo.rollbackai.ExerciseQuestionsEditRequest;
  13. import com.alibaba.fastjson.JSON;
  14. import io.swagger.annotations.Api;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.apache.commons.collections4.CollectionUtils;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.HashMap;
  22. import java.util.List;
  23. import java.util.Map;
  24. /**
  25. *
  26. * kmt练习册
  27. * @author chchen
  28. * 2019-01-14
  29. */
  30. @RestController
  31. @RequestMapping("/api/train/kmt/exercise")
  32. @Api(value = "kmt练习册接口", tags = "kmt练习册接口")
  33. public class KmtExerciseController extends BaseController {
  34. private Logger logger = LoggerFactory.getLogger(this.getClass());
  35. @Autowired
  36. private TokenManager tokenManager;
  37. @Autowired
  38. private KmtQualityQuestionsService kmtQualityQuestionsService;
  39. @Autowired
  40. private KmtExerciseQuestionService kmtExerciseQuestionService;
  41. @Autowired
  42. private KmtExerciseMapperService kmtExerciseMapperService;
  43. @Autowired
  44. private KmtExerciseSubmitService kmtExerciseSubmitService;
  45. @Autowired
  46. private KmtExerciseQuestionDealService kmtExerciseQuestionDealService;
  47. @RequestMapping(value = "/getHandlingQuestions", method = RequestMethod.POST)
  48. @ApiOperation(value = "待加工/待审核题目", httpMethod = "POST", notes = "待加工/待审核题目")
  49. public ResponseEntity getHandlingQuestions(@RequestParam(name = "accessToken") String accessToken,
  50. @RequestBody ExerciseQuestionsRequest request) {
  51. ResponseEntity responseEntity = new ResponseEntity();
  52. try {
  53. String userId = tokenManager.getUserId(accessToken);
  54. responseEntity = kmtExerciseQuestionService.findExerciseQuestions(userId, request);
  55. } catch (Exception e) {
  56. logger.error("入参={}", request);
  57. logger.error("待加工/待审核题目", e);
  58. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  59. }
  60. return responseEntity;
  61. }
  62. @RequestMapping(value = "/V1/submit2Auditing", method = RequestMethod.POST)
  63. @ApiOperation(value = "提交审核/发布", httpMethod = "POST", notes = "提交审核/发布")
  64. public ResponseEntity submit2AuditingV1(@RequestParam(name = "accessToken") String accessToken,
  65. @RequestBody AuditingV1Request request) {
  66. long start = System.currentTimeMillis();
  67. ResponseEntity responseEntity = new ResponseEntity();
  68. try {
  69. String userId = tokenManager.getUserId(accessToken);
  70. responseEntity = kmtExerciseSubmitService.submit2Auditing(request, userId);
  71. } catch (CommonException e) {
  72. return responseEntity.failure(ResponseConstant.CODE_500, e.getMessage());
  73. } catch (Exception e){
  74. logger.error("入参={}", request);
  75. logger.error("异常", e);
  76. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  77. }
  78. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  79. return responseEntity;
  80. }
  81. @RequestMapping(value = "/findQuestionAttributeFilter", method = RequestMethod.POST)
  82. @ApiOperation(value = "查询题目类型筛选项", httpMethod = "POST", notes = "查询题目类型筛选项")
  83. public ResponseEntity findQuestionAttributeFilter(@RequestParam(name = "accessToken") String accessToken) {
  84. long start = System.currentTimeMillis();
  85. ResponseEntity responseEntity = new ResponseEntity();
  86. try {
  87. Map<String, Object> data = new HashMap<>();
  88. data.put("list", kmtExerciseQuestionService.findQuestionAttributeFilter());
  89. responseEntity.success(data, "成功");
  90. } catch (Exception e) {
  91. logger.error("练习册筛选条件异常", e);
  92. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  93. }
  94. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  95. return responseEntity;
  96. }
  97. @RequestMapping(value = "/findExerciseBooks", method = RequestMethod.POST)
  98. @ApiOperation(value = "查询练习册", httpMethod = "POST", notes = "查询练习册")
  99. public ResponseEntity findExerciseBooks(@RequestParam(name = "accessToken") String accessToken, @RequestBody ExerciseConditionRequest request) {
  100. long start = System.currentTimeMillis();
  101. ResponseEntity responseEntity = new ResponseEntity();
  102. try {
  103. Map<String, Object> data = new HashMap<>();
  104. data.put("list", kmtExerciseMapperService.findExerciseBooks(request, tokenManager.getUserId(accessToken)));
  105. responseEntity.success(data, "成功");
  106. } catch (Exception e) {
  107. logger.error("查询练习册", e);
  108. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  109. }
  110. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  111. return responseEntity;
  112. }
  113. @RequestMapping(value = "/findExerciseBookDetail", method = RequestMethod.POST)
  114. @ApiOperation(value = "查询题目单元课时", httpMethod = "POST", notes = "查询题目单元课时")
  115. public ResponseEntity findExerciseBookDetail(@RequestParam(name = "accessToken") String accessToken, @RequestBody ExerciseBookIdDealTypeRequest request) {
  116. long start = System.currentTimeMillis();
  117. ResponseEntity responseEntity = new ResponseEntity();
  118. try {
  119. Map<String, Object> data = new HashMap<>();
  120. String userId = tokenManager.getUserId(accessToken);
  121. //是管理员
  122. int type = 1;
  123. if(!userId.equals(request.getUserId())){
  124. type = 2;
  125. }
  126. data.put("units", kmtExerciseMapperService.findExerciseBookDetail(request, userId,type));
  127. responseEntity.success(data, "成功");
  128. } catch (Exception e) {
  129. logger.error("练习册筛选条件异常", e);
  130. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  131. }
  132. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  133. return responseEntity;
  134. }
  135. @RequestMapping(value = "/getKmtHandlingQuestions", method = RequestMethod.POST)
  136. @ApiOperation(value = "kmt题库查询待加工/待审核的题目", httpMethod = "POST", notes = "kmt题库查询待加工/待审核的题目")
  137. public ResponseEntity getKmtHandlingQuestions(@RequestParam(name = "accessToken") String accessToken, @RequestBody KmtHandlingQuestionRequest request) {
  138. ResponseEntity responseEntity = new ResponseEntity();
  139. try {
  140. responseEntity.success(kmtQualityQuestionsService.getKmtHandlingQuestions(request, tokenManager.getUserId(accessToken)), "成功");
  141. } catch (Exception e) {
  142. logger.error("练习册筛选条件异常", e);
  143. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  144. }
  145. return responseEntity;
  146. }
  147. @RequestMapping(value = "/submitKmtQuestions2Auditing", method = RequestMethod.POST)
  148. @ApiOperation(value = "kmt题目提交审核", httpMethod = "POST", notes = "kmt题目提交审核")
  149. public ResponseEntity submitKmtQuestions2Auditing(@RequestParam(name = "accessToken") String accessToken, @RequestBody AuditingRequest request) {
  150. ResponseEntity responseEntity = new ResponseEntity();
  151. try {
  152. logger.info(JSON.toJSONString(request));
  153. String userId = tokenManager.getUserId(accessToken);
  154. responseEntity = kmtQualityQuestionsService.submitKmtQuestions2Auditing(request, userId);
  155. } catch (Exception e) {
  156. logger.error("练习册筛选条件异常", e);
  157. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  158. }
  159. return responseEntity;
  160. }
  161. @RequestMapping(value = "/findQuestionListByParentId", method = RequestMethod.POST)
  162. @ApiOperation(value = "查询大小题目", httpMethod = "POST", notes = "删除题目")
  163. public ResponseEntity findQuestionListByParentId(@RequestParam(name = "accessToken") String accessToken, @RequestBody ParentIdListRequest request) {
  164. ResponseEntity responseEntity = new ResponseEntity();
  165. try {
  166. responseEntity = kmtQualityQuestionsService.findQuestionListByParentId(request.getParentIdList());
  167. } catch (Exception e) {
  168. logger.error("练习册筛选条件异常", e);
  169. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  170. }
  171. return responseEntity;
  172. }
  173. @RequestMapping(value = "/addOrEditExerciseQuestion", method = RequestMethod.POST)
  174. @ApiOperation(value = "新增、编辑题目", httpMethod = "POST", notes = "推荐题回调接口")
  175. public ResponseEntity addOrEditExerciseQuestion(@RequestParam(name = "accessToken") String accessToken,
  176. @RequestBody AddExerciseQuestionRequest request) {
  177. long start = System.currentTimeMillis();
  178. ResponseEntity responseEntity = new ResponseEntity();
  179. try {
  180. String userId = tokenManager.getUserId(accessToken);
  181. return kmtExerciseQuestionDealService.addOrEditExerciseQuestion(userId, request);
  182. } catch (Exception e) {
  183. logger.error("异常", e);
  184. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  185. }
  186. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  187. return responseEntity;
  188. }
  189. @RequestMapping(value = "/moveExerciseQuestion", method = RequestMethod.POST)
  190. @ApiOperation(value = "移动题目", httpMethod = "POST", notes = "推荐题回调接口")
  191. public ResponseEntity moveExerciseQuestion(@RequestParam(name = "accessToken") String accessToken,
  192. @RequestBody ExerciseQuestionDealRequest request) {
  193. long start = System.currentTimeMillis();
  194. ResponseEntity responseEntity = new ResponseEntity();
  195. try {
  196. String userId = tokenManager.getUserId(accessToken);
  197. return kmtExerciseQuestionDealService.moveExerciseQuestion(userId, request);
  198. } catch (Exception e) {
  199. logger.error("异常", e);
  200. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  201. }
  202. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  203. return responseEntity;
  204. }
  205. @RequestMapping(value = "/findEditExerciseBooks", method = RequestMethod.POST)
  206. @ApiOperation(value = "题目修改查询练习册", httpMethod = "POST", notes = "题目修改查询练习册")
  207. public ResponseEntity findEditExerciseBooks(@RequestParam(name = "accessToken") String accessToken,
  208. @RequestBody ExerciseBooksEditRequest request) {
  209. ResponseEntity responseEntity = new ResponseEntity();
  210. try {
  211. responseEntity = kmtExerciseQuestionDealService.findEditExerciseBooks(request);
  212. } catch (Exception e) {
  213. logger.error("异常", e);
  214. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  215. }
  216. return responseEntity;
  217. }
  218. @RequestMapping(value = "/findEditExerciseQuestions", method = RequestMethod.POST)
  219. @ApiOperation(value = "题目修改查询练习册", httpMethod = "POST", notes = "题目修改查询练习册")
  220. public ResponseEntity findEditExerciseQuestions(@RequestParam(name = "accessToken") String accessToken,
  221. @RequestBody ExerciseQuestionsEditRequest request) {
  222. ResponseEntity responseEntity = new ResponseEntity();
  223. try {
  224. responseEntity = kmtExerciseQuestionDealService.findEditExerciseQuestions(request);
  225. } catch (Exception e) {
  226. logger.error("异常", e);
  227. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  228. }
  229. return responseEntity;
  230. }
  231. @RequestMapping(value = "/removeQuestionNumMark", method = RequestMethod.POST)
  232. @ApiOperation(value = "抹除题目题号", httpMethod = "POST", notes = "抹除题目题号")
  233. public ResponseEntity removeQuestionNumMark(@RequestParam(name = "accessToken") String accessToken,
  234. @RequestBody QuestionNumMarkRemoveVo request) {
  235. long start = System.currentTimeMillis();
  236. ResponseEntity responseEntity = new ResponseEntity();
  237. try {
  238. String userId = tokenManager.getUserId(accessToken);
  239. responseEntity = kmtExerciseQuestionDealService.removeQuestionNumMark(userId, request);
  240. } catch (Exception e) {
  241. logger.error("异常", e);
  242. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  243. }
  244. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  245. return responseEntity;
  246. }
  247. @RequestMapping(value = "/publishQuestion", method = RequestMethod.POST)
  248. @ApiOperation(value = "发布题目", httpMethod = "POST", notes = "发布题目")
  249. public ResponseEntity publishQuestion(@RequestParam(name = "accessToken") String accessToken,
  250. @RequestBody QuestionPublishRequest request) {
  251. long start = System.currentTimeMillis();
  252. ResponseEntity responseEntity = new ResponseEntity();
  253. try {
  254. List<String> questionIdList = request.getQuestionIds();
  255. if (CollectionUtils.isEmpty(questionIdList)) {
  256. responseEntity.failure("请先选择题目");
  257. return responseEntity;
  258. }
  259. String userId = tokenManager.getUserId(accessToken);
  260. responseEntity = kmtExerciseSubmitService.publishQuestion(request, userId);
  261. } catch (CommonException e) {
  262. throw e;
  263. } catch (Exception e){
  264. logger.error("入参={}", request);
  265. logger.error("异常", e);
  266. responseEntity.failure(ResponseConstant.CODE_500, "暂未加载到数据,请稍后重试");
  267. }
  268. logger.info(accessToken + ":" + (System.currentTimeMillis() - start));
  269. return responseEntity;
  270. }
  271. }