diff --git a/app/Endpoint/Api/Http/Controllers/Order/OrderVerifyController.php b/app/Endpoint/Api/Http/Controllers/Order/OrderVerifyController.php index 67299058..4209182a 100644 --- a/app/Endpoint/Api/Http/Controllers/Order/OrderVerifyController.php +++ b/app/Endpoint/Api/Http/Controllers/Order/OrderVerifyController.php @@ -6,9 +6,9 @@ use App\Endpoint\Api\Http\Controllers\Controller; use App\Exceptions\BizException; use App\Models\OrderPre; use App\Models\ProductSku; +use App\Models\Store\ProductSku as StoreProductSku; use App\Services\OrderService; use Illuminate\Http\Request; -use App\Models\Store\ProductSku as StoreProductSku; class OrderVerifyController extends Controller { @@ -35,7 +35,7 @@ class OrderVerifyController extends Controller 'quantity' => $item['quantity'] ]); } - return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null)); + return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null, $request->input('ignore_shipping_fee', false))); } if ($request->filled('store_id')) { @@ -49,7 +49,7 @@ class OrderVerifyController extends Controller 'quantity' => $item['quantity'] ]); } - return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null)); + return response()->json($orderService->verifyOrder($user, $products, $request->input('shipping_address_id'), $request->input('coupon_id'), null, $request->input('ignore_shipping_fee', false))); } $rules = [ 'coupon_id' => ['bail', 'nullable', 'int'], diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 38ff3e51..312d07d5 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -784,6 +784,7 @@ class OrderService ?int $shippingAddressId = null, ?int $couponId = null, ?int $bargainOrderId = null, + bool $ignoreShippingFee = false, ): array { // 获取收货地址 $shippingAddress = $this->getShippingAddress($user, $shippingAddressId); @@ -807,7 +808,7 @@ class OrderService // 运费 $shippingFee = 0; - if ($shippingAddress) { + if (! $ignoreShippingFee && $shippingAddress) { try { $shippingFee = $this->calculateShippingFee($mapProducts, $shippingAddress); } catch (ShippingNotSupportedException $e) {