|
|
@@ -552,9 +552,8 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
|
|
|
*/
|
|
|
private ValidationResult validateOptions(FsCourseQuestionBankImportDTO importDTO) {
|
|
|
if (StringUtils.isBlank(importDTO.getQuestionA()) ||
|
|
|
- StringUtils.isBlank(importDTO.getQuestionB()) ||
|
|
|
- StringUtils.isBlank(importDTO.getQuestionC())) {
|
|
|
- return ValidationResult.fail("选项A、B、C不能为空");
|
|
|
+ StringUtils.isBlank(importDTO.getQuestionB())) {
|
|
|
+ return ValidationResult.fail("选项A、B不能为空");
|
|
|
}
|
|
|
return ValidationResult.success();
|
|
|
}
|
|
|
@@ -681,8 +680,9 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
|
|
|
// 构建选项
|
|
|
addOption(questionArray, importDTO.getQuestionA(), answerList.contains("A"), 0);
|
|
|
addOption(questionArray, importDTO.getQuestionB(), answerList.contains("B"), 1);
|
|
|
- addOption(questionArray, importDTO.getQuestionC(), answerList.contains("C"), 2);
|
|
|
-
|
|
|
+ if (StringUtils.isNotBlank(importDTO.getQuestionC())) {
|
|
|
+ addOption(questionArray, importDTO.getQuestionC(), answerList.contains("C"), 2);
|
|
|
+ }
|
|
|
if (StringUtils.isNotBlank(importDTO.getQuestionD())) {
|
|
|
addOption(questionArray, importDTO.getQuestionD(), answerList.contains("D"), 3);
|
|
|
}
|
|
|
@@ -710,16 +710,29 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
|
|
|
List<String> answerList = Arrays.asList(answers);
|
|
|
|
|
|
Map<String, String> questionMap = new HashMap<>();
|
|
|
- questionMap.put("A", importDTO.getQuestionA().trim());
|
|
|
- questionMap.put("B", importDTO.getQuestionB().trim());
|
|
|
- questionMap.put("C", importDTO.getQuestionC().trim());
|
|
|
- questionMap.put("D", importDTO.getQuestionD().trim());
|
|
|
+ if (StringUtils.isNotBlank(importDTO.getQuestionA())) {
|
|
|
+ questionMap.put("A", importDTO.getQuestionA().trim());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(importDTO.getQuestionB())) {
|
|
|
+ questionMap.put("B", importDTO.getQuestionB().trim());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(importDTO.getQuestionC())) {
|
|
|
+ questionMap.put("C", importDTO.getQuestionC().trim());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(importDTO.getQuestionD())) {
|
|
|
+ questionMap.put("D", importDTO.getQuestionD().trim());
|
|
|
+ }
|
|
|
|
|
|
List<String> selectedAnswers = answerList.stream()
|
|
|
.map(questionMap::get)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
- if (answerList.size() == 1) {
|
|
|
+ if (selectedAnswers.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (selectedAnswers.size() == 1) {
|
|
|
return selectedAnswers.get(0);
|
|
|
}
|
|
|
|
|
|
@@ -817,18 +830,27 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
|
|
|
dto.setStatus(q.getStatus() == 1 ? "正常" : "停用");
|
|
|
|
|
|
StringBuilder answersBuilder = new StringBuilder();
|
|
|
- JSONArray array = JSON.parseArray(q.getQuestion());
|
|
|
- array.forEach(jsonObject -> {
|
|
|
- JSONObject json = (JSONObject) jsonObject;
|
|
|
- int index = json.getInteger("indexId");
|
|
|
- String name = json.getString("name");
|
|
|
- int isAnswer = json.getInteger("isAnswer");
|
|
|
- questionSetters.get(index).accept(dto, name);
|
|
|
- if (isAnswer == 1) {
|
|
|
- answersBuilder.append(answerLettersMap.get(index));
|
|
|
+ if (StringUtils.isNotBlank(q.getQuestion())) {
|
|
|
+ JSONArray array = JSON.parseArray(q.getQuestion());
|
|
|
+ if (array != null) {
|
|
|
+ array.forEach(jsonObject -> {
|
|
|
+ JSONObject json = (JSONObject) jsonObject;
|
|
|
+ Integer index = json.getInteger("indexId");
|
|
|
+ String name = json.getString("name");
|
|
|
+ Integer isAnswer = json.getInteger("isAnswer");
|
|
|
+
|
|
|
+ if (index != null && questionSetters.containsKey(index)) {
|
|
|
+ questionSetters.get(index).accept(dto, name);
|
|
|
+ }
|
|
|
+ if (isAnswer != null && isAnswer == 1 && index != null) {
|
|
|
+ String answerLetter = answerLettersMap.get(index);
|
|
|
+ if (answerLetter != null) {
|
|
|
+ answersBuilder.append(answerLetter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
- });
|
|
|
+ }
|
|
|
dto.setAnswer(answersBuilder .toString());
|
|
|
return dto;
|
|
|
}).collect(Collectors.toList());
|