Merge branch 'dev' of http://110.42.96.65:19890/GoCo/OL-LearnPlatform-Backend into dev
merge
This commit is contained in:
commit
c48769872d
@ -21,9 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@RestController
|
||||
@ -77,7 +76,34 @@ public class RepoBizController {
|
||||
@Operation(summary = "查询题库下题目")
|
||||
public Result<List<Question>> questionList(@PathVariable String repoId) {
|
||||
List<String> list = questionRepoService.questionList(repoId);
|
||||
return Result.ok(questionService.listByIds(list));
|
||||
List<Question> questions = questionService.listByIds(list);
|
||||
//获取复选题id
|
||||
List<String> type5Ids = questions.stream()
|
||||
.filter(question -> question.getType() == 5)
|
||||
.map(Question::getId)
|
||||
.collect(Collectors.toList());
|
||||
//获取复选题所包含的题目
|
||||
List<Question> type5Questions = new ArrayList<>();
|
||||
if (!type5Ids.isEmpty()) {
|
||||
type5Questions = questionService.list(
|
||||
new LambdaQueryWrapper<Question>()
|
||||
.in(Question::getParentId, type5Ids)
|
||||
);
|
||||
}
|
||||
// 创建一个映射,用于快速查找父ID对应的子题目
|
||||
Map<String, List<Question>> parentToChildrenMap = type5Questions.stream()
|
||||
.collect(Collectors.groupingBy(Question::getParentId));
|
||||
|
||||
// 将子题目添加到原始列表中,保持原有顺序
|
||||
List<Question> resultQuestions = new ArrayList<>();
|
||||
for (Question question : questions) {
|
||||
resultQuestions.add(question);
|
||||
if (question.getType() == 5) {
|
||||
List<Question> children = parentToChildrenMap.getOrDefault(question.getId(), Collections.emptyList());
|
||||
resultQuestions.addAll(children);
|
||||
}
|
||||
}
|
||||
return Result.ok(resultQuestions);
|
||||
}
|
||||
|
||||
@GetMapping("course_list")
|
||||
@ -96,19 +122,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 +176,7 @@ public class RepoBizController {
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//查询填空题,简答题答案
|
||||
public List<QuestionAnswer> answerDetail(String questionId) {
|
||||
return questionAnswerService.list(
|
||||
new LambdaQueryWrapper<QuestionAnswer>().
|
||||
|
@ -119,6 +119,7 @@ public class QuestionController extends JeecgController<Question, IQuestionServi
|
||||
@Operation(summary="题目-通过id删除")
|
||||
@RequiresPermissions("gen.question:question:delete")
|
||||
@DeleteMapping(value = "/delete")
|
||||
@Transactional
|
||||
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
|
||||
Question question = questionService.getById(id);
|
||||
questionService.removeById(id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user