liuzejian il y a 1 an
Parent
commit
3e1568c39c

+ 32 - 0
app/Jobs/Video/WechatCheck.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace App\Jobs\Video;
+
+use Illuminate\Bus\Queueable;
+use Illuminate\Contracts\Queue\ShouldBeUnique;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Queue\SerializesModels;
+
+class WechatCheck implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    private $info;
+    /**
+     * Create a new job instance.
+     */
+    public function __construct($info)
+    {
+        $this->info = $info;
+    }
+
+    /**
+     * Execute the job.
+     */
+    public function handle(): void
+    {
+        //
+    }
+}

+ 11 - 0
app/Libs/Helpers.php

@@ -3,6 +3,7 @@
 
 use Illuminate\Http\UploadedFile;
 use Illuminate\Support\Facades\DB;
+use Modules\Common\Support\Trace\TraceContext;
 use Modules\Common\Support\Upload\Uploader;
 use PhpOffice\PhpSpreadsheet\IOFactory;
 use PhpOffice\PhpSpreadsheet\Spreadsheet;
@@ -404,3 +405,13 @@ if (!function_exists('print_sql')) {
         });
     }
 }
+
+if(!function_exists('getTraceContext')) {
+
+    /**
+     * @return TraceContext
+     */
+    function getTraceContext() {
+        return app(TraceContext::class);
+    }
+}

+ 7 - 1
config/database.php

@@ -145,7 +145,13 @@ return [
             'port' => env('REDIS_PORT', '6379'),
             'database' => env('REDIS_CACHE_DB', '1'),
         ],
-
+        // 普通redis队列
+        'queue-redis' => [
+            'host' => env('COMMON_QUEUE_REDIS_HOST', 'localhost'),
+            'password' => env('COMMON_QUEUE_REDIS_PASSWORD', null),
+            'port' => env('COMMON_QUEUE_REDIS_PORT', 6379),
+            'database' => 2,
+        ],
     ],
 
 ];

+ 7 - 0
config/queue.php

@@ -71,6 +71,13 @@ return [
             'after_commit' => false,
         ],
 
+        'queue-redis' => [
+            'driver' => 'redis',
+            'connection' => 'queue-redis',
+            'queue' => 'default',
+            'expire' => 60,
+        ]
+
     ],
 
     /*

+ 30 - 0
modules/Video/Http/Controllers/WechatCheckController.php

@@ -2,6 +2,7 @@
 
 namespace Modules\Video\Http\Controllers;
 
+use App\Jobs\Video\WechatCheck;
 use Catch\Base\CatchController;
 use Illuminate\Foundation\Validation\ValidatesRequests;
 use Illuminate\Http\Request;
@@ -86,4 +87,33 @@ class WechatCheckController extends CatchController
             ->paginate($request->input('limit', 10));
 
     }
+
+    /**
+     * 微信提审
+     * @param Request $request
+     */
+    public function wechatCheck(Request $request) {
+        $this->validate($request, [
+            'ids' => 'required|array'
+        ]);
+        $ids = $request->input('ids');
+        $now = date('Y-m-d H:i:s');
+        DB::table('video_wechat_check')
+            ->whereIn('id', $ids)
+            ->whereIn('status', [0, 4])
+            ->update([
+                'status' => 5,
+                'updated_at' => $now,
+                'apply_at' => $now,
+            ]);
+        $traceContext = getTraceContext();
+        foreach ($ids as  $id) {
+            WechatCheck::dispatch([
+                'id' => $id,
+                'traceInfo' => $traceContext->getTraceInfo()
+            ])->onQueue('{duanju_manage}.video.wechatCheck')->onConnection('queue-redis');
+        }
+
+        return 'ok';
+    }
 }