|
@@ -12,6 +12,7 @@ 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.constants.enums.user.ExportType;
|
|
|
import com.qxgmat.data.dao.entity.*;
|
|
|
import com.qxgmat.data.inline.PaperStat;
|
|
|
import com.qxgmat.data.inline.UserQuestionStat;
|
|
@@ -120,6 +121,9 @@ public class MyController {
|
|
|
private CourseTeacherService courseTeacherService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private ExaminationPaperService examinationPaperService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private FaqService faqService;
|
|
|
|
|
|
@Autowired
|
|
@@ -153,6 +157,9 @@ public class MyController {
|
|
|
private UserServiceService userServiceService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private UserExportService userExportService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private UserCollectQuestionService userCollectQuestionService;
|
|
|
|
|
|
@Autowired
|
|
@@ -837,26 +844,13 @@ public class MyController {
|
|
|
public Response<Boolean> addQuestionCollect(@RequestBody @Validated UserCollectQuestionDto dto) {
|
|
|
UserCollectQuestion entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
- switch (QuestionModule.ValueOf(dto.getQuestionModule())){
|
|
|
- case BASE:
|
|
|
- entity.setQuestionModule(QuestionModule.BASE.key);
|
|
|
- QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(questionNo.getQuestionId());
|
|
|
- entity.setQuestionNoId(questionNo.getId());
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
- SentenceQuestion sentenceQuestion = sentenceQuestionService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(sentenceQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
- TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(textbookQuestion.getId());
|
|
|
- break;
|
|
|
- }
|
|
|
+
|
|
|
+ QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(questionNo.getModule());
|
|
|
+ QuestionModule questionModule = QuestionModule.WithQuestionNo(questionNoModule);
|
|
|
+ entity.setQuestionModule(questionModule.key);
|
|
|
+ entity.setQuestionId(questionNo.getQuestionId());
|
|
|
+ entity.setQuestionNoId(questionNo.getId());
|
|
|
entity.setUserId(user.getId());
|
|
|
userCollectQuestionService.addQuestion(entity);
|
|
|
|
|
@@ -865,36 +859,35 @@ public class MyController {
|
|
|
|
|
|
@RequestMapping(value = "/collect/question/delete", method = RequestMethod.DELETE)
|
|
|
@ApiOperation(value = "移除题目收藏", notes = "移除题目收藏", httpMethod = "DELETE")
|
|
|
- public Response<Boolean> deleteQuestionCollect(String questionModule, Integer questionNoId) {
|
|
|
- User user = (User) shiroHelp.getLoginUser();
|
|
|
- Integer questionId = null;
|
|
|
- switch (QuestionModule.ValueOf(questionModule)){
|
|
|
- case BASE:
|
|
|
- QuestionNo questionNo = questionNoService.get(questionNoId);
|
|
|
- questionId = questionNo.getQuestionId();
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- SentenceQuestion sentenceQuestion = sentenceQuestionService.get(questionNoId);
|
|
|
- questionId = sentenceQuestion.getQuestionId();
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- TextbookQuestion textbookQuestion = textbookQuestionService.get(questionNoId);
|
|
|
- questionId = textbookQuestion.getQuestionId();
|
|
|
- break;
|
|
|
- }
|
|
|
+ public Response<Boolean> deleteQuestionCollect(Integer questionNoId) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ QuestionNo questionNo = questionNoService.get(questionNoId);
|
|
|
+ Integer questionId = questionNo.getQuestionId();
|
|
|
Boolean result = userCollectQuestionService.deleteQuestion(user.getId(), questionId);
|
|
|
|
|
|
return ResponseHelp.success(result);
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/collect/question/bind", method = RequestMethod.POST)
|
|
|
- @ApiOperation(value = "收藏题目组卷", notes = "收藏题目组卷", httpMethod = "POST")
|
|
|
- public Response<UserPaper> bindQuestionCollect(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
+ @RequestMapping(value = "/collect/question/clear", method = RequestMethod.DELETE)
|
|
|
+ @ApiOperation(value = "移除题目收藏", notes = "移除题目收藏", httpMethod = "DELETE")
|
|
|
+ public Response<Boolean> deleteQuestionCollect(@RequestBody @Validated UserQuestionIdsDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(dto.getQuestionNoIds());
|
|
|
+ for(QuestionNo questionNo : questionNoList){
|
|
|
+ userCollectQuestionService.deleteQuestion(user.getId(), questionNo.getQuestionId());
|
|
|
+ }
|
|
|
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/collect/question/group", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "收藏题目组卷", notes = "收藏题目组卷", httpMethod = "POST")
|
|
|
+ public Response<UserPaper> bindQuestionCollect(@RequestBody @Validated UserCustomGroupDto dto) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ QuestionModule questionModule = questionFlowService.validGroup(dto.getQuestionNoIds());
|
|
|
UserPaper userPaper = questionFlowService.makePaper(
|
|
|
user.getId(),
|
|
|
- QuestionModule.ValueOf(dto.getQuestionModule()),
|
|
|
+ questionModule,
|
|
|
PaperOrigin.COLLECT,
|
|
|
Arrays.stream(dto.getQuestionNoIds()).collect(Collectors.toList()),
|
|
|
dto.getFilterTimes()
|
|
@@ -913,7 +906,11 @@ public class MyController {
|
|
|
throw new ParameterException("试卷未完成");
|
|
|
}
|
|
|
List<UserQuestion> questionList = userQuestionService.listByReport(user.getId(), dto.getUserReportId());
|
|
|
- userPaperQuestionService.addRemoveError(questionList);
|
|
|
+ Collection questionNoIds = Transform.getIds(questionList, UserQuestion.class, "questionNoId");
|
|
|
+
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ List<QuestionNoRelation> relationList = questionNoService.relation(questionNoList);
|
|
|
+ userPaperQuestionService.addRemoveError(user.getId(), relationList);
|
|
|
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
@@ -960,20 +957,9 @@ public class MyController {
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
Transform.combine(pr, questionList, UserCollectQuestionInfoDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
|
|
|
- List<UserCollectQuestionInfoDto> basePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.BASE.key)).collect(Collectors.toList());
|
|
|
- Collection baseQuestionNoIds = Transform.getIds(basePr, UserCollectQuestionInfoDto.class, "questionNoId");
|
|
|
- List<QuestionNo> baseQuestionNoList = questionNoService.select(baseQuestionNoIds);
|
|
|
- Transform.combine(basePr, baseQuestionNoList, UserCollectQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
-
|
|
|
- List<UserCollectQuestionInfoDto> sentencePr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.SENTENCE.key)).collect(Collectors.toList());
|
|
|
- Collection sentenceQuestionNoIds = Transform.getIds(sentencePr, UserCollectQuestionInfoDto.class, "questionNoId");
|
|
|
- List<SentenceQuestion> sentenceQuestionList = sentenceQuestionService.select(sentenceQuestionNoIds);
|
|
|
- Transform.combine(sentencePr, sentenceQuestionList, UserCollectQuestionInfoDto.class, "questionNoId", "questionNo", SentenceQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
-
|
|
|
- List<UserCollectQuestionInfoDto> textbookPr = pr.stream().filter((row)->row.getQuestionModule().equals(QuestionModule.TEXTBOOK.key)).collect(Collectors.toList());
|
|
|
- Collection textbookQuestionNoIds = Transform.getIds(textbookPr, UserCollectQuestionInfoDto.class, "questionNoId");
|
|
|
- List<TextbookQuestion> textbookQuestionList = textbookQuestionService.select(textbookQuestionNoIds);
|
|
|
- Transform.combine(textbookPr, textbookQuestionList, UserCollectQuestionInfoDto.class, "questionNoId", "questionNo", TextbookQuestion.class, "id", QuestionNoExtendDto.class);
|
|
|
+ Collection questionNoIds = Transform.getIds(pr, UserCollectQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ Transform.combine(pr, questionNoList, UserCollectQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
|
|
|
List<UserQuestion> userQuestionList = userQuestionService.listByQuestion(user.getId(), questionIds);
|
|
@@ -983,8 +969,19 @@ public class MyController {
|
|
|
|
|
|
List<UserQuestion> lastList = userQuestionService.listWithLast(questionIds);
|
|
|
Map lastMap = Transform.getMap(lastList, UserQuestion.class, "id", "createTime");
|
|
|
- Transform.combine(pr, lastMap, UserQuestionErrorInfoDto.class, "questionId", "latestTime");
|
|
|
+ Transform.combine(pr, lastMap, UserCollectQuestionInfoDto.class, "questionId", "latestTime");
|
|
|
+
|
|
|
+
|
|
|
+ List<UserCollectQuestion> userCollectQuestionList = userCollectQuestionService.listByUserAndQuestions(user.getId(), questionIds);
|
|
|
+ Map collectMap = Transform.getMap(userCollectQuestionList, UserCollectQuestion.class, "questionId", "id");
|
|
|
|
|
|
+ List<UserNoteQuestion> userNoteQuestionList = userNoteQuestionService.listByUserAndQuestions(user.getId(), questionIds);
|
|
|
+ Map noteMap = Transform.getMap(userNoteQuestionList, UserNoteQuestion.class, "questionId", "id");
|
|
|
+
|
|
|
+ for(UserCollectQuestionInfoDto dto : pr){
|
|
|
+ dto.setCollect(collectMap.containsKey(dto.getQuestionId()));
|
|
|
+ dto.setNote(noteMap.containsKey(dto.getQuestionId()));
|
|
|
+ }
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
@@ -1030,20 +1027,9 @@ public class MyController {
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
Transform.combine(pr, questionList, UserQuestionErrorInfoDto.class, "questionId", "question", Question.class, "id", QuestionExtendDto.class);
|
|
|
|
|
|
- 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);
|
|
|
+ Collection questionNoIds = Transform.getIds(pr, UserQuestionErrorInfoDto.class, "questionId");
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ Transform.combine(pr, questionNoList, UserQuestionErrorInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
|
|
|
List<UserQuestion> userQuestionList = userQuestionService.listByQuestion(user.getId(), questionIds);
|
|
@@ -1055,17 +1041,28 @@ public class MyController {
|
|
|
Map lastMap = Transform.getMap(lastList, UserQuestion.class, "id", "createTime");
|
|
|
Transform.combine(pr, lastMap, UserQuestionErrorInfoDto.class, "questionId", "latestTime");
|
|
|
|
|
|
+
|
|
|
+ List<UserCollectQuestion> userCollectQuestionList = userCollectQuestionService.listByUserAndQuestions(user.getId(), questionIds);
|
|
|
+ Map collectMap = Transform.getMap(userCollectQuestionList, UserCollectQuestion.class, "questionId", "id");
|
|
|
+
|
|
|
+ List<UserNoteQuestion> userNoteQuestionList = userNoteQuestionService.listByUserAndQuestions(user.getId(), questionIds);
|
|
|
+ Map noteMap = Transform.getMap(userNoteQuestionList, UserNoteQuestion.class, "questionId", "id");
|
|
|
+
|
|
|
+ for(UserQuestionErrorInfoDto dto : pr){
|
|
|
+ dto.setCollect(collectMap.containsKey(dto.getQuestionId()));
|
|
|
+ dto.setNote(noteMap.containsKey(dto.getQuestionId()));
|
|
|
+ }
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/error/bind", method = RequestMethod.POST)
|
|
|
+ @RequestMapping(value = "/error/group", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "错题组卷", notes = "错题组卷", httpMethod = "POST")
|
|
|
- public Response<UserPaper> bindError(@RequestBody @Validated UserCustomBindDto dto) {
|
|
|
+ public Response<UserPaper> bindError(@RequestBody @Validated UserCustomGroupDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
-
|
|
|
+ QuestionModule questionModule = questionFlowService.validGroup(dto.getQuestionNoIds());
|
|
|
UserPaper userPaper = questionFlowService.makePaper(
|
|
|
user.getId(),
|
|
|
- QuestionModule.ValueOf(dto.getQuestionModule()),
|
|
|
+ questionModule,
|
|
|
PaperOrigin.ERROR,
|
|
|
Arrays.stream(dto.getQuestionNoIds()).collect(Collectors.toList()),
|
|
|
dto.getFilterTimes()
|
|
@@ -1079,8 +1076,9 @@ public class MyController {
|
|
|
public Response<Boolean> clearError(@RequestBody @Validated UserQuestionIdsDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
|
|
|
- List<UserQuestion> questionList = userQuestionService.select(dto.getQuestionNoIds());
|
|
|
- userPaperQuestionService.addRemoveError(questionList);
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(dto.getQuestionNoIds());
|
|
|
+ List<QuestionNoRelation> relationList = questionNoService.relation(questionNoList);
|
|
|
+ userPaperQuestionService.addRemoveError(user.getId(), relationList);
|
|
|
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
@@ -1095,7 +1093,11 @@ public class MyController {
|
|
|
throw new ParameterException("试卷未完成");
|
|
|
}
|
|
|
List<UserQuestion> questionList = userQuestionService.listByReport(user.getId(), dto.getUserReportId());
|
|
|
- userPaperQuestionService.addRemoveError(questionList);
|
|
|
+ Collection questionNoIds = Transform.getIds(questionList, UserQuestion.class, "questionNoId");
|
|
|
+
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ List<QuestionNoRelation> relationList = questionNoService.relation(questionNoList);
|
|
|
+ userPaperQuestionService.addRemoveError(user.getId(), relationList);
|
|
|
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
@@ -1106,32 +1108,30 @@ public class MyController {
|
|
|
UserNoteQuestion entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
entity.setUserId(user.getId());
|
|
|
- switch (QuestionModule.ValueOf(dto.getQuestionModule())){
|
|
|
- case BASE:
|
|
|
- entity.setQuestionModule(QuestionModule.BASE.key);
|
|
|
- QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(questionNo.getQuestionId());
|
|
|
- entity.setQuestionNoId(questionNo.getId());
|
|
|
- break;
|
|
|
- case SENTENCE:
|
|
|
- entity.setQuestionModule(QuestionModule.SENTENCE.key);
|
|
|
- SentenceQuestion sentenceQuestion = sentenceQuestionService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(sentenceQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
- TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(textbookQuestion.getId());
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- userNoteQuestionService.update(entity);
|
|
|
+
|
|
|
+ QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(questionNo.getModule());
|
|
|
+ QuestionModule questionModule = QuestionModule.WithQuestionNo(questionNoModule);
|
|
|
+ entity.setQuestionModule(questionModule.key);
|
|
|
+ entity.setQuestionId(questionNo.getQuestionId());
|
|
|
+ entity.setQuestionNoId(questionNo.getId());
|
|
|
+
|
|
|
+ userNoteQuestionService.updateNote(entity);
|
|
|
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/note/question/clear", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "笔记移除", notes = "笔记移除", httpMethod = "POST")
|
|
|
+ public Response<Boolean> clearNoteQuestion(@RequestBody @Validated UserQuestionIdsDto dto) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(dto.getQuestionNoIds());
|
|
|
+ for(QuestionNo questionNo : questionNoList){
|
|
|
+ userNoteQuestionService.deleteNote(user.getId(), questionNo.getQuestionId());
|
|
|
+ }
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = "/note/question/list", method = RequestMethod.GET)
|
|
|
@ApiOperation(value = "获取题目笔记列表", notes = "获取笔记列表", httpMethod = "GET")
|
|
|
public Response<PageMessage<UserNoteQuestionInfoDto>> listNoteQuestion(
|
|
@@ -1174,20 +1174,9 @@ public class MyController {
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
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, UserNoteQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ Transform.combine(pr, questionNoList, UserNoteQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
@@ -1224,7 +1213,7 @@ public class MyController {
|
|
|
PaperOrigin paperOrigin = PaperOrigin.ValueOf(origin);
|
|
|
QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(module);
|
|
|
Page<UserPaper> p = null;
|
|
|
- if (questionNoModule != null && (paperOrigin == PaperOrigin.COLLECT || paperOrigin == PaperOrigin.ERROR)){
|
|
|
+ if (paperOrigin == PaperOrigin.COLLECT || paperOrigin == PaperOrigin.ERROR){
|
|
|
p = userPaperService.list(page, size, user.getId(), keyword, paperOrigin, startTime, endTime, order != null ? order.replace("|", " ") : null);
|
|
|
}else if(questionNoModule == QuestionNoModule.EXERCISE){
|
|
|
p = userPaperService.listExercise(page, size, user.getId(), keyword, questionTypes, structIds, courseModules, startTime, endTime, order != null ? order.replace("|", " ") : null);
|
|
@@ -1246,36 +1235,26 @@ public class MyController {
|
|
|
}
|
|
|
List<UserPaperDto> pr = Transform.convert(p, UserPaperDto.class);
|
|
|
|
|
|
+ if (questionNoModule == QuestionNoModule.EXAMINATION){
|
|
|
+ Collection originIds = Transform.getIds(p, UserPaper.class, "originId");
|
|
|
+ List<ExaminationPaper> examinationPapers = examinationPaperService.select(originIds);
|
|
|
+ Transform.combine(pr, examinationPapers, UserPaperDto.class, "originId", "origin", ExaminationPaper.class, "id", PaperExtendDto.class);
|
|
|
+ }
|
|
|
+
|
|
|
Collection paperIds = Transform.getIds(p, UserPaper.class, "id");
|
|
|
|
|
|
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){
|
|
|
+ for(UserPaperDto paper : pr){
|
|
|
+ if (paper.getQuestionNoIds() == null) continue;
|
|
|
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());
|
|
|
}
|
|
|
|
|
@@ -1285,36 +1264,14 @@ public class MyController {
|
|
|
UserAskQuestion entity = Transform.dtoToEntity(dto);
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
entity.setUserId(user.getId());
|
|
|
- QuestionModule questionModule = QuestionModule.ValueOf(dto.getQuestionModule());
|
|
|
- Question question;
|
|
|
- switch (questionModule){
|
|
|
- case BASE:
|
|
|
- entity.setQuestionModule(QuestionModule.BASE.key);
|
|
|
- QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(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.setQuestionId(sentenceQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(sentenceQuestion.getId());
|
|
|
-
|
|
|
- question = questionService.get(sentenceQuestion.getQuestionId());
|
|
|
- break;
|
|
|
- case TEXTBOOK:
|
|
|
- entity.setQuestionModule(QuestionModule.TEXTBOOK.key);
|
|
|
- TextbookQuestion textbookQuestion = textbookQuestionService.get(dto.getQuestionNoId());
|
|
|
- entity.setQuestionId(textbookQuestion.getQuestionId());
|
|
|
- entity.setQuestionNoId(textbookQuestion.getId());
|
|
|
-
|
|
|
- question = questionService.get(textbookQuestion.getQuestionId());
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new ParameterException("题目模块错误");
|
|
|
- }
|
|
|
+
|
|
|
+ QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(questionNo.getModule());
|
|
|
+ QuestionModule questionModule = QuestionModule.WithQuestionNo(questionNoModule);
|
|
|
+ entity.setQuestionModule(questionModule.key);
|
|
|
+ entity.setQuestionId(questionNo.getQuestionId());
|
|
|
+ entity.setQuestionNoId(questionNo.getId());
|
|
|
+ Question question = questionService.get(questionNo.getQuestionId());
|
|
|
|
|
|
Integer assignId = null;
|
|
|
PaperModule paperModule = null;
|
|
@@ -1327,7 +1284,7 @@ public class MyController {
|
|
|
}
|
|
|
paperModule = PaperModule.ValueOf(userPaper.getPaperModule());
|
|
|
}else{
|
|
|
- paperModule = PaperModule.WithQuestion(questionModule);
|
|
|
+ paperModule = PaperModule.WithQuestionNo(questionNoModule);
|
|
|
}
|
|
|
entity.setAskModule(AskModule.WithPaper(paperModule).key);
|
|
|
Integer recordId = questionFlowService.questionRelationCourse(user.getId(), assignId, QuestionType.ValueOf(question.getQuestionType()));
|
|
@@ -1409,20 +1366,9 @@ public class MyController {
|
|
|
List<Question> questionList = questionService.select(questionIds);
|
|
|
Transform.combine(pr, questionList, UserAskQuestionInfoDto.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);
|
|
|
+ Collection questionNoIds = Transform.getIds(pr, UserAskQuestionInfoDto.class, "questionNoId");
|
|
|
+ List<QuestionNo> questionNoList = questionNoService.select(questionNoIds);
|
|
|
+ Transform.combine(pr, questionNoList, UserAskQuestionInfoDto.class, "questionNoId", "questionNo", QuestionNo.class, "id", QuestionNoExtendDto.class);
|
|
|
|
|
|
return ResponseHelp.success(pr, page, size, p.getTotal());
|
|
|
}
|
|
@@ -1459,35 +1405,14 @@ public class MyController {
|
|
|
entity.setModule(FeedbackModule.QUESTION.key);
|
|
|
entity.setStatus(0);
|
|
|
|
|
|
- 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("题目模块错误");
|
|
|
- }
|
|
|
+ QuestionNo questionNo = questionNoService.get(dto.getQuestionNoId());
|
|
|
+ QuestionNoModule questionNoModule = QuestionNoModule.ValueOf(questionNo.getModule());
|
|
|
+ QuestionModule questionModule = QuestionModule.WithQuestionNo(questionNoModule);
|
|
|
+ entity.setQuestionModule(questionModule.key);
|
|
|
+ entity.setQuestionNoId(questionNo.getId());
|
|
|
+
|
|
|
+ Question question = questionService.get(questionNo.getQuestionId());
|
|
|
+
|
|
|
entity.setQuestionType(question.getQuestionType());
|
|
|
userFeedbackErrorService.add(entity);
|
|
|
|
|
@@ -1508,6 +1433,25 @@ public class MyController {
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/feedback/textbook", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "添加机经反馈", notes = "添加反馈", httpMethod = "POST")
|
|
|
+ public Response<Boolean> addFeedbackTextbook(@RequestBody @Validated UserTextbookFeedbackDto dto) {
|
|
|
+ UserTextbookFeedback entity = Transform.dtoToEntity(dto);
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+
|
|
|
+ TextbookLibrary latest = textbookLibraryService.getLatest();
|
|
|
+ entity.setLibraryId(latest.getId());
|
|
|
+ entity.setUserId(user.getId());
|
|
|
+ entity.setStatus(0);
|
|
|
+ if (entity.getNo() != null && entity.getNo() > 0){
|
|
|
+ TextbookTopic textbookTopic = textbookTopicService.getByNo(entity.getLibraryId(), entity.getQuestionSubject(), entity.getNo());
|
|
|
+ entity.setTopicId(textbookTopic.getId());
|
|
|
+ }
|
|
|
+ userTextbookFeedbackService.add(entity);
|
|
|
+
|
|
|
+ return ResponseHelp.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
@RequestMapping(value = "/faq", method = RequestMethod.POST)
|
|
|
@ApiOperation(value = "添加faq", notes = "添加faq", httpMethod = "POST")
|
|
|
public Response<Boolean> addFaq(@RequestBody @Validated FaqDto dto) {
|
|
@@ -1812,6 +1756,12 @@ public class MyController {
|
|
|
UserCourseAppointment appointment = userCourseAppointmentService.get(entity.getAppointmentId());
|
|
|
entity.setUserId(user.getId());
|
|
|
entity.setRecordId(appointment.getRecordId());
|
|
|
+ if (entity.getParentId() > 0){
|
|
|
+ UserCourseAppointmentComment comment = userCourseAppointmentCommentService.get(entity.getParentId());
|
|
|
+ if (comment != null){
|
|
|
+ entity.setReply(comment.getContent());
|
|
|
+ }
|
|
|
+ }
|
|
|
entity = userCourseAppointmentCommentService.add(entity);
|
|
|
return ResponseHelp.success(true);
|
|
|
}
|
|
@@ -1933,12 +1883,37 @@ public class MyController {
|
|
|
return ResponseHelp.success(dtos);
|
|
|
}
|
|
|
|
|
|
- @RequestMapping(value = "/export/question/error", method = RequestMethod.POST)
|
|
|
- @ApiOperation(value = "关闭提示", notes = "关闭提示", httpMethod = "POST")
|
|
|
- public Response<List<UserQuestionDetailDto>> exportQuestionError() {
|
|
|
+ @RequestMapping(value = "/export/question", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "导出题目", notes = "导出题目", httpMethod = "POST")
|
|
|
+ public Response<UserExport> exportQuestion(@RequestBody @Validated UserExportDto dto) {
|
|
|
User user = (User) shiroHelp.getLoginUser();
|
|
|
+ UserExport entity = Transform.dtoToEntity(dto);
|
|
|
+ entity.setUserId(user.getId());
|
|
|
+ entity.setType(ExportType.QUESTION.key);
|
|
|
+ entity = userExportService.add(entity);
|
|
|
+ return ResponseHelp.success(entity);
|
|
|
+ }
|
|
|
|
|
|
- return ResponseHelp.success(null);
|
|
|
+ @RequestMapping(value = "/export/note/question", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "导出题目笔记", notes = "导出题目笔记", httpMethod = "POST")
|
|
|
+ public Response<UserExport> exportNoteQuestion(@RequestBody @Validated UserExportDto dto) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ UserExport entity = Transform.dtoToEntity(dto);
|
|
|
+ entity.setUserId(user.getId());
|
|
|
+ entity.setType(ExportType.NOTE_QUESTION.key);
|
|
|
+ entity = userExportService.add(entity);
|
|
|
+ return ResponseHelp.success(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/export/note/course", method = RequestMethod.POST)
|
|
|
+ @ApiOperation(value = "导出课程笔记", notes = "导出课程笔记", httpMethod = "POST")
|
|
|
+ public Response<UserExport> exportNoteCourse(@RequestBody @Validated UserExportDto dto) {
|
|
|
+ User user = (User) shiroHelp.getLoginUser();
|
|
|
+ UserExport entity = Transform.dtoToEntity(dto);
|
|
|
+ entity.setUserId(user.getId());
|
|
|
+ entity.setType(ExportType.NOTE_COURSE.key);
|
|
|
+ entity = userExportService.add(entity);
|
|
|
+ return ResponseHelp.success(entity);
|
|
|
}
|
|
|
|
|
|
@RequestMapping(value = "/export/tips", method = RequestMethod.POST)
|