diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java index 9c8e7e88..93dd51e7 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java @@ -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 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 list = questionService.list( new LambdaQueryWrapper(). eq(Question::getParentId, questionId) - ) ); + //根据题目类型进行分组(false:选择多选判断题,true:填空简答题) + Map> groupedQuestions = list.stream() + .collect(Collectors.partitioningBy( + q -> q.getType() > 2 + )); + Map>> questionOptionMap = new HashMap<>(); + //获取选择题,多选题,判断题答案 + List question = groupedQuestions.get(false); + if(!question.isEmpty()){ + Map> questionListHashMap = new HashMap<>(); + question.forEach(q -> { + ArrayList objects = new ArrayList<>(); + objects.add(q); + objects.add(choiceDetail(q.getId())); + questionListHashMap.put(q.getId(), objects); + }); + questionOptionMap.put("questionOption", questionListHashMap); + } + //获取填空题,简答题答案 + List question1 = groupedQuestions.get(true); + if(!question1.isEmpty()){ + Map> questionAnswerMap = new HashMap<>(); + question1.forEach(q -> { + ArrayList 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 choiceDetail(String questionId) { return questionOptionService.list( new LambdaQueryWrapper(). @@ -117,7 +152,7 @@ public class RepoBizController { ); } - + //查询填空题,简答题答案 public List answerDetail(String questionId) { return questionAnswerService.list( new LambdaQueryWrapper().