|
@@ -1,5 +1,6 @@
|
|
|
package com.qxgmat.controller.api;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.github.pagehelper.Page;
|
|
|
import com.nuliji.tools.*;
|
|
@@ -9,9 +10,11 @@ import com.qxgmat.data.constants.enums.QuestionSubject;
|
|
|
import com.qxgmat.data.constants.enums.QuestionType;
|
|
|
import com.qxgmat.data.constants.enums.SettingKey;
|
|
|
import com.qxgmat.data.constants.enums.module.*;
|
|
|
+import com.qxgmat.data.constants.enums.status.AskStatus;
|
|
|
import com.qxgmat.data.constants.enums.status.DirectionStatus;
|
|
|
import com.qxgmat.data.constants.enums.user.DataType;
|
|
|
import com.qxgmat.data.dao.entity.*;
|
|
|
+import com.qxgmat.data.inline.PaperStat;
|
|
|
import com.qxgmat.data.inline.UserQuestionStat;
|
|
|
import com.qxgmat.data.relation.entity.*;
|
|
|
import com.qxgmat.dto.extend.*;
|
|
@@ -101,6 +104,9 @@ public class MyController {
|
|
|
private TextbookTopicService textbookTopicService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private TextbookLibraryService textbookLibraryService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private CourseDataService courseDataService;
|
|
|
|
|
|
@Autowired
|
|
@@ -603,16 +609,103 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/data", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "获取做题数据", notes = "获取做题数据", httpMethod = "GET")
|
|
|
- public Response<UserStudyDayDto> questionData(
|
|
|
+ public Response<Map<String, UserDataDto>> questionData(
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String subject,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
@RequestParam(required = false) String startTime,
|
|
|
@RequestParam(required = false) String endTime
|
|
|
) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
- UserStudyDayDto dto = new UserStudyDayDto();
|
|
|
|
|
|
- // todo
|
|
|
+ QuestionSubject questionSubject = QuestionSubject.ValueOf(subject);
|
|
|
+ StructModule structModule = StructModule.ValueOf(module);
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.listByStruct(structModule, structIds);
|
|
|
+ List<QuestionNoRelation> relationList = questionNoService.relation(questionNoList);
|
|
|
+ Map<Number, QuestionNoRelation> relationMap = new HashMap<>();
|
|
|
+ for(QuestionNoRelation relation : relationList){
|
|
|
+ relationMap.put(relation.getId(), relation);
|
|
|
+ }
|
|
|
+ List<String> questionTypes = QuestionType.FromSubject(questionSubject);
|
|
|
+ Map<String, UserDataDto> dtoMap = new HashMap<>();
|
|
|
+ for(String questionType : questionTypes){
|
|
|
+ UserDataDto dto = new UserDataDto();
|
|
|
+ JSONObject placeMap = new JSONObject();
|
|
|
+ JSONObject difficultMap = new JSONObject();
|
|
|
+
|
|
|
+ Integer correctTime = 0;
|
|
|
+ Integer incorrectTime = 0;
|
|
|
+
|
|
|
+ List<QuestionNo> list = relationList.stream().filter((row)->row.getQuestion().getQuestionType().equals(questionType)).collect(Collectors.toList());
|
|
|
+ PaperStat stat = questionNoService.statPaper(list);
|
|
|
+ dto.setTotalCorrect(stat.getTotalCorrect());
|
|
|
+ dto.setTotalNumber(stat.getTotalNumber());
|
|
|
+ dto.setTotalTime(stat.getTotalTime());
|
|
|
+
|
|
|
+ Collection questionNoIds = Transform.getIds(list, QuestionNo.class, "id");
|
|
|
+ List<UserQuestion> userQuestionList = userQuestionService.listByQuestionWithTime(user.getId(), QuestionModule.BASE, questionNoIds, startTime, endTime);
|
|
|
+ UserQuestionStat userQuestionStat = userQuestionService.statQuestion(userQuestionList);
|
|
|
+
|
|
|
+ dto.setUserCorrect(userQuestionStat.getUserCorrect());
|
|
|
+ dto.setUserNumber(userQuestionStat.getUserNumber());
|
|
|
+ dto.setUserTime(userQuestionStat.getUserTime());
|
|
|
+
|
|
|
+ for (UserQuestion userQuestion:userQuestionList){
|
|
|
+ QuestionNoRelation relation = relationMap.get(userQuestion.getQuestionNoId());
|
|
|
+
|
|
|
+ // 考点用时,以及正确度
|
|
|
+ String placeKey = relation.getQuestion().getPlace();
|
|
|
+ JSONObject place = placeMap.getJSONObject(placeKey);
|
|
|
+ if (place == null){
|
|
|
+ place = new JSONObject();
|
|
|
+ place.put("key", placeKey);
|
|
|
+ place.put("userNumber", 1);
|
|
|
+ place.put("userCorrect", userQuestion.getIsCorrect());
|
|
|
+ place.put("userTime", userQuestion.getUserTime());
|
|
|
+ placeMap.put(placeKey, place);
|
|
|
+ }else{
|
|
|
+ place.put("userNumber", place.getInteger("userNumber") + 1);
|
|
|
+ place.put("userCorrect", place.getInteger("userCorrect") + userQuestion.getIsCorrect());
|
|
|
+ place.put("userTime", place.getInteger("userTime") + userQuestion.getUserTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 难度正确度
|
|
|
+ String difficultKey = relation.getQuestion().getDifficult();
|
|
|
+ JSONObject difficult = difficultMap.getJSONObject(difficultKey);
|
|
|
+ if (difficult == null){
|
|
|
+ difficult = new JSONObject();
|
|
|
+ difficult.put("key", difficultKey);
|
|
|
+ difficult.put("userNumber", 1);
|
|
|
+ difficult.put("userCorrect", userQuestion.getIsCorrect());
|
|
|
+ difficult.put("totalNumber", relation.getTotalNumber());
|
|
|
+ difficult.put("totalCorrect", relation.getTotalCorrect());
|
|
|
+ difficultMap.put(difficultKey, difficult);
|
|
|
+ }else{
|
|
|
+ difficult.put("userNumber", difficult.getInteger("userNumber") + 1);
|
|
|
+ difficult.put("userCorrect", difficult.getInteger("userCorrect") + userQuestion.getIsCorrect());
|
|
|
+ difficult.put("totalNumber", difficult.getInteger("totalNumber") + relation.getTotalNumber());
|
|
|
+ difficult.put("totalCorrect", difficult.getInteger("totalCorrect") + relation.getTotalCorrect());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (userQuestion.getIsCorrect() > 0){
|
|
|
+ correctTime += userQuestion.getUserTime();
|
|
|
+ }else{
|
|
|
+ incorrectTime += userQuestion.getUserTime();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONArray difficult = new JSONArray();
|
|
|
+ JSONArray place = new JSONArray();
|
|
|
+ difficult.addAll(difficultMap.values());
|
|
|
+ place.addAll(placeMap.values());
|
|
|
+ dto.setDifficult(difficult);
|
|
|
+ dto.setPlace(place);
|
|
|
+
|
|
|
+ dto.setCorrectTime(correctTime);
|
|
|
+ dto.setIncorrectTime(incorrectTime);
|
|
|
+ dtoMap.put(questionType, dto);
|
|
|
+ }
|
|
|
|
|
|
- return ResponseHelp.success(dto);
|
|
|
+ return ResponseHelp.success(dtoMap);
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/collect/question/add", method = RequestMethod.PUT)
|
|
@@ -634,7 +727,7 @@ public class MyController {
|
|
|
entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
break;
|
|
|
case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
+ entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
entity.setQuestionNoId(textbookQuestion.getId());
|
|
@@ -657,10 +750,10 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/collect/question/bind", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "收藏组卷", notes = "收藏组卷", httpMethod = "POST")
|
|
|
- public Response<Boolean> bindQuestionCollect(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
+ public Response<UserPaper> bindQuestionCollect(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
|
|
|
- questionFlowService.makePaper(
|
|
|
+ UserPaper userPaper = questionFlowService.makePaper(
|
|
|
user.getId(),
|
|
|
QuestionModule.ValueOf(dto.getQuestionModule()),
|
|
|
PaperOrigin.COLLECT,
|
|
@@ -668,7 +761,7 @@ public class MyController {
|
|
|
dto.getFilterTimes()
|
|
|
);
|
|
|
|
|
|
- return ResponseHelp.success(true);
|
|
|
+ return ResponseHelp.success(userPaper);
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/collect/question/list", method = RequestMethod.GET)
|
|
@@ -676,17 +769,34 @@ public class MyController {
|
|
|
public Response<PageMessage<UserCollectQuestionDto>> listQuestionCollect(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
- @RequestParam(required = true) String questionModule,
|
|
|
- @RequestParam(required = false) String questionType,
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String[] questionTypes,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
@RequestParam(required = false) String startTime,
|
|
|
@RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) Boolean latest,
|
|
|
+ @RequestParam(required = false) String year,
|
|
|
@RequestParam(required = false, defaultValue = "id") String order,
|
|
|
@RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
- QuestionModule qm = QuestionModule.ValueOf(questionModule);
|
|
|
- PageResult<UserCollectQuestionRelation> p = userCollectQuestionService.listQuestion(page, size, user.getId(), qm, QuestionType.ValueOf(questionType), startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
-
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
+ Page<UserCollectQuestion> p = null;
|
|
|
+ if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
+ p = userCollectQuestionService.listExercise(page, size, user.getId(), questionTypes, structIds, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Integer libraryId = null;
|
|
|
+ if (latest != null){
|
|
|
+ if (latest) {
|
|
|
+ TextbookLibrary textbookLibrary = textbookLibraryService.getLatest();
|
|
|
+ libraryId = textbookLibrary.getId();
|
|
|
+ year = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p = userCollectQuestionService.listExamination(page, size, user.getId(), questionTypes, structIds, libraryId, year, order, startTime, endTime, DirectionStatus.ValueOf(direction));
|
|
|
+ }else{
|
|
|
+ throw new ParameterException("参数逻辑错误");
|
|
|
+ }
|
|
|
List<UserCollectQuestionDto> pr = Transform.convert(p, UserCollectQuestionDto.class);
|
|
|
|
|
|
// 获取题目信息
|
|
@@ -694,21 +804,20 @@ public class MyController {
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
Transform.combine(pr, questionList, UserCollectQuestionDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
|
|
|
- Collection questionNoIds = Transform.getIds(pr, UserCollectQuestionDto.class, "questionNoId");
|
|
|
- switch(qm){
|
|
|
- case BASE:
|
|
|
- List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
- Transform.combine(pr, questionNoList, UserCollectQuestionDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, sentenceQuestionList, UserCollectQuestionDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, textbookQuestionList, UserCollectQuestionDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- }
|
|
|
+ List<UserCollectQuestionDto> basePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.BASE.key)).collect(Collectors.toList());
|
|
|
+ Collection baseQuestionNoIds = Transform.getIds(basePr, UserCollectQuestionDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> baseQuestionNoList = questionNoService.select(baseQuestionNoIds);
|
|
|
+ Transform.combine(basePr, baseQuestionNoList, UserCollectQuestionDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserCollectQuestionDto> sentencePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.SENTENCE.key)).collect(Collectors.toList());
|
|
|
+ Collection sentenceQuestionNoIds = Transform.getIds(sentencePr, UserCollectQuestionDto.class, "questionNoId");
|
|
|
+ List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(sentenceQuestionNoIds);
|
|
|
+ Transform.combine(sentencePr, sentenceQuestionList, UserCollectQuestionDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserCollectQuestionDto> textbookPr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.TEXTBOOK.key)).collect(Collectors.toList());
|
|
|
+ Collection textbookQuestionNoIds = Transform.getIds(textbookPr, UserCollectQuestionDto.class, "questionNoId");
|
|
|
+ List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(textbookQuestionNoIds);
|
|
|
+ Transform.combine(textbookPr, textbookQuestionList, UserCollectQuestionDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
// 绑定题目统计
|
|
|
List<UserQuestion> userQuestionList = userQuestionService.listByQuestion(user.getId(), questionIds);
|
|
@@ -720,46 +829,68 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/error/list", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "获取错题列表", notes = "获取错题列表", httpMethod = "GET")
|
|
|
- public Response<PageMessage<UserQuestionErrorListDto>> listError(
|
|
|
+ public Response<PageMessage<UserQuestionErrorInfoDto>> listError(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
- @RequestParam(required = true) String questionModule
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String[] questionTypes,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
+ @RequestParam(required = false) String startTime,
|
|
|
+ @RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) Boolean latest,
|
|
|
+ @RequestParam(required = false) String year,
|
|
|
+ @RequestParam(required = false, defaultValue = "id") String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction
|
|
|
) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
- QuestionModule qm = QuestionModule.ValueOf(questionModule);
|
|
|
- PageResult<UserQuestion> p = userQuestionService.listError(page, size, user.getId());
|
|
|
- List<UserQuestionErrorListDto> pr = Transform.convert(p, UserQuestionErrorListDto.class);
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
+ Page<UserQuestion> p = null;
|
|
|
+ if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
+ p = userQuestionService.listExerciseError(page, size, user.getId(), questionTypes, structIds, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Integer libraryId = null;
|
|
|
+ if (latest != null){
|
|
|
+ if (latest) {
|
|
|
+ TextbookLibrary textbookLibrary = textbookLibraryService.getLatest();
|
|
|
+ libraryId = textbookLibrary.getId();
|
|
|
+ year = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p = userQuestionService.listExaminationError(page, size, user.getId(), questionTypes, structIds, libraryId, year, order, startTime, endTime, DirectionStatus.ValueOf(direction));
|
|
|
+ }else{
|
|
|
+ throw new ParameterException("参数逻辑错误");
|
|
|
+ }
|
|
|
+ List<UserQuestionErrorInfoDto> pr = Transform.convert(p, UserQuestionErrorInfoDto.class);
|
|
|
|
|
|
// 获取题目信息
|
|
|
- Collection questionIds = Transform.getIds(pr, UserQuestionErrorListDto.class, "questionId");
|
|
|
+ Collection questionIds = Transform.getIds(pr, UserQuestionErrorInfoDto.class, "questionId");
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
- Transform.combine(pr, questionList, UserQuestionErrorListDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
+ Transform.combine(pr, questionList, UserQuestionErrorInfoDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
|
|
|
- Collection questionNoIds = Transform.getIds(pr, UserQuestionErrorListDto.class, "questionNoId");
|
|
|
- switch(qm){
|
|
|
- case BASE:
|
|
|
- List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
- Transform.combine(pr, questionNoList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, sentenceQuestionList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, textbookQuestionList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- }
|
|
|
+ List<UserQuestionErrorInfoDto> basePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.BASE.key)).collect(Collectors.toList());
|
|
|
+ Collection baseQuestionNoIds = Transform.getIds(basePr, UserQuestionErrorInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> baseQuestionNoList = questionNoService.select(baseQuestionNoIds);
|
|
|
+ Transform.combine(basePr, baseQuestionNoList, UserQuestionErrorInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserQuestionErrorInfoDto> sentencePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.SENTENCE.key)).collect(Collectors.toList());
|
|
|
+ Collection sentenceQuestionNoIds = Transform.getIds(sentencePr, UserQuestionErrorInfoDto.class, "questionNoId");
|
|
|
+ List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(sentenceQuestionNoIds);
|
|
|
+ Transform.combine(sentencePr, sentenceQuestionList, UserQuestionErrorInfoDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserQuestionErrorInfoDto> textbookPr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.TEXTBOOK.key)).collect(Collectors.toList());
|
|
|
+ Collection textbookQuestionNoIds = Transform.getIds(textbookPr, UserQuestionErrorInfoDto.class, "questionNoId");
|
|
|
+ List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(textbookQuestionNoIds);
|
|
|
+ Transform.combine(textbookPr, textbookQuestionList, UserQuestionErrorInfoDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/error/bind", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "错题组卷", notes = "错题组卷", httpMethod = "POST")
|
|
|
- public Response<Boolean> bindError(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
+ public Response<UserPaper> bindError(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
|
|
|
- questionFlowService.makePaper(
|
|
|
+ UserPaper userPaper = questionFlowService.makePaper(
|
|
|
user.getId(),
|
|
|
QuestionModule.ValueOf(dto.getQuestionModule()),
|
|
|
PaperOrigin.ERROR,
|
|
@@ -767,7 +898,7 @@ public class MyController {
|
|
|
dto.getFilterTimes()
|
|
|
);
|
|
|
|
|
|
- return ResponseHelp.success(true);
|
|
|
+ return ResponseHelp.success(userPaper);
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/error/clear", method = RequestMethod.POST)
|
|
@@ -816,7 +947,7 @@ public class MyController {
|
|
|
entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
break;
|
|
|
case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
+ entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
entity.setQuestionNoId(textbookQuestion.getId());
|
|
@@ -830,41 +961,59 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/note/question/list", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "获取题目笔记列表", notes = "获取笔记列表", httpMethod = "GET")
|
|
|
- public Response<PageMessage<com.qxgmat.dto.response.UserNoteQuestionDto>> listNoteQuestion(
|
|
|
+ public Response<PageMessage<UserNoteQuestionInfoDto>> listNoteQuestion(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
- @RequestParam(required = true) String questionModule,
|
|
|
- @RequestParam(required = false) String questionType,
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String[] questionTypes,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
@RequestParam(required = false) String startTime,
|
|
|
@RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) Boolean latest,
|
|
|
+ @RequestParam(required = false) String year,
|
|
|
@RequestParam(required = false, defaultValue = "id") String order,
|
|
|
@RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
- QuestionModule qm = QuestionModule.ValueOf(questionModule);
|
|
|
- PageResult<UserNoteQuestionRelation> p = userNoteQuestionService.list(page, size, user.getId(), qm, QuestionType.ValueOf(questionType), startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
- List<com.qxgmat.dto.response.UserNoteQuestionDto> pr = Transform.convert(p, com.qxgmat.dto.response.UserNoteQuestionDto.class);
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
+ Page<UserNoteQuestion> p = null;
|
|
|
+ if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
+ p = userNoteQuestionService.listExercise(page, size, user.getId(), questionTypes, structIds, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Integer libraryId = null;
|
|
|
+ if (latest != null){
|
|
|
+ if (latest) {
|
|
|
+ TextbookLibrary textbookLibrary = textbookLibraryService.getLatest();
|
|
|
+ libraryId = textbookLibrary.getId();
|
|
|
+ year = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p = userNoteQuestionService.listExamination(page, size, user.getId(), questionTypes, structIds, libraryId, year, order, startTime, endTime, DirectionStatus.ValueOf(direction));
|
|
|
+ }else{
|
|
|
+ throw new ParameterException("参数逻辑错误");
|
|
|
+ }
|
|
|
+ List<UserNoteQuestionInfoDto> pr = Transform.convert(p, UserNoteQuestionInfoDto.class);
|
|
|
|
|
|
// 获取题目信息
|
|
|
- Collection questionIds = Transform.getIds(pr, com.qxgmat.dto.response.UserNoteQuestionDto.class, "questionId");
|
|
|
+ Collection questionIds = Transform.getIds(pr, UserNoteQuestionInfoDto.class, "questionId");
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
- Transform.combine(pr, questionList, com.qxgmat.dto.response.UserNoteQuestionDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
+ Transform.combine(pr, questionList, UserNoteQuestionInfoDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
+
|
|
|
+ List<UserNoteQuestionInfoDto> basePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.BASE.key)).collect(Collectors.toList());
|
|
|
+ Collection baseQuestionNoIds = Transform.getIds(basePr, UserNoteQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> baseQuestionNoList = questionNoService.select(baseQuestionNoIds);
|
|
|
+ Transform.combine(basePr, baseQuestionNoList, UserNoteQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserNoteQuestionInfoDto> sentencePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.SENTENCE.key)).collect(Collectors.toList());
|
|
|
+ Collection sentenceQuestionNoIds = Transform.getIds(sentencePr, UserNoteQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(sentenceQuestionNoIds);
|
|
|
+ Transform.combine(sentencePr, sentenceQuestionList, UserNoteQuestionInfoDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserNoteQuestionInfoDto> textbookPr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.TEXTBOOK.key)).collect(Collectors.toList());
|
|
|
+ Collection textbookQuestionNoIds = Transform.getIds(textbookPr, UserNoteQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(textbookQuestionNoIds);
|
|
|
+ Transform.combine(textbookPr, textbookQuestionList, UserNoteQuestionInfoDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
- Collection questionNoIds = Transform.getIds(pr, UserQuestionErrorListDto.class, "questionNoId");
|
|
|
- switch(qm){
|
|
|
- case BASE:
|
|
|
- List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
- Transform.combine(pr, questionNoList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, sentenceQuestionList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(questionNoIds);
|
|
|
- Transform.combine(pr, textbookQuestionList, UserQuestionErrorListDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
- break;
|
|
|
- }
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
@@ -884,16 +1033,40 @@ public class MyController {
|
|
|
public Response<PageMessage<UserPaperDto>> listReport(
|
|
|
@RequestParam(required = false, defaultValue = "1") int page,
|
|
|
@RequestParam(required = false, defaultValue = "100") int size,
|
|
|
- @RequestParam(required = true) String origin,
|
|
|
- @RequestParam(required = false) Integer structId,
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String origin,
|
|
|
+ @RequestParam(required = false) String[] questionTypes,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
@RequestParam(required = false) String startTime,
|
|
|
@RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) Boolean latest,
|
|
|
+ @RequestParam(required = false) String year,
|
|
|
+ @RequestParam(required = false) String courseModule,
|
|
|
@RequestParam(required = false, defaultValue = "id") String order,
|
|
|
@RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
HttpSession session) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
PaperOrigin paperOrigin = PaperOrigin.ValueOf(origin);
|
|
|
- PageResult<UserPaper> p = userPaperService.list(page, size, user.getId(), paperOrigin, structId, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
+ Page<UserPaper> p = null;
|
|
|
+ if (questionNoModule != null && (paperOrigin == PaperOrigin.COLLECT || paperOrigin == PaperOrigin.ERROR)){
|
|
|
+ p = userPaperService.list(page, size, user.getId(), paperOrigin, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
+ p = userPaperService.listExercise(page, size, user.getId(), questionTypes, structIds, courseModule, startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Integer libraryId = null;
|
|
|
+ if (latest != null){
|
|
|
+ paperOrigin = PaperOrigin.TEXTBOOK;
|
|
|
+ if (latest) {
|
|
|
+ TextbookLibrary textbookLibrary = textbookLibraryService.getLatest();
|
|
|
+ libraryId = textbookLibrary.getId();
|
|
|
+ year = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p = userPaperService.listExamination(page, size, user.getId(), questionTypes, structIds, libraryId, year, order, startTime, endTime, DirectionStatus.ValueOf(direction));
|
|
|
+ }else{
|
|
|
+ throw new ParameterException("参数逻辑错误");
|
|
|
+ }
|
|
|
List<UserPaperDto> pr = Transform.convert(p, UserPaperDto.class);
|
|
|
|
|
|
Collection paperIds = Transform.getIds(p, UserPaper.class, "id");
|
|
@@ -901,7 +1074,30 @@ public class MyController {
|
|
|
Map<Object, Collection<UserReport>> reportByPaper = userReportService.mapByPaper(paperIds);
|
|
|
Transform.combine(pr, reportByPaper, UserPaperDto.class, "id", "reports", UserReportExtendDto.class);
|
|
|
|
|
|
- // 错题 -> 题型
|
|
|
+ // 获取试卷统计信息
|
|
|
+ List<UserPaperDto> basePr = pr.stream().filter((row)->QuestionModule.BASE == QuestionModule.WithPaper(PaperModule.ValueOf(row.getPaperModule()))).collect(Collectors.toList());
|
|
|
+ Map<Integer, Integer[]> baseIdsMap = new HashMap<>();
|
|
|
+ for(UserPaperDto paper : basePr){
|
|
|
+ baseIdsMap.put(paper.getId(), paper.getQuestionNoIds());
|
|
|
+ }
|
|
|
+ Map baseStatMap = questionNoService.statPaperMap(baseIdsMap);
|
|
|
+ Transform.combine(pr, baseStatMap, UserPaperDto.class, "id", "stat");
|
|
|
+
|
|
|
+ List<UserPaperDto> sentencePr = pr.stream().filter((row)->QuestionModule.SENTENCE == QuestionModule.WithPaper(PaperModule.ValueOf(row.getPaperModule()))).collect(Collectors.toList());
|
|
|
+ Map<Integer, Integer[]> sentenceIdsMap = new HashMap<>();
|
|
|
+ for(UserPaperDto paper : sentencePr){
|
|
|
+ sentenceIdsMap.put(paper.getId(), paper.getQuestionNoIds());
|
|
|
+ }
|
|
|
+ Map sentenceStatMap = sentenceQuestionService.statPaperMap(sentenceIdsMap);
|
|
|
+ Transform.combine(pr, sentenceStatMap, UserPaperDto.class, "id", "stat");
|
|
|
+
|
|
|
+ List<UserPaperDto> textbookPr = pr.stream().filter((row)->QuestionModule.TEXTBOOK == QuestionModule.WithPaper(PaperModule.ValueOf(row.getPaperModule()))).collect(Collectors.toList());
|
|
|
+ Map<Integer, Integer[]> textbookIdsMap = new HashMap<>();
|
|
|
+ for(UserPaperDto paper : textbookPr){
|
|
|
+ textbookIdsMap.put(paper.getId(), paper.getQuestionNoIds());
|
|
|
+ }
|
|
|
+ Map textbookStatMap = textbookQuestionService.statPaperMap(textbookIdsMap);
|
|
|
+ Transform.combine(pr, textbookStatMap, UserPaperDto.class, "id", "stat");
|
|
|
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
@@ -912,8 +1108,10 @@ public class MyController {
|
|
|
UserAskQuestion entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
entity.setUserId(user.getId());
|
|
|
+ PaperModule paperModule = PaperModule.ValueOf(dto.getPaperModule());
|
|
|
+ QuestionModule questionModule = QuestionModule.WithPaper(paperModule);
|
|
|
Question question;
|
|
|
- switch (QuestionModule.ValueOf(dto.getQuestionModule())){
|
|
|
+ switch (questionModule){
|
|
|
case BASE:
|
|
|
entity.setQuestionModule(QuestionModule.BASE.key);
|
|
|
QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
@@ -931,7 +1129,7 @@ public class MyController {
|
|
|
question = questionService.get(sentenceQuestion.getQuestionId());
|
|
|
break;
|
|
|
case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
+ entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
entity.setQuestionNoId(textbookQuestion.getId());
|
|
@@ -942,12 +1140,15 @@ public class MyController {
|
|
|
throw new ParameterException("题目模块错误");
|
|
|
}
|
|
|
|
|
|
- UserQuestion userQuestion = userQuestionService.get(dto.getUserQuestionId());
|
|
|
- UserReport userReport = userReportService.get(userQuestion.getReportId());
|
|
|
- entity.setAskModule(AskModule.ValueOf(userReport.getPaperModule()).key);
|
|
|
-
|
|
|
- PaperOrigin origin = PaperOrigin.ValueOf(userReport.getPaperOrigin());
|
|
|
- Integer recordId = questionFlowService.questionRelationCourse(user.getId(), origin == PaperOrigin.PREVIEW ? userReport.getOriginId() : null, QuestionType.ValueOf(question.getQuestionType()));
|
|
|
+ entity.setAskModule(AskModule.WithPaper(paperModule).key);
|
|
|
+ Integer assignId = null;
|
|
|
+ if (dto.getUserPaperId() != null && dto.getUserPaperId() > 0){
|
|
|
+ UserPaper userPaper = userPaperService.get(dto.getUserPaperId());
|
|
|
+ if(userPaper != null && userPaper.getPaperOrigin().equals(PaperOrigin.PREVIEW.key)){
|
|
|
+ assignId = userPaper.getOriginId();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer recordId = questionFlowService.questionRelationCourse(user.getId(), assignId, QuestionType.ValueOf(question.getQuestionType()));
|
|
|
|
|
|
if (recordId != null){
|
|
|
// 绑定提问权限
|
|
@@ -962,6 +1163,84 @@ public class MyController {
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/ask/question/delete", method = RequestMethod.DELETE)
|
|
|
+ @ApiOperation(value = "提问删除", httpMethod = "DELETE")
|
|
|
+ public Response<Boolean> deleteAskQuestion(@RequestParam int id, HttpServletRequest request) {
|
|
|
+ UserAskQuestion in = userAskQuestionService.get(id);
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ if(in == null){
|
|
|
+ throw new ParameterException("提问不存在");
|
|
|
+ }
|
|
|
+ if (!in.getUserId().equals(user.getId())){
|
|
|
+ throw new ParameterException("提问不存在");
|
|
|
+ }
|
|
|
+ if (in.getAnswerStatus()== AskStatus.ANSWER.index){
|
|
|
+ throw new ParameterException("提问已回答");
|
|
|
+ }
|
|
|
+ userAskQuestionService.delete(id);
|
|
|
+ // 如果
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/ask/question/list", method = RequestMethod.GET)
|
|
|
+ @ApiOperation(value = "获取题目提问列表", notes = "获取题目提问列表", httpMethod = "GET")
|
|
|
+ public Response<PageMessage<UserAskQuestionInfoDto>> listAskQuestion(
|
|
|
+ @RequestParam(required = false, defaultValue = "1") int page,
|
|
|
+ @RequestParam(required = false, defaultValue = "100") int size,
|
|
|
+ @RequestParam(required = false) String module,
|
|
|
+ @RequestParam(required = false) String[] questionTypes,
|
|
|
+ @RequestParam(required = false) Integer[] structIds,
|
|
|
+ @RequestParam(required = false) String startTime,
|
|
|
+ @RequestParam(required = false) String endTime,
|
|
|
+ @RequestParam(required = false) Integer askStatus,
|
|
|
+ @RequestParam(required = false) Boolean latest,
|
|
|
+ @RequestParam(required = false) String year,
|
|
|
+ @RequestParam(required = false, defaultValue = "id") String order,
|
|
|
+ @RequestParam(required = false, defaultValue = "desc") String direction,
|
|
|
+ HttpSession session) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
+ Page<UserAskQuestion> p = null;
|
|
|
+ if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
+ p = userAskQuestionService.listExercise(page, size, user.getId(), questionTypes, structIds, AskStatus.ValueOf(askStatus),startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Integer libraryId = null;
|
|
|
+ if (latest != null){
|
|
|
+ if (latest) {
|
|
|
+ TextbookLibrary textbookLibrary = textbookLibraryService.getLatest();
|
|
|
+ libraryId = textbookLibrary.getId();
|
|
|
+ year = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ p = userAskQuestionService.listExamination(page, size, user.getId(), questionTypes, structIds, libraryId, year, AskStatus.ValueOf(askStatus), startTime, endTime, order, DirectionStatus.ValueOf(direction));
|
|
|
+ }else{
|
|
|
+ throw new ParameterException("参数逻辑错误");
|
|
|
+ }
|
|
|
+ List<UserAskQuestionInfoDto> pr = Transform.convert(p, UserAskQuestionInfoDto.class);
|
|
|
+
|
|
|
+ // 获取题目信息
|
|
|
+ Collection questionIds = Transform.getIds(pr, UserNoteQuestionInfoDto.class, "questionId");
|
|
|
+ List<Question> questionList = questionService.select(questionIds);
|
|
|
+ Transform.combine(pr, questionList, UserNoteQuestionInfoDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
+
|
|
|
+ List<UserAskQuestionInfoDto> basePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.BASE.key)).collect(Collectors.toList());
|
|
|
+ Collection baseQuestionNoIds = Transform.getIds(basePr, UserAskQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> baseQuestionNoList = questionNoService.select(baseQuestionNoIds);
|
|
|
+ Transform.combine(basePr, baseQuestionNoList, UserAskQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserAskQuestionInfoDto> sentencePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.SENTENCE.key)).collect(Collectors.toList());
|
|
|
+ Collection sentenceQuestionNoIds = Transform.getIds(sentencePr, UserAskQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(sentenceQuestionNoIds);
|
|
|
+ Transform.combine(sentencePr, sentenceQuestionList, UserAskQuestionInfoDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ List<UserAskQuestionInfoDto> textbookPr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.TEXTBOOK.key)).collect(Collectors.toList());
|
|
|
+ Collection textbookQuestionNoIds = Transform.getIds(textbookPr, UserAskQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(textbookQuestionNoIds);
|
|
|
+ Transform.combine(textbookPr, textbookQuestionList, UserAskQuestionInfoDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+
|
|
|
+ return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = "/ask/course", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "添加课程提问", notes = "添加课程提问", httpMethod = "POST")
|
|
|
public Response<Boolean> addAskCourse(@RequestBody @Validated UserAskCourseDto dto) {
|
|
@@ -985,19 +1264,43 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/feedback/error/question", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "添加题目勘误", notes = "添加勘误", httpMethod = "POST")
|
|
|
- public Response<Boolean> addFeedbackErrorQuestion(@RequestBody @Validated UserFeedbackErrorDto dto) {
|
|
|
+ public Response<Boolean> addFeedbackErrorQuestion(@RequestBody @Validated UserFeedbackErrorQuestionDto dto) {
|
|
|
UserFeedbackError entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
entity.setUserId(user.getId());
|
|
|
entity.setModule(FeedbackModule.QUESTION.key);
|
|
|
entity.setStatus(0);
|
|
|
|
|
|
- UserQuestion userQuestion = userQuestionService.get(dto.getUserQuestionId());
|
|
|
- Question question = questionService.get(userQuestion.getQuestionId());
|
|
|
+ Question question;
|
|
|
+ switch (QuestionModule.ValueOf(dto.getQuestionModule())){
|
|
|
+ case BASE:
|
|
|
+ entity.setQuestionModule(QuestionModule.BASE.key);
|
|
|
+ QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
+ entity.setModuleId(questionNo.getQuestionId());
|
|
|
+ entity.setQuestionNoId(questionNo.getId());
|
|
|
+
|
|
|
+ question = questionService.get(questionNo.getQuestionId());
|
|
|
+ break;
|
|
|
+ case SENTENCE:
|
|
|
+ entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
+ SentenceQuestion sentenceQuestion = sentenceQuestionService.get(dto.getQuestionNoId());
|
|
|
+ entity.setModuleId(sentenceQuestion.getQuestionId());
|
|
|
+ entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
+
|
|
|
+ question = questionService.get(sentenceQuestion.getQuestionId());
|
|
|
+ break;
|
|
|
+ case TEXTBOOK:
|
|
|
+ entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
+ TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
+ entity.setModuleId(textbookQuestion.getQuestionId());
|
|
|
+ entity.setQuestionNoId(textbookQuestion.getId());
|
|
|
+
|
|
|
+ question = questionService.get(textbookQuestion.getQuestionId());
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new ParameterException("题目模块错误");
|
|
|
+ }
|
|
|
entity.setQuestionType(question.getQuestionType());
|
|
|
- entity.setModuleId(userQuestion.getQuestionId());
|
|
|
- entity.setQuestionModule(userQuestion.getQuestionModule());
|
|
|
- entity.setQuestionNoId(userQuestion.getQuestionNoId());
|
|
|
userFeedbackErrorService.add(entity);
|
|
|
|
|
|
return ResponseHelp.success(true);
|
|
@@ -1005,11 +1308,12 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/feedback/error/data", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "添加资料勘误", notes = "添加勘误", httpMethod = "POST")
|
|
|
- public Response<Boolean> addFeedbackError(@RequestBody @Validated UserFeedbackErrorDto dto) {
|
|
|
+ public Response<Boolean> addFeedbackError(@RequestBody @Validated UserFeedbackErrorDataDto dto) {
|
|
|
UserFeedbackError entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
entity.setUserId(user.getId());
|
|
|
entity.setModule(FeedbackModule.DATA.key);
|
|
|
+ entity.setModuleId(dto.getDataId());
|
|
|
entity.setStatus(0);
|
|
|
userFeedbackErrorService.add(entity);
|
|
|
|