fix(question): 修复判断题答案验证逻辑
parent
5dd81cd81c
commit
498f5d681b
|
|
@ -116,38 +116,38 @@ public class QuestionE extends BaseE {
|
||||||
for (int i = 0; i < videoChoiceList.size(); i++) {
|
for (int i = 0; i < videoChoiceList.size(); i++) {
|
||||||
QuestionVideoChoiceExcelImportEntity entity = videoChoiceList.get(i);
|
QuestionVideoChoiceExcelImportEntity entity = videoChoiceList.get(i);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
errList.add("单选题第" + (i + 2) + "行数据为空");
|
errList.add("单选题第" + (i + 3) + "行数据为空");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选题目不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选题目不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionA())) {
|
if (StringUtils.isEmpty(entity.getOptionA())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选选项A不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选选项A不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionB())) {
|
if (StringUtils.isEmpty(entity.getOptionB())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选选项B不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选选项B不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionC())) {
|
if (StringUtils.isEmpty(entity.getOptionC())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选选项C不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选选项C不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionD())) {
|
if (StringUtils.isEmpty(entity.getOptionD())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选选项D不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选选项D不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getAnswer())) {
|
if (StringUtils.isEmpty(entity.getAnswer())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行单选答案不能为空");
|
errList.add("单选题第" + (i + 3) + "行单选答案不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getDescr())) {
|
if (StringUtils.isEmpty(entity.getDescr())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行答案解析不能为空");
|
errList.add("单选题第" + (i + 3) + "行答案解析不能为空");
|
||||||
}
|
}
|
||||||
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
||||||
if (StringUtils.isEmpty(entity.getScore())) {
|
if (StringUtils.isEmpty(entity.getScore())) {
|
||||||
errList.add("单选题第" + (i + 2) + "行分值不能为空");
|
errList.add("单选题第" + (i + 3) + "行分值不能为空");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//单选题答案只能是ABCD四个中的一个,不能多个
|
//单选题答案只能是ABCD四个中的一个,不能多个
|
||||||
if (!entity.getAnswer().matches("[A-D]") ||entity.getAnswer().length()>1) {
|
if (!entity.getAnswer().matches("[A-D]") ||entity.getAnswer().length()>1) {
|
||||||
errList.add("单选题第" + (i + 2) + "行答案错误");
|
errList.add("单选题第" + (i + 3) + "行答案错误");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -155,39 +155,39 @@ public class QuestionE extends BaseE {
|
||||||
for (int i = 0; i < videoMultiselectList.size(); i++) {
|
for (int i = 0; i < videoMultiselectList.size(); i++) {
|
||||||
QuestionVideoMultiselectExcelImportEntity entity = videoMultiselectList.get(i);
|
QuestionVideoMultiselectExcelImportEntity entity = videoMultiselectList.get(i);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
errList.add("多选题第" + (i + 2) + "行数据为空");
|
errList.add("多选题第" + (i + 3) + "行数据为空");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选题目不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选题目不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionA())) {
|
if (StringUtils.isEmpty(entity.getOptionA())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选选项A不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选选项A不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionB())) {
|
if (StringUtils.isEmpty(entity.getOptionB())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选选项B不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选选项B不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionC())) {
|
if (StringUtils.isEmpty(entity.getOptionC())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选选项C不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选选项C不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getOptionD())) {
|
if (StringUtils.isEmpty(entity.getOptionD())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选选项D不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选选项D不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getAnswer())) {
|
if (StringUtils.isEmpty(entity.getAnswer())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行多选答案不能为空");
|
errList.add("多选题第" + (i + 3) + "行多选答案不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getDescr())) {
|
if (StringUtils.isEmpty(entity.getDescr())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行答案解析不能为空");
|
errList.add("多选题第" + (i + 3) + "行答案解析不能为空");
|
||||||
}
|
}
|
||||||
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
||||||
if (StringUtils.isEmpty(entity.getScore())) {
|
if (StringUtils.isEmpty(entity.getScore())) {
|
||||||
errList.add("多选题第" + (i + 2) + "行分值不能为空");
|
errList.add("多选题第" + (i + 3) + "行分值不能为空");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String answer = entity.getAnswer().toUpperCase().trim();
|
String answer = entity.getAnswer().toUpperCase().trim();
|
||||||
//多选题答案只能是选题答案只能是ABCD四个中的值,可以多个
|
//多选题答案只能是选题答案只能是ABCD四个中的值,可以多个
|
||||||
if (answer.matches("^[A-D]{2,4}$") && ! hasDuplicateChars(answer)) {
|
if (!answer.matches("^[A-D]{2,4}$") || hasDuplicateChars(answer)) {
|
||||||
errList.add("多选题第" + (i + 2) + "行答案错误");
|
errList.add("多选题第" + (i + 3) + "行答案错误");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -196,37 +196,37 @@ public class QuestionE extends BaseE {
|
||||||
for (int i = 0; i < videoJudgeList.size(); i++) {
|
for (int i = 0; i < videoJudgeList.size(); i++) {
|
||||||
QuestionVideoJudgeExcelImportEntity entity = videoJudgeList.get(i);
|
QuestionVideoJudgeExcelImportEntity entity = videoJudgeList.get(i);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
errList.add("判断题第" + (i + 2) + "行数据为空");
|
errList.add("判断题第" + (i + 3) + "行数据为空");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
if (StringUtils.isEmpty(entity.getQuestionDry())) {
|
||||||
errList.add("判断题第" + (i + 2) + "行判断题目不能为空");
|
errList.add("判断题第" + (i + 3) + "行判断题目不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getAnswer())) {
|
if (StringUtils.isEmpty(entity.getAnswer())) {
|
||||||
errList.add("判断题第" + (i + 2) + "行判断答案不能为空");
|
errList.add("判断题第" + (i + 3) + "行判断答案不能为空");
|
||||||
}
|
}
|
||||||
if (StringUtils.isEmpty(entity.getDescr())) {
|
if (StringUtils.isEmpty(entity.getDescr())) {
|
||||||
errList.add("判断题第" + (i + 2) + "行答案解析不能为空");
|
errList.add("判断题第" + (i + 3) + "行答案解析不能为空");
|
||||||
}
|
}
|
||||||
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
if(CoursewareTypeEnum.EXAM_QUESTION.getCode().equals(coursewareType)){
|
||||||
if (StringUtils.isEmpty(entity.getScore())) {
|
if (StringUtils.isEmpty(entity.getScore())) {
|
||||||
errList.add("判断题第" + (i + 2) + "行分值不能为空");
|
errList.add("判断题第" + (i + 3) + "行分值不能为空");
|
||||||
}else{
|
}else{
|
||||||
//不为空的话,判断是否是T F
|
//不为空的话,判断是否是T F
|
||||||
if(!QuestionJudgeAnswerTypeEnum.isTrueOrFalse(entity.getAnswer())){
|
if(!QuestionJudgeAnswerTypeEnum.isTrueOrFalse(entity.getAnswer())){
|
||||||
errList.add("判断题第" + (i + 2) + "行答案格式错误");
|
errList.add("判断题第" + (i + 3) + "行答案格式错误");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//判断题答案只能是AB中的一个
|
//判断题答案只能是AB中的一个
|
||||||
if (!entity.getAnswer().matches("[F-T]") ||entity.getAnswer().length()>1) {
|
if (!entity.getAnswer().matches("[F-T]") ||entity.getAnswer().length()>1) {
|
||||||
errList.add("判断题第" + (i + 2) + "行答案错误");
|
errList.add("判断题第" + (i + 3) + "行答案错误");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(errList)) {
|
if (CollUtil.isNotEmpty(errList)) {
|
||||||
throw new BizException("导入信息有误,请检查后重新导入。错误信息:" + String.join("", errList));
|
throw new BizException("导入信息有误,请检查后重新导入。错误信息:" + String.join(",", errList));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 赋值
|
// 赋值
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue