Sfoglia il codice sorgente

修改部分whereHas 和 配置问题

ajun 5 anni fa
parent
commit
df4cdb5da6

+ 1 - 1
app/Services/LogisticService.php

@@ -101,7 +101,7 @@ Class LogisticService
     }
 
     public function getLogisticByCode($code){
-        return Cache::remember("getLogisticByCode_{$code}", config('database.cache.expirations.rarelyChange'), function()use($code){
+        return Cache::remember("getLogisticByCode_{$code}", config('cache.expirations.rarelyChange'), function()use($code){
             $logistic = Logistic::query()->where('code',$code)->first();
             if($logistic)return $logistic;
             $baseCustomers = app('OracleBasCustomerService')->first(['Customer_Type'=>'CA','CustomerID'=>$code]);

+ 3 - 3
app/Services/OrderCommodityService.php

@@ -58,10 +58,10 @@ Class OrderCommodityService
             $commodity_map[$key] = $commodity;
         }
 
-        $orderCommodities = OrderCommodity::query()->with(['order','commodity'])->whereIn('order',function ($query)use($orderNos){
-            $query->whereIn('code',$orderNos);
+        $orderCommodities = OrderCommodity::query()->with(['order','commodity'])->whereIn('order_id',function ($query)use($orderNos){
+            $query->from('orders')->select('id')->whereIn('code',$orderNos);
         })->get();
-        $orders = Order::query()->whereIn('code',$orderNos)->get();
+        $orders = Order::query()->with('packages.commodities')->whereIn('code',$orderNos)->get();
         $order_code_map = $dataHandlerService->dataHeader(['code'],$orders);
         $ActAllocationDetail_maps =  $this->getRegroupActAllocationDetails($orderHeaders);
         $orderCommodity_maps = $this->getRegroupOrderCommodities($orderCommodities,$owner_id_maps);

+ 13 - 7
app/Services/OrderPackageCommoditiesService.php

@@ -207,8 +207,10 @@ class OrderPackageCommoditiesService
         $order_no =  data_get($orderHeaders,'*.orderno');
         return OrderPackageCommodities::query()
             ->with('package.order','commodity')
-            ->whereHas('package.order',function($query) use ($order_no){
-                $query->whereIn('code',$order_no);
+            ->whereIn('order_package_id',function($query) use ($order_no){
+                $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($order_no){
+                    $query->from('orders')->select('id')->whereIn('code',$order_no);
+                });
             })->get();
     }
 
@@ -223,9 +225,11 @@ class OrderPackageCommoditiesService
      */
     public function 删除包裹商品信息_根据快递单号($logistic_numbers)
     {
-        $orderPackageCommodities = OrderPackageCommodities::query()->with('package')->whereHas('package',function($query)use($logistic_numbers){
-            $query->whereIn('logistic_number',$logistic_numbers);
-        })->get();
+        $orderPackageCommodities = OrderPackageCommodities::query()
+            ->with('package')
+            ->whereIn('order_package_id',function($query)use($logistic_numbers){
+                $query->from('order_packages')->select('id')->whereIn('logistic_number',$logistic_numbers);
+            })->get();
         $ids = data_get($orderPackageCommodities, '*.id');
         if(count($ids) == 0){return [];}
         try {
@@ -245,8 +249,10 @@ class OrderPackageCommoditiesService
     public function getByOrderNos($orderNos)
     {
         return OrderPackageCommodities::query()->with('package.order','commodity')
-            ->whereHas('package.order',function($query) use ($orderNos){
-                $query->whereIn('code',$orderNos);
+            ->whereIn('order_package_id',function($query) use ($orderNos){
+                $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($orderNos){
+                    $query->from('orders')->select('id')->whereIn('code',$orderNos);
+                });
             })->get();
     }
 

+ 6 - 6
app/Services/OrderPackageService.php

@@ -301,8 +301,8 @@ class OrderPackageService
     public function getByWmsOrders($orderHeaders){
         $order_nos = data_get($orderHeaders,'*.orderno');
         return OrderPackage::query()->with('order')
-            ->whereHas('order',function($query) use ($order_nos){
-                $query->whereIn('code',$order_nos);
+            ->whereIn('order_id',function($query) use ($order_nos){
+                $query->from('orders')->select('id')->whereIn('code',$order_nos);
             })->get();
     }
 
@@ -352,8 +352,8 @@ class OrderPackageService
     public function getByOrderNos($orderNos)
     {
         return OrderPackage::query()->with('order')
-            ->whereHas('order',function($query)use($orderNos){
-                $query->whereIn('code',$orderNos);
+            ->whereIn('order_id',function($query)use($orderNos){
+                $query->from('orders')->select('id')->whereIn('code',$orderNos);
             })->get();
     }
 
@@ -420,8 +420,8 @@ class OrderPackageService
 
         $orderPackageCommodityService->deleteUnnecessaryOrderCommodities($del_ids);     // 删除 orderCommodity
 
-        $orderTracking = OrderTracking::query()->whereHas('commodities',function($query)use($del_ids){
-            $query->whereIn('order_package_id',$del_ids);
+        $orderTracking = OrderTracking::query()->whereIn('order_package_commodity_id',function($query)use($del_ids){
+            $query->from('order_package_commodities')->select('order_package_commodities.id')->whereIn('order_package_id',$del_ids);
         })->get();
         if($orderTracking->count()==0)return;
 

+ 1 - 1
app/Services/ShopService.php

@@ -110,7 +110,7 @@ class ShopService
         $collect = collect();
         if(count($map)==0)return $collect;
         foreach ($map as $item) {
-            $collect->push(Cache::remember("getShopByCodeMap_{$item['owner_code']}_{$item['issuepartyname']}", config('database.cache.expirations.rarelyChange'), function()use($item,$owner_map){
+            $collect->push(Cache::remember("getShopByCodeMap_{$item['owner_code']}_{$item['issuepartyname']}", config('cache.expirations.rarelyChange'), function()use($item,$owner_map){
                 $owner = $owner_map[$item['owner_code']] ;
                 $shop = Shop::query()->where('owner_id',$owner['id'])->where('name',$item['issuepartyname'])->first();
                 if($shop)return $shop;