|
|
|
@ -72,6 +72,7 @@ class CourseService extends BaseApiService |
|
|
|
} |
|
|
|
return $list; |
|
|
|
} |
|
|
|
|
|
|
|
//获取课程详情 |
|
|
|
public function info($data) |
|
|
|
{ |
|
|
|
@ -104,7 +105,6 @@ class CourseService extends BaseApiService |
|
|
|
->select()->toArray(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($student_courses as &$v) { |
|
|
|
$student = Db::name('student') |
|
|
|
->alias('st') |
|
|
|
@ -428,7 +428,8 @@ class CourseService extends BaseApiService |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function addSchedule(array $data){ |
|
|
|
public function addSchedule(array $data) |
|
|
|
{ |
|
|
|
$CourseSchedule = new CourseSchedule(); |
|
|
|
$personCourseSchedule = new PersonCourseSchedule(); |
|
|
|
$student = Student::where('id', $data['student_id'])->find(); |
|
|
|
@ -450,6 +451,7 @@ class CourseService extends BaseApiService |
|
|
|
'schedule_id' => $data['schedule_id'], |
|
|
|
'student_id' => $student->id, |
|
|
|
'resources_id' => $data['resources_id'], |
|
|
|
'status' => 0 |
|
|
|
]; |
|
|
|
$course = $personCourseSchedule->where($checkWhere)->find(); |
|
|
|
if ($course) { |
|
|
|
@ -461,6 +463,19 @@ class CourseService extends BaseApiService |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 判断课程类型: |
|
|
|
// - 如果person_type是customer_resource则course_type设为3(等待位) |
|
|
|
// - 如果person_type是customer_resource且schedule_type是1(正式位),则course_type设为2(体验课学员) |
|
|
|
// - 如果person_type是student,则course_type设为1(正式学员) |
|
|
|
$courseType = 1; // 默认正式学员 |
|
|
|
if ($person_type == 'customer_resource') { |
|
|
|
if (($data['schedule_type'] ?? 1) == 2) { |
|
|
|
$courseType = 3; // 等待位 |
|
|
|
} else { |
|
|
|
$courseType = 2; // 体验课学员 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
$insertData = [ |
|
|
|
'student_id' => $student->id, // 正确设置student_id |
|
|
|
'resources_id' => $data['resources_id'], // 正确设置resources_id |
|
|
|
@ -470,7 +485,7 @@ class CourseService extends BaseApiService |
|
|
|
'course_date' => $data['course_date'], |
|
|
|
'time_slot' => $data['time_slot'], |
|
|
|
'schedule_type' => $data['schedule_type'] ?? 1, // 1=正式位, 2=等待位 |
|
|
|
'course_type' => empty($course) ? 2 : 1, // 1=正式学员, 2=体验课学员 |
|
|
|
'course_type' => $courseType, // 根据上面的逻辑设置课程类型 |
|
|
|
'remark' => $data['remark'] ?? '' // 备注 |
|
|
|
]; |
|
|
|
|
|
|
|
@ -484,7 +499,8 @@ class CourseService extends BaseApiService |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public function schedule_list(array $data){ |
|
|
|
public function schedule_list(array $data) |
|
|
|
{ |
|
|
|
$personCourseSchedule = new PersonCourseSchedule(); |
|
|
|
$list = $personCourseSchedule |
|
|
|
->alias('a') |
|
|
|
@ -517,7 +533,7 @@ class CourseService extends BaseApiService |
|
|
|
$record = $personCourseSchedule->where([ |
|
|
|
'schedule_id' => $data['id'], |
|
|
|
'resources_id' => $data['resources_id'], |
|
|
|
|
|
|
|
'student_id' => $data['student_id'] |
|
|
|
])->find(); |
|
|
|
|
|
|
|
if (!$record) { |
|
|
|
@ -528,20 +544,15 @@ class CourseService extends BaseApiService |
|
|
|
if ($record['person_type'] == 'customer_resource') { |
|
|
|
// 如果是客户资源类型,直接删除记录 |
|
|
|
$personCourseSchedule->where([ |
|
|
|
'schedule_id' => $data['id'], |
|
|
|
'id' => $record->id, |
|
|
|
'resources_id' => $data['resources_id'] |
|
|
|
])->delete(); |
|
|
|
|
|
|
|
// 更新课程安排表的可用容量 |
|
|
|
$CourseSchedule = new CourseSchedule(); |
|
|
|
$CourseSchedule->where(['id' => $record['schedule_id']])->inc("available_capacity")->update(); |
|
|
|
|
|
|
|
return success('删除成功'); |
|
|
|
} else if ($record['person_type'] == 'student') { |
|
|
|
// 如果是学生类型,更新状态为2并更新备注 |
|
|
|
$personCourseSchedule->where([ |
|
|
|
'id' => $data['id'], |
|
|
|
'resources_id' => $data['resources_id'] |
|
|
|
'id' => $record->id |
|
|
|
])->update([ |
|
|
|
'status' => 2, |
|
|
|
'remark' => $data['remark'] |
|
|
|
@ -739,9 +750,10 @@ class CourseService extends BaseApiService |
|
|
|
]; |
|
|
|
} |
|
|
|
|
|
|
|
// 获取已安排的学员列表(包括正式学员和等待位) |
|
|
|
// 获取已安排的学员列表(包括正式学员和等待位),只显示未请假的学员(status=0) |
|
|
|
$students = $PersonCourseSchedule |
|
|
|
->where('schedule_id', $scheduleId) |
|
|
|
->where('status', 0) // 只获取未请假的学员 |
|
|
|
->where(function ($query) { |
|
|
|
$query->where('deleted_at', 0)->whereOr('deleted_at', null); |
|
|
|
}) |
|
|
|
|