allocatr/application/admin/command/Test.php
2025-03-30 15:55:20 +08:00

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;
}
}