错题库收藏

beetlsql3-dev
Mlxa0324 2 years ago
parent 371f7b913e
commit 362b6e28c5

@ -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);
}
}

@ -180,6 +180,10 @@ public class TeacherOpenCourseQuestionLog extends BaseEntity {
this.setTeacherOpenCourseQuestionLogFinishTime(null);
}
public void clearAnswer() {
this.setQuestionAnswer(null);
}
/**
* : <br>
*

@ -344,6 +344,8 @@ public class TeacherOpenCourseQuestionLogWrong extends BaseEntity{
public void setUserId(Long userId){
this.userId = userId;
}
public void clearAnswer() {
this.setQuestionAnswer(null);
}
}

@ -714,6 +714,8 @@ public class GeneralQuestionSettingService extends CoreBaseService<GeneralQuesti
logQuery.setGeneralQuestionSettingId(questionSettingId);
List<GeneralQuestionLog> list = generalQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
list.forEach(GeneralQuestionLog::clearAnswer);
if (ObjectUtil.isNotEmpty(list)) {
return BeanUtil.copyToList(list, GeneralResourcesQuestionSnapshot.class);
}

@ -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<Teacher
return BeanUtil.copyProperties(log, FileQuestionLogListVO.class);
}
/**
*
*
* @param questionLogId
* @return
*/
public TuckOrErrorListQuestionAnswer getTuckOrErrorListQuestionAnswer(Long questionLogId) {
TeacherOpenCourseQuestionLogQuery logQuery = new TeacherOpenCourseQuestionLogQuery();
logQuery.setTeacherOpenCourseQuestionLogId(questionLogId);
logQuery.setQuestionLogAddType(FINALLY_SUBMIT);
List<TeacherOpenCourseQuestionLog> logList = getValuesByQueryNotWithPermission(logQuery);
Optional<TeacherOpenCourseQuestionLog> 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<TeacherOpenCourseQuestionLog> getQuestionLogByLogWrongList(List<TeacherOpenCourseQuestionLogWrong> 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);
}
}

@ -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<TeacherOpenCourseQuestionLogWrong> implements DeleteResourcesBy{
@Autowired private TeacherOpenCourseQuestionLogWrongDao teacherOpenCourseQuestionLogWrongDao;
@Autowired @Lazy
private TeacherOpenCourseQuestionLogService teacherOpenCourseQuestionLogService;
public PageQuery<TeacherOpenCourseQuestionLogWrong>queryByCondition(PageQuery query){
PageQuery ret = teacherOpenCourseQuestionLogWrongDao.queryByCondition(query);
@ -83,6 +89,33 @@ public class TeacherOpenCourseQuestionLogWrongService extends CoreBaseService<Te
}
}
/**
*
* @param ids
*/
public void deleteTeacherOpenCourseQuestionLogWrongWithStudent(String ids) {
deleteTeacherOpenCourseQuestionLogWrong(ids);
Student student = getStudent();
// 不是学生身份,不操作做题日志数据
if (student != null) {
List<TeacherOpenCourseQuestionLogWrong> logWrongList = teacherOpenCourseQuestionLogWrongDao.selectByIds(Arrays.asList(ids.split(",")));
List<TeacherOpenCourseQuestionLog> questionLogList = teacherOpenCourseQuestionLogService.getQuestionLogByLogWrongList(logWrongList, student.getStudentId());
if (CollectionUtil.isNotEmpty(questionLogList)) {
// 修改做题日志的错题状态
List<TeacherOpenCourseQuestionLog> 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

@ -900,7 +900,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService<Tea
* @Author: 87966
* @Date: 2022/12/1 9:27
*/
public List<ResourcesQuestionSnapshot> questionDetailTest(@NotNull(message = "题目配置ID不能为空") Long questionSettingId,
public List<TeacherOpenCourseQuestionLog> 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<Tea
logQuery.setQuestionLogAddType(FINALLY_SUBMIT);
List<TeacherOpenCourseQuestionLog> 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<TeacherOpenCourseQuestionLogWrong> list = teacherOpenCourseQuestionLogWrongService.getValuesByQuery(wrongQuery);
// TeacherOpenCourseQuestionLogWrongQuery wrongQuery = new TeacherOpenCourseQuestionLogWrongQuery();
// wrongQuery.setStudentId(studentId);
// wrongQuery.setTeacherOpenCourseQuestionLogStatus(1);
// wrongQuery.setTeacherOpenCourseQuestionSettingId(questionSettingId);
// List<TeacherOpenCourseQuestionLogWrong> 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<TeacherOpenCourseQuestionLog> list = teacherOpenCourseQuestionLogService.getValuesByQueryNotWithPermission(logQuery);
list.forEach(TeacherOpenCourseQuestionLog::clearAnswer);
if (ObjectUtil.isNotEmpty(list)) {
return BeanUtil.copyToList(list, ResourcesQuestionSnapshot.class);
return list;
}
}
return Collections.emptyList();
}
/**
* : <br>
*

@ -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()));
}
}

@ -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());

Loading…
Cancel
Save