From 5fa79541a1459bb513e8f99e68d90c1316abc9e9 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Tue, 21 Mar 2023 22:54:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=80=83=E8=AF=81=E8=BE=85=E5=AF=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jlw/entity/dto/QuestionSettingDTO.java | 6 ++++ .../GeneralQuestionSettingService.java | 33 +++++++++++++++---- .../jlw/web/ResourcesQuestionController.java | 2 ++ .../query/GeneralQuestionSettingQuery.java | 5 +++ .../jlw/generalResourcesQuestionSnapshot.md | 5 +++ .../main/resources/sql/jlw/resourcesInfo.md | 2 +- .../resources/sql/jlw/resourcesQuestion.md | 7 ++-- 7 files changed, 50 insertions(+), 10 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionSettingDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionSettingDTO.java index 24798a30..4bb64dfc 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionSettingDTO.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/QuestionSettingDTO.java @@ -68,6 +68,12 @@ public class QuestionSettingDTO { */ private String resourcesQuestionIdPlural; + + /** + * 目前考证辅导 需要这个参数 + */ + private String courseInfoIdPlural; + } 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 b6066c05..805f4c6c 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/GeneralQuestionSettingService.java @@ -3,6 +3,7 @@ package com.ibeetl.jlw.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.jlw.util.EnumUtil; @@ -16,10 +17,7 @@ import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.TimeTool; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.admin.core.web.JsonReturnCode; -import com.ibeetl.jlw.dao.GeneralQuestionLogDao; -import com.ibeetl.jlw.dao.GeneralQuestionSettingDao; -import com.ibeetl.jlw.dao.GeneralResourcesQuestionSnapshotDao; -import com.ibeetl.jlw.dao.QuestionLogSummaryDao; +import com.ibeetl.jlw.dao.*; import com.ibeetl.jlw.entity.*; import com.ibeetl.jlw.entity.dto.QuestionSettingDTO; import com.ibeetl.jlw.enums.*; @@ -72,6 +70,7 @@ public class GeneralQuestionSettingService extends CoreBaseServicequeryByCondition(PageQuery query){ PageQuery ret = generalQuestionSettingDao.queryByCondition(query); @@ -576,10 +575,30 @@ public class GeneralQuestionSettingService extends CoreBaseService settingDTOList = settingQuery.getQuestionSettingOptions(); + // 用于指定课程中拉取题目。暂时查询中不会用到 + final String sourceCourseInfoIds = settingQuery.getSourceCourseInfoIds(); + + // 批量添加课程ID + settingDTOList.forEach(item -> item.setCourseInfoIdPlural(sourceCourseInfoIds)); + // 如果指定的题目IDs不为空的话,则需要对这些题目进行题目类型分组。 if(ObjectUtil.isNotEmpty(resourcesQuestionIdPlural)) { + + // 指定课程 + String joinFindCourseInfoIds = null; + if (StrUtil.isNotBlank(sourceCourseInfoIds)) { + String sourceCourseInfoIdsNew = ArrayUtil.join(sourceCourseInfoIds.split(","), "|", "_", "_"); + List findCourseInfoIds = courseInfoDao.createLambdaQuery().andLike(CourseInfo::getCourseInfoFullId, sourceCourseInfoIdsNew) + .andEq(CourseInfo::getCourseInfoStatus, 1) + .select(String.class, "course_info_id"); + + joinFindCourseInfoIds = ArrayUtil.join(findCourseInfoIds, ","); + } + ResourcesQuestionQuery questionQuery = new ResourcesQuestionQuery(); questionQuery.setQuestionStatus(1); + // 这里可能为空,就不做判断了。 + questionQuery.setCourseInfoIds(joinFindCourseInfoIds); questionQuery.setResourcesQuestionIds(resourcesQuestionIdPlural); List questionList = resourcesQuestionService.getValuesByQueryNotWithPermission(questionQuery); @@ -590,12 +609,14 @@ public class GeneralQuestionSettingService extends CoreBaseService { QuestionSettingDTO settingDTO = map.get(item.getQuestionType()); - if(ObjectUtil.isAllNotEmpty(settingDTO, item.getSingleScore())) { + if (ObjectUtil.isAllNotEmpty(settingDTO, item.getSingleScore())) { settingDTO.setSingleScore(item.getSingleScore()); } }); - if (ObjectUtil.isNotEmpty(map)) { settingDTOList = map.values(); } + if (ObjectUtil.isNotEmpty(map)) { + settingDTOList = map.values(); + } } List list = diff --git a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java index 9d86fbd4..45c3531f 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/ResourcesQuestionController.java @@ -165,6 +165,8 @@ public class ResourcesQuestionController{ Serializable courseInfoIds = defaultIfNull(condition.getCourseInfoId(), condition.getCourseInfoIds()); ResourcesCourseInfoAuthDetailsVO resourcesCourseInfoAuthDetails = universitiesCollegesJurisdictionCurriculumResourcesService.getResourcesCourseInfoAuthDetails(coreUser.getOrgId()); + + // 教师端和学生端只需要查询理论课程类,授权了的课程 Serializable ifNullCourseInfoIds = defaultIfNull(courseInfoIds, listJoin(resourcesCourseInfoAuthDetails.getTheoryCourseList(), CourseInfo::getCourseInfoId)); String ids = Arrays.stream(ifNullCourseInfoIds.toString().split(",")).map(item -> "_" + item + "_").collect(Collectors.joining("|")); diff --git a/web/src/main/java/com/ibeetl/jlw/web/query/GeneralQuestionSettingQuery.java b/web/src/main/java/com/ibeetl/jlw/web/query/GeneralQuestionSettingQuery.java index 87ed49d5..c294bd1d 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/query/GeneralQuestionSettingQuery.java +++ b/web/src/main/java/com/ibeetl/jlw/web/query/GeneralQuestionSettingQuery.java @@ -90,6 +90,11 @@ public class GeneralQuestionSettingQuery extends PageParam { */ private String resourcesQuestionIdPlural; + /** + * 用于指定课程中拉取题目。暂时查询中不会用到 + */ + private String sourceCourseInfoIds; + private String generalQuestionSettingIdPlural; private String businessIdPlural; private String generalQuestionSettingStatusPlural; diff --git a/web/src/main/resources/sql/jlw/generalResourcesQuestionSnapshot.md b/web/src/main/resources/sql/jlw/generalResourcesQuestionSnapshot.md index 6f36d686..20c3a387 100644 --- a/web/src/main/resources/sql/jlw/generalResourcesQuestionSnapshot.md +++ b/web/src/main/resources/sql/jlw/generalResourcesQuestionSnapshot.md @@ -781,8 +781,13 @@ getQuestionBySettingOptionDTO t.course_info_id as business_course_info_id @} from resources_question t + inner join course_info ta on ta.course_info_id = t.course_info_id and ta.course_info_status = 1 where 1=1 and t.question_status = 1 + @// 课程IDs + @if(!isEmpty(courseInfoIdPlural)) { + and ta.course_info_full_id regexp #sputil.joinEx(@java.util.Arrays.asList(strUtil.splitToArray(courseInfoIdPlural, ',')), '|', '_', '_')# + @} @// 题目ID优先级高 @if(!isEmpty(resourcesQuestionIdPlural)) { and find_in_set(t.resources_question_id, #resourcesQuestionIdPlural#) diff --git a/web/src/main/resources/sql/jlw/resourcesInfo.md b/web/src/main/resources/sql/jlw/resourcesInfo.md index f00eaed7..6c6ea67d 100644 --- a/web/src/main/resources/sql/jlw/resourcesInfo.md +++ b/web/src/main/resources/sql/jlw/resourcesInfo.md @@ -113,7 +113,7 @@ getValuesByQuery and t.add_type =#addType# @} @if(!isEmpty(courseInfoFullId)){ - and a.course_info_full_id like #courseInfoFullId+"%"# + and a.course_info_full_id like #'%\\_'+courseInfoFullId+'\\_%'# @} @if(isEmpty(seeSelf) && !isEmpty(userId)){ and t.user_id =#userId# diff --git a/web/src/main/resources/sql/jlw/resourcesQuestion.md b/web/src/main/resources/sql/jlw/resourcesQuestion.md index c364b673..18557b9f 100644 --- a/web/src/main/resources/sql/jlw/resourcesQuestion.md +++ b/web/src/main/resources/sql/jlw/resourcesQuestion.md @@ -520,14 +520,15 @@ getGroupQuestionTypeCountAndSelectInfo WHERE v.general_question_setting_id = ta.general_question_setting_id AND v.question_type = t.question_type AND v.question_status = 1 ) AS single_score FROM - resources_question t - LEFT JOIN general_question_setting ta ON ta.general_question_setting_id = t.resources_question_id + general_resources_question_snapshot t + LEFT JOIN course_info tb ON tb.course_info_id = t.business_course_info_id + LEFT JOIN general_question_setting ta ON ta.general_question_setting_id = t.general_question_setting_id WHERE 1 = 1 AND t.question_status = 1 @ // 课程ID @if(!isEmpty(courseInfoId)){ - AND t.course_info_id = #courseInfoId# + AND tb.course_info_full_id like #'%\\_'+courseInfoId+'\\_%'# @} @ // 开课题目配置ID @if(!isEmpty(questionSettingId)){