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) {
if (!Auth::check()) {
return '
Lỗi: Chưa đăng nhập.
';
}
$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}$/',
],
'user_email' => 'nullable|email|max:255',
'birth_year' => 'nullable|integer|min:1900|max:' . date('Y'),
'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',
'user_email.email' => 'Email không đúng định dạng',
'user_email.max' => 'Email quá dài',
'birth_year.integer' => 'Năm sinh phải là số',
'birth_year.min' => 'Năm sinh không hợp lệ',
'birth_year.max' => 'Năm sinh không hợp lệ',
'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->user_email = $request->user_email;
$user_obj->birth_year = $request->birth_year;
$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}$/',
],
'user_email' => 'nullable|email|max:255',
'birth_year' => 'nullable|integer|min:1900|max:' . date('Y'),
'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',
'user_email.email' => 'Email không đúng định dạng',
'user_email.max' => 'Email quá dài',
'birth_year.integer' => 'Năm sinh phải là số',
'birth_year.min' => 'Năm sinh không hợp lệ',
'birth_year.max' => 'Năm sinh không hợp lệ',
'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->user_email = $request->user_email;
$user_exist->birth_year = $request->birth_year;
$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,
'user_email' => $request->user_email,
'birth_year' => $request->birth_year,
'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();
}
}