lundi 22 avril 2019

Where do I return notification message or How do I return notification message from my code?

This question is about when user get leveled and What I is when user get leveled the notification message will pop up.

Controller:

  public function settleMatches(Request $request) {
    $validator = \Validator::make($request->all(), [
                'match_id' => 'required',
                'team_winner' => 'required'
    ]);

    if ($validator->passes()) {
        $match = \App\Match::find($request->match_id);
        if ($match->status != 'settled') {
            if (!in_array($request->team_winner, ['draw', 'cancelled']) && $match->type == 'main' && $match->subMatches()->activeMatches()->count())
                return ['error' => 'There are still active sub matches, Please settle them first!'];
            else {
                $total_circulating_credits = calculateCredits('total_circulating_credits');
                $match->team_winner = in_array($request->team_winner, ['draw', 'cancelled']) ? null : $request->team_winner;
                $match->status = in_array($request->team_winner, ['draw', 'cancelled']) ? $request->team_winner : 'settled';
                $match->save();
                foreach ($match->bets as $bet) {
                    $user = $bet->user;
                    if (in_array($request->team_winner, ['draw', 'cancelled'])) {
                        $user->credits += $bet->amount;
                        $user->level += 0;
                        $user->curr_exp += 0;
                        $user->prev_exp += 0;
                        $user->exp_needed += 0;
                        $user->reward_token += 0;
                        $bet->gains = 0;
                        $bet->exp_gained += 0;
                        $bet->save();
                        $user->save();
                    } else {
                        if ($bet->team_id == $match->team_winner) {
                            $gains = ($bet->amount * $bet->ratio);
                            $gainexp = $bet->amount;
                            $user->credits += $gains;
                            $user->curr_exp += $gainexp;
                            $bet->exp_gained += $gainexp;
                            $bet->gains = ($gains - $bet->amount);
                            $bet->save();
                            $user->save();
                        } else {
                            $gainexp = $bet->amount;
                            $user->curr_exp += $gainexp;
                            $bet->exp_gained += $gainexp;
                            $bet->gains = -($bet->amount);
                            $user->save();
                            $bet->save();
                        }
                        while($user->curr_exp >= $user->exp_needed){
                             if($user->level == 10 || $user->level == 15 || $user->level == 20)
                               {
                                  $user->reward_token += 1;
                               }
                                  $user->curr_exp -= $user->exp_needed;   
                                  $user->prev_exp = $user->exp_needed;
                               if($user->level <= 19){
                                   $user->exp_needed = $user->prev_exp * 1.4;
                               }
                               elseif($user->level >= 20 && $user->level <= 39){
                                   $user->exp_needed = $user->prev_exp * 1.1;
                               }
                               elseif($user->level >= 40 && $user->level <= 59){
                                   $user->exp_needed = $user->prev_exp * 1.05;
                               }
                               elseif($user->level >= 60 && $user->level <= 79){
                                   $user->exp_needed = $user->prev_exp * 1.04;
                               }
                               elseif($user->level >= 80 && $user->level <= 99){
                                   $user->exp_needed = $user->prev_exp * 1.03;
                               }
                               elseif($user->level == 100){
                                   $user->exp_needed = $user->exp_needed * 0;
                               }
                                   $user->level += 1;
                                   $user->save();
                               }
                        }
                }

                if ($request->team_winner == 'cancelled')
                    $this->cancelChildMatches($match);

                $this->saveMatchReport($match, $total_circulating_credits);
                return ['success' => 'done'];
            }
        } else
            return ['error' => 'Match was already settled, please refresh page!'];
    } else
        return ['error' => $validator->errors()];
}

I'm just confused how to display a live notifications on the user's profile every time they leveled up. Any ideas how to work this? I'm using laravel framework 5.4.36 version.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire