| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Http\Controllers;
- use App\Components\AsyncResponse;
- use App\Services\DeliveryService;
- use App\Terminal;
- use App\TerminalPrinter;
- use App\TerminalPrinterLogistic;
- use Illuminate\Http\Request;
- class PrintController extends Controller
- {
- //
- use AsyncResponse;
- public function index()
- {
- return view('maintenance.expressPrinting.print.template');
- }
- public function getPrintDataApi(Request $request): array
- {
- if (!$request->has('printStr')) return ['success' => false, 'message' => '为空'];
- $results = app(DeliveryService::class)->getDelivery($request['printStr']);
- $ip = $request->getClientIp();
- $terminalQuery = Terminal::query()->select('id')->where('ip', $ip);
- $terminalPrinterQuery = TerminalPrinter::query()->select('id')->whereIn('terminal_id',$terminalQuery);
- $terminalPrinterLogistics = TerminalPrinterLogistic::query()->with('terminalPrinter','logistic')->whereIn('terminal_printer_id',$terminalPrinterQuery)->get();
- foreach ($terminalPrinterLogistics as &$item) {
- $logisticCode = $item['logistic']['code'];
- $terminalPrinterName = $item['terminalPrinter']['printer_name'];
- $data[$logisticCode] = $terminalPrinterName;
- }
- foreach ($results as &$result){
- $result['printerName'] = $data[$result['logistic_code']] ?? '';
- }
- return ['success' => true, 'data' => $results];
- }
- public function uploadPrintDataApi(Request $request, DeliveryService $service): array
- {
- if (is_string($request['printData']))
- $request['printData'] = json_decode($request['printData']);
- $item = $service->customProcessing($request['printData']);
- return ['success' => true, 'data' => $item];
- }
- }
|