瀏覽代碼

临时提交

ajun 4 年之前
父節點
當前提交
a3c65a3d50
共有 1 個文件被更改,包括 51 次插入10 次删除
  1. 51 10
      app/Services/PrintPartService.php

+ 51 - 10
app/Services/PrintPartService.php

@@ -2,35 +2,76 @@
 
 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;
+    protected $modelClass = PrintPart::class;
 
-    public function getPrintData($orderNos = null, $logistic_numbers = null, $batch_code = null)
+    public function getPrintLogisticNumbers($orderNos = null, $logistic_numbers = null, $batch_code = null)
     {
-        $query = OrderPackage::query()->with('order.batch');
+        $query = OrderPackage::query()->with(['commodities.commodity','order' => function($build) {
+            $build->with(['shop', 'logistic', 'warehouse', 'warehouse']);
+        }]);
         if ($orderNos) {
-            $orderQuery = Order::query()->selectRaw('id');
-            if (is_string($orderNos)) $query->where('code', $orderNos);
-            if (is_array($orderNos)) $query->whereIn('code', $orderNos);
-            $query->whereIn('order_id', $orderQuery);
+            $order_query = Order::query()->selectRaw('id');
+            $this->searchWay($order_query,$orderNos,'orders.code');
         }
 
         if ($logistic_numbers) {
-            if (is_string($logistic_numbers)) $query->where('logistic_number', $logistic_numbers);
-            if (is_array($logistic_numbers)) $query->whereIn('logistic_number', $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;
     }
 }