SavePcVideoCoverCebJob.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace App\Jobs;
  3. use App\Model\VideoModel;
  4. use App\Repositories\ConfigRepoistory;
  5. use Hyperf\AsyncQueue\Job;
  6. class SavePcVideoCoverCebJob extends Job
  7. {
  8. protected $params = [];
  9. public function __construct($params = [])
  10. {
  11. $this->params = $params;
  12. }
  13. public function handle()
  14. {
  15. $videoId = $this->params['video_id'];
  16. $cover = $this->params['cover'];
  17. if (empty($cover) || empty($videoId)) {
  18. return true;
  19. }
  20. $configRepo = make(ConfigRepoistory::class);
  21. $arrConfig = $configRepo->gets(['upload_url'], 'sys');
  22. $uploadToken = env('UPLOAD_TOKEN', 'GAkucH8');
  23. $url = rtrim($arrConfig['upload_url'], '/') . '/uploader.php?upload_token='. $uploadToken .'&receive_type=json&remote_file='. urlencode($cover);
  24. $strBody = file_get_contents($url);
  25. if (substr($strBody, 0, 1) == '{') {
  26. $arrJson = json_decode($strBody, true);
  27. if ($arrJson['code'] == 200) {
  28. $linkUrl = $arrJson['data']['link_url'];
  29. $videoObj = VideoModel::query()->find($videoId, ['id', 'cover', 'custom_cover']);
  30. if (!empty($videoObj) && !empty($linkUrl)) {
  31. $videoObj->cover = $linkUrl;
  32. $videoObj->custom_cover = $linkUrl;
  33. $videoObj->save();
  34. }
  35. }
  36. }
  37. }
  38. }