Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
455ba5e744
|
|
@ -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){
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user