diff --git a/plugin/admin/app/controller/TeacherFreeTimeController.php b/plugin/admin/app/controller/TeacherFreeTimeController.php index d554946..16c1552 100644 --- a/plugin/admin/app/controller/TeacherFreeTimeController.php +++ b/plugin/admin/app/controller/TeacherFreeTimeController.php @@ -352,6 +352,9 @@ class TeacherFreeTimeController extends Crud //获取已排课时间 $teacher_schedule_time = TeacherScheduleTime::where(['free_time_id' => $free_time_id])->with(['oneStudentSchedule'])->select()->toArray(); +// print '
';
+//        print_r($teacher_schedule_time);
+//        die;
 
 //        $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $free_time_id])->select()->toArray();
 //        $student_schedule_id = [];
diff --git a/plugin/admin/app/controller/TeacherScheduleTimeController.php b/plugin/admin/app/controller/TeacherScheduleTimeController.php
index 09b5237..6bbb061 100644
--- a/plugin/admin/app/controller/TeacherScheduleTimeController.php
+++ b/plugin/admin/app/controller/TeacherScheduleTimeController.php
@@ -3,8 +3,10 @@
 namespace plugin\admin\app\controller;
 
 use app\common\model\Student;
+use app\common\model\StudentHomework;
 use app\common\model\StudentSchedule;
 use app\common\model\Subject;
+use app\common\model\SubjectHomework;
 use app\common\model\Teacher;
 use app\common\model\TeacherFreeTime;
 use app\common\service\SendMsgCronJobService;
@@ -130,11 +132,19 @@ class TeacherScheduleTimeController extends Crud
         $this->doDelete($ids);
         //删除排课相关的学生课程
         $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $ids])->select();
+        //删除课程作业
+        $subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $ids])->select();
 
         if (!$student_schedule->isEmpty()) {
             $student_schedule->delete();
         }
 
+        if(!$subject_homework->isEmpty()){
+            $subject_homework->delete();
+            //删除学生家庭作业
+            StudentHomework::where(['teacher_schedule_time_id'=>$ids])->select()->delete();
+        }
+
         return $this->json(0);
     }
 
@@ -167,8 +177,18 @@ class TeacherScheduleTimeController extends Crud
 
             if (isset($data['teacher_schedule_id'])) {
                 $teacher_schedule_id = array_filter($data['teacher_schedule_id']);
+
                 if ($teacher_schedule_id) {
-                    $res = \app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->whereNotIn('id', $teacher_schedule_id)->select()->delete();
+                    //查找在空闲时间中却不在已存在提交的排课时间的已被删除的排课时间
+                    $removed_teacher_schedule_time = \app\common\model\TeacherScheduleTime::where(['free_time_id' => $free_time->id])->whereNotIn('id', $teacher_schedule_id)->select();
+                    if(!$removed_teacher_schedule_time->isEmpty()){
+                        //删除对用的学生排课时间
+                        $removed_teacher_schedule_time_ids = array_column($removed_teacher_schedule_time->toArray(), 'id');
+                        StudentSchedule::where(['teacher_schedule_time_id'=>$removed_teacher_schedule_time_ids])->select()->delete();
+                        //删除教师被删除的排课时间
+                        $removed_teacher_schedule_time->delete();
+                    }
+
                 }
 
             }
@@ -288,6 +308,22 @@ class TeacherScheduleTimeController extends Crud
     {
         if ($request->method() === 'POST') {
             if ($request->post('is_publish')) {
+                //发布检测是否排课和安排学生
+                $teacher_schedule_time = \app\common\model\TeacherScheduleTime::where(['id'=> $request->post('id')])->findOrEmpty();
+                if(empty($teacher_schedule_time->subject_id)){
+                    return json([
+                        'code' => ResponseCode::WEB_API_FAIL,
+                        'msg' => '请先选择课程再发布'
+                    ]);
+                }
+                $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $teacher_schedule_time->id])->select();
+                if($student_schedule->isEmpty()){
+                    return json([
+                        'code' => ResponseCode::WEB_API_FAIL,
+                        'msg' => '请先安排学生后再发布'
+                    ]);
+                }
+
                 (new SendMsgCronJobService())->teacherScheduleTimePublishMsgToTeacher($request->post('id'));
             }
             return parent::update($request);
@@ -416,6 +452,21 @@ class TeacherScheduleTimeController extends Crud
             if (isset($data['is_publish'])) {
                 $teacher_schedule_time->is_publish = $data['is_publish'];
 
+                if(empty($teacher_schedule_time->subject_id)){
+                    return json([
+                        'code' => ResponseCode::WEB_API_FAIL,
+                        'msg' => '请先选择课程再发布'
+                    ]);
+                }
+                
+                $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $teacher_schedule_time->id])->select();
+                if($student_schedule->isEmpty()){
+                    return json([
+                        'code' => ResponseCode::WEB_API_FAIL,
+                        'msg' => '请先安排学生后再发布'
+                    ]);
+                }
+
                 if ($data['is_publish']) {
                     (new SendMsgCronJobService())->teacherScheduleTimePublishMsgToTeacher($teacher_schedule_time->id);
                 }
diff --git a/plugin/admin/app/view/teacher-schedule-time/index.html b/plugin/admin/app/view/teacher-schedule-time/index.html
index 2ffd730..847e1e4 100644
--- a/plugin/admin/app/view/teacher-schedule-time/index.html
+++ b/plugin/admin/app/view/teacher-schedule-time/index.html
@@ -410,7 +410,7 @@
         let doRemove = function (ids) {
             let data = {};
             data[PRIMARY_KEY] = ids;
-            layer.confirm("确定删除?", {
+            layer.confirm("删除教师排课数据将同时删除对应的学生排课数据,确定删除?", {
                 icon: 3,
                 title: "提示"
             }, function (index) {
diff --git a/plugin/admin/app/view/teacher/free_time_setting.html b/plugin/admin/app/view/teacher/free_time_setting.html
index ae5fd13..3b079e6 100644
--- a/plugin/admin/app/view/teacher/free_time_setting.html
+++ b/plugin/admin/app/view/teacher/free_time_setting.html
@@ -80,9 +80,14 @@
 
             
排课时间 + + 如果排课已存在,删除后将删除对应学生排课时间,请谨慎操作 +
{if (empty($teacher_schedule_time))}
+ +
$item}
+
' + + ' \n' + + ' \n' + ' \n' + '
\n' + '