StarAuthor.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace app\command;
  3. use app\extra\tools\XcJob;
  4. use app\model\star\StarTask;
  5. use app\model\star\StarTaskUser;
  6. use Symfony\Component\Console\Command\Command;
  7. use Symfony\Component\Console\Input\InputInterface;
  8. use Symfony\Component\Console\Output\OutputInterface;
  9. class StarAuthor extends Command
  10. {
  11. protected static string $defaultName = 'star:author';
  12. protected static string $defaultDescription = '星川任务';
  13. protected function execute(InputInterface $input, OutputInterface $output): int
  14. {
  15. try {
  16. $nextPage = 1;$done = 0;$subPage = 1;
  17. while (is_numeric($nextPage))
  18. {
  19. $output->writeln("开始位置:{$nextPage}==".getDateFull());
  20. $resp = (new StarTask)->page($nextPage,10)->select();
  21. if ($resp->isEmpty()) {
  22. $output->writeln("没有任务啦==".getDateFull());
  23. $nextPage = null;
  24. return true;
  25. }
  26. $taskUser = (new StarTaskUser);
  27. foreach ($resp as $key=>$val) {
  28. $output->writeln("任务ID:{$val['job_id']}==页码:{$subPage}==开始执行==".getDateFull());
  29. while (is_numeric($subPage))
  30. {
  31. [$state,$taskResp] = (new XcJob)->token()->getTaskAuthor($val['job_id'],$subPage);
  32. if (!$state) {
  33. $output->writeln("任务ID:{$val['job_id']}==没有投稿任务啦==".getDateFull());
  34. $subPage = 1;
  35. break;
  36. }
  37. if (!$taskResp['has_more']) {
  38. $output->writeln("进入下一个任务==".getDateFull());
  39. $subPage = 1;
  40. break;
  41. }
  42. foreach ($taskResp['list'] as $sk=>$sv) {
  43. $userData = $taskUser->where(['job_id' => $val['job_id'],'author_id' => $sv['author_base_info']['author_id']])->findOrEmpty();
  44. if ($userData->isEmpty()) {
  45. $userData->insertGetId([
  46. "job_id" => $val['job_id'],
  47. 'nick_name' => removeEmoji2($sv['author_base_info']['nick_name']),
  48. 'show_nick_name' => emojiToUnicode($sv['author_base_info']['nick_name']),
  49. "avatar_uri" => $sv['author_base_info']['avatar_uri'],
  50. "author_id" => $sv['author_base_info']['author_id'],
  51. "sample_address_str" => $sv['author_base_info']['sample_address_str']??'',
  52. "follower" => $sv['author_base_info']['follower'],
  53. "gender" => $sv['author_base_info']['gender'],
  54. "sec_uid" => $sv['author_base_info']['sec_uid'],
  55. "wechat" => $sv['author_base_info']['wechat']??'',
  56. "author_level" => $sv['author_base_info']['ecom_author_level']??'L0',
  57. "author_order_status" => $sv['author_order_info']['author_order_status'],
  58. "invitation_status" => $sv['author_invitaion_info']['invitation_status'],
  59. "metric_data_num" => $sv['author_select_metric_data']['offline_metric_data']['6001']??0,
  60. "metric_data_rate" => $sv['author_select_metric_data']['offline_metric_data']['6002']??0,
  61. "release_item_count" => $sv['author_order_info']['release_item_count'],
  62. "visible_item_count" => $sv['author_order_info']['visible_item_count'],
  63. ]);
  64. echo "任务ID:{$val['job_id']},星图ID:{$sv['author_base_info']['author_id']},昵称:".removeEmoji2($sv['author_base_info']['nick_name'])."===".emojiToUnicode($sv['author_base_info']['nick_name'])."===入库成功!~==>".getDateFull()."\n";
  65. } else {
  66. $userData->save([
  67. 'nick_name' => removeEmoji2($sv['author_base_info']['nick_name']),
  68. 'show_nick_name' => emojiToUnicode($sv['author_base_info']['nick_name']),
  69. "avatar_uri" => $sv['author_base_info']['avatar_uri'],
  70. "follower" => $sv['author_base_info']['follower'],
  71. "gender" => $sv['author_base_info']['gender'],
  72. "wechat" => $sv['author_base_info']['wechat']??'',
  73. "author_level" => $sv['author_base_info']['ecom_author_level']??'L0',
  74. "author_order_status" => $sv['author_order_info']['author_order_status'],
  75. "invitation_status" => $sv['author_invitaion_info']['invitation_status'],
  76. "metric_data_num" => $sv['author_select_metric_data']['offline_metric_data']['6001']??0,
  77. "metric_data_rate" => $sv['author_select_metric_data']['offline_metric_data']['6002']??0,
  78. "release_item_count" => $sv['author_order_info']['release_item_count'],
  79. "visible_item_count" => $sv['author_order_info']['visible_item_count'],
  80. ]);
  81. echo "任务ID:{$val['job_id']},星图ID:{$sv['author_base_info']['author_id']}===更新一下!~==>".getDateFull()."\n";
  82. }
  83. }
  84. $subPage = $subPage+1;
  85. $output->writeln("进入下一页达人=={$nextPage}-{$subPage}==".getDateFull());
  86. $output->writeln("===========================================================================");
  87. sleep(2);
  88. }
  89. }
  90. $nextPage = $nextPage+1;
  91. $subPage = 1;
  92. $output->writeln("进入下一页=={$nextPage}==".getDateFull());
  93. }
  94. } catch (\Throwable $throwable) {
  95. echo getDateFull()."==报错啦===".$throwable->getFile()."\n";
  96. echo getDateFull()."==报错啦===".$throwable->getLine()."\n";
  97. echo getDateFull()."==报错啦===".$throwable->getMessage()."\n";
  98. }
  99. return true;
  100. }
  101. }