77 lines
2.1 KiB
PHP
77 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace app\admin\command;
|
|
|
|
use app\admin\model\Order;
|
|
use app\admin\model\OrderDispatch;
|
|
use app\admin\model\Worker;
|
|
use app\admin\model\WorkerItem;
|
|
use Overtrue\Pinyin\Converter;
|
|
use think\console\Command;
|
|
use think\console\Input;
|
|
use think\console\Output;
|
|
use think\Db;
|
|
use Overtrue\Pinyin\Pinyin;
|
|
use think\Model;
|
|
|
|
class Test extends Command
|
|
{
|
|
protected function configure()
|
|
{
|
|
$this->setName('test')
|
|
->setDescription('批量生成区域名称的拼音');
|
|
}
|
|
|
|
protected function execute(Input $input, Output $output)
|
|
{
|
|
$order = (new Order())->where('id',66)->find();
|
|
$this->autoDispatch($order);
|
|
}
|
|
|
|
private function autoDispatch($order) {
|
|
// if ($order->dispatch_type != 2){
|
|
// return false;
|
|
// }
|
|
|
|
$worker_ids = (new Worker())->where('area_id',$order->area_id)
|
|
->where('status',1)
|
|
->field(['id','area_id','lng'],'lat')
|
|
->column('id');
|
|
|
|
$worker_items_ids = (new WorkerItem())
|
|
->where('item_id',$order->item_id)
|
|
->whereIn('worker_id',$worker_ids)
|
|
->field(['worker_id'],'lat')
|
|
->column('worker_id');
|
|
|
|
$out_workers = array_intersect($worker_ids,$worker_items_ids);
|
|
|
|
$worker_id = $out_workers[0] ?? false;
|
|
|
|
if (!$worker_id){
|
|
$order->dispatch_type = 1;
|
|
$order->save();
|
|
return false;
|
|
}
|
|
|
|
$insert = [
|
|
// 'admin_id' => $this->auth->id,
|
|
// 'admin_user' => $this->auth->nickname,
|
|
'order_id' => $order->id,
|
|
'type' => 1,
|
|
'worker_id' =>$worker_id,
|
|
'plan_time' => $order->plan_time,
|
|
'is_receipt' => $order->receive_type == 1
|
|
];
|
|
|
|
$worker = (new Worker())->where('id',$worker_id)->find();
|
|
$insert ['worker_name'] = $worker['name'];
|
|
$insert ['worker_tel'] = $worker['tel'];
|
|
(new OrderDispatch())->allowField(true)->save($insert);
|
|
$order->status = \app\admin\model\Order::STATUS_DISPATCHED;
|
|
$order->save();
|
|
return true;
|
|
|
|
}
|
|
}
|