Jelajahi Sumber

Merge remote-tracking branch 'origin/bjcz_his_scrm' into bjcz_his_scrm

xw 1 Minggu lalu
induk
melakukan
58a1921e7b

+ 34 - 26
fs-service/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -1099,33 +1099,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectUserIdList" resultType="com.fs.course.vo.FsCoureseWatchLogVO"
             parameterType="com.fs.course.param.FsCourseWatchLogParam">
         SELECT
-        c.company_id ,
+        c.company_id,
         c.company_name,
-        COUNT(DISTINCT CASE WHEN l.log_type = 2 AND l.send_type = 1 THEN l.user_id END) typeOneAll,
-        COUNT(DISTINCT CASE WHEN l.log_type = 2 AND l.send_type = 2 THEN l.user_id END) typeTwoAll,
-        COUNT(DISTINCT CASE WHEN l.log_type = 2 THEN l.user_id END) typeAll,
-        COUNT(DISTINCT CASE WHEN l.log_type != 3 THEN l.user_id END) allUserId
-        FROM
-        fs_course_watch_log l
-        INNER JOIN company c ON l.company_id = c.company_id
-        WHERE
-        c.is_del ='0'
-        <if test="createTime != null">
-            AND DATE(l.create_time) = #{createTime}
-        </if>
-        <if test="companyId != null">
-            AND l.company_id = #{companyId}
-        </if>
-        <if test="appId != null">
-            AND l.app_id = #{appId}
-        </if>
-        <if test="companyName != null">
-            AND c.company_name like concat('%', #{companyName}, '%')
-        </if>
-        GROUP BY
-        c.company_id, c.company_name
-        ORDER BY
-        c.company_id
+        COALESCE(l.typeOneAll, 0) AS typeOneAll,
+        COALESCE(l.typeTwoAll, 0) AS typeTwoAll,
+        COALESCE(l.typeAll, 0) AS typeAll,
+        COALESCE(l.allUserId, 0) AS allUserId
+        FROM company c
+        inner JOIN (
+        SELECT
+        company_id,
+        COUNT(DISTINCT CASE WHEN log_type = 2 AND send_type = 1 THEN user_id END) AS typeOneAll,
+        COUNT(DISTINCT CASE WHEN log_type = 2 AND send_type = 2 THEN user_id END) AS typeTwoAll,
+        COUNT(DISTINCT CASE WHEN log_type = 2 THEN user_id END) AS typeAll,
+        COUNT(DISTINCT CASE WHEN log_type != 3 THEN user_id END) AS allUserId
+        FROM fs_course_watch_log
+        WHERE create_time &gt;= #{createTime}
+        AND create_time &lt; DATE_ADD(DATE(#{createTime}), INTERVAL 1 DAY)
+        GROUP BY company_id
+        ) l ON c.company_id = l.company_id
+        WHERE c.is_del = '0'
+        ORDER BY c.company_id
+
+<!--        <if test="companyId != null">-->
+<!--            AND l.company_id = #{companyId}-->
+<!--        </if>-->
+<!--        <if test="appId != null">-->
+<!--            AND l.app_id = #{appId}-->
+<!--        </if>-->
+<!--        <if test="companyName != null">-->
+<!--            AND c.company_name like concat('%', #{companyName}, '%')-->
+<!--        </if>-->
+<!--        GROUP BY-->
+<!--        c.company_id, c.company_name-->
+<!--        ORDER BY-->
+<!--        c.company_id-->
 
     </select>