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 04bde232..8de93a61 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java @@ -1,12 +1,12 @@ package com.ibeetl.jlw.service; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.bean.copier.CopyOptions; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.BooleanUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReUtil; import cn.jlw.util.ToolUtils; import com.alibaba.fastjson.JSON; @@ -495,27 +495,27 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService valuesByQuery = getValuesByQueryNotWithPermission(query); return questionAnalysis(valuesByQuery); } /** - * 获取题目日志,信息 + * 从题目日志中,获取题目快照信息,Bean Copy方式 * @param questionSettingId 题目配置ID * @param studentId 学生ID * @return */ - private List questionAnalysisNotType(Long questionSettingId, Long studentId) { + public List questionAnalysisBySettingId2(Long questionSettingId, Long studentId) { Map> tempMap = questionAnalysis(questionSettingId, studentId); List collect = tempMap.values().stream().flatMap(Collection::stream).collect(Collectors.toList()); List result = new ArrayList<>(); - Map build = MapUtil.builder("courseInfoId", "teacherOpenCourseMergeCourseInfoId").build(); - CopyOptions copyOptions = CopyOptions.create().setFieldMapping(build); + // 循环遍历某些特殊的属性,单独映射 Optional.ofNullable(collect).ifPresent(item -> { for (TeacherOpenCourseQuestionLog questionLog : item) { - ResourcesQuestionSnapshot resourcesQuestionSnapshot = new ResourcesQuestionSnapshot(); - BeanUtil.copyProperties(questionLog, resourcesQuestionSnapshot, copyOptions); + ResourcesQuestionSnapshot resourcesQuestionSnapshot = BeanUtil.copyProperties(questionLog, ResourcesQuestionSnapshot.class); + // 学生提交过的答案 resourcesQuestionSnapshot.set("teacherOpenCourseQuestionLogAnswer", questionLog.getTeacherOpenCourseQuestionLogAnswer()); result.add(resourcesQuestionSnapshot); } @@ -545,6 +545,11 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService> questionAnalysis(@NotEmpty(message = "未查询到题目列表!") final List questionLogList) { + // 如果未查询到题目日志,返回空Map + if (ObjectUtil.isEmpty(questionLogList)) { + return MapUtil.empty(); + } + TeacherOpenCourseQuestionSettingQuery settingQuery = new TeacherOpenCourseQuestionSettingQuery(); settingQuery.setTeacherOpenCourseQuestionSettingId(questionLogList.get(0).getTeacherOpenCourseQuestionSettingId()); final TeacherOpenCourseQuestionSetting hwSetting = teacherOpenCourseQuestionSettingService.getInfo(settingQuery); @@ -555,11 +560,9 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService { - TeacherOpenCourseQuestionLog questionLog = new TeacherOpenCourseQuestionLog(); - questionLog.setResourcesQuestionSnapshotId(item.getResourcesQuestionSnapshotId()); - questionLog.setQuestionAnswer(isEndShowQa ? item.getQuestionAnswer() : ""); - questionLog.setQuestionAnalysis(isEndShowTrueFalse ? item.getQuestionAnswer(): ""); - return questionLog; + item.setQuestionAnswer(isEndShowQa ? item.getQuestionAnswer() : ""); + item.setQuestionAnalysis(isEndShowTrueFalse ? item.getQuestionAnswer(): ""); + return item; }).collect(groupingBy(TeacherOpenCourseQuestionLog::getQuestionType)); } diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java index e65e97d4..b70ef138 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java @@ -12,6 +12,7 @@ import com.ibeetl.admin.core.file.FileService; import com.ibeetl.admin.core.util.BeanCopyUtil; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.query.PageParam; +import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot; import com.ibeetl.jlw.entity.Student; import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog; import com.ibeetl.jlw.entity.dto.QuestionLogAddDTO; @@ -172,14 +173,16 @@ public class TeacherOpenCourseQuestionLogController { /** * 学生端-答题后显示答案、和分析。 + * 实体用题目快照暂存,方便前端显示 * * @param questionSettingId 题目配置ID + * @param student 学生信息 * @return */ - @PostMapping(API + "/questionAnalysisBySettingId.do") - public JsonResult> questionAnalysisBySettingId(Long questionSettingId, @TStudent Student student) { + @PostMapping(API + "/questionAnalysisBySettingId2.do") + public JsonResult> questionAnalysisBySettingId2(Long questionSettingId, @TStudent Student student) { Assert.notNull(student, "非学生身份,无法获取题目分析!"); - return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysis(questionSettingId, student.getStudentId())); + return JsonResult.success(teacherOpenCourseQuestionLogService.questionAnalysisBySettingId2(questionSettingId, student.getStudentId())); } /**