|
|
@@ -18,6 +18,8 @@ use common\models\Region;
|
|
|
use common\models\ShopGoods;
|
|
|
use common\models\User;
|
|
|
use common\models\UserNetwork;
|
|
|
+use common\models\RemainPv;
|
|
|
+use common\models\FlowRemainPv;
|
|
|
use yii\base\Exception;
|
|
|
|
|
|
/**
|
|
|
@@ -52,6 +54,8 @@ class OrderForm extends Model
|
|
|
private $_freight;
|
|
|
private $_payAmount;
|
|
|
private $_orderGoods;
|
|
|
+ private $_remainPv;
|
|
|
+ private $_realPv;
|
|
|
|
|
|
/**
|
|
|
* @var Order
|
|
|
@@ -270,6 +274,20 @@ class OrderForm extends Model
|
|
|
return $this->_model;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * BV分期
|
|
|
+ *
|
|
|
+ *
|
|
|
+ */
|
|
|
+ private function _pvSplit($oPv){
|
|
|
+ $currentPv = $oPv % 300 + 300;
|
|
|
+ $remainPv = $oPv - $currentPv;
|
|
|
+ return [
|
|
|
+ 'current' => $currentPv,
|
|
|
+ 'remain' => $remainPv
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 复销
|
|
|
* @return bool|null
|
|
|
@@ -283,6 +301,7 @@ class OrderForm extends Model
|
|
|
$ids = $this->goodsId;
|
|
|
$totalAmount = 0;
|
|
|
$totalPv = 0;
|
|
|
+ $this->_remainPv = 0;
|
|
|
foreach ($this->goodsNum as $k => $v) {
|
|
|
if ($v) {
|
|
|
$goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
|
|
|
@@ -290,8 +309,22 @@ class OrderForm extends Model
|
|
|
$discount = $goods['SELL_DISCOUNT'];
|
|
|
$realPrice = $goods['SELL_PRICE'] * $discount;
|
|
|
$realPv = $goods['PRICE_PV'] * $discount;
|
|
|
+ if($goods['PV_SPLIT']==1){ // 当商品为PV分期时
|
|
|
+ $pvSplit = $this->_pvSplit($realPv);
|
|
|
+ $currentPv = $pvSplit['current'];
|
|
|
+ $remainPv = $pvSplit['remain'];
|
|
|
+ $totalPv += $currentPv * intval($v);
|
|
|
+ $totalRealPv += $realPv * intval($v);
|
|
|
+ $this->_remainPv += $remainPv * intval($v);
|
|
|
+ }else{
|
|
|
+ $currentPv = $goods['PRICE_PV'];
|
|
|
+ $totalPv += $realPv * intval($v);
|
|
|
+ $totalRealPv += $realPv * intval($v);
|
|
|
+ $remainPv = 0;
|
|
|
+ $this->_remainPv += 0;
|
|
|
+ }
|
|
|
$totalAmount += $realPrice * intval($v);
|
|
|
- $totalPv += $realPv * intval($v);
|
|
|
+// $totalPv += $realPv * intval($v);
|
|
|
// if($this->payType=='cash') {
|
|
|
// $discount = $goodsType[$goods['TYPE']]['discount'];
|
|
|
// $realPrice = $goods['SELL_PRICE'] * $discount/100;
|
|
|
@@ -307,9 +340,10 @@ class OrderForm extends Model
|
|
|
$this->_orderGoods[] = [
|
|
|
'GOODS_ID' => $goods['ID'],
|
|
|
'PRICE' => $goods['SELL_PRICE'],
|
|
|
- 'PV' => $goods['PRICE_PV'],
|
|
|
+ 'PV' => $currentPv, // $goods['PRICE_PV'],
|
|
|
'REAL_PRICE' => $realPrice,
|
|
|
'REAL_PV' => $realPv,
|
|
|
+ 'REMAIN_PV' => $remainPv,
|
|
|
'POINT' => $goods['POINT'],
|
|
|
'BUY_NUMS' => intval($v),
|
|
|
'SKU_CODE' => $goods['GOODS_NO'],
|
|
|
@@ -320,6 +354,7 @@ class OrderForm extends Model
|
|
|
}
|
|
|
$this->_decAmount = $totalAmount;
|
|
|
$this->_decPv = $totalPv;
|
|
|
+ $this->_realPv = $totalRealPv;
|
|
|
$this->_freight = ($totalAmount>=300) ? 0 : 15;
|
|
|
$this->_payAmount = $this->_decAmount + $this->_freight;
|
|
|
|
|
|
@@ -412,6 +447,7 @@ class OrderForm extends Model
|
|
|
$orderModel->PV = $this->payType =='exchange' ? 0 : $this->_decPv;
|
|
|
$orderModel->PAY_AMOUNT = $this->_payAmount;
|
|
|
$orderModel->PAY_PV = $this->payType =='exchange' ? 0 : $this->_decPv; // 兑换积分不能算业绩
|
|
|
+ $orderModel->REMAIN_PV = $this->_remainPv;
|
|
|
$orderModel->PAY_AT = Date::nowTime();
|
|
|
$orderModel->PAY_TYPE = $this->payType;
|
|
|
$orderModel->PERIOD_NUM = $nowPeriodNum;
|
|
|
@@ -655,4 +691,29 @@ class OrderForm extends Model
|
|
|
}
|
|
|
return $hash;
|
|
|
}
|
|
|
+
|
|
|
+ public function addFakeOrder($userId, $periodNum){
|
|
|
+ $userName = Info::getUserNameByUserId($userId);
|
|
|
+ $ordNo = $this->_generateSn();
|
|
|
+ $orderModel = new Order();
|
|
|
+ $orderModel->SN = 'OS'.$ordNo;
|
|
|
+ $orderModel->DEC_SN = 'DS'.$ordNo;
|
|
|
+ $orderModel->USER_ID = $userId;
|
|
|
+ $orderModel->USER_NAME = $userName;
|
|
|
+ $orderModel->PERIOD_NUM = $periodNum;
|
|
|
+ $orderModel->CREATE_USER = 'FAKE';
|
|
|
+ $orderModel->ORDER_TYPE = 'FX';
|
|
|
+ $orderModel->STATUS = 1;
|
|
|
+ $orderModel->PV = 30;
|
|
|
+ $orderModel->PAY_PV = 30;
|
|
|
+ $orderModel->P_CALC_MONTH = '1970-01-01';
|
|
|
+ $orderModel->CREATED_AT = Date::nowTime();
|
|
|
+ $orderModel->EXPRESS_TYPE = 1;
|
|
|
+ $orderModel->IS_AUTO = 1;
|
|
|
+ if(!$orderModel->save()){
|
|
|
+ $this->addErrors($orderModel->getErrors());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ return $orderModel;
|
|
|
+ }
|
|
|
}
|