From 6a785ae7cb45e364bf66ae5a8392456a7208b8da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=98=8A=E5=A4=A9?= <442384644@qq.com> Date: Wed, 22 Feb 2023 15:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=85=A7=E9=87=8D=E9=87=8F=E5=92=8C?= =?UTF-8?q?=E4=BD=93=E7=A7=AF=E8=AE=A1=E7=AE=97=E8=BF=90=E8=B4=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/StoreOrderComputedServices.php | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/crmeb/app/services/order/StoreOrderComputedServices.php b/crmeb/app/services/order/StoreOrderComputedServices.php index b984487f8..b83502338 100644 --- a/crmeb/app/services/order/StoreOrderComputedServices.php +++ b/crmeb/app/services/order/StoreOrderComputedServices.php @@ -482,25 +482,27 @@ class StoreOrderComputedServices extends BaseServices $tempNumber = $temp_num[$tempId]['number'] ?? 0; if (!$tempId || !$tempPostage || !$tempNumber) continue; $type = $temp_num[$tempId]['type']; - $cartNumber = $item['cart_num']; - if ((($cartAlready[$tempId]['number'] ?? 0) + $cartNumber) >= $tempNumber) { + + + if ($type == 1) { + $num = $item['cart_num']; + } elseif ($type == 2) { + $num = $item['cart_num'] * $item['productInfo']['attrInfo']['weight']; + } else { + $num = $item['cart_num'] * $item['productInfo']['attrInfo']['volume']; + } + if ((($cartAlready[$tempId]['number'] ?? 0) + $num) >= $tempNumber) { $price = isset($cartAlready[$tempId]['price']) ? bcsub((string)$tempPostage, (string)$cartAlready[$tempId]['price'], 6) : $tempPostage; } else { - $price = bcmul((string)$tempPostage, bcdiv((string)$cartNumber, (string)$tempNumber, 6), 6); + $price = bcmul((string)$tempPostage, bcdiv((string)$num, (string)$tempNumber, 6), 6); } - $cartAlready[$tempId]['number'] = bcadd((string)($cartNumber[$tempId]['number'] ?? 0), (string)$cartNumber, 4); - $cartAlready[$tempId]['price'] = bcadd((string)($cartNumber[$tempId]['price'] ?? 0.00), (string)$price, 4); + $cartAlready[$tempId]['number'] = bcadd((string)($cartAlready[$tempId]['number'] ?? 0), (string)$num, 4); + $cartAlready[$tempId]['price'] = bcadd((string)($cartAlready[$tempId]['price'] ?? 0.00), (string)$price, 4); if ($express_rule_number && $express_rule_number < 100) { $price = bcmul($price, $discountRate, 4); } - if ($type == 2) { - $price = bcmul($price, $item['productInfo']['attrInfo']['weight'], 6); - } elseif ($type == 3) { - $price = bcmul($price, $item['productInfo']['attrInfo']['volume'], 6); - } - $price = sprintf("%.2f", $price); - $item['postage_price'] = $price; + $item['postage_price'] = sprintf("%.2f", $price); } if ($express_rule_number && $express_rule_number < 100) { $storePostageDiscount = $storePostage;