|
@@ -31,28 +31,36 @@
|
|
|
</sql>
|
|
|
|
|
|
<select id="queryList" resultType="com.fs.statis.domain.FsStatisSalerWatch">
|
|
|
- select
|
|
|
- company_user_id,
|
|
|
- ANY_VALUE(dept_id) as dept_id,
|
|
|
- sum(train_camp_num) as train_camp_num,
|
|
|
- sum(not_registered_num) as not_registered_num,
|
|
|
- sum(registered_num) as registered_num,
|
|
|
- sum(reg_rate) as reg_rate,
|
|
|
- sum(finished_rate) as finished_rate,
|
|
|
- sum(offline_total) as offline_total,
|
|
|
- sum(offline_not_part) as offline_not_part,
|
|
|
- sum(offline_not_watched) as offline_not_watched,
|
|
|
- sum(online_total) as online_total,
|
|
|
- sum(online_online_rate) as online_online_rate,
|
|
|
- sum(online_playback_comple_rate) as online_playback_comple_rate,
|
|
|
- sum(online_incomplete_playback) as online_incomplete_playback,
|
|
|
- sum(online_complete_playback) as online_complete_playback
|
|
|
- from fs_statis_saler_watch
|
|
|
+ SELECT
|
|
|
+ company_user_id,
|
|
|
+ ANY_VALUE(dept_id) as dept_id,
|
|
|
+ SUM(train_camp_num) as train_camp_num,
|
|
|
+ SUM(not_registered_num) as not_registered_num,
|
|
|
+ SUM(registered_num) as registered_num,
|
|
|
+ SUM(offline_total) as offline_total,
|
|
|
+ SUM(offline_not_part) as offline_not_part,
|
|
|
+ SUM(offline_not_watched) as offline_not_watched,
|
|
|
+ SUM(online_total) as online_total,
|
|
|
+ SUM(online_incomplete_playback) as online_incomplete_playback,
|
|
|
+ SUM(online_complete_playback) as online_complete_playback,
|
|
|
+ CASE WHEN SUM(train_camp_num) > 0
|
|
|
+ THEN ROUND(SUM(registered_num) * 1.0 / SUM(train_camp_num), 4)
|
|
|
+ ELSE 0 END as reg_rate,
|
|
|
+ CASE WHEN SUM(registered_num) > 0
|
|
|
+ THEN ROUND((SUM(registered_num) - SUM(not_registered_num)) * 1.0 / SUM(registered_num), 4)
|
|
|
+ ELSE 0 END as finished_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_online_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_playback_comple_rate
|
|
|
+ FROM fs_statis_saler_watch
|
|
|
<where>
|
|
|
<if test="userIds != null and userIds.size() > 0">
|
|
|
AND company_user_id IN
|
|
|
- <foreach collection="userIds" open="(" close=")" separator="," item="item">
|
|
|
- ${item}
|
|
|
+ <foreach collection="userIds" open="(" close=")" separator="," item="item">
|
|
|
+ ${item}
|
|
|
</foreach>
|
|
|
</if>
|
|
|
<if test="periodList != null and periodList.size() > 0">
|
|
@@ -65,7 +73,97 @@
|
|
|
AND data_date BETWEEN #{startDate} AND #{endDate}
|
|
|
</if>
|
|
|
</where>
|
|
|
- group by company_user_id,data_date
|
|
|
+ GROUP BY company_user_id
|
|
|
+ </select>
|
|
|
+ <select id="queryPeriodList" resultType="com.fs.statis.domain.FsStatisSalerWatch">
|
|
|
+ SELECT
|
|
|
+ period_id,
|
|
|
+ ANY_VALUE(dept_id) as dept_id,
|
|
|
+ SUM(train_camp_num) as train_camp_num,
|
|
|
+ SUM(not_registered_num) as not_registered_num,
|
|
|
+ SUM(registered_num) as registered_num,
|
|
|
+ SUM(offline_total) as offline_total,
|
|
|
+ SUM(offline_not_part) as offline_not_part,
|
|
|
+ SUM(offline_not_watched) as offline_not_watched,
|
|
|
+ SUM(online_total) as online_total,
|
|
|
+ SUM(online_incomplete_playback) as online_incomplete_playback,
|
|
|
+ SUM(online_complete_playback) as online_complete_playback,
|
|
|
+ CASE WHEN SUM(train_camp_num) > 0
|
|
|
+ THEN ROUND(SUM(registered_num) * 1.0 / SUM(train_camp_num), 4)
|
|
|
+ ELSE 0 END as reg_rate,
|
|
|
+ CASE WHEN SUM(registered_num) > 0
|
|
|
+ THEN ROUND((SUM(registered_num) - SUM(not_registered_num)) * 1.0 / SUM(registered_num), 4)
|
|
|
+ ELSE 0 END as finished_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_online_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_playback_comple_rate
|
|
|
+ FROM fs_statis_saler_watch
|
|
|
+ <where>
|
|
|
+ <if test="userIds != null and userIds.size() > 0">
|
|
|
+ AND company_user_id IN
|
|
|
+ <foreach collection="userIds" open="(" close=")" separator="," item="item">
|
|
|
+ ${item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="periodList != null and periodList.size() > 0">
|
|
|
+ AND period_id IN
|
|
|
+ <foreach collection="periodList" open="(" close=")" separator="," item="item">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="startDate != null and endDate != null">
|
|
|
+ AND data_date BETWEEN #{startDate} AND #{endDate}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ GROUP BY period_id
|
|
|
+ </select>
|
|
|
+ <select id="queryTodayList" resultType="com.fs.statis.domain.FsStatisSalerWatch">
|
|
|
+ SELECT
|
|
|
+ data_date,
|
|
|
+ ANY_VALUE(dept_id) as dept_id,
|
|
|
+ SUM(train_camp_num) as train_camp_num,
|
|
|
+ SUM(not_registered_num) as not_registered_num,
|
|
|
+ SUM(registered_num) as registered_num,
|
|
|
+ SUM(offline_total) as offline_total,
|
|
|
+ SUM(offline_not_part) as offline_not_part,
|
|
|
+ SUM(offline_not_watched) as offline_not_watched,
|
|
|
+ SUM(online_total) as online_total,
|
|
|
+ SUM(online_incomplete_playback) as online_incomplete_playback,
|
|
|
+ SUM(online_complete_playback) as online_complete_playback,
|
|
|
+ CASE WHEN SUM(train_camp_num) > 0
|
|
|
+ THEN ROUND(SUM(registered_num) * 1.0 / SUM(train_camp_num), 4)
|
|
|
+ ELSE 0 END as reg_rate,
|
|
|
+ CASE WHEN SUM(registered_num) > 0
|
|
|
+ THEN ROUND((SUM(registered_num) - SUM(not_registered_num)) * 1.0 / SUM(registered_num), 4)
|
|
|
+ ELSE 0 END as finished_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_online_rate,
|
|
|
+ CASE WHEN SUM(online_total) > 0
|
|
|
+ THEN ROUND(SUM(online_complete_playback) * 1.0 / SUM(online_total), 4)
|
|
|
+ ELSE 0 END as online_playback_comple_rate
|
|
|
+ FROM fs_statis_saler_watch
|
|
|
+ <where>
|
|
|
+ <if test="userIds != null and userIds.size() > 0">
|
|
|
+ AND company_user_id IN
|
|
|
+ <foreach collection="userIds" open="(" close=")" separator="," item="item">
|
|
|
+ ${item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="periodList != null and periodList.size() > 0">
|
|
|
+ AND period_id IN
|
|
|
+ <foreach collection="periodList" open="(" close=")" separator="," item="item">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="startDate != null and endDate != null">
|
|
|
+ AND data_date BETWEEN #{startDate} AND #{endDate}
|
|
|
+ </if>
|
|
|
+ </where>
|
|
|
+ GROUP BY data_date
|
|
|
</select>
|
|
|
|
|
|
<insert id="batchSave">
|