|
|
@@ -411,5 +411,86 @@
|
|
|
AND z2.courseId = #{courseId}
|
|
|
</if>
|
|
|
</select>
|
|
|
+ <select id="getCourseQuesCountList" resultType="java.util.Map">
|
|
|
+ SELECT
|
|
|
+ ci.COURSE_ID AS courseId,
|
|
|
+ ci.COURSE_NAME AS courseName,
|
|
|
+ tt1.subjectiveQuesCount AS subjectiveQuesCount,
|
|
|
+ tt1.externalQuesCount AS externalQuesCount
|
|
|
+ FROM (
|
|
|
+ select ci1.*
|
|
|
+ from COURSE_INFO ci1
|
|
|
+ WHERE ci1.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ <if test="courseIdList !=null and courseIdList.size()>0">
|
|
|
+ and ci1.COURSE_ID in
|
|
|
+ <foreach collection=" courseIdList" close=")" index="index" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ )ci
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- ci.COURSE_ID AS courseId,
|
|
|
+ -- cc.ID AS chapterId,
|
|
|
+ -- cch.ID AS hourId,
|
|
|
+ -- tep."id" AS tepId,
|
|
|
+ -- quesCount.subjectiveQuesCount AS subjectiveQuesCount,
|
|
|
+ -- quesCount.externalQuesCount AS externalQuesCount
|
|
|
+ ci.COURSE_ID AS courseId,
|
|
|
+ IFNULL(sum(quesCount.subjectiveQuesCount),0) AS subjectiveQuesCount,
|
|
|
+ IFNULL(sum(quesCount.externalQuesCount),0) AS externalQuesCount
|
|
|
+ FROM COURSE_INFO ci
|
|
|
+ LEFT JOIN COURSE_CHAPTER cc ON ci.COURSE_ID =cc.COURSE_ID AND cc.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ LEFT JOIN COURSE_CLASSHOUR cch ON cc.ID=cch.CHAPTER_ID AND cch.DELETE_FLAG ='NOT_DELETE'
|
|
|
+ LEFT JOIN COURSE_RELATE cr ON cr.MAIN_ID =cch.ID AND cr.FUNC_TYPE IN ('4','5') AND cr.INFO_TYPE ='0' AND cr.CHAPTERHOUR_TYPE ='1'
|
|
|
+ LEFT JOIN "t_exam_paper" tep ON tep."id" =cr.RELATE_ID AND tep.deleted=0
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ -- tep."id" AS paperId,
|
|
|
+ -- tq."id" AS quesId,
|
|
|
+ -- tq."question_type" AS quesType
|
|
|
+ tep."id" AS paperId,
|
|
|
+ IFNULL(count(CASE WHEN tq."question_type" IN ('4','5') THEN 1 END),0) AS subjectiveQuesCount,
|
|
|
+ IFNULL(count(CASE WHEN tq."question_type" IN ('1','2','3') THEN 1 END),0) AS externalQuesCount
|
|
|
+ FROM "t_exam_paper" tep
|
|
|
+ LEFT JOIN(
|
|
|
+ WITH group_data AS (
|
|
|
+ SELECT
|
|
|
+ ep.id AS paper_id,
|
|
|
+ ep.name AS paper_name,
|
|
|
+ ttc.id AS content_id,
|
|
|
+ ttc.content,
|
|
|
+ LEVEL - 1 AS group_index,
|
|
|
+ JSON_VALUE(ttc.content, '$[' || (LEVEL - 1) || '].name') AS group_name,
|
|
|
+ JSON_QUERY(ttc.content, '$[' || (LEVEL - 1) || '].questionItems') AS question_items
|
|
|
+ FROM t_exam_paper ep
|
|
|
+ JOIN t_text_content ttc ON ep.frame_text_content_id = ttc.id
|
|
|
+ CONNECT BY LEVEL <= JSON_LENGTH(ttc.content)
|
|
|
+ AND PRIOR ep.id = ep.id
|
|
|
+ AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ gd.paper_id,
|
|
|
+ gd.paper_name,
|
|
|
+ gd.group_name,
|
|
|
+ JSON_VALUE(gd.question_items, '$[' || (item_lvl - 1) || '].id') AS question_id,
|
|
|
+ JSON_VALUE(gd.question_items, '$[' || (item_lvl - 1) || '].itemOrder') AS item_order
|
|
|
+ FROM group_data gd,
|
|
|
+ (SELECT LEVEL AS item_lvl FROM DUAL CONNECT BY LEVEL <= 10) items
|
|
|
+ WHERE JSON_VALUE(gd.question_items, '$[' || (item_lvl - 1) || '].id') IS NOT NULL
|
|
|
+ )relate ON relate.paper_id=tep."id" AND tep.deleted=0
|
|
|
+ LEFT JOIN "t_question" tq ON relate.question_id=tq."id" AND tq.deleted=0
|
|
|
+ GROUP BY tep."id"
|
|
|
+ )quesCount ON quesCount.paperId=tep.Id
|
|
|
+ where 1=1
|
|
|
+ <if test="courseIdList !=null and courseIdList.size()>0">
|
|
|
+ and ci.COURSE_ID in
|
|
|
+ <foreach collection=" courseIdList" close=")" index="index" item="item" open="(" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY ci.COURSE_ID
|
|
|
+ )tt1 ON tt1.courseId =ci.COURSE_ID
|
|
|
+ </select>
|
|
|
|
|
|
</mapper>
|