Przeglądaj źródła

升级分期商品修改

kevin 1 rok temu
rodzic
commit
56c79a1e09
1 zmienionych plików z 22 dodań i 14 usunięć
  1. 22 14
      frontendApi/modules/v1/controllers/UserController.php

+ 22 - 14
frontendApi/modules/v1/controllers/UserController.php

@@ -367,14 +367,27 @@ class UserController extends BaseController {
         }
 
         // 分期的总期数
-        $instalment = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
-        // 是否有未完成的BD类型的分期订单
-        $stage = Instalment::getOneStage($baseInfo['ID'], 'BD');
-        // 如果分期未完成,切已经升级到顶级,则商品列表只返回分期商品
-        if ($isMax === true) {
-            $stage += (!$stage || ($stage >= $instalment)) ? 1000 : 1;
+        $instalmentConfig = intval(Cache::getSystemConfig()['instalment']['VALUE'] ?? 3);
+        // 查询是否有FX的分期订单
+        $stageFX = Instalment::getOneStage($baseInfo['ID'], 'FX');
+        if ($stageFX && $stageFX < $instalmentConfig) {
+            $condition = ") AND INSTALMENT = 1000";
         } else {
-            $stage += ($stage >= $instalment) ? 1000 : 1;
+            // 是否有未完成的BD类型的分期订单
+            $stageBD = Instalment::getOneStage($baseInfo['ID'], 'BD');
+            if ($isMax === true) {
+                if ($stageBD > 0 && $stageBD < $instalmentConfig) {
+                    $condition = ") AND (INSTALMENT = " . ($stageBD + 1) . ")";
+                } else {
+                    $condition = ") AND INSTALMENT = 0";
+                }
+            } else {
+                if ($stageBD > 0 && $stageBD < $instalmentConfig) {
+                    $condition = ") AND (INSTALMENT = 0 OR INSTALMENT = " . ($stageBD + 1) . ")";
+                } else {
+                    $condition = ") AND INSTALMENT = 0";
+                }
+            }
         }
 
         //所有自选商品
@@ -390,14 +403,9 @@ class UserController extends BaseController {
             $query_condition.= " OR FIND_IN_SET(3,GIFT_TYPE)>0";
         }
 
-        // 如果等级已经是顶级 && 没有分期订单,则不查询商品
-        if ($stage >= 1000) {
-            $query_condition.= ") AND (INSTALMENT = :INSTALMENT)";
-        } else {
-            $query_condition.= ") AND ((INSTALMENT = 0) OR (INSTALMENT = :INSTALMENT))";
-        }
+        $query_condition .= $condition;
 
-        $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition, [':INSTALMENT' => $stage])->orderBy('SORT ASC')->asArray()->all();
+        $allGoods = ShopGoods::find()->where("STATUS=1 AND CATEGORY_TYPE=1 " . $query_condition)->orderBy('SORT ASC')->asArray()->all();
         foreach ($allGoods as &$goods) {
             $goods['TAX'] = Tool::calculateTax($goods['SELL_PRICE'], $goods['TAX_RATE']);
         }