From 4d39b51529237f640716c9fd7ee6188f2a1410fe Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Fri, 13 Jan 2023 21:05:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=99=84=E4=BB=B6=E4=BD=9C=E4=B8=9A=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TeacherOpenCourseQuestionSettingDao.java | 19 ++++++++ .../ibeetl/jlw/entity/GeneralQuestionLog.java | 4 +- .../entity/TeacherOpenCourseQuestionLog.java | 4 +- .../service/GeneralQuestionLogService.java | 43 ++++++++++++++++--- .../service/QuestionLogSummaryService.java | 6 ++- .../TeacherOpenCourseQuestionLogService.java | 40 +++++++++++------ .../jlw/web/QuestionLogSummaryController.java | 5 ++- ...eacherOpenCourseQuestionLogController.java | 3 +- .../jlw/questionLogSummary/homeworkIndex.html | 8 ++-- 9 files changed, 102 insertions(+), 30 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseQuestionSettingDao.java b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseQuestionSettingDao.java index f98ebcf9..3a29015d 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseQuestionSettingDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/TeacherOpenCourseQuestionSettingDao.java @@ -12,8 +12,12 @@ import org.beetl.sql.mapper.annotation.SqlResource; import org.beetl.sql.mapper.annotation.Update; import org.springframework.stereotype.Repository; +import javax.validation.constraints.NotNull; import java.util.List; +import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_FILE; +import static java.lang.Math.toIntExact; + /** * 题目配置 Dao */ @@ -61,4 +65,19 @@ public interface TeacherOpenCourseQuestionSettingDao extends BaseMapper + * 题目配置ID查询题目数量 + * + * @Author: 87966 + * @Date: 2022/12/5 13:47 + */ + default int getHomeWorkFileTotalCountBySettingId(@NotNull Long questionSettingId) { + long count = createLambdaQuery().andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingId, questionSettingId) + .andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingStatus, 1) + .andEq(TeacherOpenCourseQuestionSetting::getTeacherOpenCourseQuestionSettingType, HOMEWORK_FILE) + .count(); + return toIntExact(count); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java b/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java index 78f7e78e..bd36232c 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java @@ -171,7 +171,7 @@ public class GeneralQuestionLog extends BaseEntity{ * @Date: 2022/12/4 20:39 */ public Integer getSuccessCount() { - return Integer.valueOf(defaultIfNull(this.get("successCount"), "-1").toString()); + return Integer.valueOf(defaultIfNull(this.get("successCount"), "0").toString()); } /** * 功能描述:
@@ -193,6 +193,6 @@ public class GeneralQuestionLog extends BaseEntity{ * @Date: 2022/12/4 20:39 */ public Integer getErrorCount() { - return Integer.valueOf(defaultIfNull(this.get("errorCount"), "-1").toString()); + return Integer.valueOf(defaultIfNull(this.get("errorCount"), "0").toString()); } } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java index 6d45ec96..e37eec45 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java @@ -186,7 +186,7 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity { * @Date: 2022/12/4 20:39 */ public Integer getSuccessCount() { - return Integer.valueOf(defaultIfNull(this.get("successCount"), "-1").toString()); + return Integer.valueOf(defaultIfNull(this.get("successCount"), "0").toString()); } /** * 功能描述:
@@ -208,6 +208,6 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity { * @Date: 2022/12/4 20:39 */ public Integer getErrorCount() { - return Integer.valueOf(defaultIfNull(this.get("errorCount"), "-1").toString()); + return Integer.valueOf(defaultIfNull(this.get("errorCount"), "0").toString()); } } 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 210264e4..c7da828e 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionLogService.java @@ -62,6 +62,7 @@ import static com.ibeetl.jlw.enums.QuestionLogAddTypeEnum.*; import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE; import static com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum.isOneQuestion; import static java.lang.Math.abs; +import static java.lang.Math.toIntExact; import static java.math.BigDecimal.ZERO; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.joining; @@ -464,12 +465,14 @@ public class GeneralQuestionLogService extends CoreBaseService logList = getValuesBySettingIds(questionSettingId.toString()); + GeneralQuestionSetting questionSetting = generalQuestionSettingService.getInfo(questionSettingId); + + if (CollectionUtil.isNotEmpty(logList) && questionSetting != null) { + String logIds = logList.stream().map(GeneralQuestionLog::getGeneralQuestionLogId).map(Objects::toString).collect(joining(",")); + addQuestionLogSummary(logIds, logList, student, questionSetting.getGeneralQuestionSettingName(), questionSetting.getBusinessType(), questionSetting.getGeneralQuestionSettingType()); + } + } + + private List getValuesBySettingIds(String settingIds) { + GeneralQuestionLogQuery logQuery = new GeneralQuestionLogQuery(); + logQuery.setGeneralQuestionSettingIdPlural(settingIds); + logQuery.setGeneralQuestionLogStatus(1); + return generalQuestionLogDao.getValuesByQueryNotWithPermission(logQuery); + } + /** * 功能描述:
* 题目日志信息,分析汇总到某张表里 @@ -803,7 +834,9 @@ public class GeneralQuestionLogService extends CoreBaseService idsSet = new HashSet<>(); // 获取最大的完成时间 - GeneralQuestionLog maxFinish = logList.stream().max((o1, o2) -> Math.toIntExact(o1.getGeneralQuestionLogFinishTime() - o2.getGeneralQuestionLogFinishTime())) + + GeneralQuestionLog maxFinish = logList.stream() + .max((o1, o2) -> toIntExact(defaultIfNull(o1.getGeneralQuestionLogFinishTime(), 0L) - defaultIfNull(o2.getGeneralQuestionLogFinishTime(), 0L))) .get(); for (GeneralQuestionLog questionLog : logList) { diff --git a/web/src/main/java/com/ibeetl/jlw/service/QuestionLogSummaryService.java b/web/src/main/java/com/ibeetl/jlw/service/QuestionLogSummaryService.java index eaec7b6c..f748d4d7 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/QuestionLogSummaryService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/QuestionLogSummaryService.java @@ -404,7 +404,7 @@ public class QuestionLogSummaryService extends CoreBaseService - * 附件作业的统计分析接口 + * 附件作业的统计分析接口,也支持其他类型的 * * @param query * @return {@link PageQuery< QuestionLogSummaryHomeworkFileAnalysisVO>} @@ -412,6 +412,8 @@ public class QuestionLogSummaryService extends CoreBaseService homeworkFileAnalysisPageQuery(PageQuery query) { - return questionLogSummaryDao.homeworkFileAnalysisPageQuery(query); + PageQuery pageQuery = questionLogSummaryDao.homeworkFileAnalysisPageQuery(query); + dictParser(pageQuery.getList()); + return pageQuery; } } 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 4f3b0d6f..70d8eb3f 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -18,6 +18,7 @@ import com.ibeetl.admin.core.web.JsonReturnCode; import com.ibeetl.jlw.dao.ResourcesQuestionSnapshotDao; import com.ibeetl.jlw.dao.StudentDao; import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionLogDao; +import com.ibeetl.jlw.dao.TeacherOpenCourseQuestionSettingDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.QuestionLogAddDTO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionLogAnswerLockVO; @@ -54,6 +55,7 @@ import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUserId; import static com.ibeetl.jlw.enums.QuestionBusinessTypeEnum.FROM_OPEN_COURSE; import static com.ibeetl.jlw.enums.QuestionLogAddTypeEnum.*; import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.CHAPTER_EXERCISE; +import static com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum.HOMEWORK_FILE; import static com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum.isOneQuestion; import static java.lang.Math.abs; import static java.lang.Math.toIntExact; @@ -77,6 +79,8 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService logList = getValuesBySettingIds(questionSettingId.toString()); - TeacherOpenCourseQuestionSetting questionSetting = teacherOpenCourseQuestionSettingService.getInfo(questionSettingId); - - if (CollectionUtil.isNotEmpty(logList) && questionSetting != null) { - String logIds = logList.stream().map(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionLogId).map(Objects::toString).collect(joining(",")); - addQuestionLogSummary(logIds, logList, student, questionSetting.getTeacherOpenCourseQuestionSettingName(), questionSetting.getTeacherOpenCourseQuestionSettingType()); - } + return; } + List logList = getValuesBySettingIds(questionSettingId.toString()); + TeacherOpenCourseQuestionSetting questionSetting = teacherOpenCourseQuestionSettingService.getInfo(questionSettingId); + + if (CollectionUtil.isNotEmpty(logList) && questionSetting != null) { + String logIds = logList.stream().map(TeacherOpenCourseQuestionLog::getTeacherOpenCourseQuestionLogId).map(Objects::toString).collect(joining(",")); + addQuestionLogSummary(logIds, logList, student, questionSetting.getTeacherOpenCourseQuestionSettingName(), questionSetting.getTeacherOpenCourseQuestionSettingType()); + } } /** @@ -669,7 +678,12 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService toIntExact(o1.getTeacherOpenCourseQuestionLogFinishTime() - o2.getTeacherOpenCourseQuestionLogFinishTime())) + .max((o1, o2) -> toIntExact(defaultIfNull(o1.getTeacherOpenCourseQuestionLogFinishTime(), 0L) - defaultIfNull(o2.getTeacherOpenCourseQuestionLogFinishTime(), 0L))) .get(); for (TeacherOpenCourseQuestionLog questionLog : logList) { @@ -688,8 +702,8 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService