From ff70a5b4e80f4c448a0d8632b8a9352ec121ce09 Mon Sep 17 00:00:00 2001 From: Dai Date: Mon, 15 Jul 2024 17:26:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=B8=88=E6=8E=92=E8=AF=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TeacherScheduleTimeController.php | 14 +++- app/common/model/TeacherScheduleTime.php | 4 + .../service/TeacherScheduleTimeService.php | 57 +++++++++------ .../TeacherScheduleTimeController.php | 8 +- .../schedule_time_setting.html | 4 +- .../view/teacher-schedule-time/update.html | 73 +++++++++++++------ 6 files changed, 108 insertions(+), 52 deletions(-) diff --git a/app/api/controller/TeacherScheduleTimeController.php b/app/api/controller/TeacherScheduleTimeController.php index 797d688..f78c6bf 100644 --- a/app/api/controller/TeacherScheduleTimeController.php +++ b/app/api/controller/TeacherScheduleTimeController.php @@ -17,7 +17,19 @@ class TeacherScheduleTimeController extends BaseController public function addScheduleTime(Request $request) { $service = new TeacherScheduleTimeService(); - $res = $service->addFreeTime($request); + $res = $service->addScheduleTime($request); + return $this->json($res); + } + + /** + * @desc 获取排期信息 + * @param Request $request + * @return \support\Response + */ + public function getScheduleTime(Request $request) + { + $service = new TeacherScheduleTimeService(); + $res = $service->getScheduleTime($request); return $this->json($res); } diff --git a/app/common/model/TeacherScheduleTime.php b/app/common/model/TeacherScheduleTime.php index 184bb18..f50d68c 100644 --- a/app/common/model/TeacherScheduleTime.php +++ b/app/common/model/TeacherScheduleTime.php @@ -28,5 +28,9 @@ class TeacherScheduleTime extends BaseModel { return $this->hasOne(Subject::class, 'id', 'subject_id')->bind(['subject_name','english_name']); } + public function subjectArr() + { + return $this->hasOne(Subject::class, 'id', 'subject_id'); + } } diff --git a/app/common/service/TeacherScheduleTimeService.php b/app/common/service/TeacherScheduleTimeService.php index dde2aa8..29aaad1 100644 --- a/app/common/service/TeacherScheduleTimeService.php +++ b/app/common/service/TeacherScheduleTimeService.php @@ -16,7 +16,7 @@ class TeacherScheduleTimeService * @param $request * @return array|void */ - public function addFreeTime($request) + public function addScheduleTime($request) { try { if (empty($request->teacher)) { @@ -27,29 +27,6 @@ class TeacherScheduleTimeService if ($teacher->isEmpty()) { throw new Exception('未找到教师信息,设置失败'); } - -// $free_time = [ -// '2024-7-14'=>[ -// '9:00-10:00', -// '10:00-11:00', -// '11:00-12:00', -// ], -// '2024-7-15'=>[ -// '14:00-15:00', -// '15:00-16:00', -// '16:00-17:00', -// ], -// '2024-7-16'=>[ -// '9:00-10:00', -// '10:00-11:00', -// '11:00-12:00', -// ], -// '2024-7-17'=>[ -// '9:00-10:00', -// '10:00-11:00', -// '11:00-12:00', -// ] -// ]; $data = $request->post(); $free_time = json_decode($data['schedule_time'], true); @@ -72,6 +49,8 @@ class TeacherScheduleTimeService '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)), ]; //@todo:判断是否已经存在 @@ -95,4 +74,34 @@ class TeacherScheduleTimeService } } + public function getScheduleTime($request) + { + try { + if (empty($request->teacher)) { + throw new Exception('请教师登陆后再设置'); + } + $teacher = Teacher::where(['id' => $request->teacher->id])->findOrEmpty(); + + if ($teacher->isEmpty()) { + throw new Exception('未找到教师信息,设置失败'); + } + $data = $request->get(); + + $schedule = TeacherScheduleTime::where(['teacher_id'=>$teacher->id, 'date'=>$data['schedule_date']])->select(); + + + return [ + 'code' => ResponseCode::SUCCESS, + 'data'=>$schedule, + 'msg' => 'success', + ]; + }catch (Exception $e){ + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + + } \ No newline at end of file diff --git a/plugin/admin/app/controller/TeacherScheduleTimeController.php b/plugin/admin/app/controller/TeacherScheduleTimeController.php index 1c43593..cdebe65 100644 --- a/plugin/admin/app/controller/TeacherScheduleTimeController.php +++ b/plugin/admin/app/controller/TeacherScheduleTimeController.php @@ -70,7 +70,7 @@ class TeacherScheduleTimeController extends Crud if ($request->get('id')) { $teacher_free_time = \app\common\model\TeacherScheduleTime::where(['id' => $request->get('id')])->findOrEmpty(); - $teacher = Teacher::where(['id' => $teacher_free_time->teacher_id])->field('teacher_name,account')->findOrEmpty()->toArray(); + $teacher = Teacher::where(['id' => $teacher_free_time->teacher_id])->field('id,teacher_name,account')->findOrEmpty()->toArray(); } return view('teacher-schedule-time/update', ['teacher' => $teacher]); } @@ -107,7 +107,11 @@ class TeacherScheduleTimeController extends Crud public function getScheduleTime(Request $request) { try { - $list = \app\common\model\TeacherScheduleTime::where(['teacher_id' => $request->get('id'), 'month' => '2024-07']) + $teacher_id = $request->post('id'); + $start_date = date('Y-m-d H:i:s', strtotime($request->post('start_date'))); + $end_date = date('Y-m-d 23:59:59', strtotime($request->post('end_date'))); + $list = \app\common\model\TeacherScheduleTime::where(['teacher_id' => $teacher_id]) + ->whereBetweenTime('start_time', $start_date, $end_date) ->with(['subject']) ->select() ->toArray(); diff --git a/plugin/admin/app/view/teacher-schedule-time/schedule_time_setting.html b/plugin/admin/app/view/teacher-schedule-time/schedule_time_setting.html index bef9a6c..1ba65dd 100644 --- a/plugin/admin/app/view/teacher-schedule-time/schedule_time_setting.html +++ b/plugin/admin/app/view/teacher-schedule-time/schedule_time_setting.html @@ -53,7 +53,9 @@
- + + +
diff --git a/plugin/admin/app/view/teacher-schedule-time/update.html b/plugin/admin/app/view/teacher-schedule-time/update.html index cc07b11..8537c9a 100644 --- a/plugin/admin/app/view/teacher-schedule-time/update.html +++ b/plugin/admin/app/view/teacher-schedule-time/update.html @@ -71,28 +71,49 @@

老师信息

-
-
-
+
+
+
+
+
+ + 未排课
- - - - - - - - - - - - +
+ + 已排课,未发布 +
+
+ + 已发布 +
+
+
+ + + + + + + + + + + + + + + + + + +
- - - - + + + +
@@ -197,12 +218,16 @@ editable: true, dayMaxEvents: true, // allow "more" link when too many events events: function (info, successCallback, failureCallback) { - console.log('12312313') + console.log('12312313', info) + + let start_date = info.startStr; + let end_date = info.endStr; + let teacher_id = "{$teacher['id']}" layui.$.ajax({ - url: '/app/admin/teacherScheduleTime/getScheduleTime?id=1', + url: '/app/admin/teacherScheduleTime/getScheduleTime', type: "POST", dateType: "json", - // data: data.field, + data: {id: teacher_id, start_date: start_date, end_date: end_date}, success: function (res) { console.log(res) if (res.code == 0) { @@ -220,8 +245,8 @@ } }); }, - eventTextColor :function (obj){ - console.log('字体颜色',obj) + eventTextColor: function (obj) { + console.log('字体颜色', obj) }, eventMouseEnter: function (info) { console.log('鼠标', info)