Parcourir la source

修复产品促销活动优惠计算

jun il y a 1 mois
Parent
commit
c8c6ee9938
1 fichiers modifiés avec 16 ajouts et 15 suppressions
  1. 16 15
      app/Http/Controllers/Api/Orders.php

+ 16 - 15
app/Http/Controllers/Api/Orders.php

@@ -270,12 +270,12 @@ class Orders extends Api{
 			foreach ($order['product_list'] as $k=>$product) {
                 //促销活动扣减
                 if (isset($promoProductPrice[$product['product_id']]['promo_rebate_price']) && $promoProductPrice[$product['product_id']]['promo_rebate_price']> 0){
+                    // 总优惠增加
+                    $order['coupon_total']	 = $order['coupon_total']  + $promoProductPrice[$product['product_id']]['promo_rebate_price'];
                     // 当前商品的优惠折扣计算
                     $product['coupon_total'] = number_format( $promoProductPrice[$product['product_id']]['rebate_price'] * ($product['price_total'] / $promoProductPrice[$product['product_id']]['price_total']) , 2 , '.' ,'');
-                    // 总优惠增加
-                    $order['coupon_total']	 = $order['coupon_total']  + $product['coupon_total'];
-					// 成交小计
-                    $product['pay_total']	 = $product['pay_total'] -  $product['coupon_total'];
+                    // 成交小计
+                    $product['pay_total']	 = bcsub($product['pay_total'],$product['coupon_total'],2);
                 }
 				// 商品不存在,不进行扣减
 				if( empty($productPrice[$product['product_id']]['rebate_price']) ) {
@@ -283,18 +283,19 @@ class Orders extends Api{
 					$order['product_list'][$k] = $product;
 					continue;
 				}
-				// 当前商品的优惠折扣计算
-				$product['coupon_total'] = number_format( $productPrice[$product['product_id']]['rebate_price'] * ($product['price_total'] / $productPrice[$product['product_id']]['price_total']) , 2 , '.' ,'');
-				// 总优惠增加
-				$order['coupon_total']	 = $order['coupon_total']  + $product['coupon_total'];
-				// 成交小计
-				$product['pay_total']	 = $product['pay_total'] -  $product['coupon_total'];
-				// 重组
-				$order['product_list'][$k] = $product;
+                // 当前商品的优惠折扣计算
+                $product['coupon_total'] = number_format( $productPrice[$product['product_id']]['rebate_price'] * ($product['price_total'] / $productPrice[$product['product_id']]['price_total']) , 2 , '.' ,'');
+                // 总优惠增加
+                $order['coupon_total']	 = bcadd($order['coupon_total'],$product['coupon_total'],2);
+                // 成交小计
+                $product['pay_total']	 = bcsub($product['pay_total'],$product['coupon_total'],2);
+                // 重组
+                $order['product_list'][$k] = $product;
 			}
-			// 成交总价
-			$order['pay_total']			= $order['pay_total'] -  $order['coupon_total'];
-            $orderPayTotal              +=  $order['pay_total'];
+            // 成交总价
+            $order['pay_total']			=   bcsub($order['pay_total'],$order['coupon_total'],2);
+            if ($order['pay_total'] <= 0)   $order['pay_total']     =   0.01;
+            $orderPayTotal              =   bcadd($orderPayTotal, $order['pay_total'],2);
 			// 赠送积分
 			$order['order_score']		= (config('order_score_send',0) && floor( $order['pay_total'] * 1 ) > 0 )  ? floor( $order['pay_total'] * 1 ) : 0;
 			// 成交总价