Преглед изворни кода

[智价云] 通知推送任务

tangyuanwang пре 23 часа
родитељ
комит
d3fb257c60

+ 57 - 0
app/Http/Controllers/Manager/Process/SubNotice.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace App\Http\Controllers\Manager\Process;
+
+use App\Http\Controllers\Controller;
+use App\Models\Manager\External\Company as CompanyModel;
+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;
+
+/**
+ * 违规处理订阅推送
+ * @author    唐远望
+ * @version   1.0
+ * @date      2026-03-30
+ */
+class SubNotice extends Controller
+{
+    /**
+     * 执行通知推送任务
+     * @author    唐远望
+     * @version   1.0
+     * @date      2025-12-11
+     * 
+     */
+    public function push_notice(CompanyModel $CompanyModel, ExecuteLogModel $ExecuteLogModel, SubNoticeLogModel $SubNoticeLogModel)
+    {
+        $todayStart = Carbon::today()->startOfDay()->getTimestamp(); // 今天开始时间 00:00:00
+        $todayEnd = Carbon::today()->endOfDay()->getTimestamp(); // 今天结束时间 23:59:59
+        //查询今日是否存在通知推送记录
+        $sub_notice_count = $SubNoticeLogModel->query()->where([['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd]])->count();
+        if ($sub_notice_count > 0) return true;
+        //查询低价商品清洗清洗情况
+        $action1 = $ExecuteLogModel->query()->where([['code', '=', 'LowPriceGoodsJobs'], ['status', '=', '0'], ['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd]])->count();
+        if ($action1 < 1) return true;
+        //查询违规产品清洗清洗情况
+        $action2 = $ExecuteLogModel->query()->where([['code', '=', 'ViolationProductJobs'], ['status', '=', '0'], ['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd]])->count();
+        if ($action2 < 1) return true;
+        //查询违规门店清洗清洗情况
+        $action3 = $ExecuteLogModel->query()->where([['code', '=', 'ViolationStoreJobs'], ['status', '=', '0'], ['insert_time', '>=', $todayStart], ['insert_time', '<=', $todayEnd]])->count();
+        if ($action3 < 1) return true;
+        // 查询数据
+        $result = $CompanyModel->query()->toarray();
+        // 分配数据
+        if (!$result)  return json_send(['code' => 'success', 'msg' => '获取成功', 'data' => []]);
+        foreach ($result as $key => $item) {
+            $message_data = ['company_id' => $item['id']];
+            SubNoticeJobs::dispatch($message_data);
+            // SubNoticeJobs::dispatchSync($message_data);
+        }
+        // 增加通知推送记录
+        $SubNoticeLogModel->query()->insert(['insert_time' => time()]);
+        // 告知结果
+        return             json_send(['code' => 'success', 'msg' => '执行成功']);
+    }
+}

+ 25 - 0
app/Models/Manager/Process/SubNoticeLog.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Models\Manager\Process;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 订阅推送通知日志
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2026-03-30
+ */
+class SubNoticeLog extends Model
+{
+    use HasFactory;
+    // 与模型关联的表名
+    protected $table = 'sub_notice_log';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+}

+ 2 - 0
routes/manager.php

@@ -209,6 +209,8 @@ Route::any('personnel_roles/delete', [App\Http\Controllers\Manager\Personnel\Rol
 Route::any('personnel_roles/all', [App\Http\Controllers\Manager\Personnel\Roles::class, 'all']);
 
 // ------违规处理------
+// 违规处理-执行通知推送任务
+Route::any('process/sub_notice', [App\Http\Controllers\Manager\Process\SubNotice::class, 'push_notice']);
 // 违规处理-低价挂网商品-列表
 Route::any('process/low_price_goods/list', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'list']);
 // 违规处理-低价挂网商品-详情