diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java index ac338895..3e9ec6e4 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -61,6 +61,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseServicequeryByCondition(PageQuery query){ PageQuery ret = teacherOpenCourseQuestionLogDao.queryByCondition(query); @@ -255,11 +256,11 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService valuesByQuery = teacherOpenCourseQuestionLogDao.getValuesByQuery(questionLogQuery); + List logList = teacherOpenCourseQuestionLogDao.getValuesByQuery(questionLogQuery); - Assert.notEmpty(valuesByQuery, "未查询到题目!"); + Assert.notEmpty(logList, "未查询到题目!"); // 处理答案和分数 - valuesByQuery.forEach(questionLog -> { + logList.forEach(questionLog -> { // 学生提交的答案 String answersText = join(questionLogMap.get(questionLog.getResourcesQuestionSnapshotId()).toArray(), ","); // 包含/字符,代表是路径地址,是附件类型 @@ -278,7 +279,10 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService questionLogList) { + + // 空值直接返回 + if(CollectionUtil.isEmpty(questionLogList)) { return; } + + // 错题集 + List questionWrongList = questionLogList.stream().filter(questionLog -> { + // 学生写答案了,并且也给打分了,但是呢,分数是0的情况。这个时候,就是错题了 + return (null != questionLog.getStudentScore() + && StringUtils.isNotBlank(questionLog.getTeacherOpenCourseQuestionLogAnswer()) + && questionLog.getStudentScore().compareTo(BigDecimal.ZERO) == 0); + }).collect(Collectors.toList()); + + // 判空 + if(CollectionUtil.isEmpty(questionWrongList)) { return; } + + // 除了ID,其他字段都一样。只为了记录错题集 + insertBatch(BeanUtil.copyToList(questionWrongList, TeacherOpenCourseQuestionLogWrong.class)); + } }