Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.96 KB | None | 0 0
  1.     public function newBet(Request $r)
  2.     {
  3.  
  4.         if (Auth::guest()) return response()->json(['msg' => 'Авторизуйтесь!', 'status' => 'warning']);
  5.  
  6.         $items = $r->items;
  7.  
  8.  
  9.  
  10.         //$number1 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('user_id', $this->user->id)->count();
  11.         //if ($number1 >= 1) return response()->json(['msg' => 'Вы уже вносили в эту игру вещи', 'status' => 'warning']);
  12.  
  13.         if (empty($items)) return response()->json(['msg' => 'Вы не выбрали предметы', 'status' => 'warning']);
  14.  
  15.         if ($this->game1x1->status >= 2) return response()->json(['msg' => 'Игра уже началась или закончилась!', 'status' => 'warning']);
  16.  
  17.         $number2 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('user_id', $this->user->id)->count();
  18.         if ($number2 >= 1) return response()->json(['msg' => 'Вы уже внесли вещи в эту игру', 'status' => 'error']);
  19.  
  20.         $countItems = count($items);
  21.         $countItemsUserGame = Bet_1x1::where('user_id', $this->user->id)->where('game_id', $this->game1x1->id)->sum('itemsCount');
  22.  
  23.         if (!$this->game1x1->bitch) {
  24.             if ($countItems > 10) return response()->json(['msg' => 'Максимум 30 вещей!', 'status' => 'warning']);
  25.             if ( ($countItemsUserGame + $countItems) > 10) return response()->json(['msg' => 'Максимум 10 вещей', 'status' => 'warning']);
  26.         } else {
  27.             if ($countItems > 10) return response()->json(['msg' => 'Максимум 30 вещей!', 'status' => 'warning']);
  28.             if ( ($countItemsUserGame + $countItems) > 10) return response()->json(['msg' => 'Максимум 10 вещей', 'status' => 'warning']);
  29.         }
  30.  
  31.         $user = $this->user;
  32.  
  33.         $newItems = [];
  34.         $priceBet = 0;
  35.  
  36.         $items = array_unique($items);
  37.  
  38.         foreach ($items as $id) {
  39.             $item = Item::where('assetid', $id)->where('steamid', $this->user->steamid64)->where('status', 0)->first();
  40.  
  41.             if (is_null($item)) return response()->json(['msg' => 'Один из предметов не найден!', 'status' => 'warning']);
  42.  
  43.             $priceBet += $item->price;
  44.             $newItems[] = $item;
  45.  
  46.             $item->update([
  47.                 'status' => 1
  48.             ]);
  49.         }
  50.  
  51.         $this->lastTicket = $this->redis->get('last.ticket.' . $this->game1x1->id);
  52.         if (is_null($this->lastTicket)) $this->lastTicket = 0;
  53.  
  54.         $ticketFrom = 1;
  55.         if($this->lastTicket != 0)
  56.             $ticketFrom = $this->lastTicket + 1;
  57.         $ticketTo = $ticketFrom + ($priceBet * 100) - 1;
  58.         $this->redis->set('last.ticket.' . $this->game1x1->id, $ticketTo);
  59.  
  60.         //Вычисляем процент пользователя который привел по рефералке пользователей
  61.         if (!empty($user->activate_code)) {
  62.             $users_by_ref = \DB::table('users')->where('ref_code', $user->activate_code)->get();
  63.  
  64.             if (!empty($users_by_ref)) {
  65.                 foreach ($users_by_ref as $user_by_ref_item) {
  66.                     $user_by_ref = User::find($user_by_ref_item->id);
  67.  
  68.                     if ($user_by_ref->percent_piar != 0) {
  69.                         $user_by_ref->money += $user_by_ref->percent_piar * $priceBet / 100;
  70.                         $user_by_ref->save();
  71.                     }
  72.                 }
  73.             }
  74.         }
  75.  
  76.         //Если есть у пользователя рефералка
  77.         if (!empty($user->ref_code)) {
  78.             $refferal_users = \DB::table('users')->where('activate_code', $user->ref_code)->get();
  79.  
  80.             if (!empty($refferal_users)) {
  81.                 $percent_level_of_ref = 0.1;
  82.                 $ref_users_count = count($refferal_users);
  83.  
  84.                 if ($ref_users_count >= 1 && $ref_users_count < 49) {
  85.                     $percent_level_of_ref = 0.1;
  86.                 } else if ($ref_users_count >= 50 && $ref_users_count < 99) {
  87.                     $percent_level_of_ref = 0.2;
  88.                 } else if ($ref_users_count > 100 && $ref_users_count < 199) {
  89.                     $percent_level_of_ref = 0.3;
  90.                 } else if ($ref_users_count > 200 && $ref_users_count < 499) {
  91.                     $percent_level_of_ref = 0.4;
  92.                 } else if ($ref_users_count > 500 && $ref_users_count < 749) {
  93.                     $percent_level_of_ref = 0.5;
  94.                 } else if ($ref_users_count > 750 && $ref_users_count < 999) {
  95.                     $percent_level_of_ref = 0.6;
  96.                 } else if ($ref_users_count > 1000 && $ref_users_count < 2499) {
  97.                     $percent_level_of_ref = 0.7;
  98.                 }else if ($ref_users_count > 2500 && $ref_users_count < 4999) {
  99.                     $percent_level_of_ref = 0.8;
  100.                 }else if ($ref_users_count > 5000 && $ref_users_count < 9999) {
  101.                     $percent_level_of_ref = 0.9;
  102.                 }else if ($ref_users_count > 10000 && $ref_users_count < 100000) {
  103.                     $percent_level_of_ref = 1;
  104.                 } else
  105.                     if ($user->id == 71 || $user->id == 108) {
  106.                         $percent_level_of_ref = 1;
  107.                     }
  108.  
  109.                 foreach ($refferal_users as $ref_user) {
  110.                     $ref_user_item = User::find($ref_user->id);
  111.  
  112.                     if ($ref_user_item) {
  113.                         $ref_user_item->money += $percent_level_of_ref * $priceBet / 100;
  114.                         $ref_user_item->save();
  115.                     }
  116.                 }
  117.             }
  118.         }
  119.  
  120.         $number1 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->count();
  121.         if ($number1 == 0) {
  122.             $number = 1;
  123.         } elseif ($number1 == 1) {
  124.             $number = 2;
  125.         } else {
  126.             $number = 3;
  127.         }
  128.  
  129.         $bet = new Bet_1x1();
  130.         $bet->user()->associate($user);
  131.         $bet->items = json_encode($newItems);
  132.         $bet->itemsCount = count($newItems);
  133.         $bet->price = $priceBet;
  134.         $bet->from = $ticketFrom;
  135.         $bet->to = $ticketTo;
  136.         $bet->number = $number;
  137.         $bet->avatar = $user->avatar;
  138.         $bet->game()->associate($this->game1x1);
  139.         $bet->save();
  140.  
  141.         $betid = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('from', $ticketFrom)->where('to', $ticketTo)->pluck('id');
  142.         $bets = Bet_1x1::where('game_id', $this->game1x1->id);
  143.         $this->game1x1->items = $bets->sum('itemsCount');
  144.         $this->game1x1->price = $bets->sum('price');
  145.  
  146.         if (count($this->game1x1->users()) >= self::MIN_USERS) {
  147.             $this->game1x1->status = Game_1x1::STATUS_FINISHED;
  148.             $this->redis->publish(self::SHOW_WINNERS, true);
  149.         }
  150.  
  151.         $this->game1x1->save();
  152.  
  153.         foreach($this->game1x1->users() as $user1){
  154.             $chance[] = $this->_getUserChanceOfGame123($user1, $this->game1x1);
  155.         }
  156.  
  157.         //$items = PagesController::sortByChance(json_decode(json_encode($this->_getInfoOfGame($this->game1x1))));
  158.         //$chances = $this->_getChancesOfGame($this->game1x1);
  159.  
  160.         User::slchange($user->id, $priceBet / 100  * config('app.slimit'));
  161.         User::lvlchange($user->id, config('app.bets_lvl'));
  162.  
  163.         $returnValue = [
  164.             'betId' => $betid,
  165.             'userId' => $user->id,
  166.             'itemsCount' => $this->game1x1->items,
  167.             'gamePrice' => $this->game1x1->price,
  168.             'gameStatus' => $this->game1x1->status,
  169.             'chances' => $chance,
  170.             'moneybet' => $priceBet,
  171.             'avatar' => $user->avatar,
  172.             'items' => json_encode($newItems)
  173.         ];
  174.         $this->redis->publish(self::NEW_BET_CHANNEL, json_encode($returnValue));
  175.  
  176.         return response()->json(['msg' => 'Вы сделали ставку', 'status' => 'success', 'success' => true]);
  177.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement