post(); if (empty($param)) return errorTrans("empty.data"); $shopId = $request->uuid; $mode = (new SaasPrintClient); $printIn = []; foreach ($param as $key=>$val) { $param[$key] = $val; $printId = strToUniqueNumberV4(trim($val['name'])); $param[$key]['key'] = "{$printId}-{$shopId}"; $param[$key]['userKey'] = $printId; $printData = $mode->where("code",$printId)->where("shop_id",$shopId)->findOrEmpty(); if ($printData->isEmpty()) { $printIn[$key] = [ "shop_id" => $shopId, "code" => $printId, "name" => $val['name'], "ipaddress" => $val['ipAddress'], "print_status" => $val['status'], ]; } else { $printData->ipaddress = $val['ipAddress']; $printData->print_status = $val['status']; $printData->save(); } } if (!empty($printIn)) { $mode->insertAll(array_values($printIn)); } (new SaasShop)->where("shop_id",$shopId)->update(['line_time' => getDateFull()]); return success("ok",$param); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 打印识别 * @return Response */ #[Route(path: "error",methods: "post")] public function getPrintError(Request $request): Response { try { echo getDateFull()."===打印出错\n"; print_r($request->all()); $param = $this->_valid([ "data.require" => trans("empty.data"), "param.require" => trans("empty.data"), ],$request->method()); if (!is_array($param)) return error($param); echo getDateFull()."===打印出错\n"; print_r($param); $orderId = $param['param']['jobId']; return success("ok"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 打印回传 * @param Request $request * @return Response */ #[Route(path: "status",methods: "post")] public function getPrintData(Request $request): Response { try { $param = $this->_valid([ "data.require" => trans("empty.data"), "param.require" => trans("empty.data"), ],$request->method()); if (!is_array($param)) return error($param); $orderId = $param['param']['jobId']; $order = (new SaasOrderDetail)->where("id",$orderId)->with(['orders'])->findOrEmpty(); $total = ['t0' => 0, 't1' => 0, 't2' => 0, 't3' => 0, 'ta' => 0]; foreach ((new SaasOrderDetail)->where("id",$orderId)->field('create_at,status,count(1) total')->group('status,create_at')->cursor() as $vo) { [$total["t{$vo['status']}"] += $vo['total'], $total['ta'] += $vo['total']]; } if (isset($param['data']['success'])) { if ($param['data']['success']) { // 打印成功 $order->status = 3; $order->save(); if (($total['t3']+1) == $total['ta']) { (new SaasOrder)->where("order_sn",$order['order_sn'])->update(['status' => 3,'print_at' => getDateFull()]); } } else { // 打印失败 } } // $outPut = $param['data']['outputArray']; // $logData = []; // foreach ($outPut as $key=>$val) { // if ($val['type'] == 'stdout') { // $logData[$key] = [ // "order_sn" => $param['param']['customFileName'], // "msg" => delNt($val['data']) // ]; // } else if ($val['type'] == "exit") { // if ($val['code'] == 0) { // $order->status = 3; // $order->save(); // if (($total['t3']+1) == $total['ta']) { // (new SaasOrder)->where("order_sn",$order['order_sn'])->update(['status' => 3,'print_at' => getDateFull()]); // } // } // } // } // $logData = array_values($logData); // if (!empty($logData)) { // } return success("ok"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }