StarVideo.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. namespace app\command;
  3. use app\extra\tools\XcJob;
  4. use app\model\star\StarTask;
  5. use app\model\star\StarTaskVideo;
  6. use Symfony\Component\Console\Command\Command;
  7. use Symfony\Component\Console\Input\InputInterface;
  8. use Symfony\Component\Console\Output\OutputInterface;
  9. class StarVideo extends Command
  10. {
  11. protected static string $defaultName = 'star:video';
  12. protected static string $defaultDescription = '星川任务';
  13. protected array $status = [
  14. 3 => "已完成",
  15. 31 => "平台审核中",
  16. 32 => "审核未通过",
  17. 33 => "审核未通过",
  18. 70 => "服务商审核中",
  19. 71 => "审核未通过",
  20. 72 => "预热中",
  21. 73 => "审核超时",
  22. 74 => "客户审核中",
  23. 75 => "审核未通过",
  24. 76 => "审核超时",
  25. 80 => "持续计费中",
  26. 81 => "结果公示中",
  27. 82 => "计费暂停",
  28. ];
  29. protected function execute(InputInterface $input, OutputInterface $output): int
  30. {
  31. try {
  32. $nextPage = 1;$done = 0;$subPage = 1;
  33. while (is_numeric($nextPage)) {
  34. $resp = (new StarTask)->page($nextPage,10)->select();
  35. if ($resp->isEmpty()) {
  36. $output->writeln("没有任务啦==".getDateFull());
  37. $nextPage = null;
  38. return true;
  39. }
  40. $taskVideo = (new StarTaskVideo);
  41. foreach ($resp as $key=>$val) {
  42. $output->writeln("任务ID:{$val['job_id']}==页码:{$subPage}==开始执行==" . getDateFull());
  43. while (is_numeric($subPage))
  44. {
  45. [$state,$taskResp] = (new XcJob)->token()->getAuthorVideo($val['job_id'],$subPage);
  46. if (!$state) {
  47. $output->writeln("任务ID:{$val['job_id']}==没有视频啦==".getDateFull());
  48. $subPage = 1;
  49. break;
  50. }
  51. if (!$taskResp['has_more']) {
  52. $output->writeln("进入下一个任务==".getDateFull());
  53. $subPage = 1;
  54. break;
  55. }
  56. foreach ($taskResp['list'] as $sk=>$sv) {
  57. $userData = $taskVideo->where(['job_id' => $val['job_id'],'item_id' => $sv['base_info']['item_id']])->findOrEmpty();
  58. [$vState,$videDetail] = (new XcJob)->token()->getVideoDetail($sv['base_info']['video_id']);
  59. if ($userData->isEmpty()) {
  60. $userData->insertGetId([
  61. "job_id" => $val['job_id'],
  62. "author_id" => $sv['author_info']['author_id'],
  63. "play_url" => $vState ? $videDetail['play_url'] : '',
  64. "cover" => $vState ? $videDetail['cover'] : '',
  65. "title" => removeEmoji2($sv['base_info']['title']),
  66. "duration" => $sv['base_info']['duration'],
  67. "item_id" => $sv['base_info']['item_id'],
  68. "lego_mid" => $sv['ad_info']['lego_mid'],
  69. "video_id" => $sv['base_info']['video_id'],
  70. "item_status" => $this->status[$sv['extra_info']['item_status']],
  71. "time_agg_data_10006" => $sv['item_real_time_agg_data']['10006']??0,
  72. "time_agg_data_10010" => $sv['item_real_time_agg_data']['10010']??0,
  73. "time_agg_data_10014" => $sv['item_real_time_agg_data']['10014']??0,
  74. "time_agg_data_10035" => $sv['item_real_time_agg_data']['10035']??0,
  75. "time_agg_data_10036" => $sv['item_real_time_agg_data']['10036']??0,
  76. "time_agg_data_10057" => $sv['item_real_time_agg_data']['10057']??0,
  77. "time_agg_data_10056" => $sv['item_real_time_agg_data']['10056']??0,
  78. "time_agg_data_10058" => $sv['item_real_time_agg_data']['10058']??0,
  79. "time_agg_data_10059" => $sv['item_real_time_agg_data']['10059']??0,
  80. "time_agg_data_10060" => $sv['item_real_time_agg_data']['10060']??0,
  81. "time_agg_data_10061" => $sv['item_real_time_agg_data']['10061']??0,
  82. "indicator_agg_data_20021" => $sv['bill_indicator_agg_data']['20021']??0,
  83. "indicator_agg_data_20022" => $sv['bill_indicator_agg_data']['20022']??0,
  84. "indicator_agg_data_20020" => $sv['bill_indicator_agg_data']['20020']??0,
  85. "indicator_agg_data_20019" => $sv['bill_indicator_agg_data']['20019']??0,
  86. "indicator_agg_data_20016" => $sv['bill_indicator_agg_data']['20016']??0,
  87. "indicator_agg_data_20015" => $sv['bill_indicator_agg_data']['20015']??0,
  88. "indicator_agg_data_20011" => $sv['bill_indicator_agg_data']['20011']??0,
  89. ]);
  90. $output->writeln("{$sv['base_info']['video_id']}==【{$sv['base_info']['title']}】==新增一条视频素材==".getDateFull());
  91. } else {
  92. $userData->save([
  93. "play_url" => $vState ? $videDetail['play_url'] : '',
  94. "cover" => $vState ? $videDetail['cover'] : '',
  95. "title" => removeEmoji2($sv['base_info']['title']),
  96. "duration" => $sv['base_info']['duration'],
  97. "item_id" => $sv['base_info']['item_id'],
  98. "lego_mid" => $sv['ad_info']['lego_mid'],
  99. "video_id" => $sv['base_info']['video_id'],
  100. "item_status" => $this->status[$sv['extra_info']['item_status']],
  101. "time_agg_data_10006" => $sv['item_real_time_agg_data']['10006']??0,
  102. "time_agg_data_10010" => $sv['item_real_time_agg_data']['10010']??0,
  103. "time_agg_data_10014" => $sv['item_real_time_agg_data']['10014']??0,
  104. "time_agg_data_10035" => $sv['item_real_time_agg_data']['10035']??0,
  105. "time_agg_data_10036" => $sv['item_real_time_agg_data']['10036']??0,
  106. "time_agg_data_10057" => $sv['item_real_time_agg_data']['10057']??0,
  107. "time_agg_data_10056" => $sv['item_real_time_agg_data']['10056']??0,
  108. "time_agg_data_10058" => $sv['item_real_time_agg_data']['10058']??0,
  109. "time_agg_data_10059" => $sv['item_real_time_agg_data']['10059']??0,
  110. "time_agg_data_10060" => $sv['item_real_time_agg_data']['10060']??0,
  111. "time_agg_data_10061" => $sv['item_real_time_agg_data']['10061']??0,
  112. "indicator_agg_data_20021" => $sv['bill_indicator_agg_data']['20021']??0,
  113. "indicator_agg_data_20022" => $sv['bill_indicator_agg_data']['20022']??0,
  114. "indicator_agg_data_20020" => $sv['bill_indicator_agg_data']['20020']??0,
  115. "indicator_agg_data_20019" => $sv['bill_indicator_agg_data']['20019']??0,
  116. "indicator_agg_data_20016" => $sv['bill_indicator_agg_data']['20016']??0,
  117. "indicator_agg_data_20015" => $sv['bill_indicator_agg_data']['20015']??0,
  118. "indicator_agg_data_20011" => $sv['bill_indicator_agg_data']['20011']??0,
  119. ]);
  120. $output->writeln("{$sv['base_info']['video_id']}===更新数据==".getDateFull());
  121. }
  122. }
  123. $subPage = $subPage+1;
  124. $output->writeln("进入下一页视频=={$nextPage}-{$subPage}==".getDateFull());
  125. $output->writeln("===========================================================================");
  126. sleep(2);
  127. }
  128. }
  129. $nextPage = $nextPage+1;
  130. $subPage = 1;
  131. $output->writeln("进入下一页=={$nextPage}==".getDateFull());
  132. }
  133. } catch (\Throwable $throwable) {
  134. echo getDateFull()."==报错啦===".$throwable->getFile()."\n";
  135. echo getDateFull()."==报错啦===".$throwable->getLine()."\n";
  136. echo getDateFull()."==报错啦===".$throwable->getMessage()."\n";
  137. }
  138. return true;
  139. }
  140. }