|
@@ -0,0 +1,78 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Console\Commands\Video\WechatCheck;
|
|
|
+
|
|
|
+use App\Service\Miniprogram\Wechat\AccessTokenService;
|
|
|
+use App\Service\Util\Support\Http\WechatURL;
|
|
|
+use App\Services\Util\Support\Http\HttpRequestService;
|
|
|
+use Illuminate\Console\Command;
|
|
|
+use Predis\Command\Traits\DB;
|
|
|
+
|
|
|
+class SyncDramaInfo extends Command
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * The name and signature of the console command.
|
|
|
+ *
|
|
|
+ * @var string
|
|
|
+ */
|
|
|
+ protected $signature = 'WechatCheck:SyncDramaInfo {--drama_ids= : 剧目ids}';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * The console command description.
|
|
|
+ *
|
|
|
+ * @var string
|
|
|
+ */
|
|
|
+ protected $description = '微信剧目提审-获取剧目信息';
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Execute the console command.
|
|
|
+ */
|
|
|
+ public function handle()
|
|
|
+ {
|
|
|
+ $drama_ids = $this->option('drama_ids');
|
|
|
+ if($drama_ids) {
|
|
|
+ $dramaIds = explode(',', $drama_ids);
|
|
|
+ }
|
|
|
+ $accessToken = $this->getAccessToken();
|
|
|
+ DB::table('video_wechat_check')
|
|
|
+ ->when($dramaIds, function ($query, $dramaIds) {
|
|
|
+ return $query->whereIn('drama_id', $dramaIds);
|
|
|
+ })
|
|
|
+ ->where('drama_id', '<>', 0)
|
|
|
+ ->where([
|
|
|
+ 'status' => 1,
|
|
|
+ 'is_enabled' => 1
|
|
|
+ ])
|
|
|
+ ->select('drama_id', 'id', 'status')
|
|
|
+ ->orderBy('id')
|
|
|
+ ->chunk(100, function ($items) use ($accessToken){
|
|
|
+ foreach ($items as $item) {
|
|
|
+ $result = HttpRequestService::simplePost(WechatURL::vod_getdrama. $accessToken, [
|
|
|
+ 'drama_id' => $item->drama_id
|
|
|
+ ]);
|
|
|
+ if(false === $result || (0 != ($result['errcode'] ?? 0))) {
|
|
|
+ myLog('SyncDramaInfo')->error('获取剧目信息失败', [
|
|
|
+ 'id' => $item->id, 'drama_id' => $item->drama_id,
|
|
|
+ 'errcode' => $result['errocode'] ?? '',
|
|
|
+ 'errmsg' => $result['errmsg'] ?? ''
|
|
|
+ ]);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $status = $result['drama_info']['audit_detail']['status'];
|
|
|
+ if($status != $item->status)
|
|
|
+ {
|
|
|
+ DB::table('video_wechat_check')
|
|
|
+ ->where('id', $item->id)
|
|
|
+ ->update([
|
|
|
+ 'check_at' => date('Y-m-d H:i:s', $result['drama_info']['audit_detail']['audit_time']),
|
|
|
+ 'status' => $status,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private function getAccessToken() {
|
|
|
+ return Redis::get(AccessTokenService::getAccessTokenRedisKey(config('wechat.duanju.masterAppid')));
|
|
|
+ }
|
|
|
+}
|