|
|
@@ -12,9 +12,13 @@ use App\Http\Controllers\Controller;
|
|
|
use Illuminate\Http\Request;
|
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
|
use PhpOffice\PhpSpreadsheet\Reader\IReader;
|
|
|
+use PhpOffice\PhpSpreadsheet\Reader\Csv;
|
|
|
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
|
|
|
use PhpOffice\PhpSpreadsheet\Reader\Xls;
|
|
|
use PhpOffice\PhpSpreadsheet\IOFactory;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\File;
|
|
|
+
|
|
|
|
|
|
class ActivityController extends Controller
|
|
|
{
|
|
|
@@ -103,15 +107,6 @@ class ActivityController extends Controller
|
|
|
//
|
|
|
}
|
|
|
|
|
|
- public function sql(Request $request)
|
|
|
- {
|
|
|
- //
|
|
|
- $inputFileName = "./test.xlsx";
|
|
|
- $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);
|
|
|
-
|
|
|
- return $spreadsheet;
|
|
|
- }
|
|
|
-
|
|
|
public function claim(Request $request)
|
|
|
{
|
|
|
$prize = '';
|
|
|
@@ -145,4 +140,71 @@ class ActivityController extends Controller
|
|
|
$recipient->save();
|
|
|
return $recipient;
|
|
|
}
|
|
|
+
|
|
|
+ //TODO 目前只有匯入功能有加activity_id where
|
|
|
+
|
|
|
+ public function uploadFile(Request $request)
|
|
|
+ {
|
|
|
+ $option = $request->option;
|
|
|
+ $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();
|
|
|
+ $activity_id = DB::table('activities')->orderBy('id', 'desc')->first()->id;
|
|
|
+
|
|
|
+ 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' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }else if($option == 'guest'){
|
|
|
+ //TODO 匯入來賓資料
|
|
|
+ //還要改
|
|
|
+ DB::table('checkin')->where('role', '=', '來賓')->delete();
|
|
|
+ date_default_timezone_set('Asia/Taipei');
|
|
|
+ for ($row = 2; $row <= $highestRow; $row++) {
|
|
|
+ DB::table('checkin')->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' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $successText = 'You have successfully uploaded "' . $file_name . '"';
|
|
|
+ $response = [
|
|
|
+ 'success' => $successText,
|
|
|
+ ];
|
|
|
+
|
|
|
+ return response($response, 201);
|
|
|
+ }
|
|
|
}
|