Просмотр исходного кода

Merge branch 'feature/3398-stageGoodAdjust' into develop

kevin_zhangl 2 лет назад
Родитель
Сommit
8358cbcdc6

+ 7 - 7
common/models/forms/ApproachDeclarationForm.php

@@ -615,6 +615,7 @@ class ApproachDeclarationForm extends Model
             return null;
         }
 
+        $hasInstalment = 0;
         // 首购单,需要添加会员操作
         if($this->type == self::TYPE_ZC) {
             try {
@@ -649,7 +650,6 @@ class ApproachDeclarationForm extends Model
                     $totalAmount = 0;
                     $totalAmountStandard = 0;
                     $totalPv = 0;
-                    $hasInstalment = 0;
                     $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
                     foreach ($this->goodsNum as $k => $v) {
                         if ($v) {
@@ -682,10 +682,10 @@ class ApproachDeclarationForm extends Model
                         }
                     }
                     if($totalPv<$decLevel['PERF']){
-                        if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
-                        }else{
+//                        if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
+//                        }else{
                             throw new Exception(Yii::t('app', 'totalBVCanNotLessThanSelectedBV'));
-                        }
+//                        }
                     }
                     foreach ($decLevelConfig as $key => $val) {
                         if ($totalPv >= $val['PERF']) {
@@ -693,10 +693,10 @@ class ApproachDeclarationForm extends Model
                         }
                     }
                     if ($this->decLv != $toDecLevel) {
-                        if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
-                        }else{
+//                        if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
+//                        }else{
                             throw new Exception(Yii::t('app', 'totalBVCanNotLessThanNextSelectedLevelBV'));
-                        }
+//                        }
                     }
                     $this->_decAmount = $totalAmount;
                     $this->_decPv = $totalPv;

+ 12 - 11
common/models/forms/ApproachOrderForm.php

@@ -347,13 +347,13 @@ class ApproachOrderForm extends Model
                         }
                     }
                     // 修改BA会员升级状态
