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