select log_id, user_id,finish_time,send_finish_msg,sop_id,video_id,reward_type, log_type, create_time, update_time, qw_external_contact_id, duration, qw_user_id, company_user_id, company_id, course_id,camp_period_time from fs_course_watch_log
insert into fs_course_watch_log
user_id,video_id,log_type,create_time,update_time,qw_external_contact_id,duration,qw_user_id,company_user_id,company_id,course_id,send_type,reward_type,sop_id,finish_time,send_finish_msg,camp_period_time,#{userId},#{videoId},#{logType},#{createTime},#{updateTime},#{qwExternalContactId},#{duration},#{qwUserId},#{companyUserId},#{companyId},#{courseId},#{sendType},#{rewardType},#{sopId},#{finishTime},#{sendFinishMsg},#{campPeriodTime},
insert into fs_course_watch_log
user_id,video_id,log_type,create_time,update_time,qw_external_contact_id,duration,qw_user_id,company_user_id,company_id,course_id,send_type,reward_type,sop_id,finish_time,send_finish_msg,camp_period_time,#{userId},#{videoId},#{logType},#{createTime},#{updateTime},#{qwExternalContactId},#{duration},#{qwUserId},#{companyUserId},#{companyId},#{courseId},#{sendType},#{rewardType},#{sopId},#{finishTime},#{sendFinishMsg},#{campPeriodTime},
on duplicate key update
update_time = #{updateTime},
INSERT INTO fs_course_watch_log (
user_id,
video_id,
log_type,
create_time,
update_time,
qw_external_contact_id,
duration,
qw_user_id,
company_user_id,
company_id,
course_id,
send_type,
reward_type,
sop_id,
camp_period_time
)
VALUES
(
#{log.userId},
#{log.videoId},
#{log.logType},
#{log.createTime},
#{log.updateTime},
#{log.qwExternalContactId},
#{log.duration},
#{log.qwUserId},
#{log.companyUserId},
#{log.companyId},
#{log.courseId},
#{log.sendType},
#{log.rewardType},
#{log.sopId},
#{log.campPeriodTime}
)
ON DUPLICATE KEY UPDATE
update_time = VALUES(update_time)
update fs_course_watch_log
user_id = #{userId},video_id = #{videoId},log_type = #{logType},create_time = #{createTime},update_time = #{updateTime},qw_external_contact_id = #{qwExternalContactId},duration = #{duration},qw_user_id = #{qwUserId},company_user_id = #{companyUserId},company_id = #{companyId},course_id = #{courseId},send_type = #{sendType},reward_type = #{rewardType},sop_id = #{sopId},finish_time = #{finishTime},send_finish_msg = #{sendFinishMsg},last_heartbeat_time = #{lastHeartbeatTime},
where log_id = #{logId}
delete from fs_course_watch_log where log_id = #{logId}
delete from fs_course_watch_log where log_id in
#{logId}
UPDATE fs_course_watch_log
SET
duration = CASE
WHEN video_id = #{item.videoId} AND qw_external_contact_id = #{item.qwExternalContactId} AND qw_user_id = #{item.qwUserId} THEN
CASE
WHEN #{item.duration} IS NOT NULL AND #{item.duration} > duration THEN #{item.duration}
ELSE duration
END
END,
last_heartbeat_time = CASE
WHEN video_id = #{item.videoId} AND qw_external_contact_id = #{item.qwExternalContactId} AND qw_user_id = #{item.qwUserId} THEN
CASE
WHEN #{item.lastHeartbeatTime} IS NOT NULL THEN #{item.lastHeartbeatTime}
ELSE last_heartbeat_time
END
END,
finish_time = CASE
WHEN video_id = #{item.videoId} AND qw_external_contact_id = #{item.qwExternalContactId} AND qw_user_id = #{item.qwUserId} THEN
CASE
WHEN finish_time IS NULL THEN #{item.finishTime}
ELSE finish_time
END
END,
log_type = CASE
WHEN video_id = #{item.videoId} AND qw_external_contact_id = #{item.qwExternalContactId} AND qw_user_id = #{item.qwUserId} THEN
CASE
WHEN log_type = 2 THEN log_type
WHEN #{item.logType} IS NOT NULL AND log_type != 2 THEN #{item.logType}
ELSE log_type
END
END
WHERE
(video_id, qw_external_contact_id, qw_user_id) IN
(#{item.videoId}, #{item.qwExternalContactId}, #{item.qwUserId})
UPDATE fs_course_watch_log
SET send_finish_msg = CASE
WHEN log_id = #{item.logId} THEN #{item.sendFinishMsg}
ELSE send_finish_msg
END
WHERE log_id IN
#{item.logId}