diff --git a/app/controller/api/dataview/Logistics.php b/app/controller/api/dataview/Logistics.php index 06a8790f..7bba9e1b 100644 --- a/app/controller/api/dataview/Logistics.php +++ b/app/controller/api/dataview/Logistics.php @@ -83,4 +83,37 @@ class Logistics extends BaseController $detail['status'] = app()->make(Order::class)->getStatusDesc($detail['status']); return app('json')->success($detail); } + + // 第二页 物流信息统计 + public function logisticsCount() + { + // 查询镇辖区内配送订单最多的配送员 + + // 先从供销系统 查出镇下边的所有配送员-小组服务公司的负责人 + $serviceGroupCompanyIds = Db::connect('work_task')->name('company') + ->where(['street'=> $this->streetCode, 'company_type'=>18]) + ->column('id'); + $userIdList = Db::connect('work_task')->name('user') + ->whereIn('company_id', $serviceGroupCompanyIds) + ->where(['group_id'=>5]) + ->column('id'); + + // 从物流系统 查物流订单排序 确定谁是 镇辖区内配送订单最多的配送员 + $topCourier = Db::connect('logistics')->name('logistics') + ->field(['courier_id','courier_name','COUNT(order_id) AS order_count']) + ->whereIn('courier_id', $userIdList) + ->group('courier_id') + ->order('order_count DESC') + ->find(); + // 返查配送员的物流配送订单统计信息 + // 待取货数 + $topCourier['pending_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>0, 'courier_id'=>$topCourier['courier_id']])->count(); + // 配送中数 + $topCourier['delivering_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id'=>$topCourier['courier_id']])->count(); + // 已完成数 + $topCourier['finished_order_count'] = Db::connect('logistics')->name('logistics')->where([['status', 'in', [2,3]], 'courier_id'=>$topCourier['courier_id']])->count(); + + return app('json')->success($topCourier); + + } } \ No newline at end of file diff --git a/app/controller/api/dataview/Order.php b/app/controller/api/dataview/Order.php index 6100d33a..1a0cc34a 100644 --- a/app/controller/api/dataview/Order.php +++ b/app/controller/api/dataview/Order.php @@ -169,6 +169,7 @@ class Order extends BaseController return $desc[$status]; } + // 配送商品排行榜 public function deliveredProductRanking() { // 查到镇级 @@ -198,4 +199,19 @@ class Order extends BaseController return app('json')->success($list); } + + // 首页 镇地图统计信息 + public function townMapCount() + { + $townList = Db::connect('work_task')->name('geo_street')->field('street_name, street_code, lng, lat')->where('area_code', $this->areaCode)->select()->toArray(); + foreach ($townList as &$town) { + // 店铺数 + $town['mer_count'] = Db::name('merchant')->where('street_id', $town['street_code'])->count(); + // 小组服务团队数 + $town['service_group_count'] = Db::connect('work_task')->name('company')->where(['street'=> $town['street_code'], 'company_type'=>18])->count(); + } + unset($town); + + return app('json')->success(compact('townList')); + } } \ No newline at end of file diff --git a/route/api.php b/route/api.php index 5ece750a..6b0e83f7 100644 --- a/route/api.php +++ b/route/api.php @@ -720,8 +720,11 @@ Route::group('api/', function () { 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('vehicle_list', 'Logistics/vehicleList'); Route::get('latest_logistics', 'Logistics/latestLogistics'); + Route::get('logistics_count', 'Logistics/logisticsCount'); + })->prefix('api.dataview.'); })->middleware(AllowOriginMiddleware::class)