Order.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace App\Jobs;
  3. use App\Facade\TableName;
  4. use App\Game\Services\OuroGameService;
  5. use App\Models\AccountsInfo;
  6. use App\Models\PrivateMail;
  7. use App\Services\Custom;
  8. use App\Services\FirstPayStatService;
  9. use App\Services\OrderServices;
  10. use Illuminate\Bus\Queueable;
  11. use Illuminate\Contracts\Queue\ShouldQueue;
  12. use Illuminate\Foundation\Bus\Dispatchable;
  13. use Illuminate\Queue\InteractsWithQueue;
  14. use Illuminate\Queue\SerializesModels;
  15. use Illuminate\Support\Facades\DB;
  16. use Illuminate\Support\Facades\Log;
  17. use Illuminate\Support\Facades\Redis;
  18. class Order implements ShouldQueue
  19. {
  20. use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
  21. protected $data = [];
  22. public $tries = 5; // 增加最大尝试次数
  23. public $timeout = 300; // 设置最大执行时间为 300 秒
  24. /**
  25. * Create a new job instance.
  26. *
  27. * @return void
  28. */
  29. public function __construct($data = [])
  30. {
  31. $this->data = $data;
  32. }
  33. /**
  34. * Execute the job.
  35. *
  36. * @return void
  37. */
  38. public function handle()
  39. {
  40. if (empty($this->data)) return;
  41. // 接收数据
  42. [$user_id, $payAmt,$Score,$favorable_price,$GiftsID,$order_sn] = $this->data;
  43. try {
  44. //Log::info('接收数据'.\GuzzleHttp\json_encode($this->data));
  45. // 获取支付金额
  46. $service = new OrderServices();
  47. // [$give, $favorable_price, $Recharge, $czReason, $cjReason] = $service->getPayInfo($GiftsID, $user_id, $payAmt);
  48. // 发送邮件给玩家
  49. //PrivateMail::paySendMail($user_id, $order_sn, $favorable_price,$payAmt);
  50. // 增加充值记录
  51. //[$Score] = $service->addRecord($user_id,$payAmt,$favorable_price,$order_sn,$GiftsID,$Recharge,$czReason,$give,$cjReason);
  52. // 执行支付后存储过程
  53. $service->storedProcedure($user_id, $payAmt, $favorable_price, $Score, $GiftsID);
  54. // 发送通知邮件
  55. PrivateMail::paySendMail($user_id, $order_sn, $favorable_price, $payAmt);
  56. // 首次付费统计
  57. $service = new FirstPayStatService();
  58. $isfirst = $service->stat($order_sn);
  59. }catch (\Exception $e) {
  60. Log::error('订单处理失败:' . $e->getMessage());
  61. }
  62. try {
  63. $user = DB::connection('write')->table(TableName::QPAccountsDB() . 'AccountsInfo')
  64. ->where('UserID', $user_id)->select("Channel","RegisterDate")->first();
  65. // if($user->Channel>121&&$user->Channel<200) {
  66. //apk/checkpay用来统计
  67. // if($order->Channel>121&&$order->Channel<180) {
  68. // //记录redisevent,24小时
  69. // Redis::set("user_pay_first_".$order->user_id, json_encode(['order_sn' => $order_sn]));
  70. // }
  71. $item=[
  72. 'regtime'=>strtotime($user->RegisterDate),
  73. // 'isd0'=>date("Ymd",strtotime($user->RegisterDate))==date("Ymd"),
  74. 'isd0' => (time()-strtotime($user->RegisterDate)<86400),
  75. 'first' => $isfirst?1:0,
  76. 'golds' => $payAmt,
  77. 'udid' => $user_id,
  78. 'order_sn' => $order_sn
  79. ];
  80. //通知24680
  81. OuroGameService::notifyWebHall($user_id,"","pay_finish",["Golds"=>$Score,"PayNum"=>$favorable_price,"event"=>"pay","params"=>$item]);
  82. // OuroGameService::notifyWebHall($user_id,"",'call_client',["type"=>"track","event"=>"pay","params"=>$item]);
  83. $data = [];
  84. if (Redis::exists("user_pay_order_$user_id")) {
  85. $data = json_decode(Redis::get("user_pay_order_$user_id"), true);
  86. }
  87. array_push($data, $item);
  88. Log::info('订单记录成功user_pay_order_:' . json_encode($data));
  89. //记录redisevent,24小时
  90. Redis::set("user_pay_order_$user_id", json_encode($data));
  91. Redis::expire("user_pay_order_$user_id", 86400);
  92. // }
  93. //新的邀请系统生效了
  94. // $callback = DB::table(TableName::agent() . 'UserCallBack')->where('UserID', $user_id)->first();
  95. // if($callback){
  96. // if($callback->call_state != 2){
  97. // $update = [
  98. // 'call_state' => 2,
  99. // //'CallbackDate' => date('Y-m-d H:i:s')
  100. // ];
  101. // DB::table(TableName::agent() . 'UserCallBack')->where('UserID', $user_id)->update($update);
  102. // Custom::updateAdminBonus($callback->admin_id,30,2);
  103. // }
  104. //
  105. //
  106. // }
  107. }catch (\Exception $e){
  108. }
  109. }
  110. }