OrderLogic.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace App\Http\logic\api;
  3. use App\Events\OrderCreated;
  4. use App\Facade\TableName;
  5. use App\Game\GlobalUserInfo;
  6. use Illuminate\Support\Facades\DB;
  7. use Illuminate\Support\Facades\Redis;
  8. use Illuminate\Support\Facades\Request;
  9. class OrderLogic extends BaseApiLogic
  10. {
  11. // 创建订单
  12. public function create_order($data_arr, $UserID, $type = 0, $payment_code = 'SerPayMent')
  13. {
  14. $body = [
  15. 'app_id' => 1,
  16. 'user_id' => $UserID,
  17. 'order_sn' => $data_arr['custOrderNo'],
  18. 'amount' => $data_arr['payAmt'],
  19. 'order_title' => $data_arr['goodsName'],
  20. 'payment_code' => $payment_code,
  21. 'payment_name' => '创建收款单',
  22. 'remarks' => 'pay_order',
  23. 'created_at' => date('Y-m-d H:i:s'),
  24. 'type' => $type,
  25. 'GameID' => 0,
  26. 'UserID' => $UserID
  27. ];
  28. $order = DB::table('agent.dbo.order')->insert($body);
  29. if (!$order) {
  30. $this->error = '订单创建失败';
  31. return false;
  32. }
  33. return true;
  34. }
  35. public function create($data, $userID, $type = 0)
  36. {
  37. $body = [
  38. 'app_id' => 1,
  39. 'user_id' => $userID,
  40. 'order_sn' => $data['pay_orderid'],
  41. 'amount' => $data['pay_amount'],
  42. 'order_title' => $data['pay_productname'],
  43. 'payment_code' => 'pay_order',
  44. 'payment_name' => '创建收款单',
  45. 'remarks' => 'pay_order',
  46. 'created_at' => date('Y-m-d H:i:s'),
  47. 'type' => $type,
  48. 'GameID' => 0,
  49. 'UserID' => $userID
  50. ];
  51. $order = DB::table('agent.dbo.order')->insert($body);
  52. if (!$order) {
  53. $this->error = '订单创建失败';
  54. return false;
  55. }
  56. return true;
  57. }
  58. // 创建订单
  59. public function orderCreate($order_sn, $amount, $payment_code, $userID, $order_title = '',$GiftsID = 0,$AdId = '',$eventType = 2)
  60. {
  61. if (empty($AdId) || $AdId == 'undefined') {
  62. $redis = Redis::connection();
  63. $AdId = $redis->get('user_ad_'.$userID);
  64. }
  65. // $Channel = DB::connection('write')->table(TableName::QPAccountsDB() . 'AccountsInfo')
  66. // ->where('UserID', $userID)->select('Channel')->first()->Channel;
  67. $userInfo = GlobalUserInfo::getGameUserInfo('UserID',$userID);
  68. $Channel = $userInfo?$userInfo->Channel:100;
  69. $RegisterDate = $userInfo?$userInfo->RegisterDate:date('Y-m-d');
  70. $first = DB::connection('write')->table('agent.dbo.order')->where('user_id', $userID)->first();
  71. $body = [
  72. 'app_id' => 1,
  73. 'user_id' => $userID,
  74. 'order_sn' => $order_sn,
  75. 'amount' => $amount,
  76. 'order_title' => empty($order_title) ? '1' : $order_title,
  77. 'payment_code' => $payment_code,
  78. 'payment_name' => '创建收款单',
  79. 'remarks' => 'pay_order',
  80. 'created_at' => date('Y-m-d H:i:s'),
  81. 'type' => 0,
  82. 'GameID' => 0,
  83. 'UserID' => $userID,
  84. 'GiftsID' => $GiftsID,
  85. 'AdId' => $AdId,
  86. 'eventType' => $eventType,
  87. 'Channel'=>$Channel
  88. ];
  89. $order = DB::connection('write')->table('agent.dbo.order')->insert($body);
  90. if (!$order) {
  91. $this->error = 'Payment error_2';
  92. return false;
  93. }
  94. $RecordPlatformDataModel = new \App\Models\RecordPlatformData();
  95. $RecordPlatformDataModel->PayRequestToday($Channel,$RegisterDate,!$first);
  96. // 触发订单创建事件,传入完整请求数据(Listener 可从中提取 coupon_id 等)
  97. event(new OrderCreated($order_sn, Request::all()));
  98. return true;
  99. }
  100. }