From e60c246513b7e5fd8fda38a0949357910a6f57bd Mon Sep 17 00:00:00 2001 From: root Date: Tue, 5 Dec 2023 13:30:10 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/middle/StoreProduct.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/controller/middle/StoreProduct.php b/app/controller/middle/StoreProduct.php index e41713c3..f0d3f84d 100644 --- a/app/controller/middle/StoreProduct.php +++ b/app/controller/middle/StoreProduct.php @@ -39,7 +39,10 @@ class StoreProduct extends BaseController unset($_where['product_type']); unset($_where['star']); $where = array_merge($where, $_where); - return app('json')->success($this->repository->getAdminList($merId, $where, $page, $limit)); + $data = $this->repository->getAdminList($merId, $where, $page, $limit); + $data['lists'] = $data['list']; + unset($data['list']); + return app('json')->success($data); } public function lists() From 4da7ec4711e77448ad229712e82a27f5f2ccd826 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 5 Dec 2023 13:37:46 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/middle/Merchant.php | 5 ++++- app/controller/middle/User.php | 5 ++++- app/controller/middle/UserGroup.php | 5 ++++- app/controller/middle/UserLabel.php | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/app/controller/middle/Merchant.php b/app/controller/middle/Merchant.php index f03e3fa4..5a0f9e22 100644 --- a/app/controller/middle/Merchant.php +++ b/app/controller/middle/Merchant.php @@ -59,7 +59,10 @@ class Merchant extends BaseController { [$page, $limit] = $this->getPage(); $where = $this->request->params(['keyword', 'date', 'status', 'statusTag', 'is_trader', 'category_id', 'type_id', 'area_id', 'street_id']); - return app('json')->success($this->repository->lst($where, $page, $limit)); + $data = $this->repository->lst($where, $page, $limit); + $data['lists'] = $data['list']; + unset($data['list']); + return app('json')->success($data); } } diff --git a/app/controller/middle/User.php b/app/controller/middle/User.php index 5b0eee33..83405e02 100644 --- a/app/controller/middle/User.php +++ b/app/controller/middle/User.php @@ -41,7 +41,10 @@ class User extends BaseController 'uid', ]); [$page, $limit] = $this->getPage(); - return app('json')->success($this->repository->getList($where, $page, $limit)); + $data = $this->repository->getList($where, $page, $limit); + $data['lists'] = $data['list']; + unset($data['list']); + return app('json')->success($data); } } diff --git a/app/controller/middle/UserGroup.php b/app/controller/middle/UserGroup.php index b433b740..bc095df4 100644 --- a/app/controller/middle/UserGroup.php +++ b/app/controller/middle/UserGroup.php @@ -26,7 +26,10 @@ class UserGroup extends BaseController { $page = 1; $limit = 9999; - return app('json')->success($this->repository->getList([], $page, $limit)); + $data = $this->repository->getList([], $page, $limit); + $data['lists'] = $data['list']; + unset($data['list']); + return app('json')->success($data); } } diff --git a/app/controller/middle/UserLabel.php b/app/controller/middle/UserLabel.php index 06bfe7f1..a601a2bb 100644 --- a/app/controller/middle/UserLabel.php +++ b/app/controller/middle/UserLabel.php @@ -28,7 +28,10 @@ class UserLabel extends BaseController $limit = 9999; $where = $this->request->params(['type', 'all']); $where['mer_id'] = $this->request->merId(); - return app('json')->success($this->repository->getList($where, $page, $limit)); + $data = $this->repository->getList($where, $page, $limit); + $data['lists'] = $data['list']; + unset($data['list']); + return app('json')->success($data); } } From abd9f40165f13b7d77e8e66c3e7ee158ed0b98e0 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 13:51:14 +0800 Subject: [PATCH 03/11] =?UTF-8?q?add=20=E7=AC=AC=E4=BA=8C=E9=A1=B5?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E8=AE=A2=E5=8D=95=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9D=A1=E7=8A=B6=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Order.php | 125 ++++++++++++++++++++++++++ route/api.php | 3 + 2 files changed, 128 insertions(+) diff --git a/app/controller/api/dataview/Order.php b/app/controller/api/dataview/Order.php index 1a0cc34a..0a4d878b 100755 --- a/app/controller/api/dataview/Order.php +++ b/app/controller/api/dataview/Order.php @@ -214,4 +214,129 @@ class Order extends BaseController return app('json')->success(compact('townList')); } + + // 第二页 时间段订单统计 + public function dateRangeOrderCount() + { + $list = []; + // 00:00-02:00 + $startTime0 = strtotime(date('Y-m-d', time())); + $endTime2 = strtotime(date('Y-m-d 02:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime0, $endTime2]); + + // 02:00-04:00 + $startTime2 = strtotime(date('Y-m-d 02:00:00')); + $endTime4 = strtotime(date('Y-m-d 04:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime2, $endTime4]); + + // 04:00-06:00 + $startTime4 = strtotime(date('Y-m-d 04:00:00')); + $endTime6 = strtotime(date('Y-m-d 06:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime4, $endTime6]); + + // 06:00-08:00 + $startTime6 = strtotime(date('Y-m-d 06:00:00')); + $endTime8 = strtotime(date('Y-m-d 08:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime6, $endTime8]); + + // 08:00-10:00 + $startTime8 = strtotime(date('Y-m-d 08:00:00')); + $endTime10 = strtotime(date('Y-m-d 10:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime8, $endTime10]); + + // 10:00-12:00 + $startTime10 = strtotime(date('Y-m-d 10:00:00')); + $endTime12 = strtotime(date('Y-m-d 12:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime10, $endTime12]); + + // 12:00-14:00 + $startTime12 = strtotime(date('Y-m-d 12:00:00')); + $endTime14 = strtotime(date('Y-m-d 14:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime12, $endTime14]); + + // 14:00-16:00 + $startTime14 = strtotime(date('Y-m-d 14:00:00')); + $endTime16 = strtotime(date('Y-m-d 16:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime14, $endTime16]); + + // 16:00-18:00 + $startTime16 = strtotime(date('Y-m-d 16:00:00')); + $endTime18 = strtotime(date('Y-m-d 18:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime16, $endTime18]); + + // 18:00-20:00 + $startTime18 = strtotime(date('Y-m-d 18:00:00')); + $endTime20 = strtotime(date('Y-m-d 20:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime18, $endTime20]); + + // 20:00-22:00 + $startTime20 = strtotime(date('Y-m-d 20:00:00')); + $endTime22 = strtotime(date('Y-m-d 22:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime20, $endTime22]); + + // 22:00-24:00 + $startTime22 = strtotime(date('Y-m-d 22:00:00')); + $endTime24 = strtotime(date('Y-m-d 24:00:00')); + $list[] = $this->getTimeRangeOrderCount([$startTime22, $endTime24]); + halt($list); + return app('json')->success($list); + } + private function getTimeRangeOrderCount($timeRange) + { + $hourOrderCountQuery = Db::name('store_order')->alias('o') + ->field(['o.order_sn', 'o.real_name', 'o.user_phone', 'o.user_address', 'o.user_address_code', 'p.store_name', 'm.mer_name', 'o.create_time', 'o.status']) + ->leftJoin('product_order_log og', 'o.order_id = og.order_id') + ->leftJoin('merchant m', 'o.mer_id = m.mer_id') + ->leftJoin('store_order_product op', 'o.order_id = op.order_id') + ->leftJoin('product_library p', 'op.product_id = p.id') + ->whereTime('og.create_time', 'between', $timeRange) // whereTime('create_time', 'between', [$a[0],$a[1]]); + ->where('o.paid', 1) + ->whereNotNull('o.pay_time'); + + // 待取货订单数统计query 订单待发货 + $pendingPickupOrderCountQuery = Db::name('store_order')->alias('o') + ->leftJoin('product_order_log og', 'o.order_id = og.order_id') + ->whereTime('og.create_time', 'between', $timeRange) + ->where('o.status', 0) + ->where('o.paid', 1) + ->whereNotNull('o.pay_time');; + + // 未配送订单数统计query 订单待收货 + $undeliveredOrderCountQuery = Db::name('store_order')->alias('o') + ->leftJoin('product_order_log og', 'o.order_id = og.order_id') + ->whereTime('og.create_time', 'between', $timeRange) + ->where('o.status', 1) + ->where('o.paid', 1) + ->whereNotNull('o.pay_time');; + + // 已完成订单数统计query 订单已完成 + $doneOrderCountQuery = Db::name('store_order')->alias('o') + ->leftJoin('product_order_log og', 'o.order_id = og.order_id') + ->whereTime('og.create_time', 'between', $timeRange) + ->whereIn('o.status', [2,3]) + ->where('o.paid', 1) + ->whereNotNull('o.pay_time'); + + if ($this->areaCode != '') { + $hourOrderCountQuery->where('og.district_code', $this->areaCode); + $pendingPickupOrderCountQuery->where('og.district_code', $this->areaCode); + $undeliveredOrderCountQuery->where('og.district_code', $this->areaCode); + $doneOrderCountQuery->where('og.district_code', $this->areaCode); + } else if ($this->streetCode != '') { + $hourOrderCountQuery->where('og.street_code', $this->streetCode); + $pendingPickupOrderCountQuery->where('og.street_code', $this->streetCode); + $undeliveredOrderCountQuery->where('og.street_code', $this->streetCode); + $doneOrderCountQuery->where('og.street_code', $this->streetCode); + } + + // 今日订单数 + $hourOrderCount = $hourOrderCountQuery->count(); + // 待取货订单数 + $pendingOrderCount = $pendingPickupOrderCountQuery->count(); + // 未配送订单数 + $undeliveredOrderCount = $undeliveredOrderCountQuery->count(); + // 已完成订单数 + $doneOrderCount = $doneOrderCountQuery->count(); + return compact('hourOrderCount', 'pendingOrderCount', 'undeliveredOrderCount', 'doneOrderCount'); + } } \ No newline at end of file diff --git a/route/api.php b/route/api.php index 6b0e83f7..9d8cc573 100644 --- a/route/api.php +++ b/route/api.php @@ -721,6 +721,9 @@ Route::group('api/', function () { 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'); From 35a661a726309c4164be2ad87de6c869b97c94d4 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 14:25:50 +0800 Subject: [PATCH 04/11] =?UTF-8?q?add=20=E7=AC=AC=E4=BA=8C=E9=A1=B5?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E8=AE=A2=E5=8D=95=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9D=A1=E7=8A=B6=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Order.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controller/api/dataview/Order.php b/app/controller/api/dataview/Order.php index 0a4d878b..2844ce5a 100755 --- a/app/controller/api/dataview/Order.php +++ b/app/controller/api/dataview/Order.php @@ -278,7 +278,7 @@ class Order extends BaseController $startTime22 = strtotime(date('Y-m-d 22:00:00')); $endTime24 = strtotime(date('Y-m-d 24:00:00')); $list[] = $this->getTimeRangeOrderCount([$startTime22, $endTime24]); - halt($list); + return app('json')->success($list); } private function getTimeRangeOrderCount($timeRange) From c656443f9efc8d08361e39f50cc34228c40c643b Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 14:39:51 +0800 Subject: [PATCH 05/11] =?UTF-8?q?update=20=E7=89=A9=E6=B5=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3-=E4=B8=89=E8=BD=AE=E8=BD=A6?= =?UTF-8?q?=E8=BD=A6=E7=89=8C=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Logistics.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/controller/api/dataview/Logistics.php b/app/controller/api/dataview/Logistics.php index 7bba9e1b..03055437 100755 --- a/app/controller/api/dataview/Logistics.php +++ b/app/controller/api/dataview/Logistics.php @@ -113,6 +113,11 @@ class Logistics extends BaseController // 已完成数 $topCourier['finished_order_count'] = Db::connect('logistics')->name('logistics')->where([['status', 'in', [2,3]], 'courier_id'=>$topCourier['courier_id']])->count(); + // 三轮车车牌号 根据配送员id反查公司id,公司id反查车牌号 + $courierCompanyId = Db::connect('work_task')->name('user')->where(['id'=>$topCourier['courier_id']])->value('company_id'); + $vehicleRent = Db::connect('work_task')->name('vehicle_rent')->where(['rent_company_id'=>$courierCompanyId])->find(); + $topCourier['car_id'] = $vehicleRent['car_id']; + $topCourier['car_license'] = $vehicleRent['car_license']; return app('json')->success($topCourier); } From 01e31ae2832af3cf0a60dd52836ebc9b5951be69 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 16:18:39 +0800 Subject: [PATCH 06/11] =?UTF-8?q?update=20=E9=A6=96=E9=A1=B5=E4=B8=89?= =?UTF-8?q?=E8=BD=AE=E8=BD=A6=E5=88=97=E8=A1=A8-=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=AF=8F=E4=B8=AA=E4=B9=A1=E9=95=87=E8=AE=A2=E5=8D=95=E6=9C=80?= =?UTF-8?q?=E5=A4=9A=E7=9A=84=E4=B8=89=E8=BD=AE=E8=BD=A6=E3=80=82=E7=AC=AC?= =?UTF-8?q?=E4=BA=8C=E9=A1=B5=E7=89=A9=E6=B5=81=E7=BB=9F=E8=AE=A1=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3=E6=A0=B9=E6=8D=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E9=85=8D=E9=80=81=E5=91=98id-courie?= =?UTF-8?q?r=5Fid=E7=9B=B4=E6=8E=A5=E6=9F=A5=E7=BB=9F=E8=AE=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Logistics.php | 118 +++++++++++++--------- 1 file changed, 68 insertions(+), 50 deletions(-) diff --git a/app/controller/api/dataview/Logistics.php b/app/controller/api/dataview/Logistics.php index 03055437..26bbdfa2 100755 --- a/app/controller/api/dataview/Logistics.php +++ b/app/controller/api/dataview/Logistics.php @@ -23,32 +23,64 @@ class Logistics extends BaseController } } - // 三轮车列表 从供销系统获取 + // 三轮车列表 每个乡镇订单最多的配送员的三轮车 public function vehicleList() { - // 镇区域码为空,查区县的公司 - if (empty($this->streetCode)) { - $companyList = Db::connect('work_task')->name('company')->where('area', $this->areaCode)->select()->toArray(); - } else { - $companyList = Db::connect('work_task')->name('company')->where('street', $this->streetCode)->select()->toArray(); + // 查区县的镇农科公司 + $list = []; + $companyList = Db::connect('work_task')->name('company')->where(['area' => $this->areaCode, 'company_type'=>41])->select()->toArray(); + + foreach ($companyList as $company) { + // 先从供销系统 查出镇下边的所有配送员-小组服务公司的负责人 + $serviceGroupCompanyIds = Db::connect('work_task')->name('company') + ->where(['street'=> $company['street'], '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(); + // 小组公司没有配送员或是没有三轮车 + if (empty($topCourier)) { + continue; + } + + // 三轮车车牌号 根据配送员id反查公司id,公司id反查车牌号 + $courier = Db::connect('work_task')->name('user')->where(['id'=>$topCourier['courier_id']])->find(); + + $vehicleRent = Db::connect('work_task')->name('vehicle_rent')->where(['rent_company_id'=>$courier['company_id']])->find(); + + $topCourier['id'] = $vehicleRent['car_id']; + $topCourier['license'] = $vehicleRent['car_license']; + $topCourier['area_code'] = $courier['area']; + $topCourier['street_code'] = $courier['street']; + $list[] = $topCourier; } - $companyIds = array_column($companyList, 'id'); + // 查镇车辆列表 - $list = Db::connect('work_task')->name('vehicle_rent') - ->field('company_id, car_id as id, car_license as license') - ->append(['area_code','street_code']) - ->whereIn('company_id', $companyIds) - ->where('status','in','0,1,2') - ->withAttr('area_code', function ($value, $data){ - $company = Db::connect('work_task')->name('company')->where('id', $data['company_id'])->find(); - return $company['area']; - }) - ->withAttr('street_code', function ($value, $data){ - $company = Db::connect('work_task')->name('company')->where('id', $data['company_id'])->find(); - return $company['street']; - }) - ->group('company_id') - ->select()->toArray(); +// $list = Db::connect('work_task')->name('vehicle_rent') +// ->field('company_id, car_id as id, car_license as license') +// ->append(['area_code','street_code']) +// ->whereIn('company_id', $companyIds) +// ->where('status','in','0,1,2') +// ->withAttr('area_code', function ($value, $data){ +// $company = Db::connect('work_task')->name('company')->where('id', $data['company_id'])->find(); +// return $company['area']; +// }) +// ->withAttr('street_code', function ($value, $data){ +// $company = Db::connect('work_task')->name('company')->where('id', $data['company_id'])->find(); +// return $company['street']; +// }) +// ->group('company_id') +// ->select()->toArray(); $count = count($list); return app('json')->success(compact('count', 'list')); @@ -87,38 +119,24 @@ class Logistics extends BaseController // 第二页 物流信息统计 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(); - // 返查配送员的物流配送订单统计信息 + $courierId = $this->request->param('courier_id'); // 待取货数 - $topCourier['pending_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>0, 'courier_id'=>$topCourier['courier_id']])->count(); + $pending_order_count = Db::connect('logistics')->name('logistics')->where(['status'=>0, 'courier_id'=>$courierId])->count(); // 配送中数 - $topCourier['delivering_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id'=>$topCourier['courier_id']])->count(); + $delivering_order_count = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id'=>$courierId])->count(); // 已完成数 - $topCourier['finished_order_count'] = Db::connect('logistics')->name('logistics')->where([['status', 'in', [2,3]], 'courier_id'=>$topCourier['courier_id']])->count(); + $finished_order_count = Db::connect('logistics')->name('logistics')->where([['status', 'in', [2,3]], 'courier_id'=>$courierId])->count(); - // 三轮车车牌号 根据配送员id反查公司id,公司id反查车牌号 - $courierCompanyId = Db::connect('work_task')->name('user')->where(['id'=>$topCourier['courier_id']])->value('company_id'); - $vehicleRent = Db::connect('work_task')->name('vehicle_rent')->where(['rent_company_id'=>$courierCompanyId])->find(); - $topCourier['car_id'] = $vehicleRent['car_id']; - $topCourier['car_license'] = $vehicleRent['car_license']; - return app('json')->success($topCourier); + return app('json')->success(compact('pending_order_count', 'delivering_order_count', 'finished_order_count')); } + + // 第二页 地图 最新的10笔配送订单地址 以及最近一次取货地址发散 + public function logisticsMapCount() + { + $courierId = $this->request->param('courier_id'); + // 最近一次取货地址 最新一笔的配送中订单的取货地址 + Db::connect('work_task')->name('vehicle_rent'); + // 最新的10笔订单 + } } \ No newline at end of file From 18276e85394cd900df1b7040b27e3c1c424b357d Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 16:21:29 +0800 Subject: [PATCH 07/11] =?UTF-8?q?update=20=E7=AC=AC=E4=BA=8C=E9=A1=B5?= =?UTF-8?q?=E7=89=A9=E6=B5=81=E7=BB=9F=E8=AE=A1=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=BF=98=E6=98=AF=E5=8A=A8=E6=80=81=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E4=B9=A1=E9=95=87=E8=AE=A2=E5=8D=95=E6=9C=80=E5=A4=9A=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E9=80=81=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Logistics.php | 33 +++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/app/controller/api/dataview/Logistics.php b/app/controller/api/dataview/Logistics.php index 26bbdfa2..cdc173ee 100755 --- a/app/controller/api/dataview/Logistics.php +++ b/app/controller/api/dataview/Logistics.php @@ -119,16 +119,39 @@ class Logistics extends BaseController // 第二页 物流信息统计 public function logisticsCount() { - $courierId = $this->request->param('courier_id'); + // 查询镇辖区内配送订单最多的配送员 + + // 先从供销系统 查出镇下边的所有配送员-小组服务公司的负责人 + $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(); + // 返查配送员的物流配送订单统计信息 // 待取货数 - $pending_order_count = Db::connect('logistics')->name('logistics')->where(['status'=>0, 'courier_id'=>$courierId])->count(); + $topCourier['pending_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>0, 'courier_id'=>$topCourier['courier_id']])->count(); // 配送中数 - $delivering_order_count = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id'=>$courierId])->count(); + $topCourier['delivering_order_count'] = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id'=>$topCourier['courier_id']])->count(); // 已完成数 - $finished_order_count = Db::connect('logistics')->name('logistics')->where([['status', 'in', [2,3]], 'courier_id'=>$courierId])->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(compact('pending_order_count', 'delivering_order_count', 'finished_order_count')); + // 三轮车车牌号 根据配送员id反查公司id,公司id反查车牌号 + $courierCompanyId = Db::connect('work_task')->name('user')->where(['id'=>$topCourier['courier_id']])->value('company_id'); + $vehicleRent = Db::connect('work_task')->name('vehicle_rent')->where(['rent_company_id'=>$courierCompanyId])->find(); + $topCourier['car_id'] = $vehicleRent['car_id']; + $topCourier['car_license'] = $vehicleRent['car_license']; + return app('json')->success($topCourier); } // 第二页 地图 最新的10笔配送订单地址 以及最近一次取货地址发散 From 0efcdfc7d2a18b4deaff3baec0814434167d4ae3 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Tue, 5 Dec 2023 16:46:13 +0800 Subject: [PATCH 08/11] =?UTF-8?q?add=20=E7=AC=AC=E4=BA=8C=E9=A1=B5-?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E9=85=8D=E9=80=81=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/dataview/Logistics.php | 19 ++++++++++++++++++- route/api.php | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/controller/api/dataview/Logistics.php b/app/controller/api/dataview/Logistics.php index cdc173ee..862cdb9a 100755 --- a/app/controller/api/dataview/Logistics.php +++ b/app/controller/api/dataview/Logistics.php @@ -159,7 +159,24 @@ class Logistics extends BaseController { $courierId = $this->request->param('courier_id'); // 最近一次取货地址 最新一笔的配送中订单的取货地址 - Db::connect('work_task')->name('vehicle_rent'); + $latestLogistics = Db::connect('logistics')->name('logistics')->where(['status'=>1, 'courier_id' => $courierId])->order('id', 'desc')->find(); + + $latestOrderInfo = Db::name('store_order')->where(['order_id'=>$latestLogistics['order_id']])->find(); + + $merchant = Db::name('merchant')->where(['mer_id'=>$latestOrderInfo['mer_id']])->find(); + + // 拼接商户的详细地址 area_id street_id village_id + $area = Db::name('geo_area')->where('area_code', $merchant['area_id'])->find(); + $city = Db::name('geo_city')->where('city_code', $area['city_code'])->find(); + $province = Db::name('geo_province')->where('province_code', $city['province_code'])->find(); + $street = Db::name('geo_street')->where('street_code', $merchant['street_id'])->find(); + $village = Db::name('geo_village')->where('village_id', $merchant['village_id'])->find(); + $merAddress = $province['province_name'] . $city['city_name'] . $area['area_name'] . $street['street_name'].$village['village_name'].$merchant['mer_address']; + + $latestOrder['mer_address'] = $merAddress; + // 最新的10笔订单 + $latestTenOrder = Db::connect('logistics')->name('logistics')->field('receiver_address')->where(['status'=>1, 'courier_id' => $courierId])->order('id', 'desc')->limit(10)->select()->toArray(); + return app('json')->success(compact('latestOrder', 'latestTenOrder')); } } \ No newline at end of file diff --git a/route/api.php b/route/api.php index 9d8cc573..bba3f4c2 100644 --- a/route/api.php +++ b/route/api.php @@ -727,6 +727,7 @@ Route::group('api/', function () { 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'); })->prefix('api.dataview.'); From 7182edcb14d19d250051e19aafad9fe12cc7676f Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 5 Dec 2023 17:11:28 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/repositories/store/order/StoreOrderRepository.php | 5 ++++- app/common/repositories/system/CacheRepository.php | 5 +++++ app/event.php | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 2bc23d61..64f2576b 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -2570,7 +2570,7 @@ class StoreOrderRepository extends BaseRepository } else { //默认其他分类 $cate_id = 1726; - $spec_type = 1; + $spec_type = 0; $detail = $attr; /**查询平台分类 */ @@ -2697,6 +2697,8 @@ class StoreOrderRepository extends BaseRepository "mer_status" => 1, "rate" => 3, ]; + halt($datas); + $make = app()->make(ProductRepository::class); $product_id = $make->create($datas, $product_type); if ($product_id) { @@ -2747,6 +2749,7 @@ class StoreOrderRepository extends BaseRepository $attrValue['price'] = $datum['value']['price']; $attrValue['procure_price'] = $procure_price; $attrValue["image"] = "https://lihai001.oss-cn-chengdu.aliyuncs.com/public/kk/luzhou/static4/oa_app/23565656.png"; + Db::name('store_product')->where('product_id',$find['product_id'])->update(['spec_type'=>1]); Db::name('store_product_attr_value')->insert($attrValue); } /** diff --git a/app/common/repositories/system/CacheRepository.php b/app/common/repositories/system/CacheRepository.php index 999121dd..04dff9e7 100644 --- a/app/common/repositories/system/CacheRepository.php +++ b/app/common/repositories/system/CacheRepository.php @@ -38,6 +38,9 @@ class CacheRepository extends BaseRepository const CONSIGN_PRODUCT_AGREE = 'consign_product_agree'; //商户开通采购、交易及结算功能协议 const MERC_SETTLE_AGREE = 'mer_settlement_agree'; + + //生鲜类商品交易售后纠纷处理规则 + const FRESHRULES = 'fresh_rules'; //积分说明 const INTEGRAL_RULE = 'sys_integral_rule'; @@ -91,6 +94,7 @@ class CacheRepository extends BaseRepository ['label' => '供应链商户补充协议','key' => self::MERC_SUPPLY_AGREE], ['label' => '产品代销三方合作协议书', 'key' => self::CONSIGN_PRODUCT_AGREE], ['label' => '商户开通采购、交易及结算功能协议', 'key' => self::MERC_SETTLE_AGREE], + ['label' => '生鲜类商品交易售后纠纷处理规则', 'key' => self::FRESHRULES], ]; if (!$type) { $data[] = ['label' => '注销声明', 'key' => self::CANCELLATION_MSG]; @@ -125,6 +129,7 @@ class CacheRepository extends BaseRepository self::MERC_SUPPLY_AGREE, self::CONSIGN_PRODUCT_AGREE, self::MERC_SETTLE_AGREE, + self::FRESHRULES, ]; } diff --git a/app/event.php b/app/event.php index 7ae53a8c..30312949 100644 --- a/app/event.php +++ b/app/event.php @@ -37,7 +37,7 @@ return [ \crmeb\listens\AutoUnLockBrokerageListen::class, \crmeb\listens\AutoSendPayOrderSmsListen::class, \crmeb\listens\SyncSmsResultCodeListen::class, - \crmeb\listens\SyncBroadcastStatusListen::class, + // \crmeb\listens\SyncBroadcastStatusListen::class,直播间 \crmeb\listens\ExcelFileDelListen::class, \crmeb\listens\RefundOrderAgreeListen::class, \crmeb\listens\SeckillTImeCheckListen::class, From 037623ce779ae52aa82a7564f7ff394f9c92b147 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 5 Dec 2023 17:21:40 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/repositories/store/order/StoreOrderRepository.php | 1 - 1 file changed, 1 deletion(-) diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 64f2576b..ad78a14c 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -2697,7 +2697,6 @@ class StoreOrderRepository extends BaseRepository "mer_status" => 1, "rate" => 3, ]; - halt($datas); $make = app()->make(ProductRepository::class); $product_id = $make->create($datas, $product_type); From 22b49c720805096ca5871997a2b64206ca64fb51 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 5 Dec 2023 17:46:55 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/repositories/store/order/StoreOrderRepository.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index ad78a14c..68739369 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -2574,9 +2574,9 @@ class StoreOrderRepository extends BaseRepository $detail = $attr; /**查询平台分类 */ - $cate_id_one = Db::name('store_category')->where('mer_id', 0)->where('cate_name', $datum['value']['cate_id_one'])->value('store_category_id'); + $cate_id_one = Db::name('store_category')->where('is_show',1)->where('mer_id', 0)->where('cate_name', $datum['value']['cate_id_one'])->value('store_category_id'); if ($cate_id_one) { - $cate_id_two = Db::name('store_category')->where('mer_id', 0)->where('cate_name', $datum['value']['cate_id_two'])->value('store_category_id'); + $cate_id_two = Db::name('store_category')->where('is_show',1)->where('mer_id', 0)->where('pid',$cate_id_one)->where('cate_name', $datum['value']['cate_id_two'])->value('store_category_id'); if ($cate_id_two) { $cate_id = $cate_id_two; }