Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public function newBet(Request $r)
- {
- if (Auth::guest()) return response()->json(['msg' => 'Авторизуйтесь!', 'status' => 'warning']);
- $items = $r->items;
- //$number1 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('user_id', $this->user->id)->count();
- //if ($number1 >= 1) return response()->json(['msg' => 'Вы уже вносили в эту игру вещи', 'status' => 'warning']);
- if (empty($items)) return response()->json(['msg' => 'Вы не выбрали предметы', 'status' => 'warning']);
- if ($this->game1x1->status >= 2) return response()->json(['msg' => 'Игра уже началась или закончилась!', 'status' => 'warning']);
- $number2 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('user_id', $this->user->id)->count();
- if ($number2 >= 1) return response()->json(['msg' => 'Вы уже внесли вещи в эту игру', 'status' => 'error']);
- $countItems = count($items);
- $countItemsUserGame = Bet_1x1::where('user_id', $this->user->id)->where('game_id', $this->game1x1->id)->sum('itemsCount');
- if (!$this->game1x1->bitch) {
- if ($countItems > 10) return response()->json(['msg' => 'Максимум 30 вещей!', 'status' => 'warning']);
- if ( ($countItemsUserGame + $countItems) > 10) return response()->json(['msg' => 'Максимум 10 вещей', 'status' => 'warning']);
- } else {
- if ($countItems > 10) return response()->json(['msg' => 'Максимум 30 вещей!', 'status' => 'warning']);
- if ( ($countItemsUserGame + $countItems) > 10) return response()->json(['msg' => 'Максимум 10 вещей', 'status' => 'warning']);
- }
- $user = $this->user;
- $newItems = [];
- $priceBet = 0;
- $items = array_unique($items);
- foreach ($items as $id) {
- $item = Item::where('assetid', $id)->where('steamid', $this->user->steamid64)->where('status', 0)->first();
- if (is_null($item)) return response()->json(['msg' => 'Один из предметов не найден!', 'status' => 'warning']);
- $priceBet += $item->price;
- $newItems[] = $item;
- $item->update([
- 'status' => 1
- ]);
- }
- $this->lastTicket = $this->redis->get('last.ticket.' . $this->game1x1->id);
- if (is_null($this->lastTicket)) $this->lastTicket = 0;
- $ticketFrom = 1;
- if($this->lastTicket != 0)
- $ticketFrom = $this->lastTicket + 1;
- $ticketTo = $ticketFrom + ($priceBet * 100) - 1;
- $this->redis->set('last.ticket.' . $this->game1x1->id, $ticketTo);
- //Вычисляем процент пользователя который привел по рефералке пользователей
- if (!empty($user->activate_code)) {
- $users_by_ref = \DB::table('users')->where('ref_code', $user->activate_code)->get();
- if (!empty($users_by_ref)) {
- foreach ($users_by_ref as $user_by_ref_item) {
- $user_by_ref = User::find($user_by_ref_item->id);
- if ($user_by_ref->percent_piar != 0) {
- $user_by_ref->money += $user_by_ref->percent_piar * $priceBet / 100;
- $user_by_ref->save();
- }
- }
- }
- }
- //Если есть у пользователя рефералка
- if (!empty($user->ref_code)) {
- $refferal_users = \DB::table('users')->where('activate_code', $user->ref_code)->get();
- if (!empty($refferal_users)) {
- $percent_level_of_ref = 0.1;
- $ref_users_count = count($refferal_users);
- if ($ref_users_count >= 1 && $ref_users_count < 49) {
- $percent_level_of_ref = 0.1;
- } else if ($ref_users_count >= 50 && $ref_users_count < 99) {
- $percent_level_of_ref = 0.2;
- } else if ($ref_users_count > 100 && $ref_users_count < 199) {
- $percent_level_of_ref = 0.3;
- } else if ($ref_users_count > 200 && $ref_users_count < 499) {
- $percent_level_of_ref = 0.4;
- } else if ($ref_users_count > 500 && $ref_users_count < 749) {
- $percent_level_of_ref = 0.5;
- } else if ($ref_users_count > 750 && $ref_users_count < 999) {
- $percent_level_of_ref = 0.6;
- } else if ($ref_users_count > 1000 && $ref_users_count < 2499) {
- $percent_level_of_ref = 0.7;
- }else if ($ref_users_count > 2500 && $ref_users_count < 4999) {
- $percent_level_of_ref = 0.8;
- }else if ($ref_users_count > 5000 && $ref_users_count < 9999) {
- $percent_level_of_ref = 0.9;
- }else if ($ref_users_count > 10000 && $ref_users_count < 100000) {
- $percent_level_of_ref = 1;
- } else
- if ($user->id == 71 || $user->id == 108) {
- $percent_level_of_ref = 1;
- }
- foreach ($refferal_users as $ref_user) {
- $ref_user_item = User::find($ref_user->id);
- if ($ref_user_item) {
- $ref_user_item->money += $percent_level_of_ref * $priceBet / 100;
- $ref_user_item->save();
- }
- }
- }
- }
- $number1 = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->count();
- if ($number1 == 0) {
- $number = 1;
- } elseif ($number1 == 1) {
- $number = 2;
- } else {
- $number = 3;
- }
- $bet = new Bet_1x1();
- $bet->user()->associate($user);
- $bet->items = json_encode($newItems);
- $bet->itemsCount = count($newItems);
- $bet->price = $priceBet;
- $bet->from = $ticketFrom;
- $bet->to = $ticketTo;
- $bet->number = $number;
- $bet->avatar = $user->avatar;
- $bet->game()->associate($this->game1x1);
- $bet->save();
- $betid = \DB::table('bets_1x1')->where('game_id', $this->game1x1->id)->where('from', $ticketFrom)->where('to', $ticketTo)->pluck('id');
- $bets = Bet_1x1::where('game_id', $this->game1x1->id);
- $this->game1x1->items = $bets->sum('itemsCount');
- $this->game1x1->price = $bets->sum('price');
- if (count($this->game1x1->users()) >= self::MIN_USERS) {
- $this->game1x1->status = Game_1x1::STATUS_FINISHED;
- $this->redis->publish(self::SHOW_WINNERS, true);
- }
- $this->game1x1->save();
- foreach($this->game1x1->users() as $user1){
- $chance[] = $this->_getUserChanceOfGame123($user1, $this->game1x1);
- }
- //$items = PagesController::sortByChance(json_decode(json_encode($this->_getInfoOfGame($this->game1x1))));
- //$chances = $this->_getChancesOfGame($this->game1x1);
- User::slchange($user->id, $priceBet / 100 * config('app.slimit'));
- User::lvlchange($user->id, config('app.bets_lvl'));
- $returnValue = [
- 'betId' => $betid,
- 'userId' => $user->id,
- 'itemsCount' => $this->game1x1->items,
- 'gamePrice' => $this->game1x1->price,
- 'gameStatus' => $this->game1x1->status,
- 'chances' => $chance,
- 'moneybet' => $priceBet,
- 'avatar' => $user->avatar,
- 'items' => json_encode($newItems)
- ];
- $this->redis->publish(self::NEW_BET_CHANNEL, json_encode($returnValue));
- return response()->json(['msg' => 'Вы сделали ставку', 'status' => 'success', 'success' => true]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement