|
|
@@ -4,48 +4,61 @@ namespace App\Services;
|
|
|
|
|
|
use App\OracleDocOrderDeliveryInfo;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
+use App\PrintPartImage;
|
|
|
use App\Services\Interfaces\DeliveryInterface;
|
|
|
+use App\Traits\DrawImage;
|
|
|
+use Illuminate\Support\Facades\File;
|
|
|
+use Intervention\Image\Facades\Image;
|
|
|
|
|
|
class PDDDeliveryService implements DeliveryInterface
|
|
|
{
|
|
|
- function getDeliveryInfo($orderCodes, $logisticNumbers): ?array
|
|
|
+ use DrawImage;
|
|
|
+
|
|
|
+ function getDeliveryInfo($OracleDocOrderDeliveryInfos): ?array
|
|
|
{
|
|
|
- $orderCodes = OracleDOCOrderHeader::query()->whereIn('orderNo', $orderCodes)->where('consigneeId', 'PDD')->get()->map(function ($item) {
|
|
|
- return $item->orderno;
|
|
|
+ $items = $OracleDocOrderDeliveryInfos->filter(function($item){
|
|
|
+ return $item->docOrderHeader->consigneeid == 'PDD';
|
|
|
});
|
|
|
|
|
|
- $infos = OracleDocOrderDeliveryInfo::query()->selectRaw('trackingNo')->whereIn('orderNo', $orderCodes)->get()->map(function ($item) {
|
|
|
- return $item->trackingno;
|
|
|
- })->toArray();
|
|
|
-
|
|
|
- $trackingNos = array_unique(array_merge($logisticNumbers, $infos));
|
|
|
- if (!$trackingNos)return [];
|
|
|
- return OracleDocOrderDeliveryInfo::query()->with('docOrderHeader')->whereIn('trackingNo', $trackingNos)->get()->map(function ($item) {
|
|
|
+ return $items->map(function($item) {
|
|
|
return [
|
|
|
'type' => 'PDD',
|
|
|
+ 'data' => $item['userdefine1'],
|
|
|
'component_type' => 'PDD',
|
|
|
- 'owner_code' => $item->docOrderHeader->custemid ?? '',
|
|
|
+ 'owner_code' => $item->docOrderHeader->customerid ?? '',
|
|
|
'logistic_code' => $item->docOrderHeader->userdefine1 ?? '',
|
|
|
- 'data' => $item->userdefine1,
|
|
|
'logistic_number' => $item['trackingno'],
|
|
|
'delivery' => $this->getDelivery($item),
|
|
|
- 'base64' => $this->getBase64($item),
|
|
|
+ 'base64' => null,
|
|
|
];
|
|
|
})->toArray();
|
|
|
}
|
|
|
|
|
|
- public function getDelivery($item)
|
|
|
+ public function getDelivery($item = null)
|
|
|
{
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- public function getBase64($item)
|
|
|
+ public function getBase64($img = null, $item = null): ?string
|
|
|
{
|
|
|
- return null;
|
|
|
+ if (!$img) return null;
|
|
|
+ $imgName = 'PDD-' . $item['logistic_code'] . 'png';
|
|
|
+ $path = storage_path(['app/public/files/' . $imgName]);
|
|
|
+ $img->save($path);
|
|
|
+ return File::get($path);
|
|
|
}
|
|
|
|
|
|
- function processing($params)
|
|
|
+ function processing(&$params)
|
|
|
{
|
|
|
- // TODO: Implement processing() method.
|
|
|
+ $data = $params['data'];
|
|
|
+ $image = Image::make($data);
|
|
|
+ $orderDeliveryInfo = OracleDocOrderDeliveryInfo::query()->where('')->with('docOrderHead')->where('trackingNo', $params['trackingNo'])->first();
|
|
|
+ $info = [
|
|
|
+ 'ORDERNO' => $orderDeliveryInfo->orderno,
|
|
|
+ 'TRACKINGNO' => $orderDeliveryInfo->trackingNo,
|
|
|
+ ];
|
|
|
+ $printPartTemp = PrintPartImage::query()->first();
|
|
|
+ $image = $this->draw($info, $printPartTemp, $image);
|
|
|
+ $params['base64'] = $this->getBase64($image,$params);
|
|
|
}
|
|
|
}
|