JDDeliveryService.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Services;
  3. use App\OracleDocOrderDeliveryInfo;
  4. use App\OracleDOCOrderHeader;
  5. use App\Services\Interfaces\DeliveryInterface;
  6. class JDDeliveryService implements DeliveryInterface
  7. {
  8. function getDeliveryInfo($orderCodes, $logisticNumbers)
  9. {
  10. $orderCodes = OracleDOCOrderHeader::query()->whereIn('orderNo', $orderCodes)->where('consigneeId','JD')->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' => 'JD',
  21. 'data' => '',
  22. 'owner_code' => $item->docOrderHeader->custemid ?? '',
  23. 'logistic_code' => $item->docOrderHeader->userdefine1 ?? '',
  24. 'logistic_number' => $item['trackingno'],
  25. 'delivery' => $this->getDelivery($item),
  26. 'base64' => '',
  27. ];
  28. })->toArray();
  29. }
  30. public function getBase64($item)
  31. {
  32. // TODO: Implement getBase64() method.
  33. }
  34. function getDelivery($item)
  35. {
  36. // TODO: Implement getDelivery() method.
  37. return null;
  38. }
  39. }