teacher)) { throw new Exception('请教师登陆后再设置'); } $teacher = Teacher::where(['id' => $request->teacher->id])->findOrEmpty(); if ($teacher->isEmpty()) { throw new Exception('未找到教师信息,设置失败'); } $data = $request->post(); $free_time = json_decode($data['free_time'], true); if (empty($free_time)) { throw new Exception('请选择时间段之后再提交'); } $total_count = 0; $exit_count = 0; $err_free_count = 0; 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() ]; } } }