order_id = $order_id; } /** * Execute the job. * * @return void */ public function handle() { $order = Order::query()->find($this->order_id); if (!$order) return; if (!in_array($order->status, [OrderStatusEnum::IN_SERVICE, OrderStatusEnum::ORDER_PAUSE])) { return; } $order->status = OrderStatusEnum::ORDER_OVER; $order->end_use_time = now(); $order->save(); //关闭设备 $device = Device::query()->where('id', $order->device_id)->first(); if (!$device) return; switch ($order->work_type) { case OrderWorkTypeCodeEnum::A: $device->a = DeviceLuTypeEnum::FREE; break; case OrderWorkTypeCodeEnum::B: $device->b = DeviceLuTypeEnum::FREE; break; case OrderWorkTypeCodeEnum::AB: $device->a = DeviceLuTypeEnum::FREE; $device->b = DeviceLuTypeEnum::FREE; break; } $device->save(); Log::error("CloseDeviceJob||" . $order->no . '||' . $order->pay_time . '||' . $order->work_time . '||' . now()); ClientServer::closeBoxByOrder($order, $device->box_no, $device->a, $device->b); } }