修复 随机抽题

beetlsql3-dev
Mlxa0324 2 years ago
parent cd5d8162db
commit 7cacd5c831

@ -6,7 +6,6 @@ import com.ibeetl.jlw.entity.vo.QuestionTypeCountVO;
import com.ibeetl.jlw.web.query.TeacherOpenCourseMergeResourcesQuestionQuery;
import org.beetl.sql.core.engine.PageQuery;
import org.beetl.sql.mapper.BaseMapper;
import org.beetl.sql.mapper.annotation.Param;
import org.beetl.sql.mapper.annotation.SqlResource;
import org.beetl.sql.mapper.annotation.Update;
import org.springframework.stereotype.Component;
@ -45,13 +44,9 @@ public interface TeacherOpenCourseMergeResourcesQuestionDao extends BaseMapper<T
* 线
*
* @param questionSettingDTO
* @param teacherOpenCourseId ID
* @param questionSettingId ID
* @return
*/
List<TeacherOpenCourseMergeResourcesQuestion> getRandomMergeResourcesQuestionListByChapterTestQuestion(QuestionSettingDTO questionSettingDTO,
@Param("teacherOpenCourseId") Long teacherOpenCourseId,
@Param("questionSettingId") Long questionSettingId);
<T extends QuestionSettingDTO> List<TeacherOpenCourseMergeResourcesQuestion> getRandomMergeResourcesQuestionListByChapterTestQuestion(T questionSettingDTO);
/**
* ID

@ -22,6 +22,7 @@ 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;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.assertj.core.util.Lists;
@ -420,10 +421,16 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService<ResourcesQ
List<ResourcesQuestionSnapshot> result = new ArrayList<>();
for (QuestionSettingDTO questionSettingOption : questionSettingOptions) {
// 数据放在实体类扩展中
QuestionSettingDTOExtend settingExtend = BeanUtil.copyProperties(questionSettingOption, QuestionSettingDTOExtend.class);
settingExtend.setQuestionSettingId(questionSettingId);
settingExtend.setTeacherOpenCourseId(null);
// 根据配置随机出题。这里直接设置题目的分值。
List<TeacherOpenCourseMergeResourcesQuestion> randomMergeResourcesQuestionList =
teacherOpenCourseMergeResourcesQuestionDao
.getRandomMergeResourcesQuestionListByChapterTestQuestion(questionSettingOption, null, questionSettingId);
.getRandomMergeResourcesQuestionListByChapterTestQuestion(settingExtend);
setRQNewCourseInfoId(randomMergeResourcesQuestionList, courseInfoIdPair);
@ -432,6 +439,15 @@ public class ResourcesQuestionSnapshotService extends CoreBaseService<ResourcesQ
}
return result;
}
@Data
protected class QuestionSettingDTOExtend extends QuestionSettingDTO {
private Long questionSettingId;
private Long teacherOpenCourseId;
}
/**
*
* ID

@ -782,22 +782,24 @@ getRandomMergeResourcesQuestionListByChapterTestQuestion
b.org_id
FROM
resources_question_snapshot a,
teacher_open_course_question_setting b
teacher_open_course_question_setting b,
teacher_open_course_merge_resources_question c
WHERE
1
AND a.teacher_open_course_question_setting_id = a.teacher_open_course_question_setting_id
AND question_status = 1
AND a.teacher_open_course_merge_resources_question_id = c.teacher_open_course_merge_resources_question_id
AND c.teacher_open_course_id = b.teacher_open_course_id
AND a.question_status = 1
AND c.question_status = 1
@if(!isEmpty(teacherOpenCourseId)){
AND b.teacher_open_course_id = #teacherOpenCourseId#
@}
@if(!isEmpty(questionSettingId)){
AND b.teacher_open_course_id
@// 保证至少会返回一个值,默认返回-1
= (select ifnull(max(teacher_open_course_id), '-1') from teacher_open_course_question_setting
in (select teacher_open_course_id from teacher_open_course_question_setting
where 1
and teacher_open_course_question_setting_id = #questionSettingId#
and teacher_open_course_question_setting_status = 1
limit 1)
and teacher_open_course_question_setting_status = 1 )
@}
@// 如果都为空,则不返回数据,比较保守些
@if(isEmpty(questionSettingId) && isEmpty(teacherOpenCourseId)){
@ -807,7 +809,6 @@ getRandomMergeResourcesQuestionListByChapterTestQuestion
AND b.teacher_open_course_question_setting_type = 'CHAPTER_EXERCISE'
) t
where 1=1
and t.question_status = 1
@// 题目ID优先级高
@if(!isEmpty(resourcesQuestionIdPlural)) {
and find_in_set(t.teacher_open_course_merge_resources_question_id, #resourcesQuestionIdPlural#)

Loading…
Cancel
Save