container = $container; parent::__construct($this->name); } public function configure() { parent::configure(); $this->setDescription('同步所有视频信息到媒资库.'); $this->addUsage(" 无参数"); } public function handle() { $startDateObj = Carbon::now(); $totalNum = 0; $appAliasName = env('STATIC_DIR_NAME', 'doukui'); $columns = ['id', 'cover', 'title', 'tags', 'file_hash', 'deleted_at', 'uid']; $mediaCenterRepo = make(MediaCenterRepository::class); VideoModel::query()->whereNull('deleted_at')->select($columns)->orderBy('id', 'desc')->chunk(100, function ($items) use (&$totalNum, $appAliasName, $mediaCenterRepo) { $postData = [ 'force_sync_state' => 'no', 'items' => [], ]; foreach ($items as $v) { $postData['items'][] = [ 'app_alias_name' => $appAliasName, 'app_module_name' => 'video', 'app_item_code' => $v->id, 'file_hash' => $v->file_hash, 'cover' => $v->cover, 'title' => $v->title, 'tags' => !empty($v->tags) ? $v->tags : '', ]; $totalNum++; } // 开始阻塞同步到媒资库. $mediaCenterRepo->syncAppVideoToMediaCenter($postData); unset($postData); }); $endDateObj = Carbon::now(); $diffSeconds = abs($endDateObj->diffInSeconds($startDateObj)); $this->comment(sprintf('[%s]完成同步视频到媒资库, 总计:%s个视频, 耗时:%s秒', $endDateObj->toDateTimeString(), strval($totalNum), strval($diffSeconds))); } }