| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- <?php
- namespace app\controller\exe;
- use app\extra\basic\Base;
- use app\middleware\ExeMiddleware;
- use app\model\saas\SaasOrder;
- use app\model\saas\SaasOrderDetail;
- use app\model\saas\SaasPrintClient;
- use app\model\saas\SaasShop;
- 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'],
- ];
- } 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());
- }
- }
- }
|