小说推广数据系统

SunnyOrder.php 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace App\Console\Commands;
  3. use App\Log;
  4. use App\Models\SunnyTask;
  5. use App\Services\HttpService;
  6. use App\Services\SunService;
  7. use Illuminate\Console\Command;
  8. class SunnyOrder extends Command
  9. {
  10. protected $signature = 'SunnyOrder {year?}';
  11. protected $description = '阳光平台订单数据任务创建';
  12. protected $year;
  13. public function handle()
  14. {
  15. \DB::connection()->disableQueryLog();
  16. $this->year = $this->argument('year') ? $this->argument('year') : null;
  17. $this->info(date('m-d H:i:s') . ' 开始整理');
  18. $this->getOrderList();
  19. $this->info(date('m-d H:i:s') . ' 整理结束');
  20. }
  21. public function getOrderList()
  22. {
  23. if(is_null($this->year)) {
  24. if(date('Y-m-d H:i:s') <= date('Y-m-d') . ' 00:00:10') {
  25. $date = date('Y-m-d', strtotime('-1 days'));
  26. } else {
  27. $date = date('Y-m-d');
  28. }
  29. $this->order($date);
  30. } else {
  31. for ($month = 1; $month <= 12; $month++) {
  32. $days = getDaysByMonth($this->year, $month);
  33. foreach ($days as $day) {
  34. if($day > date("Y-m-d"))
  35. return false;
  36. sleep(2);
  37. $this->order($day);
  38. }
  39. }
  40. // $this->order($this->year);
  41. }
  42. return true;
  43. }
  44. public function order($date)
  45. {
  46. try {
  47. $this->info($date);
  48. $sTime = $date . ' 00:00:00';
  49. $eTime = (($date . ' 23:59:59') > date('Y-m-d H:i:s')) ? date('Y-m-d H:i:s') : $date . ' 23:59:59';
  50. $params = [
  51. 'vip_id' => SunService::VIP_ID,
  52. 'start_time' => $sTime,
  53. 'end_time' => $eTime,
  54. ];
  55. # 签名
  56. $params = SunService::sign($params);
  57. $requestUri = SunService::API_BASE_URL . SunService::ORDER_LIST;
  58. # 获取响应数据
  59. $response = HttpService::httpPost($requestUri, $params);
  60. if($response === false)
  61. Log::logError('阳光订单数据获取失败' . $requestUri, $params, 'SunOrder');
  62. $responseData = json_decode($response, true);
  63. if(isset($responseData['error_code']) && $responseData['error_code']==0) {
  64. # 记录任务信息
  65. $taskId = isset($responseData['data']['task_id']) ? $responseData['data']['task_id'] : null;
  66. if(empty($taskId)) {
  67. Log::logError('账号列表获取任务失败', $responseData, 'SunOrder');
  68. $this->info('获取账号列表任务设置失败');
  69. return false;
  70. }
  71. $result = SunnyTask::setTask($taskId, SunnyTask::ORDER_TYPE);
  72. if(!$result) {
  73. Log::logError('订单列表获取任务创建失败', [
  74. 'task_id' => $taskId,
  75. 'type' => SunnyTask::ORDER_TYPE
  76. ], 'SunOrder');
  77. return false;
  78. }
  79. } else {
  80. Log::logError('订单列表获取任务获取失败', $responseData, 'SunOrder');
  81. return false;
  82. }
  83. } catch (\Exception $e) {
  84. Log::logError('阳光平台订单数据异常', [
  85. 'msg' => $e->getMessage(),
  86. 'line' => $e->getLine()
  87. ], 'SunOrder');
  88. return false;
  89. }
  90. return true;
  91. }
  92. }