PayRechargeController.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace App\Http\Controllers\Game;
  3. use App\Facade\TableName;
  4. use App\Game\Services\OuroGameService;
  5. use App\Http\Controllers\Controller;
  6. use App\Http\helper\NumConfig;
  7. use App\Models\Order;
  8. use App\Services\OrderServices;
  9. use App\Utility\SetNXLock;
  10. use Illuminate\Http\Request;
  11. use Illuminate\Support\Facades\DB;
  12. use Illuminate\Support\Facades\Redis;
  13. class PayRechargeController extends Controller
  14. {
  15. // 充值记录
  16. public function orderList(Request $request)
  17. {
  18. $user_id = (int)$request->globalUser->UserID;//$request->get('user_id', 1);
  19. $page = $request->get('page', 1);
  20. $pageSize = $request->get('pageSize', 7);
  21. $redisKey = 'PayRecharge_orderList_'.$user_id;
  22. if (!SetNXLock::getExclusiveLock($redisKey)) {
  23. return apiReturnFail(['web.withdraw.try_again_later','Tente novamente mais tarde']);
  24. }
  25. $where[] = ['user_id', $user_id];
  26. $where[] = ['pay_status', 1];
  27. $cacheTime = 60 * rand(1, 2);
  28. // $list = cache()->remember($user_id . '_order_list', $cacheTime, function () use ($where, $pageSize) {
  29. //
  30. // return Order::where($where)
  31. // ->orderBy('finished_at', 'desc')
  32. // ->selectRaw('amount,payment_code,order_sn as payment_sn,finished_at,created_at,pay_status')
  33. // ->paginate(15,['*'],'page',1);
  34. // });
  35. $list = Order::query()->where($where)
  36. ->orderBy('finished_at', 'desc')
  37. ->selectRaw('amount,payment_code,order_sn as payment_sn,finished_at,created_at,pay_status')
  38. ->paginate($pageSize);
  39. // ->paginate(15,['*'],'page',1);
  40. foreach ($list as &$val) {
  41. $val->amount = number_format($val->amount, 2, '.', '');
  42. }
  43. SetNXLock::release($redisKey);
  44. return apiReturnSuc($list);
  45. }
  46. // 首充
  47. public function firstPay(Request $request)
  48. {
  49. $origin = $_SERVER['HTTP_ORIGIN'] ??$_SERVER['HTTP_REFERER']?? '*';
  50. if (strstr($origin, "52256") ) {
  51. return apiReturnSuc();
  52. }
  53. $user = LoginController::checkLogin($request);
  54. if($user){
  55. if(env('CONFIG_24680_NFTD_99',0)==0)if($user->Channel==99)return apiReturnSuc();
  56. $user_recharge = DB::table(TableName::QPAccountsDB() . 'YN_VIPAccount')
  57. ->where('UserID', $user->UserID)
  58. ->value('Recharge') ?: 0;
  59. if($user_recharge)return apiReturnSuc();
  60. }
  61. $OrderServices = new OrderServices();
  62. // 充值金额
  63. $price = $OrderServices->FirstCharge;
  64. $give = $OrderServices->FirstChargeGive;
  65. // 首充
  66. $firstCharge = DB::connection('write')->table('QPAccountsDB.dbo.SystemStatusInfo')
  67. ->where('StatusName', 'FirstChargeGiftBag')
  68. ->first();
  69. $payConfigID = $firstCharge->StatusValue;
  70. $payConfigs = DB::table('agent.dbo.admin_configs')->where('id', $payConfigID)->select('id', 'name', 'new_pay_type')->first();
  71. $first_pay = [];
  72. if ($payConfigs) {
  73. if ($payConfigs->new_pay_type <= 1) {
  74. $first_pay = ['id' => $payConfigs->id, 'name' => $payConfigs->name, 'status' => 1, 'type' => 3, 'new_pay_type' => $payConfigs->new_pay_type];
  75. } else {
  76. $first_pay = ['id' => $payConfigs->id, 'name' => $payConfigs->name, 'status' => 1, 'type' => 0, 'new_pay_type' => $payConfigs->new_pay_type];
  77. }
  78. }
  79. return apiReturnSuc(compact('price', 'give','first_pay'));
  80. }
  81. public function firstPayMulti(Request $request)
  82. {
  83. $user = LoginController::checkLogin($request);
  84. if($user){
  85. if(env('CONFIG_24680_NFTD_99',0)==0)if($user->Channel==99)return apiReturnFail();
  86. $fpkey='Firstpay_'.$user->UserID;
  87. if(Redis::exists($fpkey)){
  88. $data=Redis::get($fpkey);
  89. $data=json_decode($data,true);
  90. $data['timeleft']=86400-(time()-$data['buytime']);
  91. return apiReturnSuc(['leftitem'=>$data]);
  92. }
  93. $user_recharge = DB::table(TableName::QPAccountsDB() . 'YN_VIPAccount')
  94. ->where('UserID', $user->UserID)
  95. ->value('Recharge') ?: 0;
  96. if($user_recharge)return apiReturnFail();
  97. }
  98. $items=DB::table('agent.dbo.recharge_gear')
  99. ->where('status',1)
  100. ->where('second_give','>',0)
  101. ->where('first_pay','>=', 1)
  102. ->select('gift_id','money','give','favorable_price','second_give')->get()->each(function($item){
  103. $item->id=28;
  104. })->toArray();
  105. $default=count($items)-1;
  106. return apiReturnSuc(compact('items','default'));
  107. }
  108. public function getSecondGive(Request $request)
  109. {
  110. $user = $request->user();
  111. $fpkey='Firstpay_'.$user->UserID;
  112. if(Redis::exists($fpkey)){
  113. $data=Redis::get($fpkey);
  114. $data=json_decode($data,true);
  115. $data['timeleft']=86400-(time()-$data['buytime']);
  116. if($data['timeleft']<=0) {
  117. Redis::del($fpkey);
  118. //加钱
  119. if($data['second_give']){
  120. $czReason=$data['czReason'];
  121. $cjReason=$data['cjReason'];
  122. [$OrgScore,$NowScore]=OuroGameService::AddScore($user->UserID,$data['second_give']*NumConfig::NUM_VALUE,$cjReason);
  123. //更新二次领钱记录
  124. DB::table(TableName::agent() . 'guide_payment')->where('UserID',$user->UserID)->update([
  125. 'GetSecondTime' => now(),
  126. 'SecondScoreNum'=>$data['second_give']*NumConfig::NUM_VALUE
  127. ]);
  128. return apiReturnSuc(compact('OrgScore','NowScore'));
  129. }
  130. return apiReturnSuc();
  131. }
  132. }
  133. return apiReturnFail(['web.withdraw.try_again_later','Tente novamente mais tarde']);
  134. }
  135. }