kevin пре 1 година
родитељ
комит
76812241a5
2 измењених фајлова са 43 додато и 2 уклоњено
  1. 13 0
      common/models/Instalment.php
  2. 30 2
      frontendApi/modules/v1/controllers/UserController.php

+ 13 - 0
common/models/Instalment.php

@@ -44,6 +44,19 @@ class Instalment extends \common\components\ActiveRecord
         return $user['STAGE'];
     }
 
+    /**
+     * @param $userId
+     * @param $orderType
+     * @return integer
+     */
+    public static function getOneStage($userId, $orderType) {
+        $user = static::findOneAsArray("USER_ID = :USER_ID AND ORDER_TYPE=:ORDER_TYPE", [':USER_ID' => $userId, ':ORDER_TYPE' => $orderType]);
+        if(!$user){
+            return 0;
+        }
+        return $user['STAGE'];
+    }
+
     public static function getInfo($userId) {
         $userInfo = static::findOneAsArray("USER_ID = :USER_ID", [':USER_ID' => $userId]);
         if(!$userInfo){

+ 30 - 2
frontendApi/modules/v1/controllers/UserController.php

@@ -250,6 +250,12 @@ class UserController extends BaseController {
         if ($maxDecId == $userDecId) {
             $isMax = true;
         }
+
+        // 是否有未完成的BD类型的分期订单
+        $stage = Instalment::getOneStage($userId, 'BD');
+        // 分期的总期数
+        $instalment = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+
         // 如果用户已经是最高级别,则只展示用户信息
         $userInfo = [
             'DEC_NAME' => $baseInfo['DEC_LV_NAME'], // 用户级别中文
@@ -258,6 +264,7 @@ class UserController extends BaseController {
             'ADD_AT' => date('Y-m-d', $baseInfo['CREATED_AT']), // 加入时间
             'IS_OBSERVE' => $isObserve, // 是否是观察期  true为是观察期
             'IS_MAX' => $isMax, // 是否已是最大级别 最大级别不需要判断报单总PV是多少 只展示基本信息
+            'INSTALMENT' => $stage == 0 && $stage == $instalment,
         ];
 
         // 如果是最高级别了,则无需升级
@@ -306,6 +313,10 @@ class UserController extends BaseController {
 
     // 会员升级管理
     public function actionUpgrade() {
+        $isMax = \Yii::$app->request->request('isMax');
+        $userNumber = \Yii::$app->request->request('userName');
+        $baseInfo = Info::baseInfoZhByUserName($userNumber);
+
         $isSwitchUpgrade = Config::find()
         ->where("CONFIG_NAME='isOpenUpgrade'")
         ->asArray()
@@ -341,6 +352,23 @@ class UserController extends BaseController {
             $levelName = $decLevels[$v['LEVEL_ID']]['LEVEL_NAME'] ?? '';
             $allDecPackage[$k]['LEVEL_NAME'] = $levelName;
         }
+
+        // 是否有未完成的BD类型的分期订单
+        $stage = Instalment::getOneStage($baseInfo['ID'], 'BD');
+        // 分期的总期数
+        $instalment = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+        // 会员已经是顶级,处理分期订单
+        // 如果分期未完成,切已经升级到顶级,则商品列表只返回分期商品
+        if ($isMax) {
+            if (!$stage || ($stage >= $instalment)) {
+                $stage = 100;
+            } else {
+                $stage += 1;
+            }
+        } else {
+            $stage += 1;
+        }
+
         //所有自选商品
         $isDecReg = Cache::getSystemConfig()['isDecReg']['VALUE'];
         $isDec = User::getEnCodeInfo(\Yii::$app->user->id)['IS_DEC'];
@@ -353,9 +381,9 @@ class UserController extends BaseController {
         if($isStudio==1){
             $query_condition.= " OR FIND_IN_SET(3,GIFT_TYPE)>0";
         }
-        $query_condition.= ")";
+        $query_condition.= ") AND ((INSTALMENT = 0) OR (INSTALMENT = :INSTALMENT))";
 
-        $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition)->orderBy('SORT ASC')->asArray()->all();
+        $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition, [':INSTALMENT' => $stage])->orderBy('SORT ASC')->asArray()->all();
         foreach ($allGoods as &$goods) {
             $goods['TAX'] = Tool::calculateTax($goods['SELL_PRICE'], $goods['TAX_RATE']);
         }