PrintController.php 1.9 KB

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