Przeglądaj źródła

[智价云] 监听查询更新

tangyuanwang 1 miesiąc temu
rodzic
commit
82e8dfe7f6
1 zmienionych plików z 18 dodań i 2 usunięć
  1. 18 2
      app/Http/Controllers/Manager/Process/SubNotice.php

+ 18 - 2
app/Http/Controllers/Manager/Process/SubNotice.php

@@ -8,6 +8,7 @@ use App\Jobs\Manager\Process\SubNoticeJobs;
 use App\Models\Manager\Process\ExecuteLog as ExecuteLogModel;
 use App\Models\Manager\Process\SubNoticeLog as SubNoticeLogModel;
 use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\DB;
 
 /**
  * 违规处理订阅推送
@@ -40,10 +41,25 @@ class SubNotice extends Controller
         //查询违规门店清洗清洗情况
         $action3 = $ExecuteLogModel->query()->where([['code', '=', 'ViolationStoreJobs'], ['status', '=', '0'], ['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd]])->count();
         if ($action3 < 1) return 4;
+        // 检查队列是否全部执行完毕
+        $jobClasses = [
+            'LowPriceGoodsDataJobs',
+            'LowPriceGoodsJobs',
+            'ViolationProductDataJobs',
+            'ViolationProductJobs',
+            'ViolationStoreDataJobs',
+            'ViolationStoreJobs',
+        ];
+        $pendingJobs = DB::table('jobs')->where(function ($query) use ($jobClasses) {
+            foreach ($jobClasses as $class) {
+                $query->orWhere('payload', 'like', '%' . $class . '%');
+            }
+        })->count();
+        if ($pendingJobs > 0) return 5;
         // 查询数据
         $result = $CompanyModel->query()->get()->toArray();
         // 分配数据
-        if (!$result)  return 5;
+        if (!$result)  return 6;
         foreach ($result as $key => $item) {
             $message_data = ['company_id' => $item['id']];
             SubNoticeJobs::dispatch($message_data);
@@ -52,6 +68,6 @@ class SubNotice extends Controller
         // 增加通知推送记录
         $SubNoticeLogModel->query()->insert(['insert_time' => time()]);
         // 告知结果
-        return 6;
+        return 7;
     }
 }