diff --git a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java index bfcaef45..47d7414f 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java @@ -50,7 +50,6 @@ import static cn.hutool.core.date.DateUnit.MINUTE; import static cn.hutool.core.util.ArrayUtil.join; import static cn.jlw.util.CacheUserUtil.getStudent; import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue; -import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.EXAM; import static java.util.stream.Collectors.groupingBy; /** @@ -603,13 +602,16 @@ public class GeneralQuestionLogService extends CoreBaseService resourcesQuestionSnapshots) { + @NotEmpty(message = "题目快照列表不能为空!") List resourcesQuestionSnapshots, + boolean isReSend + ) { if (CollectionUtil.isEmpty(resourcesQuestionSnapshots)) { return; @@ -619,12 +621,12 @@ public class GeneralQuestionLogService extends CoreBaseService resourcesQuestionSnapshots) { + @NotEmpty(message = "题目快照列表不能为空!") List resourcesQuestionSnapshots, + boolean isReSend + ) { if (CollectionUtil.isEmpty(resourcesQuestionSnapshots)) { return; } + // 不是强制发题,则不覆盖现有的题目日志,则继续做题 + if(!isReSend) { + TeacherOpenCourseQuestionLogQuery questionLogQuery = new TeacherOpenCourseQuestionLogQuery(); + questionLogQuery.setStudentId(studentId); + questionLogQuery.setTeacherOpenCourseQuestionSettingId(setting.getTeacherOpenCourseQuestionSettingId()); + questionLogQuery.setTeacherOpenCourseQuestionLogStatus(1); + List existsList = getValuesByQueryNotWithPermission(questionLogQuery); + + // 如果题目日志里存在预先布置的题目,则直接返回 + if (CollectionUtil.isNotEmpty(existsList)) { + return; + } + } + // teacherOpenCourseQuestionSettingId:类似试卷ID,题目日志里会出现重复的试卷ID // 逻辑删除之前的题目日志,防止学生做题统计数据异常 // 保证试卷是最新的 // 考试逻辑删除记录,作业或者章节测试都是直接删除记录。 Long teacherOpenCourseQuestionSettingId = setting.getTeacherOpenCourseQuestionSettingId(); - if (setting.getTeacherOpenCourseQuestionSettingType().equals(EXAM)) { - logicDeleteBySettingIds(teacherOpenCourseQuestionSettingId.toString()); - } - else { - deleteBySettingIds(teacherOpenCourseQuestionSettingId.toString()); + // 强制发题 + if (isReSend) { + if (setting.getTeacherOpenCourseQuestionSettingType().equals(EXAM)) { + logicDeleteBySettingIds(teacherOpenCourseQuestionSettingId.toString()); + } + else { + deleteBySettingIds(teacherOpenCourseQuestionSettingId.toString()); + } } // 断言 diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java index edf01de9..ea41d525 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java @@ -710,7 +710,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService