Explorar o código

修复指定不送达关闭后还是一样生效的问题

liaofei %!s(int64=2) %!d(string=hai) anos
pai
achega
bda10fdbc1
Modificáronse 1 ficheiros con 9 adicións e 3 borrados
  1. 9 3
      crmeb/app/services/order/StoreCartServices.php

+ 9 - 3
crmeb/app/services/order/StoreCartServices.php

@@ -16,6 +16,7 @@ use app\services\activity\advance\StoreAdvanceServices;
 use app\services\BaseServices;
 use app\dao\order\StoreCartDao;
 use app\services\activity\coupon\StoreCouponIssueServices;
+use app\services\product\shipping\ShippingTemplatesServices;
 use app\services\shipping\ShippingTemplatesNoDeliveryServices;
 use app\services\system\SystemUserLevelServices;
 use app\services\user\member\MemberCardServices;
@@ -584,9 +585,14 @@ class StoreCartServices extends BaseServices
                 foreach ($cartList as $item) {
                     $tempIds[] = $item['productInfo']['temp_id'];
                 }
-                /** @var ShippingTemplatesNoDeliveryServices $noDeliveryServices */
-                $noDeliveryServices = app()->make(ShippingTemplatesNoDeliveryServices::class);
-                $tempIds = $noDeliveryServices->isNoDelivery(array_unique($tempIds), $cityId);
+                $tempIds = array_unique($tempIds);
+                $shippingService = app()->make(\app\services\shipping\ShippingTemplatesServices::class);
+                $tempIds = $shippingService->getColumn([['id', 'in', $tempIds], ['no_delivery', '=', 1]], 'id');
+                if ($tempIds) {
+                    /** @var ShippingTemplatesNoDeliveryServices $noDeliveryServices */
+                    $noDeliveryServices = app()->make(ShippingTemplatesNoDeliveryServices::class);
+                    $tempIds = $noDeliveryServices->isNoDelivery(array_unique($tempIds), $cityId);
+                }
             }
         }