2 Комити 56deb9e870 ... 62382d10d2

Аутор SHA1 Порука Датум
  mingfu 62382d10d2 Merge branch 'master' of http://49.234.186.218:9000/root/ieplus пре 1 недеља
  mingfu 4b79c8ad1b 老师端有无记录的学生都要显示 пре 1 недеља

+ 10 - 10
ie-system/src/main/resources/mapper/learn/LearnAnswerMapper.xml

@@ -41,16 +41,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT ROUND(SUM(IF(a.`state` = 1, 1, 0)) * 100 / COUNT(*)) rate
           FROM `learn_answer` a
           JOIN `learn_student` ls ON ls.`student_id` = a.`student_id`
-         WHERE a.`state` > 0 AND ls.`class_id` = #{classId}
+         WHERE a.`state` > 0 AND ls.`class_id` = #{classId}
     </select>
 
     <select id="selectClassKnowledgeDetail" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">
         SELECT ls.`student_id` id, u.`nick_name` `name`
-             , COUNT(*) total, SUM(IF(a.`state` = 1, 1, 0)) `value`, COUNT(DISTINCT DATE(a.create_time)) `time`, ROUND(SUM(IF(a.`state` = 1, 1, 0)) * 100 / COUNT(*), 1) rate
-        FROM `learn_answer` a
-        JOIN `learn_student` ls ON ls.`student_id` = a.`student_id`
-        JOIN `sys_user` u ON u.`user_id` = ls.`student_id`
-        WHERE a.`state` > 0 AND ls.`class_id` = #{classId}
+             , count(a.`answer_id`) total, SUM(IF(a.`state` = 1, 1, 0)) `value`, COUNT(DISTINCT DATE(a.create_time)) `time`, ROUND(SUM(IF(a.`state` = 1, 1, 0)) * 100 / COUNT(*), 1) rate
+        FROM `learn_student` ls
+                 JOIN `sys_user` u ON u.`user_id` = ls.`student_id`
+                 left JOIN `learn_answer` a ON ls.`student_id` = a.`student_id` and a.`state` &gt; 0
+        WHERE ls.`class_id` = #{classId}
         GROUP BY ls.`student_id`, u.`nick_name`
         ORDER BY rate DESC, a.`student_id`
     </select>
@@ -77,13 +77,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectClassQuestionStats" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">
-        SELECT ls.`student_id` id, u.`nick_name` `name`, COUNT(*) total , COUNT(DISTINCT DATE(a.create_time)) `time`, SUM(IF(a.`state` = 1, 1, 0)) `value`, ROUND(SUM(IF(a.`state` = 1, 1, 0)) * 100 / COUNT(*), 1) rate
-          FROM `learn_answer` a
-          JOIN `learn_student` ls ON ls.`student_id` = a.`student_id`
+        SELECT ls.`student_id` id, u.`nick_name` `name`, COUNT(a.`answer_id`) total , COUNT(DISTINCT DATE(a.create_time)) `time`, SUM(IF(a.`state` = 1, 1, 0)) `value`, ROUND(SUM(IF(a.`state` = 1, 1, 0)) * 100 / COUNT(*), 1) rate
+          FROM `learn_student` ls
+          left JOIN `learn_answer` a ON ls.`student_id` = a.`student_id`
           JOIN `sys_user` u ON ls.`student_id` = u.`user_id`
          WHERE ls.`class_id` = #{classId}
          GROUP BY ls.`student_id`
-         ORDER BY <choose><when test="sortField=='total'">total</when><when test="sortField=='time'">`time`</when><otherwise>rate</otherwise></choose> <if test="null != desc and desc"> DESC</if>
+         ORDER BY if(total > 0, 0, 1), <choose><when test="sortField=='total'">total</when><when test="sortField=='time'">`time`</when><otherwise>rate</otherwise></choose> <if test="null != desc and desc"> DESC</if>
     </select>
 
     <select id="selectQuestionStatsHeader" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">

+ 3 - 3
ie-system/src/main/resources/mapper/learn/LearnExamineeMapper.xml

@@ -91,13 +91,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectSimulatedStudentStats" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">
-        SELECT u.`user_id` `id`, u.`nick_name` `name`, COUNT(*) `total`
+        SELECT u.`user_id` `id`, u.`nick_name` `name`, COUNT(e2.`student_id`) `total`
           FROM `learn_student` ls
           JOIN `sys_user` u ON ls.`student_id` = u.`user_id`
-          JOIN `learn_examinee` e2 ON ls.`student_id` = e2.`student_id` AND e2.`paper_type` = 20
+          left JOIN `learn_examinee` e2 ON ls.`student_id` = e2.`student_id` AND e2.`paper_type` = 20
          WHERE ls.`class_id` = #{classId}
          GROUP BY u.`user_id`, u.`user_name`
-         ORDER BY `total` DESC
+         ORDER BY `total` DESC, u.`user_id` desc
     </select>
 
     <select id="selectSimulatedStuSubjectStats" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">

+ 4 - 4
ie-system/src/main/resources/mapper/mingxue/CustomerVideoWatchesMapper.xml

@@ -24,13 +24,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectClassStats" parameterType="Map" resultType="com.alibaba.fastjson2.JSONObject">
-        SELECT ls.`student_id` id, u.`nick_name` name, COUNT(DISTINCT vw.`title`) total , ROUND(SUM(vw.`duration` * vw.`percent` / 100.0)) `value`
-          FROM `b_customer_video_watches` vw
-          JOIN `learn_student` ls ON vw.`customerCode` = ls.`student_id`
+        SELECT ls.`student_id` id, u.`nick_name` name, COUNT(DISTINCT vw.`title`) total , ROUND(SUM(if(vw.`customerCode` is null, 0, vw.`duration` * vw.`percent` / 100.0))) `value`
+          FROM `learn_student` ls
+          left JOIN `b_customer_video_watches` vw ON vw.`customerCode` = ls.`student_id`
           JOIN `sys_user` u ON ls.`student_id` = u.`user_id`
          WHERE ls.`class_id` = #{classId}
          GROUP BY ls.`student_id`
-         ORDER BY `value` <if test="null != desc and desc">DESC</if>
+         ORDER BY if(total > 0, 0, 1), `value` <if test="null != desc and desc">DESC</if>
     </select>