he2802 4 tahun lalu
induk
melakukan
b3b520b0a0

+ 23 - 5
zhongzheng-system/src/main/resources/mapper/modules/user/UserExamRecordMapper.xml

@@ -44,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="chapterExamId" column="chapter_exam_id"/>
         <result property="doQuestionIds" column="do_question_ids"/>
         <result property="rightQuestionIds" column="right_question_ids"/>
-        
+
         <result property="examName" column="exam_name"/>
         <result property="paperName" column="paper_name"/>
         <result property="doTime" column="do_time"/>
@@ -74,17 +74,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectDoNum" parameterType="com.zhongzheng.modules.user.bo.UserExamRecordQueryBo" resultType="Long">
         SELECT
-            COALESCE(sum( uer.num ),0) num
+            IFNULL( COUNT( DISTINCT question_id ), 0 ) num
         FROM
-        ( SELECT MAX( do_question_num ) AS num FROM user_exam_record WHERE user_id = #{userId} AND goods_id = #{goodsId} GROUP BY exam_id ) uer
+            question
+        WHERE
+            FIND_IN_SET(
+                    question_id,(
+                SELECT
+                    group_concat( uer.do_question_ids ) AS ids
+                FROM
+                    user_exam_record uer
+                WHERE
+                        record_id IN ( SELECT MAX( record_id ) record_id FROM user_exam_record WHERE user_id = #{userId} AND goods_id = #{goodsId} GROUP BY exam_id )))
 
     </select>
 
     <select id="selectRightNum" parameterType="com.zhongzheng.modules.user.bo.UserExamRecordQueryBo" resultType="Long">
         SELECT
-            COALESCE(sum( uer.num ),0) num
+            IFNULL( COUNT( DISTINCT question_id ), 0 ) num
         FROM
-            ( SELECT MAX( right_question_num ) AS num FROM user_exam_record WHERE user_id = #{userId} AND goods_id = #{goodsId} GROUP BY exam_id ) uer
+            question
+        WHERE
+            FIND_IN_SET(
+                    question_id,(
+                SELECT
+                    group_concat( uer.right_question_ids ) AS ids
+                FROM
+                    user_exam_record uer
+                WHERE
+                        record_id IN ( SELECT MAX( record_id ) record_id FROM user_exam_record WHERE user_id = #{userId} AND goods_id = #{goodsId} GROUP BY exam_id )))
 
     </select>