| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- namespace App\Services;
- use App\OracleDocOrderDeliveryInfo;
- use App\OracleDOCOrderHeader;
- use App\OwnerLogisticPrintTemplate;
- use App\Services\Interfaces\DeliveryInterface;
- use App\Traits\DeliveryProcess;
- use App\Traits\DrawImage;
- use Illuminate\Database\Query\Builder;
- use Illuminate\Support\Str;
- class JDDeliveryService implements DeliveryInterface
- {
- use DeliveryProcess;
- function getDeliveryInfo($logistic_number): array
- {
- $oracleDocOrderHeaders = OracleDOCOrderHeader::query()
- ->with('oracleBASCustomer','oracleDOCWaveDetail')
- ->whereIn('deliveryno',$logistic_number)
- ->whereIn('consigneeId',['JD','BSZX','BSZFC','BSZXDF','BSZFCDF'])
- ->get();
- return $oracleDocOrderHeaders->map(function ($item){
- return [
- 'type' => 'JD',
- 'is_process' => true,
- 'task_id' => Str::uuid(),
- 'data' => '',
- 'component_type' => 'JD',
- 'owner_code' => $item->customerid ?? '',
- 'logistic_code' => $item->userdefine1 ?? '',
- 'logistic_number' => $item['deliveryno'],
- 'delivery' => null,
- 'base64' => $this->getBase64($item),
- 'printerName' => '',
- ];
- })->toArray();
- }
- public function getBase64($item): string
- {
- $printTemplate = OwnerLogisticPrintTemplate::query()->with('printTemplate')->where('owner_id', function(Builder $query)use($item){
- $query->from("owners")->selectRaw('id')->where("code",$item['customerid']);
- })->where('logistic_id', function(Builder $query)use($item){
- $query->from("logistics")->selectRaw('id')->where("code",$item['userdefine1']);
- })->first();
- $delivery = $this->getDelivery($item);
- $image = $this->draw($delivery,$printTemplate->printTemplate ?? null,null);
- if (!$image) return '';
- $path = '';
- $this->saveImage($image,$path);
- return $this->readImageBase64($path);
- }
- /*
- * 订单号
- * 波次号
- * 运单号
- * 店铺
- * 商家联系号
- * 商家订单号
- * 发货地址,省,市区
- *
- * 发货分拣中心
- * 发货人
- * 发货人号码
- * 收货地址
- * 收货分拣中心
- * 收件人
- * 商品
- * 备注
- *
- */
- function getDelivery($item): array
- {
- $delivery = $this->getDocOrderInfo($item);
- $delivery['b_addresss1'] = $item['MJ-ZP'];
- $delivery['d_addresss1'] = $item['BB-Y3-21'];
- return $delivery;
- }
- function processing(&$params)
- {
- return null;
- }
- }
|