first commit
This commit is contained in:
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\PrizeUser;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Prize;
|
||||
use App\Models\User;
|
||||
use App\Models\Parameter;
|
||||
use Auth;
|
||||
use Validator;
|
||||
use Redirect;
|
||||
class IndexController extends Controller
|
||||
{
|
||||
|
||||
public function game() {
|
||||
$prize_obj = Prize::leftJoin('prize_users as prizeuser', 'prizes.id', '=', 'prizeuser.prize_id')
|
||||
->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();
|
||||
}
|
||||
$user_exist = User::where('phone', $request->phone)->first();
|
||||
if ($user_exist != null) {
|
||||
$user_exist->name = mb_strtoupper($request->name, 'UTF-8');
|
||||
$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' => $request->phone,
|
||||
'address' => $request->address,
|
||||
'known_sis' => $request->known_sis,
|
||||
'job' => $request->job,
|
||||
'email' => $request->phone,
|
||||
'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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user