id)->first(); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \App\Http\Requests\StoreActivityRequest $request * @return \Illuminate\Http\Response */ public function store(StoreActivityRequest $request) { // $activity = new Activity; $activity->activity_name = $request->activity_name; $activity->date = $request->date; $activity->place = $request->place; $activity->user_id = $request->user_id; $activity->deadline = $request->deadline; $activity->save(); } /** * Display the specified resource. * * @param \App\Models\Activity $activity * @return \Illuminate\Http\Response */ public function show(Request $request,Activity $activity) { // $activity = Activity::where('id', '=', $request->activity_id)->first(); return $activity; } /** * Show the form for editing the specified resource. * * @param \App\Models\Activity $activity * @return \Illuminate\Http\Response */ public function edit(Activity $activity) { // } /** * Update the specified resource in storage. * * @param \App\Http\Requests\UpdateActivityRequest $request * @param \App\Models\Activity $activity * @return \Illuminate\Http\Response */ public function update(UpdateActivityRequest $request, Activity $activity) { // Activity::where('id', '=', $request->activity_id)->update([ 'activity_name' => $request->activity_name, 'date' => $request->date, 'place' => $request->place, 'user_id' => $request->user_id, 'deadline' => $request->deadline, ]); } /** * Remove the specified resource from storage. * * @param \App\Models\Activity $activity * @return \Illuminate\Http\Response */ public function destroy(Activity $activity) { // } public function claim(Request $request) { $prize = ''; $prize_id = 0; $isClaimed = false; $user_id = $request->user_id; $activity_id = $request->activity_id; $user = CheckIn::where('activity_id', '=', $activity_id) ->where('user_id', '=', $user_id)->get()[0]; if (Recipients::where('user_id', '=', $user_id)->exists()) { $recipients = Recipients::where('user_id', '=', $user_id)->get()[0]; $prize_id = $recipients->prize_id; //因為重新匯入後prize_id在prize下面有改動,但是在recipients下面沒有改動,因此會有問題產生 //檢查prize_id是不是在activity_id底下 $aid = Prize::where('id', '=', $prize_id)->get()[0]->activity_id; if ($aid == $activity_id) { $isRecipients = true; $isClaimed = $recipients->is_claimed; $prize = Prize::where('id', '=', $prize_id)->get()[0]->name; } else { $isRecipients = false; } } else { $isRecipients = false; } $response = [ 'user' => $user, 'isRecipients' => $isRecipients, 'isClaimed' => $isClaimed, 'prize' => $prize, 'prize_id' => $prize_id, ]; return response($response, 201); } //這邊有兩種insert,要怎麼處理StoreRequest? public function uploadFile(Request $request) { $option = $request->option; $activity_id = $request->activity_id; if($activity_id == 'undefined'){ $activity_id = Activity::orderBy('id', 'DESC')->first()->id; } $upload_path = public_path('upload'); $file_name = $request->file->getClientOriginalName(); $file_path = $upload_path . '/' . $file_name; if (File::exists($file_path)) { File::delete($file_path); } $request->file->move($upload_path, $file_name); $extension = pathinfo($file_path, PATHINFO_EXTENSION); if ('csv' == $extension) { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv(); } else if ('xls' == $extension) { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls(); } else if ('xlsx' == $extension) { $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx(); } $reader->setReadDataOnly(true); $reader->setReadEmptyCells(false); $inputFileName = public_path('upload') . '\\' . $file_name; $spreadsheet = $reader->load($inputFileName); $worksheet = $spreadsheet->getActiveSheet(); $highestRow = $worksheet->getHighestDataRow(); if ($option == 'prize') { DB::table('prizes')->where('activity_id', '=', $activity_id)->delete(); date_default_timezone_set('Asia/Taipei'); for ($row = 2; $row <= $highestRow; $row++) { DB::table('prizes')->insert([ 'activity_id' => $activity_id, 'name' => $worksheet->getCell([1, $row])->getValue(), 'count' => $worksheet->getCell([2, $row])->getValue(), 'provider' => $worksheet->getCell([3, $row])->getValue(), 'created_at' => now(), 'updated_at' => now(), ]); } } else if ($option == 'guest') { DB::table('check_ins')->where('region', '=', '來賓')->delete(); date_default_timezone_set('Asia/Taipei'); for ($row = 2; $row <= $highestRow; $row++) { DB::table('check_ins')->insert([ 'user_id' => $worksheet->getCell([1, $row])->getValue(), 'name' => $worksheet->getCell([2, $row])->getValue(), 'department_id' => '空', 'region' => '來賓', 'is_checked_in' => false, 'activity_id' => $activity_id, 'created_at' => now(), 'updated_at' => now(), ]); } } $successText = 'You have successfully uploaded "' . $file_name . '"'; $response = [ 'success' => $successText, ]; return response($response, 201); } }