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 bd36232c..ff76c0f1 100644
--- a/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java
+++ b/web/src/main/java/com/ibeetl/jlw/entity/GeneralQuestionLog.java
@@ -195,4 +195,8 @@ public class GeneralQuestionLog extends BaseEntity{
public Integer getErrorCount() {
return Integer.valueOf(defaultIfNull(this.get("errorCount"), "0").toString());
}
+
+ public void clearAnswer() {
+ this.setQuestionAnswer(null);
+ }
}
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 73b5a02e..8dbbbd09 100644
--- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java
+++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLog.java
@@ -180,6 +180,10 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity {
this.setTeacherOpenCourseQuestionLogFinishTime(null);
}
+ public void clearAnswer() {
+ this.setQuestionAnswer(null);
+ }
+
/**
* 功能描述:
* 设置做对的正确数量
diff --git a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLogWrong.java b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLogWrong.java
index 9756dcd2..eb664203 100644
--- a/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLogWrong.java
+++ b/web/src/main/java/com/ibeetl/jlw/entity/TeacherOpenCourseQuestionLogWrong.java
@@ -344,6 +344,8 @@ public class TeacherOpenCourseQuestionLogWrong extends BaseEntity{
public void setUserId(Long userId){
this.userId = userId;
}
-
+ public void clearAnswer() {
+ this.setQuestionAnswer(null);
+ }
}
diff --git a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java
index 7029e5f9..a38920c3 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java
@@ -714,6 +714,8 @@ public class GeneralQuestionSettingService extends CoreBaseService list = generalQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
+ list.forEach(GeneralQuestionLog::clearAnswer);
+
if (ObjectUtil.isNotEmpty(list)) {
return BeanUtil.copyToList(list, GeneralResourcesQuestionSnapshot.class);
}
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 9c92d976..9170917a 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogService.java
@@ -31,6 +31,8 @@ import com.ibeetl.jlw.enums.ResourcesQuestionSnapshotFromTypeEnum;
import com.ibeetl.jlw.web.query.QuestionLogSummaryQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogQuery;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery;
+import lombok.AllArgsConstructor;
+import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.beetl.sql.core.SqlId;
@@ -1168,4 +1170,58 @@ public class TeacherOpenCourseQuestionLogService extends CoreBaseService logList = getValuesByQueryNotWithPermission(logQuery);
+
+ Optional optional = logList.stream().filter(item -> item.getIsTuck() || item.getIsErrorFavorite()).findFirst();
+ TeacherOpenCourseQuestionLog questionLog = optional.get();
+
+ if (questionLog != null) {
+ return new TuckOrErrorListQuestionAnswer(questionLog.getQuestionAnswer(), questionLog.getQuestionAnalysis());
+ }
+
+ return null;
+ }
+
+ /**
+ * 题目日志的答案和题目解析
+ */
+ @Data
+ @AllArgsConstructor
+ protected class TuckOrErrorListQuestionAnswer {
+ private String questionAnswer;
+ private String questionAnalysis;
+ }
+
+ /**
+ * 通过学生ID和错题库列表,查询做题日志的列表
+ *
+ * @param logWrongList 错题列表
+ * @param studentId 学生ID
+ * @return
+ */
+ public List getQuestionLogByLogWrongList(List logWrongList, Long studentId) {
+ if (CollectionUtil.isEmpty(logWrongList)) {
+ return Collections.emptyList();
+ }
+
+ final String questionSnapshotIds = listJoin(logWrongList, TeacherOpenCourseQuestionLogWrong::getResourcesQuestionSnapshotId);
+ final String questionSettingIds = listJoin(logWrongList, TeacherOpenCourseQuestionLogWrong::getTeacherOpenCourseQuestionSettingId);
+
+ TeacherOpenCourseQuestionLogQuery logQuery = new TeacherOpenCourseQuestionLogQuery();
+ logQuery.setResourcesQuestionSnapshotIdPlural(questionSnapshotIds);
+ logQuery.setTeacherOpenCourseQuestionSettingIdPlural(questionSettingIds);
+ logQuery.setStudentId(studentId);
+ return getValuesByQueryNotWithPermission(logQuery);
+ }
}
diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogWrongService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogWrongService.java
index 03eae7ad..157a918d 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogWrongService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionLogWrongService.java
@@ -13,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.Student;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLog;
import com.ibeetl.jlw.entity.TeacherOpenCourseQuestionLogWrong;
import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionLogWrongQuery;
@@ -26,6 +27,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.beetl.sql.core.SqlId;
import org.beetl.sql.core.engine.PageQuery;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@@ -36,6 +38,7 @@ import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
+import static cn.jlw.util.CacheUserUtil.getStudent;
import static com.ibeetl.admin.core.util.ExcelUtil.getCellFormatValue;
import static java.util.stream.Collectors.joining;
@@ -48,9 +51,12 @@ import static java.util.stream.Collectors.joining;
@Transactional
@Validated
@Slf4j
+@Deprecated
public class TeacherOpenCourseQuestionLogWrongService extends CoreBaseService implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseQuestionLogWrongDao teacherOpenCourseQuestionLogWrongDao;
+ @Autowired @Lazy
+ private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
public PageQueryqueryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionLogWrongDao.queryByCondition(query);
@@ -83,6 +89,33 @@ public class TeacherOpenCourseQuestionLogWrongService extends CoreBaseService logWrongList = teacherOpenCourseQuestionLogWrongDao.selectByIds(Arrays.asList(ids.split(",")));
+ List questionLogList = teacherOpenCourseQuestionLogService.getQuestionLogByLogWrongList(logWrongList, student.getStudentId());
+
+ if (CollectionUtil.isNotEmpty(questionLogList)) {
+ // 修改做题日志的错题状态
+ List updateLogPOList = questionLogList.stream().map(item -> {
+ TeacherOpenCourseQuestionLog questionLog = new TeacherOpenCourseQuestionLog();
+ questionLog.setTeacherOpenCourseQuestionLogId(item.getTeacherOpenCourseQuestionLogId());
+ questionLog.setIsErrorFavorite(false);
+ return questionLog;
+ }).collect(Collectors.toList());
+ teacherOpenCourseQuestionLogService.upsertBatchByTemplate(updateLogPOList);
+ }
+ }
+ }
+
/**
* 根据题目配置ID 批量真删除
* @param settingIds
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 36e5764e..1cc6042b 100644
--- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java
+++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java
@@ -900,7 +900,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService questionDetailTest(@NotNull(message = "题目配置ID不能为空!") Long questionSettingId,
+ public List questionDetailTest(@NotNull(message = "题目配置ID不能为空!") Long questionSettingId,
@NotNull(message = "练习类型不能为空!") TuckOrErrorEnum tuckOrError, @NotNull(message = "改接口只能学生访问") Student student) {
final Long studentId = student.getStudentId();
@@ -915,28 +915,45 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService list = teacherOpenCourseQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
+ list.forEach(TeacherOpenCourseQuestionLog::clearAnswer);
+
if (ObjectUtil.isNotEmpty(list)) {
- return BeanUtil.copyToList(list, ResourcesQuestionSnapshot.class);
+ return list;
}
}
// 错题库,本来是一张表管理的。
else if(ERROR_TEST.equals(tuckOrError)) {
// logQuery.setIsErrorFavorite(true);
- TeacherOpenCourseQuestionLogWrongQuery wrongQuery = new TeacherOpenCourseQuestionLogWrongQuery();
- wrongQuery.setStudentId(studentId);
- wrongQuery.setTeacherOpenCourseQuestionLogStatus(1);
- wrongQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId);
- List list = teacherOpenCourseQuestionLogWrongService.getValuesByQuery(wrongQuery);
+// TeacherOpenCourseQuestionLogWrongQuery wrongQuery = new TeacherOpenCourseQuestionLogWrongQuery();
+// wrongQuery.setStudentId(studentId);
+// wrongQuery.setTeacherOpenCourseQuestionLogStatus(1);
+// wrongQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId);
+// List list = teacherOpenCourseQuestionLogWrongService.getValuesByQuery(wrongQuery);
+//
+// list.forEach(TeacherOpenCourseQuestionLogWrong::clearAnswer);
+// if (ObjectUtil.isNotEmpty(list)) {
+// return BeanUtil.copyToList(list, ResourcesQuestionSnapshot.class);
+// }
+
+ logQuery.setIsErrorFavorite(true);
+ logQuery.setStudentId(studentId);
+ logQuery.setTeacherOpenCourseQuestionLogStatusPlural("1,2");
+ logQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId);
+ logQuery.setQuestionLogAddType(FINALLY_SUBMIT);
+ List list = teacherOpenCourseQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
+
+ list.forEach(TeacherOpenCourseQuestionLog::clearAnswer);
if (ObjectUtil.isNotEmpty(list)) {
- return BeanUtil.copyToList(list, ResourcesQuestionSnapshot.class);
+ return list;
}
}
return Collections.emptyList();
}
+
/**
* 功能描述:
* 分析汇总
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 67977a0b..f64acafb 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogController.java
@@ -1,7 +1,6 @@
package com.ibeetl.jlw.web;
import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.date.DateUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -329,6 +328,17 @@ public class TeacherOpenCourseQuestionLogController extends BaseController {
return JsonResult.success();
}
+ /**
+ * 通过日志ID获取答案(仅限于错误或收藏夹)
+ * @param questionLogId 题目日志ID
+ * @return
+ */
+ @PostMapping(API + "/getTuckOrErrorListQuestionAnswer.do")
+ @ResponseBody
+ public JsonResult getTuckOrErrorListQuestionAnswer(Long questionLogId, @SCoreUser CoreUser coreUser) {
+ return JsonResult.success(teacherOpenCourseQuestionLogService.getTuckOrErrorListQuestionAnswer(questionLogId));
+ }
+
/**
* 教师端-做题日志导出
* @param condition 日志记录查询条件
@@ -569,5 +579,4 @@ public class TeacherOpenCourseQuestionLogController extends BaseController {
return JsonResult.success(teacherOpenCourseQuestionLogService.getHomeWorkLogExportPageList(teacherOpenCourseQuestionSettingId.getPageQuery()));
}
-
}
diff --git a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogWrongController.java b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogWrongController.java
index 054b4032..4af76839 100644
--- a/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogWrongController.java
+++ b/web/src/main/java/com/ibeetl/jlw/web/TeacherOpenCourseQuestionLogWrongController.java
@@ -50,6 +50,7 @@ import static cn.jlw.util.CacheUserUtil.getStudent;
@RestController
@Validated
+@Deprecated
public class TeacherOpenCourseQuestionLogWrongController{
private final Log log = LogFactory.getLog(this.getClass());