TestController.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Facade\TableName;
  4. use App\Game\GameCard;
  5. use App\Http\helper\HttpCurl;
  6. use App\Http\helper\NumConfig;
  7. use App\Jobs\Order;
  8. use App\Notification\TelegramBot;
  9. use App\Services\Extension;
  10. use App\Services\OrderServices;
  11. use App\Util;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Support\Facades\DB;
  14. use Illuminate\Support\Facades\Redis;
  15. class TestController
  16. {
  17. public function tele(Request $request){
  18. $telegram=new TelegramBot();
  19. return $telegram->sendMsg("test123");
  20. }
  21. public function index(Request $request)
  22. {
  23. return;
  24. $DateID = $request->input('date',date('Ymd',strtotime('-1 days')));
  25. $only=GameCard::where('brand','OnlyPlay')->where('state','<>',0)->pluck('gid')->toArray();
  26. $atmosfera=[71,74,85,86,87,88,89,92,93];
  27. $platform = ['only','atmosfera'];
  28. foreach ($platform as $pItem){
  29. $platformRecord = [
  30. 'ldate' => $DateID,
  31. 'platform' => $pItem,
  32. 'all_bet' => Redis::get('platform_'.$pItem.'_bet')?:0,
  33. 'all_win' => Redis::get('platform_'.$pItem.'_win')?:0,
  34. 'current_bet' => Redis::get('platform_'.$pItem.'_bet_'.$DateID)?:0,
  35. 'current_win' => Redis::get('platform_'.$pItem.'_win_'.$DateID)?:0,
  36. 'current_play' =>Redis::get('platform_'.$pItem.'_play_'.$DateID)?:0,
  37. // 'sub_detail' => ''
  38. ];
  39. $gameType = ($pItem == 'only'?$only:$atmosfera);
  40. if(is_array($gameType)){
  41. $subData = [];
  42. foreach ($gameType as $item){
  43. $betkey = 'platform_'.$pItem.'_'.$item. '_bet_' . $DateID;
  44. $winkey = 'platform_'.$pItem.'_'.$item. '_win_' . $DateID;
  45. $playkey = 'platform_'.$pItem.'_'.$item.'_play_' . $DateID;
  46. $subData[$item] = ['current_bet' => Redis::get($betkey)?:0,'current_win' =>Redis::get($winkey)?:0,'current_play' =>Redis::get($playkey)?:0 ];
  47. }
  48. $platformRecord['sub_detail'] = json_encode($subData);
  49. }
  50. DB::connection('mysql')->table('record_platform_data')->insert($platformRecord);
  51. }
  52. return apiReturnSuc([1]);
  53. }
  54. public function adjust2(){
  55. $gateway='https://s2s.adjust.com/event';
  56. $datas='[{"gps_adid":"7c5f80b2-f558-4074-97fd-55f90e7cdb71","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689822903},{"gps_adid":"8ae07275-cf91-4289-8e61-e1bb4fe1294d","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689823553},{"gps_adid":"4abe169d-f5fc-469e-a7ef-b939f8c48bee","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689823996},{"gps_adid":"56900bac-83f4-4516-9acf-ecf46d6dc139","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689824773},{"gps_adid":"527e198d-e195-4672-9c71-3b65a2514624","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689826682},{"gps_adid":"01b0ba26-1828-42e4-8a59-f51006c9dc43","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689827034},{"gps_adid":"f66ca0c2-48ff-4289-9543-094e4fd45599","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689827070},{"gps_adid":"3bee22c7-0e7a-4042-b45a-ab9b3def6bdc","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689828766},{"gps_adid":"849c3938-943d-4ab2-bc8b-d2a84eb43d73","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689828827},{"gps_adid":"f451ff10-1ad3-41ce-83e9-a3d55be093a2","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689829788},{"gps_adid":"3ea51904-c0d1-40fe-afab-080959c911ab","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689830522},{"gps_adid":"ee164ef5-9f6b-4cf4-b853-db303bf9666d","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689830935},{"gps_adid":"4fd5a944-74ef-4d96-aef9-4921bc32a16b","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689831156},{"gps_adid":"56faedc1-c2ae-4f61-a4c8-8e611ebf6b69","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689832059},{"gps_adid":"c157e8e5-c0d4-4ed8-8e95-65064ee8db23","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689833661},{"gps_adid":"de2e15ba-a935-467a-9168-5ac52c45ec81","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689833731},{"gps_adid":"6955aabf-e96c-4382-9cf3-be82435feb90","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689833887},{"gps_adid":"b6d869c7-386a-4ceb-9aa9-303939af55c3","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689834279},{"gps_adid":"5f265835-9001-4941-acb8-1a37fc422268","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689834665},{"gps_adid":"5ec502d1-1c0b-4854-a936-2178011374a3","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689834758},{"gps_adid":"87ddeffc-8ae2-4b72-900b-4b1a269b349a","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689835293},{"gps_adid":"2d66986f-c3e8-45f0-a08a-1eeea18b9f70","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689836877},{"gps_adid":"8b77da3b-e5d8-44db-8753-0714121b0056","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689838394},{"gps_adid":"849c3938-943d-4ab2-bc8b-d2a84eb43d73","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689840333},{"gps_adid":"d8feceb8-9608-4504-abaa-8f306a70b239","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689841124},{"gps_adid":"ac5d8955-cf8a-4a10-97da-0d59446de457","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689841781},{"gps_adid":"814e3bdf-d8fa-4fcf-a4e9-f20153030c07","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689842404},{"gps_adid":"ac5d8955-cf8a-4a10-97da-0d59446de457","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689842700},{"gps_adid":"7e1a79ef-740c-4015-9a05-80dfe0d113ee","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689844332},{"gps_adid":"849c3938-943d-4ab2-bc8b-d2a84eb43d73","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689846981},{"gps_adid":"80ffe7c7-e491-4bc9-be5d-999fb0f4d34c","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689847370},{"gps_adid":"d2d42ca3-a0f4-44e6-8b9d-c234917a9dbd","event_token":"u5skwu","app_token":"81v0cmjzx9c0","s2s":1,"created_at_unix":1689848297} ]';
  57. $datas=json_decode($datas,true);
  58. // print_r($datas);
  59. echo "<PRE>";
  60. $i=0;
  61. $lasti=0;
  62. $key="adjust_test_no2";
  63. if(Redis::exists($key)) {
  64. $lasti=(int)Redis::get($key);
  65. }
  66. $step=20;
  67. $start=0;
  68. foreach ($datas as $data) {
  69. $i++;
  70. if($i>$lasti) {
  71. $curl = new HttpCurl();
  72. $data['app_token'] = 'dgc2q9jhsfeo';
  73. $data['event_token'] = '8m7lz8';
  74. $data['created_at_unix']=time();
  75. // print_r($data);
  76. $res = $curl->curlPost($gateway, $data,'');
  77. echo "<br/>{$i}_{$res}";
  78. $start++;
  79. if($start>=$step)break;
  80. // sleep(1);
  81. // $curl = new HttpCurl();
  82. // $data['event_token'] = '2on9ll';
  83. // $data['created_at_unix']=time();
  84. // $res = $curl->curlPost($gateway, $data, '');
  85. // print_r($res);
  86. }
  87. }
  88. $lasti=$i;
  89. Redis::set($key,$lasti);
  90. }
  91. public function adjust(){
  92. $gateway='https://s2s.adjust.com/event';
  93. $datas='[{"gps_adid":"42897349-cef9-4631-b379-096b622ce82f","event_token":"dscml0","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693841080},{"gps_adid":"42897349-cef9-4631-b379-096b622ce82f","event_token":"5fxu12","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693841079,"revenue":10,"currency":"BRL"},{"gps_adid":"42897349-cef9-4631-b379-096b622ce82f","event_token":"gd6jin","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693841078} ,{"gps_adid":"d3bef6f8-5120-4668-adcc-0059a87cc9f2","event_token":"dscml0","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693873946},{"gps_adid":"d3bef6f8-5120-4668-adcc-0059a87cc9f2","event_token":"gd6jin","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693873944},{"gps_adid":"d3bef6f8-5120-4668-adcc-0059a87cc9f2","event_token":"5fxu12","app_token":"grajj7r58n40","s2s":1,"created_at_unix":1693873945,"revenue":10,"currency":"BRL"}]';
  94. $datas=json_decode($datas,true);
  95. print_r($datas);
  96. echo "<PRE>";
  97. $i=0;
  98. $tokens=[
  99. 'gd6jin' => 'pi6if1',
  100. '5fxu12' => 'ltp413',
  101. 'dscml0' => 'lt7ruq',
  102. '1n9joo' => 'rvwp03',
  103. ];
  104. foreach ($datas as $data) {
  105. $curl = new HttpCurl();
  106. $data['app_token'] = 'ok69c325y6tc';
  107. $data['event_token'] = $tokens[$data['event_token']];
  108. $data['created_at_unix']=time();
  109. // print_r($data);
  110. $res = $curl->curlPost($gateway, $data,'');
  111. echo "<br/>{$i}_{$res}";
  112. // sleep(1);
  113. // $curl = new HttpCurl();
  114. // $data['event_token'] = '2on9ll';
  115. // $data['created_at_unix']=time();
  116. // $res = $curl->curlPost($gateway, $data, '');
  117. // print_r($res);
  118. }
  119. }
  120. public function repayOrders(){
  121. $orders=['BR907343225223468585744','BR9073084791786501864977','BR9072862766923101651997','BR9072629966687041935344','BR9072421424348241331333','BR9072367341848521637381','BR9072361173854741395682','BR907231397789871209229','BR9072154682810471428647','BR9071943851446521819498','BR9071918503504261720812','BR9071781047537621151100','BR9071664665360441673957','BR9071441992298301481029','BR907084559613508172139'];
  122. foreach ($orders as $order){
  123. $res=$this->repayOrder($order,true);
  124. echo $order;
  125. print_r($res);
  126. }
  127. }
  128. public function repayOrder($order_sn,$forceRepay=false){
  129. try {
  130. // 查询订单信息
  131. $order = DB::connection('write')->table('agent.dbo.order')->where('order_sn', $order_sn)->first();
  132. if (!$order) {
  133. return '{"success":false,"message":"订单不存在"}';
  134. }
  135. //如果不是强制重新支付
  136. if (!$forceRepay&&(!empty($order->pay_at) || !empty($order->finished_at)) ) {
  137. return 'SUCCESS';
  138. }
  139. $body = [
  140. 'payment_sn' => '',
  141. 'updated_at' => date('Y-m-d H:i:s'),
  142. ];
  143. $ordStatus = 1;
  144. $GiftsID = $order->GiftsID ?: '';
  145. $userID = $order->user_id ?: '';
  146. $AdId = $order->AdId ?: '';
  147. $eventType = $order->eventType ?: '';
  148. $payAmt = $order->amount/100;
  149. if(!$AdId){
  150. $redis = Redis::connection();
  151. $AdId = $redis->get('user_ad_'.$userID);
  152. }
  153. // 说明:除了成功,失败和退款状态,都可以认为是处理中
  154. switch ($ordStatus) {
  155. case 1: // 支付成功
  156. $body['pay_status'] = 1;
  157. $body['pay_at'] = date('Y-m-d H:i:s');
  158. $body['finished_at'] = date('Y-m-d H:i:s');
  159. $body['amount'] = $payAmt * NumConfig::NUM_VALUE;
  160. // 获取金额
  161. $service = new OrderServices();
  162. if ($order->amount != $body['amount']) {
  163. $body['GiftsID'] = 0;
  164. $body['amount'] = $payAmt * NumConfig::NUM_VALUE;
  165. $Recharge = $payAmt;
  166. $give = 0;
  167. $favorable_price = $Recharge + $give;
  168. $czReason = 1;
  169. $cjReason = 45;
  170. } else {
  171. [$give, $favorable_price, $Recharge, $czReason, $cjReason] = $service->getPayInfo($GiftsID, $userID, $payAmt);
  172. }
  173. if($order->pay_status!=1) {
  174. $order_up = DB::connection('write')->table('agent.dbo.order')
  175. ->where('order_sn', $order_sn)
  176. ->update($body);
  177. }
  178. [$Score] = $service->addRecord($userID, $payAmt, $favorable_price, $order_sn, $GiftsID, $Recharge, $czReason, $give, $cjReason, $AdId, $eventType);
  179. // 成功处理回调
  180. Order::dispatch([$userID, $payAmt, $Score,$favorable_price, $GiftsID,$order_sn]);
  181. // $cpf = @$post['reference'];
  182. // if($cpf){
  183. // Cpf::insertCpf($userID,$cpf);
  184. // }
  185. break;
  186. case 2: // 支付失败
  187. $body['pay_status'] = 2;
  188. $order_up = DB::connection('write')->table('agent.dbo.order')
  189. ->where('order_sn', $order_sn)
  190. ->update($body);
  191. break;
  192. }
  193. // $order_up = DB::connection('write')->table('agent.dbo.order')
  194. // ->where('order_sn', $order_sn)
  195. // ->update($body);
  196. return 'SUCCESS';
  197. } catch (\Exception $exception) {
  198. Util::WriteLog('goopago','Goopago 支付失败' . $exception->getMessage());
  199. $this->error = $exception->getMessage();
  200. return '{"success":false,"message":"商户自定义出错信息"}';
  201. }
  202. }
  203. }