From 251d9977138b140847a939903a2f8399d3669510 Mon Sep 17 00:00:00 2001 From: quyetlv Date: Fri, 17 Nov 2023 17:09:07 +0700 Subject: [PATCH] done create data --- .../Http/Controllers/LoseRootController.php | 77 ++++++++++++++----- src/app/Models/TripLoseroot.php | 13 ++++ 2 files changed, 69 insertions(+), 21 deletions(-) create mode 100644 src/app/Models/TripLoseroot.php diff --git a/src/app/Http/Controllers/LoseRootController.php b/src/app/Http/Controllers/LoseRootController.php index 06c1231..be16a84 100644 --- a/src/app/Http/Controllers/LoseRootController.php +++ b/src/app/Http/Controllers/LoseRootController.php @@ -5,6 +5,8 @@ namespace App\Http\Controllers; use App\Models\Curriculum; use App\Models\CurriculumUnit; use App\Models\Lesson; +use App\Models\TripLoseroot; +use App\Models\Unit; use App\Models\UnitElement; use DB; use Illuminate\Http\Request; @@ -39,7 +41,8 @@ class LoseRootController extends Controller { return view("pages.home"); } - public function handle_data(Request $request){ + public function handle_data(Request $request) + { $data_all = json_decode($request->data) ?? null; $curriculum_data = $data_all->curriculum_data; @@ -48,39 +51,71 @@ class LoseRootController extends Controller $unit_data = $data_all->unit_data; $unit_element_data = $data_all->unit_element_data; $trip = $data_all->trip; - // dd($unit_element_data); + + $curriculum_unit = []; + $unit_element = []; + $unit = []; + $data_trip = []; // save curriculum - if(!empty($curriculum_unit_data)){ - $curriculum_unit = []; - $unit_element = []; - foreach($curriculum_unit_data as $cud){ - $curriculum_unit[] = (array)$cud; + if (!empty($curriculum_unit_data)) { + + foreach ($curriculum_unit_data as $cud) { + $curriculum_unit[] = (array) $cud; } } - if(!empty($unit_element_data)){ - foreach($unit_element_data as $ued){ - $unit_element[] = (array)$ued; + if (!empty($unit_element_data)) { + foreach ($unit_element_data as $ued) { + $unit_element[] = (array) $ued; } } + if (!empty($unit_data)) { + foreach ($unit_data as $u) { + $unit[] = (array) $u; + } + } + if (!empty(($trip))) { + foreach ($trip as $week => $t) { + $unit_week = $t ?? null; + if (!empty($unit_week)) { + foreach ($unit_week as $unit_id => $thread_id) { + array_walk($thread_id, function ($v, $k) use ($week, $curriculum_data, $unit_id, &$data_trip) { + $data_trip[] = [ + 'week' => $week, + 'curriculum_id' => $curriculum_data->id, + 'unit_id' => $unit_id, + 'thread_id' => $v, + 'deleted' => 0, + ]; + }); + + } + } + } + } DB::beginTransaction(); try { - $saveCurriculum = Curriculum::insert((array)$curriculum_data); + $saveCurriculum = Curriculum::insert((array) $curriculum_data); - if($saveCurriculum){ - $saveCurriculumUnit = CurriculumUnit::insert($curriculum_unit); + if ($saveCurriculum) { + $saveCurriculumUnit = CurriculumUnit::insert($curriculum_unit); } - if(!empty($saveCurriculumUnit)){ + if (!empty($saveCurriculumUnit)) { $saveUnitElement = UnitElement::insert($unit_element); } + if (!empty($saveUnitElement)) { + $saveUnit = Unit::insert($unit); + } + // TẠO LỘ TRÌNH + if (!empty($saveUnit)) { + $save_trip = TripLoseroot::insert($data_trip); + } DB::rollback(); } catch (\Throwable $th) { DB::rollback(); throw $th; } - - - dd($curriculum_data); + return response()->json(['msg' => "Tạo thành công giáo trình", "status" => TRUE]); } public function read_file(Request $request) { @@ -147,13 +182,13 @@ class LoseRootController extends Controller $data_trip = $data['data_trip'] ?? []; // dd($data_trip); $trip_unit_full = []; - if(!empty($data_trip)){ - foreach($data_trip as $week_number => $trip_info){ + if (!empty($data_trip)) { + foreach ($data_trip as $week_number => $trip_info) { $skill_vocabulary = $trip_info['vocabulary'] ?? null; $skill_grammar = $trip_info['grammar'] ?? null; $trip_of_week = []; - if(count($skill_vocabulary) == count($skill_grammar)){ - foreach($skill_vocabulary as $unit_num => $vocab){ + if (count($skill_vocabulary) == count($skill_grammar)) { + foreach ($skill_vocabulary as $unit_num => $vocab) { $trip_of_week[$unit_num] = [$vocab, $skill_grammar[$unit_num]]; } } diff --git a/src/app/Models/TripLoseroot.php b/src/app/Models/TripLoseroot.php new file mode 100644 index 0000000..2ac13aa --- /dev/null +++ b/src/app/Models/TripLoseroot.php @@ -0,0 +1,13 @@ +