123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- <?php
- namespace App\Console\Commands\Video\WechatCheck;
- use App\Service\Miniprogram\Wechat\AccessTokenService;
- use App\Service\Util\Support\Http\WechatURL;
- use App\Service\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')));
- }
- }
|