TerminalPrinterLogisticService.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Services;
  3. use App\Terminal;
  4. use App\TerminalPrinter;
  5. use App\Traits\ServiceAppAop;
  6. use App\TerminalPrinterLogistic;
  7. use Illuminate\Support\Facades\Request;
  8. class TerminalPrinterLogisticService
  9. {
  10. use ServiceAppAop;
  11. protected $modelClass=TerminalPrinterLogistic::class;
  12. // 匹配设置好的打印机
  13. // $results 集合 DeliveryService->getDelivery 返回面单信息
  14. public function setPrinterName(&$results)
  15. {
  16. $ip = Request::ip();
  17. $terminalQuery = Terminal::query()->select('id')->where('ip', $ip);
  18. $terminalPrinterQuery = TerminalPrinter::query()->select('id')->whereIn('terminal_id',$terminalQuery);
  19. $terminalPrinterLogistics = TerminalPrinterLogistic::query()->with('terminalPrinter','logistic')->whereIn('terminal_printer_id',$terminalPrinterQuery)->get();
  20. foreach ($terminalPrinterLogistics as &$item) {
  21. $logisticCode = $item['logistic']['code'];
  22. $terminalPrinterName = $item['terminalPrinter']['printer_name'];
  23. $data[$logisticCode] = $terminalPrinterName;
  24. }
  25. foreach ($results as &$result){
  26. $result['printerName'] = $data[$result['logistic_code']] ?? '';
  27. }
  28. return $results;
  29. }
  30. }