SyncOrder.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace app\queue\redis\slow;
  3. use app\extra\tools\LifeWeb;
  4. use app\model\saas\SaasOrder;
  5. use app\model\saas\SaasStore;
  6. use Webman\RedisQueue\Consumer;
  7. class SyncOrder implements Consumer
  8. {
  9. /**
  10. * 延迟30秒获取达人信息
  11. * 消费队列名
  12. * @var string
  13. */
  14. public string $queue = "sync-order-info";
  15. /**
  16. * 连接配置
  17. * @var string
  18. */
  19. public string $connection = "default";
  20. public function consume($data): bool
  21. {
  22. try {
  23. if(empty($data['order'])) return true;
  24. echo getDateFull()."==开始获取订单达人信息\n";
  25. $order = (new SaasOrder)->where("order_sn",$data['order'])->findOrEmpty();
  26. if ($order->isEmpty()) return true;
  27. $storeRate = (new SaasStore)->where("poi_id",$order["poi_id"])->value("life_rate");
  28. if (empty($storeRate)) $storeRate = 7.6;
  29. $systemFee = ($storeRate - 6) / 100 * $order['price'];
  30. [$state,$resp] = (new LifeWeb)->token()->getOrderData($order['order_sn']);
  31. if (!$state) {
  32. echo getDateFull()."=={$order['order_sn']}==获取数据失败了==\n";
  33. return true;
  34. }
  35. echo getDateFull()."=={$order['order_sn']}==更新订单数据成功\n";
  36. $order->douyin_uid = $resp['douyin_uid'];
  37. $order->life_fee = $resp['life_fee'];
  38. $order->sys_fee = ceil($systemFee);
  39. $order->star_fee = $resp['star_fee'];
  40. $order->save();
  41. } catch (\Throwable $throwable) {
  42. echo getDateFull()."====获取达人信息失败\n";
  43. echo $throwable->getMessage()."\n";
  44. echo $throwable->getLine()."\n";
  45. echo $throwable->getFile()."\n";
  46. }
  47. return true;
  48. }
  49. }