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,project,period_id,watch_type 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,period_id,project,watch_type,#{userId},#{videoId},#{logType},#{createTime},#{updateTime},#{qwExternalContactId},#{duration},#{qwUserId},#{companyUserId},#{companyId},#{courseId},#{sendType},#{rewardType},#{sopId},#{finishTime},#{sendFinishMsg},#{campPeriodTime},#{periodId},#{project},#{watchType},
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,project,watch_type,#{userId},#{videoId},#{logType},#{createTime},#{updateTime},#{qwExternalContactId},#{duration},#{qwUserId},#{companyUserId},#{companyId},#{courseId},#{sendType},#{rewardType},#{sopId},#{finishTime},#{sendFinishMsg},#{campPeriodTime},#{project},#{watchType},
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,
project,
period_id,
im_msg_send_detail_id,
watch_type
)
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},
#{log.project},
#{log.periodId},
#{log.imMsgSendDetailId},
#{log.watchType}
)
ON DUPLICATE KEY UPDATE
update_time = NOW(),
im_msg_send_detail_id = VALUES(im_msg_send_detail_id)
INSERT INTO fs_course_watch_log_bak (
original_log_id,
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,
last_heartbeat_time,
sop_id,
finish_time,
send_finish_msg,
camp_period_time,
day,
project,
create_by,
update_by,
period_id,
project_id,
im_msg_send_detail_id,
watch_type,
delete_time,
delete_by,
delete_method,
original_data,
backup_operator,
backup_batch_no,
remark
) VALUES (
#{originalLogId},
#{userId},
#{videoId},
#{logType},
#{createTime},
#{updateTime},
#{qwExternalContactId},
#{duration},
#{qwUserId},
#{companyUserId},
#{companyId},
#{courseId},
#{sendType},
#{rewardType},
#{lastHeartbeatTime},
#{sopId},
#{finishTime},
#{sendFinishMsg},
#{campPeriodTime},
#{day},
#{project},
#{createBy},
#{updateBy},
#{periodId},
#{projectId},
#{imMsgSendDetailId},
#{watchType},
#{deleteTime},
#{deleteBy},
#{deleteMethod},
#{originalData},
#{backupOperator},
#{backupBatchNo},
#{remark}
)
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},period_id = #{periodId},project = #{project},watch_type = #{watchType},
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}
UPDATE fs_course_watch_log
SET
duration = CASE
WHEN video_id = #{item.videoId} AND user_id = #{item.userId} AND company_user_id = #{item.companyUserId} 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 user_id = #{item.userId} AND company_user_id = #{item.companyUserId} 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 user_id = #{item.userId} AND company_user_id = #{item.companyUserId} THEN
CASE
WHEN finish_time IS NULL THEN #{item.finishTime}
ELSE finish_time
END
END,
log_type = CASE
WHEN video_id = #{item.videoId} AND user_id = #{item.userId} AND company_user_id = #{item.companyUserId} 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, user_id, company_user_id) IN
(#{item.videoId}, #{item.userId}, #{item.companyUserId})
UPDATE fs_course_watch_log
SET
duration = CASE
WHEN video_id = #{item.videoId} AND user_id = #{item.userId} 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 user_id = #{item.userId} 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 user_id = #{item.userId} THEN
CASE
WHEN finish_time IS NULL THEN #{item.finishTime}
ELSE finish_time
END
END,
log_type = CASE
WHEN video_id = #{item.videoId} AND user_id = #{item.userId} 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, user_id) IN
(#{item.videoId}, #{item.userId})