| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- namespace app\controller\exe;
- use app\extra\basic\Base;
- use app\middleware\ExeMiddleware;
- use app\model\saas\SaasOrderDetail;
- use app\model\saas\SaasPrintClient;
- use LinFly\Annotation\Route\Controller;
- use LinFly\Annotation\Route\Middleware;
- use LinFly\Annotation\Route\Route;
- use support\Request;
- use support\Response;
- #[Controller(prefix: "/exe/prints"),Middleware(ExeMiddleware::class)]
- class Prints extends Base
- {
- protected array $noNeedLogin = ["getPrintData"];
- /**
- * 回传打印机信息
- * @param Request $request
- * @return Response
- */
- #[Route(path: "set",methods: "post")]
- public function getPrintList(Request $request): Response
- {
- try {
- $param = $request->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'],
- ];
- }
- }
- if (!empty($printIn)) {
- $mode->insertAll(array_values($printIn));
- }
- return success("ok",$param);
- } 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();
- $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();
- }
- }
- }
- $logData = array_values($logData);
- if (!empty($logData)) {
- }
- return success("ok");
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- }
|