| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- namespace App\Services;
- use App\Batch;
- use App\Order;
- use App\OrderPackage;
- use App\Traits\ModelSearchWay;
- use App\Traits\ServiceAppAop;
- use App\PrintPart;
- use Illuminate\Support\Carbon;
- class PrintPartService
- {
- use ModelSearchWay;
- use ServiceAppAop;
- protected $modelClass = PrintPart::class;
- public function getPrintLogisticNumbers($orderNos = null, $logistic_numbers = null, $batch_code = null)
- {
- $query = OrderPackage::query()->with(['commodities.commodity','order' => function($build) {
- $build->with(['shop', 'logistic', 'warehouse', 'warehouse']);
- }]);
- if ($orderNos) {
- $order_query = Order::query()->selectRaw('id');
- $this->searchWay($order_query,$orderNos,'orders.code');
- }
- if ($logistic_numbers) {
- $this->searchWay($query,$logistic_numbers,'logistic_number');
- }
- if($batch_code) {
- $batch_query = Batch::query()->selectRaw('id');
- if(!isset($order_query)) $order_query = Order::query()->selectRaw('id');
- $order_query->where('batch_id',$batch_query);
- }
- if (isset($order_query)) $query->where('order_id',$order_query);
- return $query->get();
- }
- public function getPrintData($orderNos = null, $logistic_numbers = null, $batch_code = null): array
- {
- $order_packages= $this->getPrintLogisticNumbers($orderNos,$logistic_numbers,$batch_code);
- $print_data = array();
- $order_packages->each(function($order_package) use (&$print_data){
- $order_commodity_info = array();
- $order_package->commodities->each(function($order_commodity) use (&$order_commodity_info){
- $order_commodity_info[] = $order_commodity->commodity->name . '('.$order_commodity->amount.')';
- });
- $print_data[] = [
- 'logistic_number' => $order_package->logistic_number, // 快递单号
- 'order_number' => $order_package->order->code ?? '', // 订单号
- 'logistic_name' => $order_package->order->logistic->name ?? '', // 承运商
- 'shop_name' => $order_package->order->shop->name ?? '', // 商铺
- 'from_adder' => $order_package->order->add ?? '', // 发货地址
- 'form_contact_person' => $order_package->order->add ?? '', // 发货人
- 'form_contact_number' => $order_package->order->add ?? '', // 发货人联系号码
- 'to_adder' => $order_package->order->addr ?? '', // 收货地址
- 'to_contact_person' => $order_package->order->user_name ?? '', // 收货人
- 'to_contact_number' => $order_package->order->user_name ?? '', // 收货人联系号码
- 'date' => Carbon::now()->format(Carbon::DEFAULT_TO_STRING_FORMAT), // 寄件时间
- 'remake' => $order_package->order->reamke ?? '', // 备注
- 'commodity_info' => implode(',',$order_commodity_info), // 订单详情
- 'face_sheet_type' => '', // 面单类型
- ];
- });
- return $print_data;
- }
- }
|