StarAuthor.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\queue\redis;
  3. use app\extra\tools\XcJob;
  4. use app\model\star\StarTask;
  5. use app\model\star\StarTaskUser;
  6. use Webman\RedisQueue\Consumer;
  7. /**
  8. * 同步星川任务达人投稿视频
  9. */
  10. class StarAuthor implements Consumer
  11. {
  12. public string $queue = "star-author";
  13. public string $connection = "default";
  14. public function consume($data): bool
  15. {
  16. try {
  17. $nextPage = 1;$done = 0;$subPage = 1;
  18. while (is_numeric($nextPage)) {
  19. $starPage = ($nextPage-1) * 10;
  20. $resp = (new StarTask)->limit($starPage,10)->select()->toArray();
  21. if (empty($resp)) {
  22. echo "==没有任务啦==".getDateFull()."\n";
  23. $nextPage = null;
  24. return true;
  25. }
  26. while (is_numeric($subPage))
  27. {
  28. $taskUser = (new StarTaskUser);
  29. foreach ($resp as $key=>$val) {
  30. [$state,$taskResp] = (new XcJob)->token()->getTaskAuthor($val['job_id'],$subPage);
  31. if (!$state) {
  32. echo "任务ID:{$val['job_id']}==没有投稿任务啦==".getDateFull()."\n";
  33. $subPage = null;
  34. continue;
  35. }
  36. foreach ($taskResp as $sk=>$sv) {
  37. $userData = $taskUser->where(['job_id' => $val['job_id']])->findOrEmpty();
  38. if ($userData->isEmpty()) {
  39. $userData->insertGetId([
  40. "job_id" => $val['job_id'],
  41. 'nick_name' => removeEmoji2($sv['author_base_info']['nick_name']),
  42. 'show_nick_name' => emojiToUnicode($sv['author_base_info']['nick_name']),
  43. "avatar_uri" => $sv['author_base_info']['avatar_uri'],
  44. "author_id" => $sv['author_base_info']['author_id'],
  45. "sample_address_str" => $sv['author_base_info']['sample_address_str'],
  46. "follower" => $sv['author_base_info']['follower'],
  47. "gender" => $sv['author_base_info']['gender'],
  48. "sec_uid" => $sv['author_base_info']['sec_uid'],
  49. "wechat" => $sv['author_base_info']['wechat']??'',
  50. "author_level" => $sv['author_base_info']['ecom_author_level']??'L0',
  51. "author_order_status" => $sv['author_order_info']['author_order_status'],
  52. "invitation_status" => $sv['author_invitaion_info']['invitation_status'],
  53. "metric_data_num" => $sv['author_select_metric_data']['offline_metric_data']['6001']??0,
  54. "metric_data_rate" => $sv['author_select_metric_data']['offline_metric_data']['6002']??0,
  55. "release_item_count" => $sv['author_order_info']['release_item_count'],
  56. "visible_item_count" => $sv['author_order_info']['visible_item_count'],
  57. ]);
  58. echo "任务ID{$val['job_id']},星图ID{$sv['author_base_info']['author_id']}===入库成功!~==>".getDateFull()."\n";
  59. } else {
  60. $userData->save([
  61. 'nick_name' => removeEmoji2($sv['author_base_info']['nick_name']),
  62. 'show_nick_name' => emojiToUnicode($sv['author_base_info']['nick_name']),
  63. "avatar_uri" => $sv['author_base_info']['avatar_uri'],
  64. "follower" => $sv['author_base_info']['follower'],
  65. "gender" => $sv['author_base_info']['gender'],
  66. "wechat" => $sv['author_base_info']['wechat']??'',
  67. "author_level" => $sv['author_base_info']['ecom_author_level']??'L0',
  68. "author_order_status" => $sv['author_order_info']['author_order_status'],
  69. "invitation_status" => $sv['author_invitaion_info']['invitation_status'],
  70. "metric_data_num" => $sv['author_select_metric_data']['offline_metric_data']['6001']??0,
  71. "metric_data_rate" => $sv['author_select_metric_data']['offline_metric_data']['6002']??0,
  72. "release_item_count" => $sv['author_order_info']['release_item_count'],
  73. "visible_item_count" => $sv['author_order_info']['visible_item_count'],
  74. ]);
  75. echo "任务ID{$val['job_id']},星图ID{$sv['author_base_info']['author_id']}===更新一下!~==>".getDateFull()."\n";
  76. }
  77. }
  78. }
  79. $subPage = $subPage+1;
  80. echo "===当前页码{$nextPage}--{$subPage}==>".getDateFull()."\n";
  81. }
  82. $nextPage = $nextPage+1;
  83. }
  84. } catch (\Throwable $throwable) {
  85. echo getDateFull()."==报错啦===".$throwable->getFile()."\n";
  86. echo getDateFull()."==报错啦===".$throwable->getLine()."\n";
  87. echo getDateFull()."==报错啦===".$throwable->getMessage()."\n";
  88. }
  89. return true;
  90. }
  91. }