diff --git a/app/api/controller/TeacherFreeTimeController.php b/app/api/controller/TeacherFreeTimeController.php index 9d59109..3df52fb 100644 --- a/app/api/controller/TeacherFreeTimeController.php +++ b/app/api/controller/TeacherFreeTimeController.php @@ -33,6 +33,13 @@ class TeacherFreeTimeController extends BaseController return $this->json($res); } + public function updateFreeTime(Request $request) + { + $service = new TeacherFreeTimeService(); + $res = $service->updateFreeTime($request); + return $this->json($res); + } + /** * @desc 删除空闲时间 * @param Request $request diff --git a/app/common/service/TeacherFreeTimeService.php b/app/common/service/TeacherFreeTimeService.php index 60216cc..f1ad4b7 100644 --- a/app/common/service/TeacherFreeTimeService.php +++ b/app/common/service/TeacherFreeTimeService.php @@ -164,6 +164,58 @@ class TeacherFreeTimeService } } + public function updateFreeTime($request) + { + try { + $teacher_free_time = TeacherFreeTime::where(['id' => $request->post('free_time_id')])->findOrEmpty(); + if ($teacher_free_time->isEmpty()) { + throw new Exception('未找到数据'); + } + + $data = $request->post(); + + if (empty($data['free_time'])) { + throw new Exception('请选择时间后提交'); + } + + $free_time = json_decode($data['free_time'], true); + + $free_time = json_decode($free_time['free_time'], true)[0]; + + + $free_date = $free_time['day']; + $time = $free_time['times'][0]['zh']; + $en_time = $free_time['times'][0]['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]; + + $teacher_free_time->save([ + 'date' => $free_date, + 'time' => $time, + 'hour' => $hour, + 'en_time' => implode(' - ', $en_time_period), + ]); + + return [ + 'code' => ResponseCode::SUCCESS, + 'msg' => '操作成功' + ]; + + }catch (Exception $e){ + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + /** * @desc 删除空闲时间 * @param $request