middleware(function (Request $request, \Closure $next) { $this->authorize('fo.showRe7'); return $next($request); }); } /** * Show Teaser page * * @return \Illuminate\Contracts\View\View */ public function teaser(): View { return view('theme::pages.teaser'); } // * -- Participation /** * Show prize page * * @param \App\Models\Prize $prize * @return \Illuminate\Contracts\View\View */ public function prize(Prize $prize): View { return view('theme::pages.participation.won', [ 'prizeModel' => $prize ]); } /** * Show discount page * * @return \Illuminate\Contracts\View\View */ public function br(): View { /** @var \App\Models\Settings */ $settings = app(Settings::class); $coupon = $this->getRandomCoupon($settings); $crmCoupon = new Reduction(); return view('theme::pages.participation.won', compact('coupon', 'crmCoupon')); } /** * Show loose page * * @return \Illuminate\Contracts\View\View */ public function loose(): View { return view('theme::pages.participation.loose'); } // * -- END Participation /** * prizeMail * * @return \Illuminate\View\View */ public function prizeMail() { return view('theme::prize-mail'); } /** * reductionMail * * @return \Illuminate\View\View */ public function reductionMail() { return view('theme::reduction-mail'); } /** * getRandomCoupon * * @param App\Models\Settings $settings * @return string */ private function getRandomCoupon(Settings $settings) { $webCoupons = json_decode($settings->web_coupons); if (count($webCoupons) > 1) { $lots = []; foreach ($webCoupons as $webCoupon) { $lots[] = $webCoupon; } foreach ($lots as $lot) { for ($i = 0; $i < $lot->percentage; $i++) { $tmp[] = $lot; } } shuffle($tmp); return $tmp[0]; } else { return $webCoupons[0]; } } }