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}