teacher)) { throw new Exception('请教师登陆后再设置'); } $teacher = Teacher::where(['id' => $request->teacher->id])->findOrEmpty(); if ($teacher->isEmpty()) { throw new Exception('未找到教师信息,设置失败'); } $data = $request->post(); if(empty($data['free_time'])){ throw new Exception('请选择时间后提交'); } $free_time = json_decode($data['free_time'], true); $total_count = 0; $exit_count = 0; $err_free_count = 0; $has_msg = false; foreach ($free_time as $item) { $free_date = $item['day']; foreach ($item['times'] as $val){ $time = $val['zh']; $en_time = $val['en']; $time_period = explode('-', $time); $en_time_period = explode('-', $en_time); $firstDate = new DateTime($free_date . ' ' . trim($time_period[0])); $secondDate = new DateTime($free_date . ' ' . trim($time_period[1])); $diff = $secondDate->diff($firstDate); $h = $diff->h; $m = round($diff->i / 60, 2); $hour = round($h + $m, 2); $time = $time_period[0] . ' - ' . $time_period[1]; $free_data = [ 'teacher_id' => $request->teacher->id, 'date' => $free_date, 'time' => $time, 'en_time' => implode(' - ', $en_time_period), 'hour' => $hour, 'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()), 'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()), 'month' => date('Y-m', strtotime($free_date)), ]; //判断是否已经存在 $exit = TeacherFreeTime::where($free_data)->findOrEmpty(); if(!$exit->isEmpty()){ $msg .= '【' + $free_data['en_time'] + '】'; $has_msg = true; continue; } $res = TeacherFreeTime::create($free_data); if(!$res){ throw new Exception('保存失败'); } if($has_msg){ $msg = $msg + '已存在添加'; } } } // foreach ($free_time as $free_date => $times) { // if ($times) { // foreach ($times as $time) { // $time_period = explode(' - ', $time); // $firstDate = new DateTime($free_date . ' ' . trim($time_period[0])); // $secondDate = new DateTime($free_date . ' ' . trim($time_period[1])); // $diff = $secondDate->diff($firstDate); // $h = $diff->h; // $m = round($diff->i / 60, 2); // $hour = round($h + $m, 2); // $time = $time_period[0] . ' - ' . $time_period[1]; // $free_data = [ // 'teacher_id' => $request->teacher->id, // 'date' => $free_date, // 'time' => $time, // 'hour' => $hour, // 'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()), // 'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()), // 'month' => date('Y-m', strtotime($free_date)), // ]; // // //判断是否已经存在 // $exit = TeacherFreeTime::where($free_data)->findOrEmpty(); // if(!$exit->isEmpty()){ // continue; // } // $res = TeacherFreeTime::create($free_data); // if(!$res){ // throw new Exception('保存失败'); // } // } // } // } return [ 'code' => ResponseCode::SUCCESS, 'msg' => '保存成功' ]; }catch (Exception $e){ return [ 'code' => ResponseCode::FAIL, 'msg' => $e->getMessage() ]; } } }