-                    if ($orderType === 'baUpgrade') {
-                        // 查询BA会员名
-                        $userInfo = User::findOneAsArray('ID=:USER_ID', [':USER_ID' => $approachDecOrder['TO_USER_ID']]);
-                        if (!BaUser::updateAll(['WHETHER_UPGRADE' => 1, 'BA_UPGRADE_AT' => time()], 'USER_NAME=:USER_NAME', [':USER_NAME' => $userInfo['USER_NAME']])) {
-                            throw new Exception(Form::formatErrorsForApi(Yii::t('app', 'brandAmbassadorUpgradeError')));
-                        }
-                    }
+//                    if ($orderType === 'baUpgrade') {
+//                        // 查询BA会员名
+//                        $userInfo = User::findOneAsArray('ID=:USER_ID', [':USER_ID' => $approachDecOrder['TO_USER_ID']]);
+//                        if (!BaUser::updateAll(['WHETHER_UPGRADE' => 1, 'BA_UPGRADE_AT' => time()], 'USER_NAME=:USER_NAME', [':USER_NAME' => $userInfo['USER_NAME']])) {
+//                            throw new Exception(Form::formatErrorsForApi(Yii::t('app', 'brandAmbassadorUpgradeError')));
+//                        }
+//                    }
 
                     // 正式会员-升级单
                     if ($orderType === 'userUpgrade') {
@@ -412,6 +412,7 @@ class ApproachOrderForm extends Model
         $totalAmountStandard = 0;
         $goodsType = ShopGoods::getGoodType();
         $hasInstalment = 0;
+        $loginUserId = \Yii::$app->user->id;
         $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
@@ -458,9 +459,11 @@ class ApproachOrderForm extends Model
                     if($v>1){ // 不可以购买多个
                         throw new Exception(Yii::t('app', 'allowOnlyOne'));
                     }
-                    $loginUserId = \Yii::$app->user->id;
+
                     $userStage = Instalment::getStage($loginUserId);
-                    if ($userStage==0 || $userStage == 3){
+                    // 分期的总期数
+                    $instalment = floatval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+                    if ($userStage==0 || $userStage == $instalment){
 
                     }else{
                         if($userStage + 1 != $goods['INSTALMENT']){ // 若用户分期阶段+1不等于商品的分期阶段,则报异常
@@ -472,8 +475,6 @@ class ApproachOrderForm extends Model
             }
         }
 
-        // 汇率
-        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // 运费.奈拉
         $freight = floatval(Cache::getSystemConfig()['freight']['VALUE'] ?? 0);
         // 普通商品免运费阈值.奈拉

+ 5 - 4
common/models/forms/ApproachReconsumeOrderForm.php

@@ -415,6 +415,7 @@ class ApproachReconsumeOrderForm extends Model
         $totalAmountStandard = 0;
         $goodsType = ShopGoods::GOODS_TYPE;
         $hasInstalment = 0;
+        $loginUserId = \Yii::$app->user->id;
         $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
@@ -461,9 +462,11 @@ class ApproachReconsumeOrderForm extends Model
                     if($v>1){ // 不可以购买多个
                         throw new Exception(Yii::t('app', 'allowOnlyOne'));
                     }
-                    $loginUserId = \Yii::$app->user->id;
+
                     $userStage = Instalment::getStage($loginUserId);
-                    if ($userStage==0 || $userStage == 3){
+                    // 分期的总期数
+                    $instalment = floatval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+                    if ($userStage==0 || $userStage == $instalment){
 
                     }else{
                         if($userStage + 1 != $goods['INSTALMENT']){ // 若用户分期阶段+1不等于商品的分期阶段,则报异常
@@ -475,8 +478,6 @@ class ApproachReconsumeOrderForm extends Model
             }
         }
 
-        // 汇率
-        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // 运费.奈拉
         $freight = floatval(Cache::getSystemConfig()['freight']['VALUE'] ?? 0);
         // 普通商品免运费阈值.奈拉

+ 7 - 7
common/models/forms/DeclarationForm.php

@@ -630,6 +630,7 @@ class DeclarationForm extends Model
             return null;
         }
 
+        $hasInstalment = 0;
         // 首购单,需要添加会员操作
         if($this->type == self::TYPE_ZC){
             if (preg_match("/[\x7f-\xff]/", $this->insertUserName)) {  //判断字符串中是否有中文
@@ -670,7 +671,6 @@ class DeclarationForm extends Model
                 $totalAmount = 0;
                 $totalAmountStandard = 0;
                 $totalPv = 0;
-                $hasInstalment = 0;
                 $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
                 foreach ($this->goodsNum as $k => $v) {
                     if ($v) {
@@ -711,10 +711,10 @@ class DeclarationForm extends Model
                     }
                 }
                 if($totalPv<$decLevel['PERF']){
-                    if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
-                    }else{
+//                    if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
+//                    }else{
                         throw new Exception(Yii::t('app', 'totalBVCanNotLessThanSelectedBV'));
-                    }
+//                    }
                 }
                 foreach ($decLevelConfig as $key=>$val){
                     if($totalPv>=$val['PERF']){
@@ -722,10 +722,10 @@ class DeclarationForm extends Model
                     }
                 }
                 if ($this->decLv != $toDecLevel) {
-                    if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
-                    }else{
+//                    if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'Elite'){
+//                    }else{
                         throw new Exception(Yii::t('app', 'totalBVCanNotLessThanNextSelectedLevelBV'));
-                    }
+//                    }
                 }
                 if ($hasInstalment && $decLevel['LEVEL_NAME'] == 'BA'){
                     throw new Exception(Yii::t('app', 'totalBVCanNotLessThanNextSelectedLevelBV'));

+ 7 - 3
common/models/forms/DeclarationUpgradeForm.php

@@ -112,6 +112,7 @@ class DeclarationUpgradeForm extends Model
             return null;
         }
         $loginUserId = \Yii::$app->user->id;
+        $hasInstalment = 0;
         // 首购单
         if($this->type == self::TYPE_ZC){
             //报单商品及PV判断
@@ -155,7 +156,6 @@ class DeclarationUpgradeForm extends Model
                 $totalAmount = 0;
                 $totalAmountStandard = 0;
                 $totalPv = 0;
-                $hasInstalment = 0;
                 $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
                 foreach ($this->goodsNum as $k => $v) {
                     if ($v) {
@@ -190,11 +190,13 @@ class DeclarationUpgradeForm extends Model
                                 throw new Exception(Yii::t('app', 'allowOnlyOne'));
                             }
 
+                            // 分期的总期数
+                            $instalment = floatval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
                             $userStage = Instalment::getStage($userId);
                             $userInstalmentInfo = Instalment::getInfo($userId);
                             if (!$userInstalmentInfo){ // 如果没有分期付款记录
                                 throw new Exception(Yii::t('app', 'canNotBuy'));
-                            } else if ($userInstalmentInfo['ORDER_TYPE']!='BD' || $userStage == 3) { // 如果分期付款记录中,不是报单,或已是3
+                            } else if ($userInstalmentInfo['ORDER_TYPE']!='BD' || $userStage == $instalment) { // 如果分期付款记录中,不是报单,或已是最后一期
                                 throw new Exception(Yii::t('app', 'canNotBuy'));
                             }
                             if($userStage + 1 != $goods['INSTALMENT']){ // 若用户分期阶段+1不等于商品的分期阶段,则报异常
@@ -204,11 +206,13 @@ class DeclarationUpgradeForm extends Model
                         }
                     }
                 }
+
                 // 这里特殊是用户原报单PV之和+用户购买的商品总PV
                 $checkPv = $totalPv + $diffPerf;
                 if ($hasInstalment){ // 如果买了分期付款商品,则不判断总pv
                     $allData['hasInstalment'] = 1;
-                }else if($checkPv < $decLevel['PERF']) {
+                }
+                if($checkPv < $decLevel['PERF']) {
                     throw new Exception(Yii::t('app', 'totalPVLessThan'), 400);
                 }
                 foreach ($decLevelConfig as $key=>$val){

+ 9 - 6
common/models/forms/OrderForm.php

@@ -467,6 +467,7 @@ class OrderForm extends Model
         $goodsType = ShopGoods::getGoodType();
         $this->_remainPv = 0;
         $hasInstalment = 0;
+        $loginUserId = \Yii::$app->user->id;
         $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0); // 汇率
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
@@ -538,11 +539,12 @@ class OrderForm extends Model
                     if($v>1){ // 不可以购买多个
                         throw new Exception(Yii::t('app', 'allowOnlyOne'));
                     }
-                    $loginUserId = \Yii::$app->user->id;
                     $userStage = Instalment::getStage($loginUserId);
                     $userInstalmentInfo = Instalment::getInfo($loginUserId);
 
-                    if ($userStage != 3){
+                    // 分期的总期数
+                    $instalment = floatval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+                    if ($userStage != $instalment){
                         if($userInstalmentInfo){
                             if($userInstalmentInfo['STAGE']>0 && $userInstalmentInfo['ORDER_TYPE']!='FX'){
                                 throw new Exception(Yii::t('app', 'canNotBuy'));
@@ -557,8 +559,6 @@ class OrderForm extends Model
             }
         }
 
-        // 汇率
-        $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
         // 运费.美元转奈拉
         $freight = floatval(Cache::getSystemConfig()['freight']['VALUE'] ?? 0);
         // 普通商品免运费阈值.美元转奈拉
@@ -838,6 +838,7 @@ class OrderForm extends Model
         $totalPv = 0;
         $goodsType = ShopGoods::getGoodType();
         $hasInstalment = 0;
+        $userId = Info::getUserIdByUserName($this->userName);
         foreach ($this->goodsNum as $k => $v) {
             if ($v) {
                 $goods = ShopGoods::findOneAsArray('ID=:ID AND STATUS=1',[':ID'=> $ids[$k]]);
@@ -872,10 +873,12 @@ class OrderForm extends Model
                     if($v>1){ // 不可以购买多个
                         throw new Exception(Yii::t('app', 'allowOnlyOne'));
                     }
-                    $userId = Info::getUserIdByUserName($this->userName);
+
                     $userStage = Instalment::getStage($userId);
                     $userInstalmentInfo = Instalment::getInfo($userId);
-                    if ($userStage == 3){
+                    // 分期的总期数
+                    $instalment = floatval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+                    if ($userStage == $instalment){
 
                     }else{
                         if($userInstalmentInfo){

+ 2 - 2
frontendApi/modules/v1/controllers/ShopController.php

@@ -31,6 +31,7 @@ use common\models\forms\ApproachReconsumeOrderForm;
 use common\models\forms\BaApproachOrderForm;
 use common\models\forms\DeclarationForm;
 use common\models\forms\OrderForm;
+use common\models\Instalment;
 use common\models\Order;
 use common\models\OrderGoods;
 use common\models\ReceiveAddress;
@@ -236,8 +237,7 @@ class ShopController extends BaseController {
                 $customFields = $data['metadata']['custom_fields'] ?? [];
                 $oderSn = $customFields[0]['value'] ?? '';
                 $orderType = $customFields[1]['value'] ?? false;
-                // 订单类型区分:baOrder(BA订单)、baDec(BA报单)
-                $formModel = in_array($orderType, ['baOrder', 'baDec']) ? new BaApproachOrderForm() : new ApproachOrderForm();
+                $formModel = new ApproachOrderForm();
                 $formModel->scenario = 'verifyPayStack';
                 $load = [
                     'sn' => $oderSn,