查询题目详情对于复合题返回题目及答案
This commit is contained in:
parent
3f2c7877ed
commit
d9c50d4750
@ -22,8 +22,10 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@RestController
|
||||
@ -96,19 +98,52 @@ public class RepoBizController {
|
||||
@GetMapping("/repoList/{questionId}")
|
||||
@Operation(summary = "查询题目详情")
|
||||
public Result<?> questionDetail(@PathVariable String questionId,@RequestParam Integer type) {
|
||||
if (type == 1 || type == 2 || type == 3) {
|
||||
return Result.ok(choiceDetail(questionId));
|
||||
}else if(type == 4 || type == 5) {
|
||||
if (type == 0 || type == 1 || type == 2) {
|
||||
List<QuestionOption> questionOptions = choiceDetail(questionId);
|
||||
return Result.ok(questionOptions);
|
||||
}else if(type == 3 || type == 4) {
|
||||
return Result.ok(answerDetail(questionId));
|
||||
}else {
|
||||
return Result.ok(questionService.list(
|
||||
//查询复合题所包含的题目
|
||||
List<Question> list = questionService.list(
|
||||
new LambdaQueryWrapper<Question>().
|
||||
eq(Question::getParentId, questionId)
|
||||
)
|
||||
);
|
||||
//根据题目类型进行分组(false:选择多选判断题,true:填空简答题)
|
||||
Map<Boolean, List<Question>> groupedQuestions = list.stream()
|
||||
.collect(Collectors.partitioningBy(
|
||||
q -> q.getType() > 2
|
||||
));
|
||||
Map<String, Map<String, List<?>>> questionOptionMap = new HashMap<>();
|
||||
//获取选择题,多选题,判断题答案
|
||||
List<Question> question = groupedQuestions.get(false);
|
||||
if(!question.isEmpty()){
|
||||
Map<String, List<?>> questionListHashMap = new HashMap<>();
|
||||
question.forEach(q -> {
|
||||
ArrayList<Object> objects = new ArrayList<>();
|
||||
objects.add(q);
|
||||
objects.add(choiceDetail(q.getId()));
|
||||
questionListHashMap.put(q.getId(), objects);
|
||||
});
|
||||
questionOptionMap.put("questionOption", questionListHashMap);
|
||||
}
|
||||
//获取填空题,简答题答案
|
||||
List<Question> question1 = groupedQuestions.get(true);
|
||||
if(!question1.isEmpty()){
|
||||
Map<String, List<?>> questionAnswerMap = new HashMap<>();
|
||||
question1.forEach(q -> {
|
||||
ArrayList<Object> objects = new ArrayList<>();
|
||||
objects.add(q);
|
||||
objects.add(answerDetail(q.getId()));
|
||||
questionAnswerMap.put(q.getId(), objects);
|
||||
});
|
||||
questionOptionMap.put("questionAnswer", questionAnswerMap);
|
||||
}
|
||||
return Result.ok(questionOptionMap);
|
||||
}
|
||||
|
||||
}
|
||||
//查询选择题,多选题,判断题答案
|
||||
public List<QuestionOption> choiceDetail(String questionId) {
|
||||
return questionOptionService.list(
|
||||
new LambdaQueryWrapper<QuestionOption>().
|
||||
@ -117,7 +152,7 @@ public class RepoBizController {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//查询填空题,简答题答案
|
||||
public List<QuestionAnswer> answerDetail(String questionId) {
|
||||
return questionAnswerService.list(
|
||||
new LambdaQueryWrapper<QuestionAnswer>().
|
||||
|
Loading…
x
Reference in New Issue
Block a user