AsyncStats.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: z-yang
  5. * Date: 2020/5/4
  6. * Time: 16:11
  7. */
  8. namespace App\Jobs;
  9. use GuzzleHttp\Client;
  10. use Illuminate\Bus\Queueable;
  11. use Illuminate\Queue\SerializesModels;
  12. use Illuminate\Queue\InteractsWithQueue;
  13. use Illuminate\Contracts\Queue\ShouldQueue;
  14. use Illuminate\Foundation\Bus\Dispatchable;
  15. use Redis;
  16. use DB;
  17. class AsyncStats implements ShouldQueue
  18. {
  19. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  20. private $param = [];
  21. private $uid;
  22. private $distribution_channel_id;
  23. private $task_name;
  24. public function __construct($param, $uid, $distribution_channel_id, $task_name)
  25. {
  26. $this->param = $param;
  27. $this->uid = $uid;
  28. $this->distribution_channel_id = $distribution_channel_id;
  29. $this->task_name = $task_name;
  30. }
  31. /**
  32. * Execute the job.
  33. *
  34. * @return void
  35. */
  36. public function handle()
  37. {
  38. $this->qkmPush();
  39. }
  40. private function qkmPush()
  41. {
  42. if (!isset($this->param['qkm_push']) || empty($this->param['qkm_push'])) {
  43. return;
  44. }
  45. if (!isset($this->param['qkm_push_time']) || empty($this->param['qkm_push_time'])) {
  46. return;
  47. }
  48. if (!$this->uid) return;
  49. $push_id = $this->param['qkm_push'];
  50. //保存时间
  51. $send_time = $this->param['qkm_push_time'];
  52. $time = ceil((time() - $this->param['qkm_push_time']) / 86400);
  53. if ($time < 0 || $time >= 31) {
  54. return;
  55. }
  56. if ($time <= 30 && $time > 0) {
  57. Redis::hset('qkm_push:time', $push_id, $send_time);
  58. Redis::sadd('qkm_push:ids', $push_id);
  59. Redis::sadd('qkm_push:uv:' . $push_id, $this->uid);
  60. Redis::hset('book_read:' . $this->uid, 'qkm_push', $this->param['qkm_push']);
  61. }
  62. }
  63. }