chore: synchronize project dependencies and update vendor directory files
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Prize;
|
||||
use App\Models\PrizeUser;
|
||||
use DateTime;
|
||||
use Auth;
|
||||
use File;
|
||||
|
||||
class PrizeController extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$title = "Danh sách giải thưởng";
|
||||
$route_name_update = 'admin/prize/update';
|
||||
$data = Prize::leftJoin('prize_users as user', 'prizes.id', '=', 'user.prize_id')
|
||||
->groupBy('prizes.id', 'prizes.prize_name', 'prizes.prize_image', 'prizes.prize_content', 'prizes.prize_status',
|
||||
'prizes.prize_number', 'prizes.prize_order')
|
||||
->selectRaw('prizes.id, prizes.prize_name, prizes.prize_image, prizes.prize_content, prizes.prize_status,
|
||||
prizes.prize_number, prizes.prize_order, count(user.id) as prize_count')
|
||||
->orderBy('prize_status', 'desc')->orderBy('prize_order', 'asc')->orderBy('prize_name')->get();
|
||||
return view('backend.prize.index')->with('title', $title)
|
||||
->with('route_name_update', $route_name_update)
|
||||
->with('data', $data);
|
||||
}
|
||||
|
||||
public function getPrize(Request $request) {
|
||||
$title = 'Cập nhật giải thưởng';
|
||||
if ($request->id == 0) {
|
||||
$title = 'Thêm mới giải thưởng';
|
||||
}
|
||||
$data = Prize::find($request->id);
|
||||
|
||||
return view('backend.prize.detail')
|
||||
->with('data', $data)
|
||||
->with('title', $title);
|
||||
}
|
||||
|
||||
public function updatePrize (Request $request) {
|
||||
$request->validate([
|
||||
'prize_name'=>'required|max:255',
|
||||
'prize_image'=>'mimes:jpg,png,jpeg,webp,jfif|max:2048|nullable',
|
||||
'prize_status' => 'required|numeric',
|
||||
'prize_number' => 'nullable|numeric',
|
||||
'prize_order' => 'required|numeric'
|
||||
], [
|
||||
'prize_name.required' => 'Nhập tên giải thưởng',
|
||||
'prize_name.max' => 'Tên giải thưởng không được quá 255 kí tự',
|
||||
'prize_image.mimes' => 'Định dạng file không đúng',
|
||||
'prize_image.max' => 'File upload quá lớn',
|
||||
'prize_status.required' => 'Vui lòng chọn trạng thái',
|
||||
'prize_status.numeric' => 'Trạng thái không đúng định dạng',
|
||||
'prize_number.numeric' => 'Số lượng giải phải là kiểu số',
|
||||
'prize_order.required' => 'Nhập số thứ tự giải',
|
||||
'prize_order.numeric' => 'Số thứ tự giải phải là số'
|
||||
]);
|
||||
|
||||
if ($request->id == 0){
|
||||
// thêm mới
|
||||
$request_data = $request->except(['id', 'prize_image']);
|
||||
$request_data['user_id'] = Auth::user()->id;
|
||||
$prize_obj = Prize::create($request_data);
|
||||
$id = $prize_obj->id;
|
||||
|
||||
$this->updatePrizeImage($request, $prize_obj);
|
||||
|
||||
return redirect()->route('admin/prize/update', array('id' => $id))->with('success', 'Thêm mới thành công');
|
||||
} else {
|
||||
// cap nhat
|
||||
$id = $request->id;
|
||||
$prize_obj = Prize::find($id);
|
||||
$prize_obj->prize_name = $request->prize_name;
|
||||
$prize_obj->prize_content = $request->prize_content;
|
||||
$prize_obj->prize_status = $request->prize_status;
|
||||
$prize_obj->prize_number = $request->prize_number;
|
||||
$prize_obj->prize_order = $request->prize_order;
|
||||
$prize_obj->save();
|
||||
|
||||
$this->updatePrizeImage($request, $prize_obj);
|
||||
|
||||
return redirect()->back()->with('success', 'Cập nhật thành công');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function updatePrizeImage ($request, $prize_obj) {
|
||||
if($request->prize_image) {
|
||||
$imageName = time(). '_' . Auth::user()->id . '.'.$request->prize_image->extension();
|
||||
$request->prize_image->move(public_path('images/prize'), $imageName);
|
||||
$previous_img_path = $prize_obj->prize_image;
|
||||
$prize_obj->prize_image = 'prize/' . $imageName;
|
||||
$prize_obj->save();
|
||||
if($previous_img_path != '' && File::exists(public_path('images') . '/' . $previous_img_path)) {
|
||||
File::delete(public_path('images') . '/' . $previous_img_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function deletePrize ($id) {
|
||||
$prize_obj = Prize::find($id);
|
||||
$previous_image_path = $prize_obj->prize_image;
|
||||
if ($prize_obj->delete()) {
|
||||
if($previous_image_path != '' && File::exists(public_path('images') . '/' . $previous_image_path)) {
|
||||
File::delete(public_path('images') . '/' . $previous_image_path);
|
||||
}
|
||||
} else {
|
||||
return redirect()->back()->with('error', 'Xóa giải thưởng thất bại');
|
||||
}
|
||||
return redirect()->back()->with('success', 'Xóa giải thưởng thành công');
|
||||
}
|
||||
|
||||
public function prizeuser (Request $request) {
|
||||
$title = "Danh sách người trúng giải";
|
||||
$data_obj = PrizeUser::leftJoin('prizes as prize', 'prize_users.prize_id', '=', 'prize.id')
|
||||
->leftJoin('users as user', 'prize_users.user_id', '=', 'user.id')
|
||||
->select('user.id', 'user.name', 'user.phone', 'user.user_email', 'user.birth_year', 'user.job', 'user.address', 'user.known_sis', 'prize.prize_name', 'prize_users.created_at');
|
||||
$fromdate = $request->tungay ?? date('d/m/Y', strtotime('-30 days'));
|
||||
$todate = $request->denngay ?? date('d/m/Y');
|
||||
|
||||
if ($fromdate != '') {
|
||||
$fromdate_arr = explode('/', $fromdate);
|
||||
$from_date = DateTime::createFromFormat('Y-m-d', $fromdate_arr[2] . '-' . $fromdate_arr[1] . '-' . $fromdate_arr[0])->format('Y-m-d');
|
||||
$data_obj = $data_obj->where('prize_users.created_at', '>=', $from_date);
|
||||
}
|
||||
|
||||
if ($todate != '') {
|
||||
$todate_arr = explode('/', $todate);
|
||||
$to_date = DateTime::createFromFormat('Y-m-d', $todate_arr[2] . '-' . $todate_arr[1] . '-' . $todate_arr[0])->format('Y-m-d');
|
||||
$data_obj = $data_obj->where('prize_users.created_at', '<=', $to_date . ' 23:59:00');
|
||||
}
|
||||
$data = $data_obj->orderBy('created_at', 'desc')->get();
|
||||
return view('backend.prizeuser.index')
|
||||
->with('title', $title)->with('data', $data)
|
||||
->with('fromdate', $fromdate)->with('todate', $todate);
|
||||
}
|
||||
|
||||
public function exportPrizeUser (Request $request) {
|
||||
$data_obj = PrizeUser::leftJoin('prizes as prize', 'prize_users.prize_id', '=', 'prize.id')
|
||||
->leftJoin('users as user', 'prize_users.user_id', '=', 'user.id')
|
||||
->select('user.id', 'user.name', 'user.phone', 'user.user_email', 'user.birth_year', 'user.job', 'user.address', 'user.known_sis', 'prize.prize_name', 'prize_users.created_at');
|
||||
$fromdate = $request->tungay;
|
||||
$todate = $request->denngay;
|
||||
|
||||
if ($fromdate != '') {
|
||||
$fromdate_arr = explode('/', $fromdate);
|
||||
$from_date = DateTime::createFromFormat('Y-m-d', $fromdate_arr[2] . '-' . $fromdate_arr[1] . '-' . $fromdate_arr[0])->format('Y-m-d');
|
||||
$data_obj = $data_obj->where('prize_users.created_at', '>=', $from_date);
|
||||
}
|
||||
|
||||
if ($todate != '') {
|
||||
$todate_arr = explode('/', $todate);
|
||||
$to_date = DateTime::createFromFormat('Y-m-d', $todate_arr[2] . '-' . $todate_arr[1] . '-' . $todate_arr[0])->format('Y-m-d');
|
||||
$data_obj = $data_obj->where('prize_users.created_at', '<=', $to_date);
|
||||
}
|
||||
$data = $data_obj->orderBy('created_at', 'desc')->get();
|
||||
return view('backend.prizeuser.excel')->with('data', $data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user