|
@@ -2,45 +2,67 @@
|
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
<mapper namespace="com.ghsc.partybuild.mapper.TestExamTestCQuery">
|
|
|
<select id="selectePracticeQuestions" resultType="java.util.HashMap">
|
|
|
+ SELECT * FROM (
|
|
|
+ SELECT ROW_NUMBER() OVER (ORDER BY DBMS_RANDOM.VALUE) AS row_num,
|
|
|
+ ques.TEST_QUESTION_ID,
|
|
|
+ ques.BASE_QUESTION_TYPE_ID,
|
|
|
+ ques.CONTENT,
|
|
|
+ ques.NOTE,
|
|
|
+ ques.IS_VAILD,
|
|
|
+ ques.CREATETIME,
|
|
|
+ ques.CREATEUSERID,
|
|
|
+ ques.CREATEUSERNAME,
|
|
|
+ ques.UPDATETIME,
|
|
|
+ ques.UPDATEUSERID,
|
|
|
+ ques.UPDATEUSERNAME,
|
|
|
+ ques.DIFFICULTY,
|
|
|
+ tp.NAME,
|
|
|
+ tp.OBJECTIVE_TYPE,
|
|
|
+ tp.SCORE,
|
|
|
+ '[' || qans.answers || ']' AS ANSWERS
|
|
|
+ FROM TEST_QUESTION ques
|
|
|
+ INNER JOIN TEST_BASE_QUESTION_TYPE tp
|
|
|
+ ON ques.BASE_QUESTION_TYPE_ID = tp.BASE_QUESTION_TYPE_ID
|
|
|
+ INNER JOIN (
|
|
|
+ SELECT TEST_QUESTION_ID,
|
|
|
+ LISTAGG(
|
|
|
+ '{"PROVID_ANSWER_ID":"' || ans.provid_answer_id || '","ANSWER_NAME":"' || ans.ANSWER_NAME || '","ORDER":' || ans.orderBy || ',"ISRIGHT":' || NVL(ans.ISRIGHT, 0) || '}',
|
|
|
+ ','
|
|
|
+ ) WITHIN GROUP (ORDER BY ans.orderBy) AS answers
|
|
|
+ FROM test_question_provid_answer ans
|
|
|
+ GROUP BY ans.TEST_QUESTION_ID
|
|
|
+ ) qans
|
|
|
+ ON ques.TEST_QUESTION_ID = qans.TEST_QUESTION_ID
|
|
|
+ WHERE ques.TEST_QUESTION_ID IN (
|
|
|
+ SELECT tl.TEST_QUESTION_ID
|
|
|
+ FROM TEST_QUESTION_LIBARY_QUESTION tl
|
|
|
+ WHERE tl.TEST_QUESTION_LIBARY_ID IN (
|
|
|
+ WITH RECURSIVE libary_cte(TEST_QUESTION_LIBARY_ID) AS (
|
|
|
+ SELECT a.TEST_QUESTION_LIBARY_ID
|
|
|
+ FROM TEST_QUESTION_LIBARY a
|
|
|
+ WHERE a.TEST_QUESTION_LIBARY_ID
|
|
|
+ <foreach collection="labaryidList" item="id" open="in (" close=")" separator=",">
|
|
|
+ #{ id }
|
|
|
+ </foreach>
|
|
|
+ UNION ALL
|
|
|
+ SELECT e.TEST_QUESTION_LIBARY_ID
|
|
|
+ FROM TEST_QUESTION_LIBARY e
|
|
|
+ INNER JOIN libary_cte lcte
|
|
|
+ ON lcte.TEST_QUESTION_LIBARY_ID = e.PARENT_ID
|
|
|
+ )
|
|
|
+ SELECT TEST_QUESTION_LIBARY_ID FROM libary_cte
|
|
|
+ )
|
|
|
+ )
|
|
|
+ AND ques.BASE_QUESTION_TYPE_ID
|
|
|
+ <foreach collection="typeList" item="id" open="in (" close=")" separator=",">
|
|
|
+ #{ id }
|
|
|
+ </foreach>
|
|
|
+ ORDER BY DBMS_RANDOM.VALUE
|
|
|
+ ) rs
|
|
|
+ WHERE row_num <![CDATA[ <= ]]> #{ questionnumber }
|
|
|
+ </select>
|
|
|
|
|
|
- select * from (
|
|
|
- SELECT ROW_NUMBER() OVER (ORDER BY RAND()) AS row_num, ques.TEST_QUESTION_ID, ques.BASE_QUESTION_TYPE_ID, ques.CONTENT, ques.NOTE, ques.IS_VAILD, ques.CREATETIME,
|
|
|
- ques.CREATEUSERID, ques.CREATEUSERNAME, ques.UPDATETIME, ques.UPDATEUSERID, ques.UPDATEUSERNAME, ques.DIFFICULTY,
|
|
|
- tp.NAME ,tp.OBJECTIVE_TYPE, tp.SCORE,concat('[',qans.answers,']') ANSWERS FROM TEST_QUESTION ques
|
|
|
|
|
|
- inner join TEST_BASE_QUESTION_TYPE tp on ques.BASE_QUESTION_TYPE_ID=tp.BASE_QUESTION_TYPE_ID
|
|
|
- inner join (
|
|
|
- select TEST_QUESTION_ID, GROUP_CONCAT(
|
|
|
- concat('{"PROVID_ANSWER_ID":"',ans.provid_answer_id,'","ANSWER_NAME":"' , ans.ANSWER_NAME , '","ORDER":' ,
|
|
|
- ans.orderBy , ',"ISRIGHT":' , ifnull(ans.ISRIGHT,0) , '}')) as
|
|
|
- answers
|
|
|
- from test_question_provid_answer ans
|
|
|
- group by ans.TEST_QUESTION_ID
|
|
|
- order by ans.orderBy
|
|
|
- ) qans on ques.TEST_QUESTION_ID=qans.TEST_QUESTION_ID
|
|
|
- where ques.TEST_QUESTION_ID in(select tl.TEST_QUESTION_ID from TEST_QUESTION_LIBARY_QUESTION tl where
|
|
|
- tl.TEST_QUESTION_LIBARY_ID in(
|
|
|
- WITH RECURSIVE libary_cte AS (
|
|
|
- SELECT a.TEST_QUESTION_LIBARY_ID
|
|
|
- FROM TEST_QUESTION_LIBARY a
|
|
|
- where a.TEST_QUESTION_LIBARY_ID
|
|
|
- <foreach collection="labaryidList" item="id" open="in (" close=")" separator=",">
|
|
|
- #{ id }
|
|
|
- </foreach>
|
|
|
- UNION ALL
|
|
|
- SELECT e.TEST_QUESTION_LIBARY_ID
|
|
|
- FROM TEST_QUESTION_LIBARY e
|
|
|
- INNER JOIN libary_cte lcte ON lcte.TEST_QUESTION_LIBARY_ID = e.PARENT_ID
|
|
|
- )
|
|
|
- select *from libary_cte
|
|
|
- ) )
|
|
|
- and ques.BASE_QUESTION_TYPE_ID
|
|
|
- <foreach collection="typeList" item="id" open="in (" close=")" separator=",">
|
|
|
- #{ id }
|
|
|
- </foreach>
|
|
|
- ORDER BY RAND()
|
|
|
- ) rs where row_num <![CDATA[ <= ]]> #{ questionnumber }
|
|
|
- </select>
|
|
|
<select id="selecteUserTestPaperQuestions" resultType="java.util.HashMap">
|
|
|
select TS.TEST_QUESTION_ID, TS.BASE_QUESTION_TYPE_ID, TS.CONTENT, TS.NOTE, TS.IS_VAILD, TS.CREATETIME,
|
|
|
TS.CREATEUSERID, TS.CREATEUSERNAME, TS.UPDATETIME, TS.UPDATEUSERID, TS.UPDATEUSERNAME, TS.DIFFICULTY,tp.NAME,tp.OBJECTIVE_TYPE, pqset.SCORE,
|
|
@@ -49,14 +71,18 @@
|
|
|
inner join TEST_QUESTION ts on pqset.test_question_Id=ts.test_question_Id
|
|
|
inner join TEST_BASE_QUESTION_TYPE tp on ts.BASE_QUESTION_TYPE_ID=tp.BASE_QUESTION_TYPE_ID
|
|
|
inner join (
|
|
|
- select TEST_QUESTION_ID, GROUP_CONCAT(
|
|
|
- concat('{"PROVID_ANSWER_ID":"',ans.provid_answer_id,'","ANSWER_NAME":"' , ans.ANSWER_NAME , '","ORDER":' , ans.orderBy , ',"ISRIGHT":' , ifnull(ans.ISRIGHT,0) , '}')) as answers
|
|
|
+ select TEST_QUESTION_ID, LISTAGG(
|
|
|
+ '{"PROVID_ANSWER_ID":"' || ans.provid_answer_id || '","ANSWER_NAME":"' || ans.ANSWER_NAME || '","ORDER":' || ans.orderBy || ',"ISRIGHT":' || NVL(ans.ISRIGHT, 0) || '}',
|
|
|
+ ','
|
|
|
+ ) WITHIN GROUP (ORDER BY ans.orderBy) AS answers
|
|
|
from test_question_provid_answer ans
|
|
|
group by ans.TEST_QUESTION_ID
|
|
|
) qans on ts.TEST_QUESTION_ID=qans.TEST_QUESTION_ID
|
|
|
left join (
|
|
|
- select TEST_QUESTION_ID, GROUP_CONCAT(
|
|
|
- concat('{"useranswers":"' , ua.answers , '","ordber_by":' , ua.ordber_by , '}')) as useranswers
|
|
|
+ select TEST_QUESTION_ID, LISTAGG(
|
|
|
+ '{"useranswers":"' || ua.answers || '","ordber_by":' || ua.ordber_by || '}',
|
|
|
+ ','
|
|
|
+ ) WITHIN GROUP (ORDER BY ua.ordber_by) AS useranswers
|
|
|
from test_user_testinstance ut
|
|
|
inner join test_onlinetest_man man on ut.ONLINE_TESTMAN_ID=man.ONLINE_TESTMAN_ID
|
|
|
inner join test_user_testinstance_answer ua on ut.user_test_instance_id =ua.user_test_instance_id
|