用户在作答以后,插入错题集

beetlsql3-dev
Mlxa0324 2 years ago
parent 20b739b296
commit 659641f72c

@ -61,6 +61,7 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
@Resource private StudentDao studentDao;
@Resource private ResourcesQuestionSnapshotDao resourcesQuestionSnapshotDao;
@Resource private TeacherOpenCourseQuestionSettingService teacherOpenCourseQuestionSettingSettingService;
@Resource private TeacherOpenCourseQuestionLogWrongService teacherOpenCourseQuestionLogWrongService;
public PageQuery<TeacherOpenCourseQuestionLog>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionLogDao.queryByCondition(query);
@ -255,11 +256,11 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService<Teacher
.studentId(student.getStudentId())
.teacherOpenCourseQuestionSettingId(questionSettingId)
.build();
List<TeacherOpenCourseQuestionLog> valuesByQuery = teacherOpenCourseQuestionLogDao.getValuesByQuery(questionLogQuery);
List<TeacherOpenCourseQuestionLog> 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<Teacher
questionLog.setStudentScore(isCorrectAnswer ? questionLog.getQuestionScore() : BigDecimal.valueOf(0));
});
updateBatch(valuesByQuery);
updateBatch(logList);
// 批量插入错题集,方法内部自带判断
teacherOpenCourseQuestionLogWrongService.insertBatchByQuestionLogList(logList);
}

@ -1,5 +1,7 @@
package com.ibeetl.jlw.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.jlw.util.ToolUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@ -11,6 +13,7 @@ import com.ibeetl.admin.core.web.JsonResult;
import com.ibeetl.admin.core.web.JsonReturnCode;
import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionLogWrongDao;
import com.ibeetl.jlw.entity.FileEntity;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLogWrong;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogWrongQuery;
import org.apache.commons.lang3.StringUtils;
@ -29,6 +32,7 @@ import javax.annotation.Resource;
import java.io.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
@ -374,5 +378,31 @@ public class TeacherOpenCourseQuestionLogWrongService extends CoreBaseService<Te
return teacherOpenCourseQuestionLogWrongDao.getExcelValues(teacherOpenCourseQuestionLogWrongQuery);
}
/**
*
* ID teacherOpenCourseQuestionSettingId
*
*
* @param questionLogList
*/
public void insertBatchByQuestionLogList(List<TeacherOpenCourseQuestionLog> questionLogList) {
// 空值直接返回
if(CollectionUtil.isEmpty(questionLogList)) { return; }
// 错题集
List<TeacherOpenCourseQuestionLog> 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));
}
}

Loading…
Cancel
Save