diff --git a/plugin/admin/app/controller/TeacherController.php b/plugin/admin/app/controller/TeacherController.php index 26498b1..a24105d 100644 --- a/plugin/admin/app/controller/TeacherController.php +++ b/plugin/admin/app/controller/TeacherController.php @@ -168,6 +168,25 @@ class TeacherController extends Crud } + public function getTeacherTimeZone(Request $request) + { + try { + $teacher = \app\common\model\Teacher::where(['id' => $request->post('id')])->findOrEmpty(); + + return json([ + 'code' => ResponseCode::WEB_API_SUCCESS, + 'data' => $teacher, + 'msg' => 'success', + ]); + } catch (Exception $e) { + return json([ + 'code' => ResponseCode::WEB_API_FAIL, + 'msg' => $e->getMessage() + ]); + } + } + + /** * @desc 查看教师日程安排 * @param Request $request @@ -399,7 +418,7 @@ class TeacherController extends Crud $account = trim($currSheet->getCell('A' . $row)->getValue() ?: ''); $teacher_name = trim($currSheet->getCell('B' . $row)->getValue() ?: ''); - if($account && $teacher_name){ + if ($account && $teacher_name) { $password = trim($currSheet->getCell('C' . $row)->getValue() ?: ''); $salt = random_str(16); diff --git a/plugin/admin/app/controller/TeacherFreeTimeController.php b/plugin/admin/app/controller/TeacherFreeTimeController.php index 5c25e44..5548852 100644 --- a/plugin/admin/app/controller/TeacherFreeTimeController.php +++ b/plugin/admin/app/controller/TeacherFreeTimeController.php @@ -14,6 +14,7 @@ use plugin\admin\app\model\TeacherFreeTime; use plugin\admin\app\controller\Crud; use support\exception\BusinessException; use think\Exception; +use DateTime; /** * 空闲时间 @@ -44,10 +45,10 @@ class TeacherFreeTimeController extends Crud if (isset($data['teacher_id']) && !empty($data['teacher_id'])) { $free_time->where('teacher_id', $data['teacher_id']); } - if(isset($data['month']) && !empty($data['month'])){ + if (isset($data['month']) && !empty($data['month'])) { $free_time->where('month', $data['month']); } - if(isset($data['date']) && !empty($data['date'])){ + if (isset($data['date']) && !empty($data['date'])) { $free_time->where('date', $data['date']); } @@ -92,9 +93,59 @@ class TeacherFreeTimeController extends Crud public function insert(Request $request): Response { if ($request->method() === 'POST') { + + $postData = $request->post(); + try { + $teacher_free_time = \app\common\model\TeacherFreeTime::where([ + 'teacher_id' => $postData['teacher_id'], + 'date' => $postData['date'], + 'month' => $postData['month'], + 'time' => $postData['time'], + 'en_time' => $postData['en_time'], + ]) + ->findOrEmpty(); + if (!$teacher_free_time->isEmpty()) { + throw new Exception('该空闲时间段存在'); + } + + $time_period = explode('-', $postData['time']); + $en_time_period = explode('-', $postData['en_time']); + $firstDate = new DateTime($postData['date'] . ' ' . trim($time_period[0])); + $secondDate = new DateTime($postData['date'] . ' ' . trim($time_period[1])); + $enFirstDate = new DateTime($postData['date'] . ' ' . trim($en_time_period[0])); + $enSecondDate = new DateTime($postData['date'] . ' ' . trim($en_time_period[1])); + + \app\common\model\TeacherFreeTime::create([ + 'teacher_id' => $request->post('teacher_id'), + 'date' => $request->post('date'), + 'month' => $request->post('month'), + 'time' => $request->post('time'), + 'en_time' => $request->post('en_time'), + 'hour' => $request->post('hour'), + 'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()), + 'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()), + 'en_start_time' => date('Y-m-d H:i:s', $enFirstDate->getTimestamp()), + 'en_end_time' => date('Y-m-d H:i:s', $enSecondDate->getTimestamp()), + ]); + + return json([ + 'code' => ResponseCode::WEB_API_SUCCESS, + 'msg' => 'success', + ]); + } catch (Exception $e) { + return json([ + 'code' => ResponseCode::WEB_API_FAIL, + 'msg' => $e->getMessage() + ]); + } + return parent::insert($request); } - return view('teacher-free-time/insert'); + + //所有教师 + $teacher = \app\common\model\Teacher::order('id desc')->select()->toArray(); + + return view('teacher-free-time/insert', ['teacher' => $teacher]); } /** @@ -106,11 +157,57 @@ class TeacherFreeTimeController extends Crud public function update(Request $request): Response { if ($request->method() === 'POST') { + + try { + $postData = $request->post(); + $teacher_free_time = \app\common\model\TeacherFreeTime::where(['id' => $postData['id']])->findOrEmpty(); + + if ($teacher_free_time->isEmpty()) { + throw new Exception('未找到空闲时间'); + } + + $time_period = explode('-', $postData['time']); + $en_time_period = explode('-', $postData['en_time']); + $firstDate = new DateTime($postData['date'] . ' ' . trim($time_period[0])); + $secondDate = new DateTime($postData['date'] . ' ' . trim($time_period[1])); + $enFirstDate = new DateTime($postData['date'] . ' ' . trim($en_time_period[0])); + $enSecondDate = new DateTime($postData['date'] . ' ' . trim($en_time_period[1])); + + $teacher_free_time->save([ + 'teacher_id' => $postData['teacher_id'], + 'date' => $postData['date'], + 'month' => $postData['month'], + 'time' => $postData['time'], + 'en_time' => $postData['en_time'], + 'hour' => $postData['hour'], + 'start_time' => date('Y-m-d H:i:s', $firstDate->getTimestamp()), + 'end_time' => date('Y-m-d H:i:s', $secondDate->getTimestamp()), + 'en_start_time' => date('Y-m-d H:i:s', $enFirstDate->getTimestamp()), + 'en_end_time' => date('Y-m-d H:i:s', $enSecondDate->getTimestamp()), + ]); + + return json([ + 'code' => ResponseCode::WEB_API_SUCCESS, + 'msg' => 'success', + ]); + } catch (Exception $e) { + return json([ + 'code' => ResponseCode::WEB_API_FAIL, + 'msg' => $e->getMessage() + ]); + } + + return parent::update($request); } - return view('teacher-free-time/update'); - } + $teacher_free_time = \app\common\model\TeacherFreeTime::where(['id' => $request->get('id')]) + ->with(['teacher']) + ->findOrEmpty()->toArray(); + //获取所有老师 + $teacher = Teacher::order('id asc')->field('id,teacher_name,account')->select()->toArray(); + return view('teacher-free-time/update', ['teacher_free_time' => $teacher_free_time, 'teacher' => $teacher]); + } /** @@ -168,7 +265,7 @@ class TeacherFreeTimeController extends Crud $data = $request->get(); $teacher_id = $data['teacher_id']; $month = $data['month']; - $teacher = \app\common\model\Teacher::where(['id'=>$teacher_id])->findOrEmpty()->toArray(); + $teacher = \app\common\model\Teacher::where(['id' => $teacher_id])->findOrEmpty()->toArray(); //获取该老师当前分配学生 return view('teacher/free_time_schedule', ['teacher' => $teacher, 'month' => $month]); @@ -197,7 +294,7 @@ class TeacherFreeTimeController extends Crud foreach ($list as $item) { $title = $item['time'] . '-' . $item['hour'] . '/h'; $color = 'red'; - if(isset($item['teacherScheduleTime']) && !empty($item['teacherScheduleTime'])){ + if (isset($item['teacherScheduleTime']) && !empty($item['teacherScheduleTime'])) { $color = 'green'; } $free_time[] = [ diff --git a/plugin/admin/app/view/teacher-free-time/index.html b/plugin/admin/app/view/teacher-free-time/index.html index b3506b9..18fced0 100644 --- a/plugin/admin/app/view/teacher-free-time/index.html +++ b/plugin/admin/app/view/teacher-free-time/index.html @@ -74,9 +74,9 @@ - + diff --git a/plugin/admin/app/view/teacher-free-time/update.html b/plugin/admin/app/view/teacher-free-time/update.html index 44f4ea2..ab00ed5 100644 --- a/plugin/admin/app/view/teacher-free-time/update.html +++ b/plugin/admin/app/view/teacher-free-time/update.html @@ -1,175 +1,246 @@ - - - 更新页面 - - - - - - + + + 更新页面 + + + -
+ + -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- -
- -
- -
-
- + + +
+
+ +
+ +
+ +
-
-
- - +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
- - - - - - - - + + + + + - + +