fix 删除排课时删除对应的学生课表 教师排课发布时检测课程和学生
This commit is contained in:
parent
69819ad9d1
commit
35b02e43e0
@ -352,6 +352,9 @@ class TeacherFreeTimeController extends Crud
|
||||
//获取已排课时间
|
||||
$teacher_schedule_time = TeacherScheduleTime::where(['free_time_id' => $free_time_id])->with(['oneStudentSchedule'])->select()->toArray();
|
||||
|
||||
// print '<pre>';
|
||||
// print_r($teacher_schedule_time);
|
||||
// die;
|
||||
|
||||
// $student_schedule = StudentSchedule::where(['teacher_schedule_time_id' => $free_time_id])->select()->toArray();
|
||||
// $student_schedule_id = [];
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -410,7 +410,7 @@
|
||||
let doRemove = function (ids) {
|
||||
let data = {};
|
||||
data[PRIMARY_KEY] = ids;
|
||||
layer.confirm("确定删除?", {
|
||||
layer.confirm("删除教师排课数据将同时删除对应的学生排课数据,确定删除?", {
|
||||
icon: 3,
|
||||
title: "提示"
|
||||
}, function (index) {
|
||||
|
@ -80,9 +80,14 @@
|
||||
|
||||
<fieldset class="layui-elem-field">
|
||||
<legend>排课时间</legend>
|
||||
|
||||
<span style="color: burlywood;padding-left: 30px;font-size: smaller;margin-top: 17px;">如果排课已存在,删除后将删除对应学生排课时间,请谨慎操作</span>
|
||||
<hr class="layui-border-orange">
|
||||
<div class="layui-field-box" id="schedule_free_time">
|
||||
{if (empty($teacher_schedule_time))}
|
||||
<div class="layui-form-item">
|
||||
<input type="hidden" name="teacher_schedule_id[]" value="">
|
||||
<input type="hidden" name="student_schedule_id[]" value="">
|
||||
<label class="layui-form-label" style="width: 50px;font-size: 12px;margin-left: -17px;">本地时间</label>
|
||||
<div class="layui-input-inline" style="width: 120px;">
|
||||
<input type="text" name="schedule_en_time[]" lay-verify="required"
|
||||
@ -126,6 +131,7 @@
|
||||
{foreach $teacher_schedule_time as $index=>$item}
|
||||
<div class="layui-form-item">
|
||||
<input type="hidden" name="teacher_schedule_id[{$index+1}]" value="{$item['id']}">
|
||||
<input type="hidden" name="student_schedule_id[{$index+1}]" {if isset($item['oneStudentSchedule']) && !empty($item['oneStudentSchedule']['id'])} value="{$item['oneStudentSchedule']['id']}" {else} value="" {/if}>
|
||||
<label class="layui-form-label" style="width: 50px;font-size: 12px;margin-left: -17px;">本地时间</label>
|
||||
<div class="layui-input-inline" style="width: 120px;">
|
||||
<input type="text" name="schedule_en_time[{$index+1}]" lay-verify="required"
|
||||
@ -239,7 +245,8 @@
|
||||
|
||||
|
||||
var htmlStr = '<div class="layui-form-item">\n' +
|
||||
' <input type="hidden" name="teacher_schedule_id[' + maxNum + ']" value="">' +
|
||||
' <input type="hidden" name="teacher_schedule_id[' + maxNum + ']" value="">\n' +
|
||||
' <input type="hidden" name="student_schedule_id[' + maxNum + ']" value="">\n' +
|
||||
' <label class="layui-form-label" style="width: 50px;font-size: 12px;margin-left: -17px;">本地时间</label>\n' +
|
||||
' <div class="layui-input-inline" style="width: 120px;">\n' +
|
||||
' <input type="text" name="schedule_en_time[' + maxNum + ']" lay-verify="required"\n' +
|
||||
|
Loading…
x
Reference in New Issue
Block a user