Browse Source

善豆可抵扣价格的计算

lizhen_gitee 2 months ago
parent
commit
4fbc065640
1 changed files with 11 additions and 0 deletions
  1. 11 0
      addons/shopro/service/order/OrderCreate.php

+ 11 - 0
addons/shopro/service/order/OrderCreate.php

@@ -101,6 +101,7 @@ class OrderCreate
         'goods_original_amount' => '0',       // 商品原始总价
         'goods_old_amount' => '0',                // 商品不参与活动时的总价
         'goods_amount' => '0',                // 商品总价
+        'goods_bean_amount' => '0',                // 商品善豆可抵扣总价
         'coupon_discount_fee' => '0',                // 优惠券优惠金额
         'promo_discount_fee' => 0,          // 当前促销优惠总金额 (包含满包邮的邮费)
         'total_discount_fee' => 0,              // 当前订单,总优惠金额(优惠券 + 活动优惠)
@@ -289,6 +290,7 @@ class OrderCreate
      */
     public function calcAmount()
     {
+        //dump($this->goodsList);
         // 计算商品金额
         foreach ($this->goodsList as $key => &$buyInfo) {
             $goods = $buyInfo['goods'];
@@ -301,6 +303,11 @@ class OrderCreate
             $current_goods_amount = bcmul($buyInfo['current_sku_price']->price, $buyInfo['goods_num'], 2);
             $this->orderData['goods_amount'] = bcadd($this->orderData['goods_amount'], $current_goods_amount, 2);
 
+            //当前商品的善豆抵扣价
+            $bean_rate = $goods['bean_rate'] ?: 0;
+            $current_goods_bean_amount = bcdiv(bcmul($current_goods_amount,$bean_rate,2),100,2);
+            $this->orderData['goods_bean_amount'] = bcadd($this->orderData['goods_bean_amount'],$current_goods_bean_amount,2);
+
             // 当有活动时,计算作为普通商品时的商品总金额
             $current_goods_old_amount = $current_goods_amount;
             if ($this->activity['activity']) {
@@ -315,12 +322,14 @@ class OrderCreate
                 $this->orderData['score_amount'] = $this->orderData['score_amount'] + $current_score_amount;
             }
 
+
             // 当前商品总重量
             $current_weight = bcmul($buyInfo['current_sku_price']->weight, $buyInfo['goods_num'], 2);
 
             // 将计算好的属性记录下来,插入订单 item 表使用
             $buyInfo['goods_original_amount'] = $current_goods_original_amount;         // 当前商品原始总金额(原价 * 数量)
             $buyInfo['goods_amount'] = $current_goods_amount;                           // 当前商品总金额(价格 * 数量)
+            $buyInfo['goods_bean_amount'] = $current_goods_bean_amount;                           // 当前商品可抵扣最高总金额(当前商品总金额 * 比例)
             $buyInfo['score_amount'] = $current_score_amount;       // 商品所需积分(积分商城)
             $buyInfo['weight'] = $current_weight;       // 当前商品总重量
             $buyInfo['original_dispatch_amount'] = 0;        // 当前商品运费(未判断活动的,并且也未合并相同运费模板商品的原始运费)
@@ -955,6 +964,7 @@ class OrderCreate
             'goods_original_amount' => $this->orderData['goods_original_amount'],
             'goods_old_amount' => $this->orderData['goods_old_amount'],
             'goods_amount' => $this->orderData['goods_amount'],
+            'goods_bean_amount' => $this->orderData['goods_bean_amount'],
             'dispatch_amount' => $this->orderData['dispatch_amount'],
             'real_dispatch_amount' => $this->orderData['real_dispatch_amount'],
             'order_amount' => $this->orderData['order_amount'],
@@ -1093,6 +1103,7 @@ class OrderCreate
             $orderData['promo_types'] = join(',', $result['promo_types']);
             $orderData['goods_original_amount'] = $result['goods_original_amount'];
             $orderData['goods_amount'] = $result['goods_amount'];
+            $orderData['goods_bean_amount'] = $result['goods_bean_amount'];
             $orderData['dispatch_amount'] = $result['dispatch_amount'];
             $orderData['remark'] = $this->remark;
             $orderData['order_amount'] = $result['order_amount'];