|
@@ -149,30 +149,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
( count( DISTINCT CASE WHEN fwl.log_type = 3 THEN fwl.video_id END ) > 0, 1, 2 ) AS missCourseStatus,
|
|
|
GROUP_CONCAT( DISTINCT fwl.period_id ) AS courseIds,
|
|
|
count(DISTINCT fwl.period_id ) AS partCourseCount,
|
|
|
- a.last_heartbeat_time AS lastWatchDate,
|
|
|
- CASE
|
|
|
- WHEN a.log_type = 1
|
|
|
- OR a.log_type = 2 THEN
|
|
|
- 1
|
|
|
- WHEN a.log_type = 4 THEN
|
|
|
- 2
|
|
|
- WHEN a.log_type = 3 THEN
|
|
|
- 3
|
|
|
- END AS STATUS,
|
|
|
- DATEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d'),DATE_FORMAT(a.last_heartbeat_time,'%Y-%m-%d')) as stop_watch_days,
|
|
|
max( CASE WHEN fwl.log_type = 2 THEN fwl.last_heartbeat_time END ) AS completeWatchDate,
|
|
|
count( CASE WHEN fwl.log_type = 2 THEN fwl.log_id END ) AS completeWatchCount,
|
|
|
count( CASE WHEN fwl.log_type != 3 THEN fwl.log_id END ) AS watch_times,
|
|
|
- NOW() AS create_time,
|
|
|
+ DATE_FORMAT(fwl.create_time,'%Y-%m-%d 00:00:00') AS createTime,
|
|
|
NOW() AS updateTime,
|
|
|
- curdate() AS create_date
|
|
|
+ DATE_FORMAT(fwl.create_time,'%Y-%m-%d') AS create_date,
|
|
|
+ DATE (fwl.create_time ) AS lastDate
|
|
|
FROM
|
|
|
- ( SELECT fs_course_watch_log.user_id, Max( fs_course_watch_log.last_heartbeat_time ) AS last_heartbeat_time, log_type FROM fs_course_watch_log GROUP BY fs_course_watch_log.user_id ) a
|
|
|
- INNER JOIN fs_course_watch_log fwl ON fwl.user_id = a.user_id
|
|
|
+ fs_course_watch_log fwl
|
|
|
+ where fwl.send_type = 1 and fwl.create_time >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)
|
|
|
GROUP BY
|
|
|
fwl.user_id
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getUserStatusAndLastWatchDate" resultType="FsUserCourseCount">
|
|
|
+ SELECT
|
|
|
+ fs_course_watch_log.user_id,
|
|
|
+ Max( fs_course_watch_log.last_heartbeat_time ) AS lastWatchDate,
|
|
|
+ Max( DATE ( fs_course_watch_log.create_time ) ) AS lastDate,
|
|
|
+ CASE
|
|
|
+
|
|
|
+ WHEN fs_course_watch_log.log_type = 1
|
|
|
+ OR fs_course_watch_log.log_type = 2 THEN
|
|
|
+ 1
|
|
|
+ WHEN fs_course_watch_log.log_type = 4 THEN
|
|
|
+ 2
|
|
|
+ WHEN fs_course_watch_log.log_type = 3 THEN
|
|
|
+ 3
|
|
|
+ END AS STATUS,
|
|
|
+ DATEDIFF(
|
|
|
+ DATE_FORMAT( NOW(), '%Y-%m-%d' ),
|
|
|
+ DATE_FORMAT( fs_course_watch_log.last_heartbeat_time, '%Y-%m-%d' )) AS stop_watch_days
|
|
|
+ FROM
|
|
|
+ fs_course_watch_log
|
|
|
+ WHERE
|
|
|
+ fs_course_watch_log.send_type = 1
|
|
|
+ AND fs_course_watch_log.create_time >= DATE_SUB( CURDATE(), INTERVAL 7 DAY )
|
|
|
+ GROUP BY
|
|
|
+ fs_course_watch_log.user_id, date(fs_course_watch_log.create_time)
|
|
|
+ </select>
|
|
|
+
|
|
|
+
|
|
|
<insert id="insertFsUserCourseCountTask" parameterType="FsUserCourseCount" useGeneratedKeys="true" keyProperty="id">
|
|
|
insert into fs_user_course_count
|
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|