Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
xman 2025-06-18 11:22:10 +08:00
commit 455ba5e744

View File

@ -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;
@ -21,6 +22,7 @@ use think\exception\ValidateException;
class Worker extends Backend
{
protected $noNeedRight = ['dispatchList','dispatchMapList'];
/**
* Worker模型对象
* @var \app\admin\model\Worker
@ -282,6 +284,7 @@ class Worker extends Backend
$build = model('worker')
->where('status', 1)
->where('type',2)
->with(['area'])
->withCount(['myorder' => function ($query) {
$query->where('status', Order::STATUS_FINISHED);
@ -319,7 +322,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];
@ -332,16 +335,28 @@ SELECT id,
point(lng, lat),
point(?, ?)
) AS distance
FROM fa_worker where status = 1
FROM fa_worker where status = 1 and type = 2
) AS t
WHERE distance < 50000
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){