diff --git a/web/src/main/java/com/ibeetl/jlw/dao/ResourcesQuestionSnapshotDao.java b/web/src/main/java/com/ibeetl/jlw/dao/ResourcesQuestionSnapshotDao.java index 774eee03..0135492e 100644 --- a/web/src/main/java/com/ibeetl/jlw/dao/ResourcesQuestionSnapshotDao.java +++ b/web/src/main/java/com/ibeetl/jlw/dao/ResourcesQuestionSnapshotDao.java @@ -3,6 +3,7 @@ package com.ibeetl.jlw.dao; import com.ibeetl.jlw.entity.ResourcesQuestionSnapshot; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestSimpleInfoVO; +import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery; import org.beetl.sql.core.engine.PageQuery; import org.beetl.sql.mapper.BaseMapper; @@ -67,4 +68,14 @@ public interface ResourcesQuestionSnapshotDao extends BaseMapper getRandomMergeResourcesQuestionList(QuestionSettingDTO questionSettingDTO); + /** + * 根据题型和数量,随机取离线题库。通过开课的题目快照表和题目配置表 + * 这里用章节练习的原因是:开课中的题库,是实时同步到章节练习中的,删除或者上下架,也都会同步的。 + * @param questionSettingDTO + * @param teacherOpenCourseId 开课ID + * @param questionSettingId 题目配置ID + * @return + */ + List getRandomMergeResourcesQuestionListByChapterTestQuestion(QuestionSettingDTO questionSettingDTO, + @Param("teacherOpenCourseId") Long teacherOpenCourseId, + @Param("questionSettingId") Long questionSettingId); /** * 根据开课ID获取下面的题目类型和类型下的总题数 diff --git a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionSnapshotService.java b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionSnapshotService.java index 6e952a2a..2dfbf9aa 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionSnapshotService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/ResourcesQuestionSnapshotService.java @@ -18,6 +18,7 @@ import com.ibeetl.jlw.entity.dto.QuestionSettingDTO; import com.ibeetl.jlw.entity.dto.TeacherOpenCourseQuestionTestSimpleInfoDTO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestDetailVO; import com.ibeetl.jlw.entity.vo.TeacherOpenCourseQuestionTestSimpleInfoVO; +import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.enums.QuestionLogAddTypeEnum; import com.ibeetl.jlw.web.query.ResourcesQuestionSnapshotQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseQuestionSettingQuery; @@ -45,6 +46,7 @@ import java.util.stream.Collectors; import static cn.hutool.core.util.ArrayUtil.join; import static cn.hutool.core.util.ObjectUtil.defaultIfNull; import static cn.jlw.util.CacheUserUtil.getStudent; +import static com.ibeetl.admin.core.util.StreamUtils.listJoin; import static com.ibeetl.jlw.enums.QuestionLogAddTypeEnum.FINALLY_SUBMIT; /** @@ -95,6 +97,23 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService + * 通过对应的开课题目库ID,批量修改题目快照状态 + * + * @param ids + * @param upStatusEnum + * @Author: 87966 + * @Date: 2023/2/26 20:09 + */ + public void updateQuestionStatusByTeacherOpenCourseMergeResourcesQuestionIds(String ids, GlobalUpStatusEnum upStatusEnum){ + try { + resourcesQuestionSnapshotDao.updateQuestionStatusByTeacherOpenCourseMergeResourcesQuestionIds(ids, upStatusEnum); + } catch (Exception e) { + throw new PlatformException("批量修改题目快照的题目状态失败", e); + } + } + /** * 批量删除(通过题目配置ID) * @param settingIds @@ -390,12 +409,12 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService getOpenResourcesQuestionSnapListBySettingOptions ( - @NotNull(message = "开课题目配置ID不能为空!") final Long teacherOpenCourseQuestionSettingId, + @NotNull(message = "开课题目配置ID不能为空!") final Long questionSettingId, @NotBlank(message = "题目设置不能为空!") Collection questionSettingOptions, Map courseInfoIdPair) { List result = new ArrayList<>(); @@ -403,12 +422,13 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService randomMergeResourcesQuestionList = - teacherOpenCourseMergeResourcesQuestionDao.getRandomMergeResourcesQuestionList(questionSettingOption); + teacherOpenCourseMergeResourcesQuestionDao + .getRandomMergeResourcesQuestionListByChapterTestQuestion(questionSettingOption, null, questionSettingId); setRQNewCourseInfoId(randomMergeResourcesQuestionList, courseInfoIdPair); // 放入最终的集合中 - result.addAll(getResourcesQuestionSnapshotList(randomMergeResourcesQuestionList, teacherOpenCourseQuestionSettingId, e -> {})); + result.addAll(getResourcesQuestionSnapshotList(randomMergeResourcesQuestionList, questionSettingId, e -> {})); } return result; } @@ -559,4 +579,25 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService questionSnapshotList = getValuesByQueryNotWithPermission(query); + + String snapshotIds = listJoin(questionSnapshotList, ResourcesQuestionSnapshot::getResourcesQuestionSnapshotId); + deleteResourcesQuestionSnapshot(snapshotIds); + } } diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java index 2f3a8a77..7a465dc7 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeResourcesQuestionService.java @@ -21,6 +21,7 @@ import com.ibeetl.jlw.dao.TeacherOpenCourseMergeResourcesQuestionDao; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.QuestionSettingDTO; import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO; +import com.ibeetl.jlw.enums.GlobalUpStatusEnum; import com.ibeetl.jlw.enums.ResourcesQuestionTypeEnum; import com.ibeetl.jlw.web.query.ResourcesQuestionQuery; import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery; @@ -118,6 +119,9 @@ public class TeacherOpenCourseMergeResourcesQuestionService extends CoreBaseServ query.setQuestionStatus(questionStatus); query.set_given("questionStatus"); teacherOpenCourseMergeResourcesQuestionDao.updateGivenByIds(query); + // 修改题目快照表的状态 + resourcesQuestionSnapshotService.updateQuestionStatusByTeacherOpenCourseMergeResourcesQuestionIds( + ids, EnumUtil.likeValueOf(GlobalUpStatusEnum.class, questionStatus)); } catch (Exception e) { throw new PlatformException("批量上下架开课题目失败", e); } 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 c306a107..5719ded7 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseQuestionSettingService.java @@ -396,6 +396,7 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService settingDTOList = null; + // 指定题目IDs的时候,指定题目。但是不传题目的类型,后台这里需要处理题目分类 if(ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) { TeacherOpenCourseMergeResourcesQuestionQuery questionQuery = new TeacherOpenCourseMergeResourcesQuestionQuery(); questionQuery.setQuestionStatus(1); @@ -416,7 +417,10 @@ public class TeacherOpenCourseQuestionSettingService extends CoreBaseService