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 from fs_course_watch_log
and user_id = #{userId}
and video_id = #{videoId}
and log_type = #{logType}
and qw_external_contact_id = #{qwExternalContactId}
and duration = #{duration}
and qw_user_id = #{qwUserId}
and company_user_id = #{companyUserId}
and company_id = #{companyId}
and course_id = #{courseId}
and send_type = #{sendType}
and camp_period_time = #{campPeriodTime}
and project = #{project}
where log_id = #{logId}
select l.log_id,l.project,l.period_id,l.user_id,uc.course_name,v.title as video_name,qec.avatar as external_user_avatar,
l.log_type,SEC_TO_TIME(l.duration) as duration,c.company_name,l.camp_period_time,l.finish_time,
cu.nick_name as company_user_name ,l.send_type,l.create_time,l.update_time,l.last_heartbeat_time,
qu.qw_user_name,qec.name as external_user_name,c.company_id,u.avatar as fsAvatar,u.nick_name as fsNickName,qec.create_time as qec_create_time,
u.is_vip isVip,l.reward_type
from fs_course_watch_log l
left join fs_user_course_video v on v.video_id = l.video_id
left join fs_user_course uc on uc.course_id = l.course_id
left join fs_user u on u.user_id = l.user_id
left join company_user cu on cu.user_id = l.company_user_id
left join company c on c.company_id = l.company_id
LEFT JOIN qw_user qu on qu.id= l.qw_user_id
LEFT JOIN qw_external_contact qec on l.qw_external_contact_id = qec.id
and (l.user_id = 0 or l.user_id is null)
and l.user_id != 0 and l.user_id is not null
and l.send_type = #{maps.sendType}
and l.user_id = #{maps.userId}
and l.project = #{maps.project}
and l.qw_external_contact_id = #{maps.qwExternalContactId}
and l.qw_user_id = #{maps.qwUserId}
and l.course_id = #{maps.courseId}
and l.video_id = #{maps.videoId}
and l.log_type = #{maps.logType}
and l.company_id = #{maps.companyId}
and l.company_user_id = #{maps.companyUserId}
and cu.nick_name like concat('%', #{maps.companyUserName}, '%')
and u.nick_name like concat('%', #{maps.nickName}, '%')
and qec.name like concat('%', #{maps.externalUserName}, '%')
and DATE(qec.create_time) >= DATE(#{maps.qecSTime})
and DATE(qec.create_time) <= DATE(#{maps.qecETime})
and l.create_time >= #{maps.sTime}
and l.create_time <= #{maps.eTime}
and l.camp_period_time >= #{maps.scheduleStartTime}
and l.camp_period_time <= #{maps.scheduleEndTime}
and l.update_time >= #{maps.upSTime}
and l.update_time <= #{maps.upETime}
and l.sop_id in
#{sopId}
and l.project = #{maps.project}
and l.sop_id = #{maps.sopId}
and l.period_id in
#{periodId}
and qu.qw_user_name = #{maps.qwUserName}
AND cu.dept_id IN
#{item}
order by l.finish_time desc,l.update_time desc,l.create_time desc
select l.log_id,l.user_id,uc.course_name,v.title as video_name,u.nick_name as fsNickName, u.avatar as fsAvatar,
l.log_type,SEC_TO_TIME(l.duration) as duration,c.company_name,l.camp_period_time,l.finish_time,
cu.nick_name as company_user_name ,l.send_type,l.create_time, qu.qw_user_name,qec.name as external_user_name
from fs_course_watch_log l
left join fs_user_course_video v on v.video_id = l.video_id
left join fs_user_course uc on uc.course_id = l.course_id
left join fs_user u on u.user_id = l.user_id
left join company_user cu on cu.user_id = l.company_user_id
left join company c on c.company_id = l.company_id
LEFT JOIN qw_user qu on qu.id= l.qw_user_id
LEFT JOIN qw_external_contact qec on l.qw_external_contact_id = qec.id
and l.user_id = #{userId}
and l.qw_user_id = #{qwUserId}
and l.course_id = #{courseId}
and l.video_id = #{videoId}
and l.log_type = #{logType}
and l.company_id = #{companyId}
and l.company_user_id = #{companyUserId}
and cu.nick_name like concat('%', #{companyUserName}, '%')
and u.nick_name like concat('%', #{nickName}, '%')
and DATE(l.create_time) >= DATE(#{sTime})
and DATE(l.create_time) <= DATE(#{eTime})
and DATE(l.camp_period_time) >= DATE(#{maps.scheduleStartTime})
and DATE(l.camp_period_time) <= DATE(#{maps.scheduleEndTime})
and l.sop_id in
#{sopId}
order by l.log_id desc
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,
#{userId},
#{videoId},
#{logType},
#{createTime},
#{updateTime},
#{qwExternalContactId},
#{duration},
#{qwUserId},
#{companyUserId},
#{companyId},
#{courseId},
#{sendType},
#{rewardType},
#{sopId},
#{finishTime},
#{sendFinishMsg},
#{campPeriodTime},
#{periodId},
#{project},
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,
#{userId},
#{videoId},
#{logType},
#{createTime},
#{updateTime},
#{qwExternalContactId},
#{duration},
#{qwUserId},
#{companyUserId},
#{companyId},
#{courseId},
#{sendType},
#{rewardType},
#{sopId},
#{finishTime},
#{sendFinishMsg},
#{campPeriodTime},
#{project},
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
)
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}
)
ON DUPLICATE KEY UPDATE
update_time = NOW(),
im_msg_send_detail_id = VALUES(im_msg_send_detail_id)
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},
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}
SELECT
log_id,
user_id,
video_id,
log_type,
create_time,
update_time,
duration,
company_user_id,
company_id,
course_id,
send_type,
reward_type,
last_heartbeat_time,
sop_id,
finish_time,
send_finish_msg,
camp_period_time
FROM
fs_course_watch_log
WHERE
send_type = 1
AND video_id = #{videoId}
AND user_id = #{fsUserId}
AND company_user_id = #{companyUserId} order by log_id desc limit 1
SELECT
o.company_user_id,o.user_id,DATE(o.create_time) create_time,
SUM(CASE WHEN o.log_type = '1' THEN 1 ELSE 0 END) AS type1,
SUM(CASE WHEN o.log_type = '2' THEN 1 ELSE 0 END) AS type2,
SUM(CASE WHEN o.log_type = '3' THEN 1 ELSE 0 END) AS type3,
SUM(CASE WHEN o.log_type = '4' THEN 1 ELSE 0 END) AS type4,
o.project as project,
o.course_id as course_id,
o.video_id as video_id
FROM fs_course_watch_log o
send_type=1
and o.company_id=#{companyId}
and DATE(o.create_time) >= #{sTime}
and DATE(o.create_time) <= #{eTime}
and o.course_id = #{courseId}
and o.video_id = #{videoId}
and o.company_user_id = #{companyUserId}
and o.project = #{project}
and o.user_id = #{userId}
GROUP BY o.video_id,o.user_id,DATE(o.create_time),o.project,o.course_id
ORDER BY o.video_id ,DATE(o.create_time)
SELECT COUNT(*)
FROM (
SELECT 1
FROM fs_course_watch_log o
send_type=2
and o.company_id=#{companyId}
and o.create_time >= #{startDate}
and o.create_time <= #{endDate}
and o.course_id = #{courseId}
and o.video_id = #{videoId}
and o.company_user_id = #{companyUserId}
and o.project = #{project}
and o.user_id = #{userId}
GROUP BY o.video_id, o.user_id, DATE(o.create_time), o.project, o.course_id
) AS grouped_results_count
select count(fcwl.log_id) from fs_course_watch_log fcwl
and fcwl.log_type in
#{logType}
and fcwl.company_user_id = #{params.companyUserId}
and date(fcwl.create_time) = #{params.date}
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})
select
uc.course_name,v.title as video_name,
watch.log_id,
watch.user_id,
watch.finish_time,
watch.send_finish_msg,
watch.sop_id,
watch.video_id,
watch.reward_type,
watch.log_type,
watch.create_time,
watch.update_time,
watch.qw_external_contact_id,
watch.duration,
watch.qw_user_id,
watch.company_user_id,
watch.company_id,
watch.course_id,
watch.camp_period_time
from
fs_user_course_training_camp camp
left join fs_user_course_period period on
camp.training_camp_id = period.training_camp_id
left join fs_course_watch_log watch on
period.period_id = watch.period_id
left join fs_user_course uc on uc.course_id = watch.course_id
left join fs_user_course_video v on v.video_id = watch.video_id
`period`.del_flag = '0' and watch.log_type <> 3
and camp.training_camp_id = #{trainingCampId}
and watch.user_id = #{userId}
and `period`.period_id = #{periodId}
SELECT
l.log_id,
l.project AS project,
l.period_id,
l.user_id,
l.log_type,
SEC_TO_TIME(l.duration) AS duration,
l.camp_period_time,
l.finish_time,
l.send_type,
l.create_time,
l.update_time,
l.last_heartbeat_time,
l.company_id,
l.company_user_id,
l.course_id,
l.video_id,
l.qw_user_id,
l.qw_external_contact_id,
l.sop_id,
qec.create_time as qec_create_time
FROM
fs_course_watch_log l LEFT JOIN qw_external_contact qec on l.qw_external_contact_id = qec.id
left join fs_user u on u.user_id = l.user_id
left join company_user cu on cu.user_id = l.company_user_id
and l.send_type = #{maps.sendType}
and l.user_id = #{maps.userId}
and l.qw_external_contact_id = #{maps.qwExternalContactId}
and l.qw_user_id = #{maps.qwUserId}
and l.course_id = #{maps.courseId}
and l.video_id = #{maps.videoId}
and l.log_type = #{maps.logType}
and l.company_id = #{maps.companyId}
and l.company_user_id = #{maps.companyUserId}
and cu.nick_name like concat('%', #{maps.companyUserName}, '%')
and u.nick_name like concat('%', #{maps.nickName}, '%')
and qec.name like concat('%', #{maps.externalUserName}, '%')
and DATE(qec.create_time) >= DATE(#{maps.qecSTime})
and DATE(qec.create_time) <= DATE(#{maps.qecETime})
and DATE(l.create_time) >= DATE(#{maps.sTime})
and DATE(l.create_time) <= DATE(#{maps.eTime})
and DATE(l.camp_period_time) >= DATE(#{maps.scheduleStartTime})
and DATE(l.camp_period_time) <= DATE(#{maps.scheduleEndTime})
and DATE(l.update_time) >= DATE(#{maps.upSTime})
and DATE(l.update_time) <= DATE(#{maps.upETime})
and l.sop_id in
#{sopId}
and l.period_id in
#{periodId}
order by l.finish_time desc,l.update_time desc,l.create_time desc
SELECT
*
FROM
fs_course_watch_log
WHERE
send_type = 1
AND video_id = #{videoId}
AND user_id in
#{userId}
ORDER BY
log_id DESC
select count(distinct cwl.user_id)
from fs_user_course_period ucp
inner join fs_course_watch_log cwl on ucp.period_id = cwl.period_id
where ucp.training_camp_id = #{trainingCampId}
SELECT
o.video_id,
o.company_id,
comp.company_name,
o.qw_user_id,
DATE(o.create_time) create_time,
v.title videoName,
uc.course_name,
SUM(CASE WHEN o.log_type = '1' THEN 1 ELSE 0 END) AS type1,
SUM(CASE WHEN o.log_type = '2' THEN 1 ELSE 0 END) AS type2,
SUM(CASE WHEN o.log_type = '3' THEN 1 ELSE 0 END) AS type3,
SUM(CASE WHEN o.log_type = '4' THEN 1 ELSE 0 END) AS type4
FROM
fs_course_watch_log o
LEFT JOIN fs_user_course_video v ON v.video_id = o.video_id
LEFT JOIN company comp ON comp.company_id = o.company_id
LEFT JOIN qw_user qu ON qu.id = o.qw_user_id
LEFT JOIN fs_user_course uc ON uc.course_id = v.course_id
and send_type = #{sendType}
and o.company_id = #{companyId}
AND DATE (o.create_time) >= DATE (#{sTime})
AND DATE (o.create_time) <= DATE (#{eTime})
and o.course_id = #{courseId}
and o.video_id = #{videoId}
GROUP BY
DATE (o.create_time),
o.company_id
ORDER BY
comp.company_id,
DATE (o.create_time)
SELECT
o.project,
o.course_id AS courseId,
uc.course_name AS courseName,
o.video_id AS videoId,
v.title AS videoName,
CASE WHEN o.log_type = 1 THEN 1 END AS type1,
CASE WHEN o.log_type = 2 THEN 1 END AS type2,
CASE WHEN o.log_type = 3 THEN 1 END AS type3,
CASE WHEN o.log_type = 4 THEN 1 END AS type4,
o.qw_user_id,
o.user_id AS userId,
o.company_user_id AS companyUserId,
o.company_id AS companyId,
o.create_time AS createTime
FROM
fs_course_watch_log o
LEFT JOIN fs_user_course_video v ON v.video_id = o.video_id
LEFT JOIN fs_user_course uc ON uc.course_id = v.course_id
WHERE o.qw_external_contact_id=#{qwExternalContactId}
AND send_type = #{sendType}
AND DATE(o.create_time) >= DATE(#{startTime})
AND DATE(o.create_time) <= DATE(#{endTime})
o.create_time DESC
SELECT
o.company_id AS companyId,
c.company_name AS companyName,
o.send_type,
COUNT(DISTINCT o.user_id) AS watchUserCount,
COUNT(o.log_id) AS watchCount,
sum(case when o.log_type = 2 then 1 else 0 end) AS finishCount,
COUNT(DISTINCT CASE WHEN o.log_type = 2 THEN o.user_id END) AS finishUserCount
FROM
fs_course_watch_log o
LEFT JOIN company c ON c.company_id = o.company_id
WHERE
o.create_time >= #{params.startTime}
AND o.create_time <= #{params.endTime}
GROUP BY
o.company_id,
o.send_type
SELECT distinct u.user_id AS userId,
u.nick_name AS nickName,
u.integral AS integral,
CASE
WHEN u.`status` = '1' THEN '正常'
WHEN u.`status` = '2' THEN '禁止'
ELSE '无'
END AS status,
u.register_date AS registerDate,
u.phone,
cu.nick_name AS companyUserName,
cuu.company_user_id as companyUserId,
c.company_name AS companyName
,cd.dept_name AS deptName
FROM fs_user u
inner JOIN fs_user_company_user cuu ON u.user_id = cuu.user_id
left join fs_package_order po on po.user_id=u.user_id
LEFT JOIN company_user cu ON cuu.company_user_id = cu.user_id
LEFT JOIN company c ON cuu.company_id = c.company_id
LEFT JOIN company_dept cd ON cu.dept_id = cd.dept_id
Left Join fs_course_watch_log watch on watch.user_id= cuu.user_id and watch.project=cuu.project_id
left join fs_user_course_period period on watch.period_id=period.period_id and period.del_flag=0
left join fs_user_course_training_camp camp on period.training_camp_id= camp.training_camp_id and camp.del_flag=0
WHERE u.user_id IS NOT NULL
AND u.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
AND cd.dept_id = #{deptId}
AND c.company_id = #{companyId}
AND cuu.project_id = #{project}
AND camp.training_camp_id = #{trainingCampId}
AND period.period_id = #{periodId}
AND DATE(po.create_time) BETWEEN #{sTime} AND #{eTime}
order by u.create_time
SELECT
user_id AS userId,
company_user_id AS companyUserId,
MAX(
COALESCE ( update_time, create_time )) AS lastWatchTime,
COUNT( log_id ) AS watchCount,
COUNT( DISTINCT period_id ) AS periodCount,
CASE
( SELECT log_type FROM fs_course_watch_log w2 WHERE w2.user_id = w1.user_id ORDER BY create_time DESC LIMIT 1 )
WHEN '1' THEN
'看课中'
WHEN '2' THEN
'完课'
WHEN '3' THEN
'待看课'
WHEN '4' THEN
'看课中断' ELSE '无'
END AS watchStatus
FROM
fs_course_watch_log w1
WHERE (user_id, company_user_id) IN
(#{condition.userId}, #{condition.companyUserId})
AND w1.project = #{watchParam.project}
AND w1.period_id = #{watchParam.periodId}
GROUP BY user_id,company_user_id
SELECT
user_id AS userId,
ABS(SUM(CASE WHEN integral < 0 THEN integral ELSE 0 END)) AS consumedIntegral
from fs_user_integral_logs
WHERE user_id IN
#{userId}
GROUP BY user_id
SELECT
user_id AS userId,
company_user_id AS companyUserId,
SUM(amount) AS receivedAmount
FROM fs_course_red_packet_log
WHERE status = 1
and (user_id, company_user_id) IN
(#{condition.userId}, #{condition.companyUserId})
AND period_id = #{watchParam.periodId}
GROUP BY user_id,company_user_id
SELECT
user_id AS userId,
SUM(pay_money) AS orderAmount
FROM fs_package_order
WHERE status = 3
AND user_id IN
#{userId}
AND create_time BETWEEN #{watchParam.sTime} AND #{watchParam.eTime}
GROUP BY user_id
SELECT
log.user_id userId,
u.nick_name AS nickName,
cu.nick_name AS salesName,
c.company_name AS salesCompany,
cd.dept_name AS salesDept,
log.period_id periodId,
log.video_id videoId,
log.log_id logId,
log.create_time courseTime,
log.finish_time finishTime,
log.duration ,
CASE
WHEN log.log_type = '1' THEN '看课中'
WHEN log.log_type = '2' THEN '完课'
WHEN log.log_type = '3' THEN '待看课'
WHEN log.log_type = '4' THEN '看课中断'
ELSE '无'
END AS watchStatus,
cv.title AS videoTitle
FROM
fs_course_watch_log log
left join fs_package_order po ON po.user_id = log.user_id
LEFT JOIN fs_user u ON u.user_id = log.user_id
LEFT JOIN fs_user_company_user cuu ON cuu.user_id = u.user_id
LEFT JOIN company_user cu ON cuu.company_user_id = cu.user_id
LEFT JOIN company c ON log.company_id = c.company_id
LEFT JOIN company_dept cd ON cu.dept_id = cd.dept_id
LEFT JOIN fs_user_course_video cv ON log.video_id = cv.video_id
WHERE log.send_type =1
AND DATE(po.create_time) BETWEEN #{orderSTime} AND #{orderETime}
group by log.user_id
ORDER BY u.register_date DESC
SELECT
log.user_id userId,
log.company_user_id companyUserId,
log.period_id periodId,
log.log_id logId,
log.create_time courseTime,
cu.nick_name as salesName,
d.dept_name AS salesDept,
c.company_name AS salesCompany,
COUNT( DISTINCT u.user_id ) AS userCount,
COUNT( DISTINCT CASE WHEN u.STATUS = 1 THEN u.user_id END ) AS onlineUserCount,
cv.title videoTitle,
COUNT(DISTINCT log.log_id) AS totalLogCount,
COUNT(DISTINCT CASE WHEN log.log_type = '2' THEN log.log_id END) AS finishedCount,
COUNT(DISTINCT CASE WHEN log.log_type IN ('1', '3', '4') THEN log.log_id END) AS unfinishedCount,
COUNT(DISTINCT log.log_id)-COUNT(DISTINCT log.user_id) AS notWatchedCount
FROM
fs_course_watch_log log
LEFT JOIN fs_package_order po ON po.user_id = log.user_id
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN fs_user u on log.user_id= u.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
LEFT JOIN fs_user_course_video cv ON log.video_id = cv.video_id
WHERE log.send_type =1
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND DATE(po.create_time) BETWEEN #{orderSTime} AND #{orderETime}
AND log.company_id = #{companyId}
AND d.dept_id = #{deptId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id =
#{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND log.project = #{project}
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
GROUP BY cu.user_id
SELECT
log.user_id userId,
log.period_id periodId,
log.log_id logId,
log.create_time courseTime,
d.dept_id AS deptId,
d.dept_name AS salesDept,
c.company_name AS salesCompany,
COUNT(DISTINCT cu.user_id) AS salesCount,
COUNT(DISTINCT u.user_id) AS userCount,
COUNT(DISTINCT CASE WHEN u.STATUS = 1 THEN u.user_id END) AS onlineUserCount,
cv.title videoTitle,
COUNT(DISTINCT log.log_id) AS totalLogCount,
COUNT(DISTINCT CASE WHEN log.log_type = '2' THEN log.log_id END) AS finishedCount,
COUNT(DISTINCT CASE WHEN log.log_type IN ('1', '3', '4') THEN log.log_id END) AS unfinishedCount,
COUNT(DISTINCT log.user_id) - COUNT(DISTINCT CASE WHEN log.log_type = '2' THEN log.user_id END) AS notWatchedCount
FROM fs_course_watch_log log
LEFT JOIN fs_package_order po ON po.user_id = log.user_id
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN fs_user u on log.user_id= u.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
LEFT JOIN fs_user_course_video cv ON log.video_id = cv.video_id
WHERE log.send_type =1
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND DATE(po.create_time) BETWEEN #{orderSTime} AND #{orderETime}
AND c.company_id = #{companyId}
AND d.dept_id = #{deptId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND log.project = #{project}
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
GROUP BY d.dept_id
SELECT
wl.user_id AS userId,
wl.company_user_id as companyUserId,
camp.training_camp_name trainingCampName,
cp.period_name periodName ,
cv.title videoTitle ,
CASE
WHEN wl.log_type = '1' THEN '看课中'
WHEN wl.log_type = '2' THEN '完课'
WHEN wl.log_type = '3' THEN '待看课'
WHEN wl.log_type = '4' THEN '看课中断'
ELSE '无'
END AS watchStatus,
wl.duration,
wl.create_time courseTime,
wl.finish_time finishTime,
COUNT(DISTINCT log_id) AS totalLogCount,
COUNT(DISTINCT CASE WHEN wl.log_type = '2' THEN wl.log_id END) AS finishedCount,
COUNT(DISTINCT CASE WHEN wl.log_type IN ('1', '3', '4') THEN wl.log_id END) AS unfinishedCount,
(SELECT COUNT(DISTINCT concat(uc.userId, '_', uc.companyUserId))
FROM (
SELECT #{condition.userId} AS userId, #{condition.companyUserId} AS companyUserId
) uc
) - COUNT(DISTINCT concat(wl.user_id, '_', wl.company_user_id)) AS notWatchedCount
FROM fs_course_watch_log wl
LEFT JOIN fs_user_course_video cv ON wl.video_id = cv.video_id
LEFT JOIN fs_user_course_period cp ON wl.period_id = cp.period_id AND cp.del_flag = 0
LEFT JOIN fs_user_course_training_camp camp ON cp.training_camp_id = camp.training_camp_id and camp.del_flag=0
WHERE wl.send_type = 1
and (wl.user_id, wl.company_user_id) IN
(#{condition.userId}, #{condition.companyUserId})
AND camp.training_camp_id = #{watchParam.trainingCampId}
AND cp.period_id = #{watchParam.periodId}
AND wl.create_time BETWEEN #{watchParam.sTime} AND #{watchParam.eTime}
GROUP BY
wl.user_id,
wl.company_user_id,
camp.training_camp_name,
cp.period_name,
cv.title,
wl.log_type,
wl.duration,
wl.create_time,
wl.finish_time
SELECT
rp.watch_log_id as logId,
SUM(rp.amount) AS redPacketAmount
FROM fs_course_red_packet_log rp
WHERE rp.watch_log_id IN
#{logId}
GROUP BY rp.watch_log_id
SELECT
user_id AS userId,
COUNT(DISTINCT CASE WHEN status = 3 THEN order_id END) AS historyOrderCount
FROM fs_package_order
WHERE user_id IN
#{userId}
AND DATE(create_time) BETWEEN #{watchParam.orderSTime} AND #{watchParam.orderETime}
GROUP BY user_id
SELECT
l.watch_log_id AS logId,
CASE WHEN l.log_id IS NOT NULL THEN '已答题' ELSE '未答题' END AS answerStatus,
(
SELECT COUNT(1)
FROM fs_course_watch_log wl
WHERE wl.log_id IN
#{logId}
AND wl.log_id NOT IN (
SELECT watch_log_id
FROM fs_course_answer_logs
WHERE watch_log_id IS NOT NULL
)) AS notAnsweredCount
FROM fs_course_answer_logs l
WHERE l.watch_log_id IN
#{logId}
GROUP BY l.watch_log_id
SELECT
c.company_id AS companyId,
c.company_name AS companyName
FROM company c
AND c.company_id = #{companyId}
GROUP BY c.company_id, c.company_name
ORDER BY c.create_time DESC
SELECT
company_id AS companyId,
period_id AS periodId,
company_id AS companyId,
COUNT(DISTINCT CASE WHEN log_type = 3 THEN user_id END) AS pendingCount,
COUNT(DISTINCT CASE WHEN log_type != 3 THEN user_id END) AS watchingCount,
COUNT(DISTINCT CASE WHEN log_type = 2 THEN user_id END) AS finishedCount,
COUNT(DISTINCT CASE WHEN log_type = 4 THEN user_id END) AS interruptedCount,
COUNT(DISTINCT user_id) AS accessCount
FROM fs_course_watch_log
AND create_time >= #{startDate} AND create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
AND company_id IN
#{companyId}
AND period_id IN
#{periodId}
AND company_id IN
#{companyId}
GROUP BY company_id
GROUP BY period_id,company_id
SELECT
w.company_id AS companyId,
w.period_id AS periodId,
w.company_id AS companyId,
COUNT(DISTINCT a.user_id) AS answerUserCount
FROM fs_course_answer_logs a
INNER JOIN fs_course_watch_log w ON a.watch_log_id = w.log_id
AND w.create_time >= #{startDate} AND w.create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
AND w.company_id IN
#{companyId}
AND w.period_id IN
#{periodId}
AND w.company_id IN
#{companyId}
GROUP BY w.company_id
GROUP BY w.period_id,w.company_id
SELECT
w.company_id AS companyId,
w.period_id AS periodId,
w.company_id AS companyId,
COUNT(DISTINCT rpl.user_id) AS packetUserCount,
COALESCE(SUM(rpl.amount), 0) AS packetAmount
FROM fs_course_red_packet_log rpl
INNER JOIN fs_course_watch_log w ON rpl.watch_log_id = w.log_id
rpl.status=1
AND w.create_time >= #{startDate} AND w.create_time < DATE_ADD(#{endDate}, INTERVAL 1 DAY)
AND w.company_id IN
#{companyId}
AND w.period_id IN
#{periodId}
AND w.company_id IN
#{companyId}
GROUP BY w.company_id
GROUP BY w.period_id,w.company_id
SELECT
p.period_id AS periodId,
p.period_name AS periodName,
c.training_camp_name AS trainingCampName
FROM fs_user_course_period p
LEFT JOIN fs_user_course_training_camp c ON p.training_camp_id = c.training_camp_id
WHERE p.period_id IN
#{periodId}
SELECT
cp.period_id periodId,
cp.period_name periodName,
camp.training_camp_name
FROM
fs_user_course_period cp
LEFT JOIN fs_user_course_training_camp camp ON camp.training_camp_id = cp.training_camp_id
WHERE cp.period_id in
#{periodId}
SELECT
cu.user_id companyUserId,
cu.nick_name salesName,
COUNT(DISTINCT u.user_id) AS userCount,
COUNT(DISTINCT CASE WHEN u.status = 1 THEN u.user_id END) AS onlineUserCount
FROM fs_user u
LEFT JOIN fs_user_company_user cuu ON u.user_id = cuu.user_id
LEFT JOIN company_user cu ON cuu.company_user_id = cu.user_id
(u.status = 1 OR cu.status = 1)
AND cu.user_id IN
#{id}
GROUP BY cu.user_id
SELECT
cu.user_id AS companyUserId,
d.dept_name AS salesDept,
c.company_name AS salesCompany,
(SELECT COUNT(*)
FROM company_user cu2
WHERE cu2.dept_id = cu.dept_id
AND cu2.del_flag = '0'
AND cu2.status = '0') AS salesCount
FROM company_user cu
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
WHERE cu.user_id IN
#{salesId}
AND d.dept_id = #{watchParam.deptId}
AND cu.del_flag = '0'
SELECT
d.dept_id AS deptId,
d.dept_name AS salesDept,
c.company_name AS salesCompany,
COUNT(DISTINCT cu.user_id) AS salesCount,
COUNT(DISTINCT u.user_id) AS userCount,
COUNT( DISTINCT CASE WHEN u.STATUS = 1 THEN u.user_id END ) AS onlineUserCount
FROM fs_course_watch_log log
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN fs_user u ON log.user_id = u.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
WHERE log.send_type = 1
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND c.company_id = #{companyId}
AND d.dept_id = #{deptId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND log.project = #{project}
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
GROUP BY d.dept_id, d.dept_name, c.company_name
SELECT DISTINCT d.dept_id
FROM fs_course_watch_log log
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
LEFT JOIN fs_user u ON log.user_id = u.user_id
WHERE log.send_type = 1
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND c.company_id = #{companyId}
AND d.dept_id = #{deptId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND log.project = #{project}
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
SELECT
d.dept_id AS deptId,
log.user_id AS userId,
log.period_id AS periodId,
log.log_id AS logId,
cv.title videoTitle,
COUNT(DISTINCT log.log_id) AS totalLogCount,
COUNT(DISTINCT CASE WHEN log.log_type = '2' THEN log.log_id END) AS finishedCount,
COUNT(DISTINCT CASE WHEN log.log_type IN ('1', '3', '4') THEN log.log_id END) AS unfinishedCount,
COUNT(DISTINCT log.user_id) - COUNT(DISTINCT CASE WHEN log.log_type = '2' THEN log.user_id END) AS notWatchedCount
FROM fs_course_watch_log log
LEFT JOIN fs_user_course_video cv ON log.video_id = cv.video_id
LEFT JOIN fs_package_order po ON po.user_id = log.user_id
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
WHERE log.send_type = 1
AND d.dept_id IN
#{deptId}
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND DATE(po.create_time) BETWEEN #{orderSTime} AND #{orderETime}
AND cu.company_id = #{companyId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
GROUP BY d.dept_id
SELECT
log.user_id userId,
log.period_id periodId,
log.log_id logId,
d.dept_id AS deptId,
d.dept_name AS salesDept,
c.company_name AS salesCompany
FROM fs_course_watch_log log
LEFT JOIN company_user cu ON log.company_user_id = cu.user_id
LEFT JOIN company_dept d ON cu.dept_id = d.dept_id
LEFT JOIN company c ON d.company_id = c.company_id
WHERE log.send_type = 1
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND c.company_id = #{companyId}
AND d.dept_id = #{deptId}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND log.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND log.project = #{project}
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')
GROUP BY
d.dept_id,
d.dept_name,
c.company_name
SELECT
period.period_id periodId,
period.period_name periodName,
camp.training_camp_name trainingCampName,
c.company_name companyName,
c.company_id companyId
FROM
fs_user_course_period period
LEFT JOIN fs_user_course_training_camp camp
ON camp.training_camp_id = period.training_camp_id
LEFT JOIN company c
ON FIND_IN_SET(c.company_id, period.company_id) > 0
period.company_id = #{companyId}
AND period.training_camp_id= #{trainingCampId}
AND period.period_id = #{periodId}
ORDER BY period.create_time DESC
AND c.company_id = #{companyId}
AND cd.dept_id = #{deptId}
AND cu.user_id = #{salesId}
AND cuu.project_id = #{project}
AND DATE(log.create_time) BETWEEN #{sTime} AND #{eTime}
AND log.period_id IN (SELECT period_id FROM fs_user_course_period WHERE training_camp_id = #{trainingCampId})
AND log.period_id = #{periodId}
AND u.user_id = #{userId}
AND u.phone LIKE CONCAT('%', #{userPhone}, '%')
AND u.nick_name LIKE CONCAT('%', #{nickName}, '%')