From 0103120071ce69fb94c2ed92014ccaada43aa4e6 Mon Sep 17 00:00:00 2001 From: todaywindy Date: Wed, 18 Jun 2025 10:14:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E6=B4=BE=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/admin/controller/workers/Worker.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/application/admin/controller/workers/Worker.php b/application/admin/controller/workers/Worker.php index 094a54c..a44c729 100644 --- a/application/admin/controller/workers/Worker.php +++ b/application/admin/controller/workers/Worker.php @@ -6,6 +6,7 @@ use app\admin\model\Area; use app\admin\model\AuthGroup; use app\admin\model\Item; use app\admin\model\Order; +use app\admin\model\OrderDispatch; use app\admin\model\WorkerItem; use app\common\controller\Backend; use fast\Tree; @@ -319,7 +320,7 @@ class Worker extends Backend $order_id = request()->get('order_id'); $search = request()->get('search'); list($where, $sort, $order, $offset, $limit) = $this->buildparams(); - $order = (new Order())->where('id',$order_id)->field(['id','lng','lat'])->select(); + $order = (new Order())->where('id',$order_id)->field(['id','lng','lat','item_id'])->select(); if (!empty($order)) { $order = $order[0]; @@ -339,9 +340,21 @@ ORDER BY distance;",[$order->lng,$order->lat]); $worker_ids = array_column($worker_distance,'id'); + $worker_items_ids = (new WorkerItem()) + ->where('item_id', $order->item_id) + ->whereIn('worker_id', $worker_ids) + ->column('worker_id'); + +// $out_worker = OrderDispatch::where('order_id',$order->id) +// ->where('status',-30)->column('worker_id'); + + $out_worker_ids = array_intersect($worker_ids, $worker_items_ids); +// $out_worker_ids = array_values(array_diff($out_worker_ids, $out_worker)); + + $build = model('worker') ->where('status', 1) - ->whereIn('id', $worker_ids); + ->whereIn('id', $out_worker_ids); if ($search){