Browse Source

bugfix:PayStack支付订单未写入标准价格

kevin_zhangl 3 years ago
parent
commit
d8fda3ecb7
2 changed files with 17 additions and 0 deletions
  1. 3 0
      common/models/ApproachOrder.php
  2. 14 0
      common/models/forms/ApproachOrderForm.php

+ 3 - 0
common/models/ApproachOrder.php

@@ -50,6 +50,9 @@ use Yii;
  * @property string $NOTE 备注说明
  * @property string $LGA_NAME LGA_NAME
  * @property string $CITY_NAME 城市
+ * @property string $PAY_AMOUNT_STANDARD 支付价格
+ * @property string $ORDER_AMOUNT_STANDARD 订单总价格($)
+ * @property string $EXCHANGE_RATE 汇率
  */
 class ApproachOrder extends \common\components\ActiveRecord
 {

+ 14 - 0
common/models/forms/ApproachOrderForm.php

@@ -63,6 +63,8 @@ class ApproachOrderForm extends Model
     private $_freight;
     private $_payAmount;
     private $_orderGoods;
+    private $_standardAmount;
+    private $_decAmountStandard;
 
     /**
      * @var ApproachOrder
@@ -374,6 +376,7 @@ class ApproachOrderForm extends Model
         $ids = $this->goodsId;
         $totalAmount = 0;
         $totalPv = 0;
+        $totalAmountStandard = 0;
         $goodsType = ShopGoods::GOODS_TYPE;
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
@@ -383,13 +386,16 @@ class ApproachOrderForm extends Model
                         $discount = $goodsType[$goods['TYPE']]['discount'];
                         $realPrice = $goods['SELL_PRICE'] * $discount/100;
                         $realPv = $goods['PRICE_PV'] * $discount/100;
+                        $realPriceStandard = $goods['SELL_PRICE_STANDARD'] * $discount/100;
                     } else {
                         $discount = $goods['SELL_DISCOUNT'];
                         $realPrice = $goods['SELL_PRICE'] * $discount;
                         $realPv = $goods['PRICE_PV'] * $discount;
+                        $realPriceStandard = $goods['SELL_PRICE_STANDARD'] * $discount;
                     }
                     $totalAmount += $realPrice * intval($v);
                     $totalPv += $realPv * intval($v);
+                    $totalAmountStandard += $realPriceStandard * intval($v);
 
                     $this->_orderGoods[] = [
                         'GOODS_ID' => $goods['ID'],
@@ -405,6 +411,8 @@ class ApproachOrderForm extends Model
                         'CATEGORY_TYPE' => $goods['CATEGORY_TYPE'],
                         'PAY_TYPE' => $this->payType,
                         'EMAIL' => $this->email,
+                        'STANDARD_PRICE' => $goods['SELL_PRICE_STANDARD'],
+                        'REAL_STANDARD_PRICE' => $realPriceStandard,
                     ];
                 }
             }
@@ -424,6 +432,8 @@ class ApproachOrderForm extends Model
             $this->_freight = 0;
         }
         $this->_payAmount = $this->_decAmount + $this->_freight;
+        $this->_decAmountStandard = $totalAmountStandard;
+        $this->_standardAmount = $this->_decAmountStandard + $this->_freight;
 
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
@@ -459,6 +469,7 @@ class ApproachOrderForm extends Model
         $userRealName = Info::getUserRealNameByUserId($userId);
         $userMobile = Info::getUserMobileByUserId($userId);
         $userEmail = Info::getUserEmailByUserId($userId);
+        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // 加入订单信息
         if ($this->_address['PROVINCE'] != 1) {
             $warehouse = Region::getWarehouseByCode($this->_address['PROVINCE']);//仓库
@@ -501,6 +512,9 @@ class ApproachOrderForm extends Model
         $orderModel->CREATED_AT = Date::nowTime();
         $orderModel->CREATE_USER = $userName;
         $orderModel->EMAIL = $userEmail?$userEmail:$userName.'@elken.net';
+        $orderModel->ORDER_AMOUNT_STANDARD = $this->_decAmountStandard;
+        $orderModel->PAY_AMOUNT_STANDARD = $this->_standardAmount;
+        $orderModel->EXCHANGE_RATE = $exchangeRate;
         if($this->_address['PROVINCE']==1){
             $orderModel->EXPRESS_TYPE = 1;
             $orderModel->CONSIGNEE = $userRealName;