Переглянути джерело

feat: 进线转化统计新增流量数、注册数

xdd 6 днів тому
батько
коміт
a42f79cf92

+ 12 - 0
fs-service/src/main/java/com/fs/statis/domain/FsStatisQwWatch.java

@@ -187,4 +187,16 @@ public class FsStatisQwWatch {
      */
     @Excel(name = "完课率")
     private BigDecimal finishedRate;
+
+    /**
+     * 流量数
+     */
+    @Excel(name = "流量数")
+    private Long trafficSum;
+
+    /**
+     * 注册数
+     */
+    @Excel(name = "注册数")
+    private Long regNum;
 }

+ 39 - 9
fs-service/src/main/resources/mapper/statis/FsStatisQwWatchMapper.xml

@@ -245,7 +245,9 @@
             ifnull(sum(remind_pending_num),0) as remind_pending_num,
             ifnull(sum(remind_processed_num),0) as remind_processed_num,
             (case when sum(send_num)>=sum(registered_num) then ROUND(SUM(registered_num) * 1.0 / SUM(send_num), 4) else 0 end) as reg_rate,
-            (case when sum(send_num)>=sum(completed_num) then ROUND(SUM(completed_num) * 1.0 / SUM(send_num), 4) else 0 end) as finished_rate
+            (case when sum(send_num)>=sum(completed_num) then ROUND(SUM(completed_num) * 1.0 / SUM(send_num), 4) else 0 end) as finished_rate,
+            ifnull(sum(traffic_sum,0)) as traffic_sum,
+            ifnull(sum(reg_num,0)) as reg_num
         from fs_statis_qw_watch
         <where>
             <if test="startDate != null and endDate != null">
@@ -288,7 +290,9 @@
         ifnull(sum(watch.remind_pending_num),0) as remind_pending_num,
         ifnull(sum(watch.remind_processed_num),0) as remind_processed_num,
         (case when sum(watch.send_num)>=sum(watch.registered_num) then ROUND(SUM(watch.registered_num) * 1.0 / SUM(watch.send_num), 4) else 0 end) as reg_rate,
-        (case when sum(watch.send_num)>=sum(watch.completed_num) then ROUND(SUM(watch.completed_num) * 1.0 / SUM(watch.send_num), 4) else 0 end) as finished_rate
+        (case when sum(watch.send_num)>=sum(watch.completed_num) then ROUND(SUM(watch.completed_num) * 1.0 / SUM(watch.send_num), 4) else 0 end) as finished_rate,
+        ifnull(sum(traffic_sum,0)) as traffic_sum,
+        ifnull(sum(reg_num,0)) as reg_num
         from fs_statis_qw_watch watch
         left join company_dept dept on watch.dept_id=dept.dept_id
         left join company_user cu on watch.company_user_id=cu.user_id
@@ -321,7 +325,7 @@
             #{item.deletedNum,jdbcType=BIGINT}, #{item.orderNum,jdbcType=BIGINT}, #{item.orderMoneyTotal,jdbcType=DECIMAL},
             #{item.redPackageMoneyTotal,jdbcType=DECIMAL}, #{item.callNum,jdbcType=BIGINT}, #{item.receivePassNum,jdbcType=BIGINT},
             #{item.receiveNotNum,jdbcType=BIGINT}, #{item.callTimeTotal,jdbcType=BIGINT}, #{item.remindPendingNum,jdbcType=BIGINT},
-            #{item.remindProcessedNum,jdbcType=BIGINT}
+            #{item.remindProcessedNum,jdbcType=BIGINT},#{item.trafficSum,jdbcType=BIGINT},#{item.regNum,jdbcType=BIGINT}
             )
         </foreach>
     </insert>
@@ -349,7 +353,9 @@
                 remind_pending_num,
                 remind_processed_num,
                 qw_repeat_num,
-                user_repeat_num
+                user_repeat_num,
+                traffic_sum,
+                reg_num
             )
             WITH extended_temp AS (
             -- 原始temp表数据
@@ -406,7 +412,9 @@
             IFNULL(qw_work.remind_pending_num, 0) as remind_pending_num,
             IFNULL(qw_work.remind_processed_num, 0) as remind_processed_num,
             IFNULL(contact.qw_repeat_num,0) as qw_repeat_num,
-            IFNULL(contact.user_repeat_num,0) as user_repeat_num
+            IFNULL(contact.user_repeat_num,0) as user_repeat_num,
+            IFNULL(traffic.traffic_sum,0) as traffic_sum,
+            IFNULL(fs_user.reg_num,0) as reg_num
             FROM extended_temp temp
             LEFT JOIN (
             SELECT
@@ -439,7 +447,7 @@
             AND contact.status IN (4, 5, 7)
             AND contact.update_time >= #{startTime}
             AND contact.update_time < #{endTime}
-            GROUP BY qw_user_id, company_user_id
+            GROUP BY company_user_id,qw_user_id
             ) contact ON contact.qw_user_id = temp.qw_user_id
             AND contact.company_user_id = temp.company_user_id
 
@@ -455,7 +463,7 @@
             AND company_user_id IS NOT NULL
             AND create_time >= #{startTime}
             AND create_time < #{endTime}
-            GROUP BY company_user_id
+            GROUP BY company_user_id,qw_user_id
             ) stats_order ON temp.company_user_id = stats_order.company_user_id
             AND temp.qw_user_id = '-1'
             -- 红包数
@@ -468,7 +476,7 @@
             WHERE status = 1
             AND create_time >= #{startTime}
             AND create_time < #{endTime}
-            GROUP BY company_user_id
+            GROUP BY company_user_id,qw_user_id
             ) redp ON temp.company_user_id = redp.company_user_id
             AND temp.qw_user_id = '-1'
             -- 通话统计(总拨打数(可以后面两项相加)、接通数、未接通数、通话时长)
@@ -498,7 +506,29 @@
             GROUP BY company_user_id, qw_user_id
             ) qw_work ON temp.company_user_id = qw_work.company_user_id
             AND temp.qw_user_id = qw_work.qw_user_id
-
+                -- 流量统计
+            LEFT JOIN (
+                select
+                    company_user_id,
+                    qw_user_id,
+                    SUM(internet_traffic) as traffic_sum
+                from fs_course_traffic_log
+                where create_time >= #{startTime}
+                  AND create_time < #{endTime}
+                GROUP BY company_user_id, qw_user_id
+            )traffic ON temp.company_user_id = traffic.company_user_id
+                AND temp.qw_user_id = traffic.qw_user_id
+                -- 注册人数
+            LEFT JOIN (
+                select company_user_id,
+                       qw_user_id,
+                       count(user_id) as reg_num
+                from fs_user
+                WHERE create_time >= #{startTime}
+                  AND create_time < #{endTime}
+                GROUP BY company_user_id, qw_user_id
+            ) fs_user ON temp.company_user_id = fs_user.company_user_id
+                AND temp.qw_user_id = fs_user.qw_user_id
         ]]>
     </insert>