where('prize_status', 1) ->selectRaw('prizes.id, prize_name, prize_order, prize_number, count(prizeuser.id) as count_user, prize_image') ->groupBy('prizes.id', 'prize_name', 'prize_order', 'prize_number', 'prize_image') ->orderBy('prize_order', 'asc')->get(); $prize_arr = []; $user_id = ''; if (Auth::check()) { $user_id = Auth::user()->id; } $lasted_prize = PrizeUser::where('user_id', $user_id)->latest()->first(); $lasted_prize_id = ''; $lasted_prize_name = ''; if ($lasted_prize != null) { $lasted_prize_id = $lasted_prize->prize_id; } foreach ($prize_obj as $prize_item) { if ($prize_item->count_user < $prize_item->prize_number) { $prize_arr[] = Array( 'id' => $prize_item->id, 'image' => 'public/images/' . $prize_item->prize_image, 'label' => "Giải " . $prize_item->prize_order, 'detail' => $prize_item->prize_name ); } if ($lasted_prize_id == $prize_item->id) { $lasted_prize_name = $prize_item->prize_name; } } $is_login = Auth::check(); $spined = 0; if ($is_login) { $spined = Auth::user()->spined; } // lay tham so he thong $parameter_data = []; $parameter_obj = Parameter::whereRaw('parameter_key in ("logo_image", "banner_image")')->get(); foreach ($parameter_obj as $parameter_item) { $parameter_data[$parameter_item->parameter_key] = $parameter_item->parameter_value; } return view('frontend.index')->with('game_data', $prize_arr) ->with('is_login', $is_login)->with('spined', $spined) ->with('lasted_prize_name', $lasted_prize_name) ->with('parameter_data', $parameter_data); } public function login () { if (Auth::check()) { // lấy thông tin của lịch sử nhận giải $history_data = PrizeUser::leftJoin('prizes as prize', 'prize_users.prize_id', '=', 'prize.id') ->where('prize_users.user_id', Auth::user()->id) ->select('prize.prize_name', 'prize_users.created_at') ->orderBy('created_at', 'desc')->get(); // nếu đã đăng nhập thì về trang chi tiết tài khoản return view('frontend.customer.account')->with('history_data', $history_data); } else { return view('frontend.customer.account'); } } public function updatePrizeUser (Request $request) { $request_data = [ 'user_id' => Auth::user()->id, 'prize_id' => $request->prize_id ]; PrizeUser::create($request_data); $user_obj = User::find(Auth::user()->id); $user_obj->spined = 1; $user_obj->save(); $prize_obj = Prize::find($request->prize_id); return view('frontend.game.luckywheel_prize')->with('prize_obj', $prize_obj)->render(); } public function updateAccount (Request $request) { $user_id = ''; if (!Auth::check()) { return redirect()->back()->with('error', 'Có lỗi xảy ra, vui lòng đăng nhập lại'); } $validator = Validator::make($request->all(), [ 'name' => 'required|max:255', 'phone' => [ 'required', 'regex:/^0[0-9]{9}$/', ], 'address' => 'required|max:255', 'known_sis' => 'required|in:0,1', 'job' => 'required|max:255', 'password' => 'nullable|max:10' ], [ 'name.required' => 'Nhập tên hiển thị', 'name.max' => 'Tên hiển thị quá dài', 'phone.required' => 'Nhập số điện thoại', 'phone.regex' => 'Số điện thoại không đúng định dạng', 'job.required' => 'Nhập nghề nghiệp', 'job.max' => 'Nghề nghiệp quá dài', 'password.max' => 'Độ dài tối đa 10' ]); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(); } $user_obj = User::find(Auth::user()->id); $user_obj->name = mb_strtoupper($request->name, 'UTF-8'); $user_obj->phone = $request->phone; $user_obj->address = $request->address; $user_obj->known_sis = $request->known_sis; $user_obj->job = $request->job; if ($request->password != '') { $user_obj->password = bcrypt($request->password); } $user_obj->save(); return redirect('game')->with('success', 'Cập nhật tài khoản thành công'); } public function createAccount (Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|max:255', 'phone' => [ 'required', 'regex:/^0[0-9]{9}$/', ], 'address' => 'required|max:255', 'known_sis' => 'required|in:0,1', 'job' => 'required|max:255', 'password' => 'nullable|max:10' ], [ 'name.required' => 'Nhập tên hiển thị', 'name.max' => 'Tên hiển thị quá dài', 'phone.required' => 'Nhập số điện thoại', 'phone.regex' => 'Số điện thoại không đúng định dạng', 'address.required' => 'Nhập nơi sinh sống', 'address.max' => 'Nơi sinh sống quá dài', 'known_sis.required' => 'Chọn Có/Không cho câu hỏi về SIS', 'known_sis.in' => 'Giá trị không hợp lệ cho câu hỏi về SIS', 'job.required' => 'Nhập nghề nghiệp', 'job.max' => 'Nghề nghiệp quá dài', 'password.max' => 'Độ dài tối đa 10' ]); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(); } $phone = trim($request->phone); $generatedEmail = $phone . '@phone.local'; $user_exist = User::where('phone', $phone)->first(); if ($user_exist != null) { $user_exist->name = mb_strtoupper($request->name, 'UTF-8'); $user_exist->phone = $phone; $user_exist->address = $request->address; $user_exist->known_sis = $request->known_sis; $user_exist->job = $request->job; $user_exist->save(); Auth::loginUsingId($user_exist->id); session()->regenerate(); return redirect('game')->with('success', 'Đăng nhập thành công'); } $request_data = [ 'name' => mb_strtoupper($request->name, 'UTF-8'), 'phone' => $phone, 'address' => $request->address, 'known_sis' => $request->known_sis, 'job' => $request->job, 'email' => $generatedEmail, 'password' => bcrypt('dq123'), 'status' => 1 ]; $user_obj = User::create($request_data); Auth::loginUsingId($user_obj->id); session()->regenerate(); return redirect('game')->with('success', 'Đăng nhập thành công'); } public function logout () { Auth::logout(); return redirect()->back(); } public function register () { if (Auth::check()) { // nếu đã đăng nhập thì về trang chi tiết tài khoản return view('frontend.customer.account'); } else { return view('frontend.customer.register'); } } public function getGameRule () { $data = Parameter::where('parameter_key', 'game_rule')->first(); return view('frontend.game.rule_popup')->with('data', $data)->render(); } }