Kaynağa Gözat

获取限购清空配置,用于商品详情回显 getLimitBuyClearInfo 函数实现有优先级逻辑错误

shizhongqi 2 ay önce
ebeveyn
işleme
97cb497b21

+ 11 - 3
app-ghs/controllers/TestController.php

@@ -39,6 +39,7 @@ use common\components\payUtil;
 use Yii;
 use common\components\util;
 use wkhtmltox\Image\Converter;
+use common\components\rabbitmq\stockConsumer;
 
 
 class TestController extends BaseController
@@ -49,9 +50,16 @@ class TestController extends BaseController
     // ./yii test/rabbit 0
     public function actionRabbit()
     {
-        //放进去
-        ExpressClass::askCreateOrder(['orderId' => 1]);
-        \bizGhs\express\classes\ExpressClass::askCreateOrder(['orderId' => 2]);
+        $data = [
+            "type" => 'limit_buy_clear',
+            "ptType" => 'ghs',
+            "productId" => 27285,
+            "clearAt" => 1778126400,
+            "recurring" => 1,
+            "intervalDays" => 1,
+            "clearHour" => 12
+        ];
+        stockConsumer::clearOrderItemLimitBuy($data);
     }
 
     public function actionFx()

+ 17 - 8
biz-ghs/product/classes/ProductClass.php

@@ -2821,7 +2821,14 @@ class ProductClass extends BaseClass
         return ['intervalDays' => $intervalDays, 'clearHour' => $clearHour];
     }
 
-    // 创建循环清空限购缓存
+    /**
+     * 创建循环清空限购缓存
+     * @param $productId 花材ID
+     * @param int $intervalDays 循环清空限购的间隔天数
+     * @param int $clearHour 循环清空限购的执行时间点
+     * @param int $clearAt 循环清空限购的下次清空时间
+     * @return bool
+     */
     public static function createRecurringLimitBuyCache($productId, $intervalDays, $clearHour, $clearAt = 0)
     {
         $productId = intval($productId);
@@ -2889,6 +2896,15 @@ class ProductClass extends BaseClass
             return $info;
         }
 
+        $loopConfig = self::getLimitBuyClearLoopConfigByProductId($productId);
+        if (!empty($loopConfig)) {
+            $info['limitBuyClearType'] = 1;
+            $info['limitBuyClearTypeName'] = '循环清空';
+            $info['limitBuyClearIntervalDays'] = intval($loopConfig['intervalDays'] ?? 0);
+            $info['cleartAt'] = intval($loopConfig['clearHour'] ?? 0);
+            return $info;
+        }
+
         $clearMarkKey = self::CLEAR_MARK_KEY . $productId;
         $clearAt = intval(Yii::$app->redis->executeCommand('GET', [$clearMarkKey]));
         if ($clearAt <= 0) {
@@ -2902,13 +2918,6 @@ class ProductClass extends BaseClass
         $info['limitBuyNextClearAt'] = $clearAt;
         $info['limitBuyNextClearTime'] = $info['limitBuyClearTime'];
 
-        $loopConfig = self::getLimitBuyClearLoopConfigByProductId($productId);
-        if (!empty($loopConfig)) {
-            $info['limitBuyClearType'] = 1;
-            $info['limitBuyClearTypeName'] = '循环清空';
-            $info['limitBuyClearIntervalDays'] = intval($loopConfig['intervalDays'] ?? 0);
-            $info['cleartAt'] = intval($loopConfig['clearHour'] ?? 0);
-        }
         return $info;
     }
 

+ 9 - 7
biz-hd/product/classes/ProductClass.php

@@ -718,6 +718,15 @@ class ProductClass extends BaseClass
             return $info;
         }
 
+        $loopConfig = self::getLimitBuyClearLoopConfigByProductId($productId);
+        if (!empty($loopConfig)) {
+            $info['limitBuyClearType'] = 1;
+            $info['limitBuyClearTypeName'] = '循环清空';
+            $info['limitBuyClearIntervalDays'] = intval($loopConfig['intervalDays'] ?? 0);
+            $info['cleartAt'] = intval($loopConfig['clearHour'] ?? 0);
+            return $info;
+        }
+
         $clearMarkKey = self::CLEAR_MARK_KEY . $productId;
         $clearAt = intval(Yii::$app->redis->executeCommand('GET', [$clearMarkKey]));
         if ($clearAt <= 0) {
@@ -731,13 +740,6 @@ class ProductClass extends BaseClass
         $info['limitBuyNextClearAt'] = $clearAt;
         $info['limitBuyNextClearTime'] = $info['limitBuyClearTime'];
 
-        $loopConfig = self::getLimitBuyClearLoopConfigByProductId($productId);
-        if (!empty($loopConfig)) {
-            $info['limitBuyClearType'] = 1;
-            $info['limitBuyClearTypeName'] = '循环清空';
-            $info['limitBuyClearIntervalDays'] = intval($loopConfig['intervalDays'] ?? 0);
-            $info['cleartAt'] = intval($loopConfig['clearHour'] ?? 0);
-        }
         return $info;
     }
 

+ 0 - 1
common/components/rabbitmq/cancelLimitBuyConsumer.php

@@ -6,7 +6,6 @@
 
 namespace common\components\rabbitmq;
 
-use bizGhs\order\classes\OrderItemClass;
 use bizGhs\product\classes\ProductClass;
 use common\components\noticeUtil;
 use mikemadisonweb\rabbitmq\components\ConsumerInterface;