From a4cef41ae2839642e76a3464ac75ec36e0c8e6f0 Mon Sep 17 00:00:00 2001 From: dengbw Date: Mon, 31 Oct 2022 17:49:50 +0800 Subject: [PATCH] market_statistics_1031_2 --- market/controllers/api/sylive/Statistics.php | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/market/controllers/api/sylive/Statistics.php b/market/controllers/api/sylive/Statistics.php index 65bddfd1..2a3dd20d 100644 --- a/market/controllers/api/sylive/Statistics.php +++ b/market/controllers/api/sylive/Statistics.php @@ -39,7 +39,6 @@ class Statistics extends BaseController } $title = ''; $activityData1 = $activityData2 = $areaData = $bizData = $consultantData = $areaAry = $funnel = $allOrganizationIds = []; - $browse = $subscribe = $watch = $order = 0; $re = $this->mdSyliveActivity->get(['activityId' => $activityId]); if ($re) { $title = $re['title']; @@ -184,18 +183,19 @@ class Statistics extends BaseController $subscribe = $this->mdSyliveActivityKpidata->count(['a_id' => $activityId, 'type' => 0, 'kpi' => 'subscribe']); $watch = $this->mdSyliveActivityKpidata->count(['a_id' => $activityId, 'type' => 0, 'kpi' => 'watch']); $order = $this->mdSyliveOrder->count(['item_id' => $activityId, 'cfrom' => 0, 'status' => 1]); - $duration_min = $livePV = $watchDuration = $watchDuration = $pvDuration = 0; + $duration_min = $livePV = $liveUV = $watchDuration = $watchDuration = $pvDuration = 0; if ($channelId) { $re_duration = $this->mdPolyvSession->sum('duration', ['channelId' => $channelId]); if ($re_duration['duration']) { - $re_liveUV = $this->mdPolyvSession->sum('liveUV', ['channelId' => $channelId]); $re_livePV = $this->mdPolyvSession->sum('livePV', ['channelId' => $channelId]); + $re_liveUV = $this->mdPolyvSession->sum('liveUV', ['channelId' => $channelId]); + $livePV = $re_livePV['livePV']; + $liveUV = $re_liveUV['liveUV']; $re_totalPlayDuration = $this->mdPolyvSession->sum('totalPlayDuration', ['channelId' => $channelId]); $duration_min = round($re_duration['duration'] / 60); $totalPlayDuration_min = round($re_totalPlayDuration['totalPlayDuration'] / 60); - $livePV = $re_livePV['livePV']; - $watchDuration = round($totalPlayDuration_min / $re_liveUV['liveUV']); - $pvDuration = round($livePV / $re_liveUV['liveUV'], 1); + $watchDuration = round($totalPlayDuration_min / $liveUV); + $pvDuration = round($livePV / $liveUV, 1); } } $allConsultant = 0; @@ -208,8 +208,10 @@ class Statistics extends BaseController $activityData1 = [['name' => '参与区域数', 'value' => count($areaData)], ['name' => '参与门店数', 'value' => count($bizData)] , ['name' => '参与/全部顾问数', 'value' => $consultant . '/' . $allConsultant]]; $url = "/sylive/activity/statistics/piechart?activityId={$activityId}&"; + $watch_un = $watch - $liveUV; + $watch_un < 0 && $watch_un = 0; $activityData2 = [['name' => '浏览数(人)', 'value' => $browse, 'url' => ''], ['name' => '预约数(人)', 'value' => $subscribe, 'url' => ''] - , ['name' => '观看数(人)', 'value' => $watch, 'url' => ''], ['name' => '订单数(单)', 'value' => $order, 'url' => ''] + , ['name' => '订单数(单)', 'value' => $order, 'url' => ''], ['name' => '有效观看(人)', 'value' => $liveUV, 'url' => ''], ['name' => '无效观看(人)', 'value' => $watch_un, 'url' => ''] , ['name' => '直播时长(分)', 'value' => $duration_min, 'url' => ''], ['name' => '观看数(人次)', 'value' => $livePV, 'url' => ''] , ['name' => '人均观看(分)', 'value' => $watchDuration, 'url' => ''], ['name' => '人均观看(次)', 'value' => $pvDuration, 'url' => '']]; // $activityData2 = [['name' => '浏览数(人)', 'value' => $browse, 'url' => "{$url}kpi=browse"], ['name' => '预约数(人)', 'value' => $subscribe, 'url' => "{$url}kpi=subscribe"] @@ -242,8 +244,8 @@ class Statistics extends BaseController $right_actual_data = [['name' => '浏览人数_' . $right_browse, 'value' => $right_browse], ['name' => '观看人数', 'value' => $right_watch], ['name' => '订单数', 'value' => $right_order]]; $funnel_subscribe = ['title' => '浏览转化漏斗(直播阶段)', 'expected_data' => $right_expected_data, 'actual_data' => $right_actual_data]; - $data = ['activityId' => $activityId, 'title' => $title, 'activityData1' => $activityData1, 'activityData2' => $activityData2, 'areaData' => $areaData - , 'bizData' => $bizData, 'consultantData' => $consultantData, 'funnelBrowse' => $funnel_browse, 'funnelSubscribe' => $funnel_subscribe]; + $data = ['activityId' => $activityId, 'title' => $title, 'activityData1' => ['list' => $activityData1, 'style' => 'width: 33.3%'], 'activityData2' => ['list' => $activityData2, 'style' => 'width: 11.1%'] + , 'areaData' => $areaData, 'bizData' => $bizData, 'consultantData' => $consultantData, 'funnelBrowse' => $funnel_browse, 'funnelSubscribe' => $funnel_subscribe]; $this->return_response($data); }