PDDDeliveryService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. namespace App\Services;
  3. use App\OracleDocOrderDeliveryInfo;
  4. use App\OracleDOCOrderHeader;
  5. use App\Services\Interfaces\DeliveryInterface;
  6. class PDDDeliveryService implements DeliveryInterface
  7. {
  8. function getDeliveryInfo($orderCodes, $logisticNumbers): ?array
  9. {
  10. $orderCodes = OracleDOCOrderHeader::query()->whereIn('orderNo', $orderCodes)->where('consigneeId', 'PDD')->get()->map(function ($item) {
  11. return $item->orderno;
  12. });
  13. $infos = OracleDocOrderDeliveryInfo::query()->selectRaw('trackingNo')->whereIn('orderNo', $orderCodes)->get()->map(function ($item) {
  14. return $item->trackingno;
  15. })->toArray();
  16. $trackingNos = array_unique(array_merge($logisticNumbers, $infos));
  17. if (!$trackingNos)return [];
  18. return OracleDocOrderDeliveryInfo::query()->with('docOrderHeader')->whereIn('trackingNo', $trackingNos)->get()->map(function ($item) {
  19. return [
  20. 'type' => 'PDD',
  21. 'component_type' => 'PDD',
  22. 'owner_code' => $item->docOrderHeader->custemid ?? '',
  23. 'logistic_code' => $item->docOrderHeader->userdefine1 ?? '',
  24. 'data' => $item->userdefine1,
  25. 'logistic_number' => $item['trackingno'],
  26. 'delivery' => $this->getDelivery($item),
  27. 'base64' => $this->getBase64($item),
  28. ];
  29. })->toArray();
  30. }
  31. public function getDelivery($item)
  32. {
  33. return null;
  34. }
  35. public function getBase64($item)
  36. {
  37. return null;
  38. }
  39. function processing($params)
  40. {
  41. // TODO: Implement processing() method.
  42. }
  43. }