jason 8 сар өмнө
parent
commit
5c3720c638

+ 10 - 9
application/common/logic/AirdropLogic.php

@@ -105,6 +105,11 @@ class AirdropLogic
             (new Output())->writeln("超级福利未开启:");
             return false;
         }
+        $num = $user_welfare['parent_rate'];
+        if(!($num > 0)){
+            (new Output())->writeln("上级发放比例配置有误:" . $num);
+            return false;
+        }
 
         $user_info = UserModel::where('id', $info['user_id'])->find();
         if($user_info->is_super == 0){
@@ -141,19 +146,15 @@ class AirdropLogic
         }
 
         // 获取指定产品的热门信息
-        $result = ProductPopular::getPopularByTime($user_welfare['super_product_id'], 'zh', $info->start_time);
-
+        $result = ProductPopular::getPopularByTime($user_welfare['super_product_id'], 'zh', $info->create_time);
+        $stock = $result->stock - $result->num - $result->init_num;
         // 检查库存是否足够
-        if(!$result || count($send_user_ids) > $result->stock) {
+        if(!$result || count($send_user_ids) > $stock) {
             // 如果库存不足,输出信息并返回false
-            (new Output())->writeln("本次执行库存不足:");
-            return false;
-        }
-        $num = $user_welfare['parent_rate'];
-        if(!($num > 0)){
-            (new Output())->writeln("上级发放比例配置有误:" . $num);
+            (new Output())->writeln("本次执行库存不足:应发发".count($send_user_ids) * $num."套,库存:" . $stock);
             return false;
         }
+
         foreach ($send_user_ids as $user_id){
             $rs = WelfareLoginc::setUserProductOrder($num, $result['is_area'], $info['user_id'], $result['price'], $result['product_id'], $user_id, ProductOrder::Airdrop);
             if($rs && $result['price'] >= config('min_rwa_price')){

+ 2 - 2
application/common/model/ProductPopular.php

@@ -91,8 +91,8 @@ class ProductPopular extends Model
     public static function getPopularByTime(int $productId, string $lan, $tim)
     {   
        return self::alias('a')
-           ->where('a.start_time', '<=', $tim)
-           ->where('a.end_time', '>=', $tim)
+           ->where('a.start_time', '>=', $tim)
+           ->where('a.end_time', '<=', $tim)
            ->join('product_list b', "a.product_id = b.id", "left")
            ->field('a.*,b.is_area,'.$lan.'_name as name')
            ->where('a.product_id', $productId)->find();