From f4296c0949b1b8a6a5111246fff2d9f6071bef47 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 18:55:01 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E6=95=B0=E6=8D=AE=E4=B9=8B=E7=9C=BC?= =?UTF-8?q?=E5=A4=A7=E5=B1=8F-=E9=A6=96=E9=A1=B5=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=E5=92=8C=E5=BA=97=E9=93=BA?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/User.php | 88 ++++++++++++++++++++++++++++ route/api.php | 12 +++- 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 app/controller/api/dataview/User.php diff --git a/app/controller/api/dataview/User.php b/app/controller/api/dataview/User.php new file mode 100644 index 00000000..17d8b704 --- /dev/null +++ b/app/controller/api/dataview/User.php @@ -0,0 +1,88 @@ +repository = $repository; + $this->areaCode = $this->request->param('areaCode', ''); + $this->streetCode = $this->request->param('streetCode', ''); + + if ($this->areaCode == '' && $this->streetCode == '') { + throw new ValidateException('请选择地区'); + } + } + + public function userMerchantCount(UserRepository $repository, UserVisitRepository $visitRepository) + { + // 近5日 平台用户量统计 + $userCountlist = []; + $merchatCountList = []; + // 4天前 + $startBeforeDay5 = strtotime(date('Y-m-d', strtotime('-4 days'))); + $endBeforeDay5 = $startBeforeDay5+ 86399; + $userCountlist[] = $this->getTimeRangeUserCount([$startBeforeDay5, $endBeforeDay5]); + + // 3天前 + $startBeforeDay4 = strtotime(date('Y-m-d', strtotime('-3 days'))); + $endBeforeDay4 = $startBeforeDay4 + 86399; + $userCountlist[] = $this->getTimeRangeUserCount([$startBeforeDay4, $endBeforeDay4]); + + // 2天前 + $startBeforeDay3 = strtotime(date('Y-m-d', strtotime('-2 days'))); + $endBeforeDay3 = $startBeforeDay3 + 86399; + $userCountlist[] = $this->getTimeRangeUserCount([$startBeforeDay3, $endBeforeDay3]); + + // 1天前 + $startBeforeDay2= strtotime(date('Y-m-d', strtotime('-1 days'))); + $endBeforeDay2 = $startBeforeDay2+ 86399; + $userCountlist[] = $this->getTimeRangeUserCount([$startBeforeDay2, $endBeforeDay2]); + + // 今天 + $startCurrDay1 = strtotime(date('Y-m-d', time())); + $endCurrDay1 = $startCurrDay1+ 86399; + $userCountlist[] = $this->getTimeRangeUserCount([$startCurrDay1, $endCurrDay1]); + + + // 地方店铺数量统计 + + // 该地区下所有乡镇 + $geoStreetList = Db::name('geo_street')->where('area_code',$this->areaCode)->select()->toArray(); + + // 遍历统计每个乡镇的店铺数 + foreach ($geoStreetList as $street) { + $temp['street_name'] = $street['street_name']; + $temp['merchant_count'] = Db::name('merchant')->where('street_id', $street['street_code'])->count(); + $merchatCountList[] = $temp; + unset($temp); + } + return app('json')->success(compact('userCountlist', 'merchatCountList')); + } + public function getTimeRangeUserCount($timeRange=[]) + { + // 新增 + $newUserCount = Db::name('user') + ->whereTime('create_time', 'between', $timeRange) + ->count(); + // 访问 + $viewUserCount = Db::name('user') + ->whereTime('last_time', 'between', $timeRange) + ->count(); + // 累计 + $totalUserCount = Db::name('user')->whereTime('create_time', '<', $timeRange[1])->count(); + + return compact('newUserCount', 'viewUserCount', 'totalUserCount'); + } +} \ No newline at end of file diff --git a/route/api.php b/route/api.php index bba3f4c2..b7201a6b 100644 --- a/route/api.php +++ b/route/api.php @@ -716,18 +716,26 @@ Route::group('api/', function () { // dataview接口 Route::group('dataview', function () { -// Route::post('cancel/:id', '/cancelGroupOrder'); + /**---------------------物流溯源监控大屏api-------------------- start **/ Route::get('curr_order_info', 'Order/currOrderInfo'); Route::get('order_ranking', 'Order/orderRanking'); Route::get('delivered_product_ranking', 'Order/deliveredProductRanking'); Route::get('town_map_count', 'Order/townMapCount'); Route::get('date_range_order_count', 'Order/dateRangeOrderCount'); - Route::get('vehicle_list', 'Logistics/vehicleList'); Route::get('latest_logistics', 'Logistics/latestLogistics'); Route::get('logistics_count', 'Logistics/logisticsCount'); Route::get('logistics_map_count', 'Logistics/logisticsMapCount'); + /**---------------------物流溯源监控大屏api---------------------- end **/ + + + /**---------------------数据之眼可视化大屏api------------------- start */ + Route::get('user_merchat_count', 'User/userMerchantCount'); + + + /**---------------------数据之眼可视化大屏api-------------------- end */ + })->prefix('api.dataview.');