PrintController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Services\DeliveryService;
  5. use App\Services\PrintService;
  6. use App\Terminal;
  7. use App\TerminalPrinter;
  8. use Illuminate\Http\Request;
  9. class PrintController extends Controller
  10. {
  11. //
  12. use AsyncResponse;
  13. public function index()
  14. {
  15. return view('maintenance.expressPrinting.print.template');
  16. }
  17. public function getPrintDataApi(Request $request): array
  18. {
  19. if(!$request->has('printStr')) return ['success'=> false , 'message' => '为空'];
  20. $results = app(DeliveryService::class)->getDelivery($request['printStr']);
  21. $ip = $request->getClientIp();
  22. $terminal = Terminal::query()->where('ip',$ip)->with('printers')->first();
  23. if (!$terminal) return ['success' => false, 'messages' => '当前终端没有注册'];
  24. $printers = [];
  25. foreach ($terminal->printers as $printer) {
  26. $printer_type = $printer['print_type'];
  27. if (!array_key_exists($printer_type,$printers)) $printers[$printer_type] = [];
  28. $printers[$printer_type][] = $printer['printer_name'];
  29. }
  30. foreach ($results as $key=>$result) {
  31. $results[$key]['printerName'] = $printers[$result['component_type']][0] ?? '';
  32. }
  33. return ['success' => true,'data' => $results];
  34. }
  35. public function uploadPrintDataApi(Request $request,DeliveryService $service): array
  36. {
  37. return $service->customProcessing($request['printData']);
  38. }
  39. }