From 696a134bc43ec47a3e8eba427fd45933ba7541ea Mon Sep 17 00:00:00 2001
From: Dai
Date: Thu, 8 Aug 2024 15:26:06 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=B7=BB=E5=8A=A0=E6=95=99?=
=?UTF-8?q?=E5=B8=88=E7=A9=BA=E9=97=B2=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../app/controller/TeacherController.php | 21 +-
.../controller/TeacherFreeTimeController.php | 111 +++++-
.../app/view/teacher-free-time/index.html | 10 +-
.../app/view/teacher-free-time/insert.html | 181 +++++++--
.../app/view/teacher-free-time/update.html | 373 +++++++++++-------
5 files changed, 495 insertions(+), 201 deletions(-)
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 @@
-