diff --git a/niucloud/app/api/controller/apiController/ClassApi.php b/niucloud/app/api/controller/apiController/ClassApi.php new file mode 100644 index 00000000..83f4ec5b --- /dev/null +++ b/niucloud/app/api/controller/apiController/ClassApi.php @@ -0,0 +1,42 @@ +member_id; + dd(111); + return success((new CourseService())->list($id,$data)); + } + + //获取课程详情 + public function courseInfo(Request $request){ + $data = $this->request->params([ + ["id",0] + ]); + return success('SUCCESS',(new CourseService())->info($data['id'])); + } + +} diff --git a/niucloud/app/api/controller/apiController/Course.php b/niucloud/app/api/controller/apiController/Course.php index 7621e567..a4b7a69d 100644 --- a/niucloud/app/api/controller/apiController/Course.php +++ b/niucloud/app/api/controller/apiController/Course.php @@ -24,7 +24,7 @@ use core\base\BaseApiService; class Course extends BaseApiService { - //客户资源-修改记录列表 + //课程列表 public function courseList(Request $request){ $id = $this->member_id; $data = $this->request->params([ @@ -33,4 +33,42 @@ class Course extends BaseApiService return success((new CourseService())->list($id,$data)); } + //获取课程详情 + public function courseInfo(Request $request){ + $data = $this->request->params([ + ["id",0] + ]); + return success('SUCCESS',(new CourseService())->info($data['id'])); + } + + //获取添加学员列表 + public function addStudentList(Request $request){ + $data = $this->request->params([ + ["id",0] + ]); + return success('SUCCESS',(new CourseService())->StudentList($data['id'])); + } + + //获取添加学员列表 + public function addStudent(Request $request){ + $data = $this->request->params([ + ["student_id",0], + ["schedule_id",0], + ["time_slot",0], + ["resources_id",1], + ["person_id",1], + ["course_date",''] + ]); + return success('SUCCESS',(new CourseService())->addStudent($data)); + } + + //请假 + public function delStudentCourse(Request $request){ + $data = $this->request->params([ + ["student_id",0], + ["course_id",0] + ]); + return success('SUCCESS',(new CourseService())->delStudentCourse($data)); + } + } diff --git a/niucloud/app/api/route/route.php b/niucloud/app/api/route/route.php index 35b6b234..26d47356 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -274,10 +274,16 @@ Route::group(function () { - - + //获取添加学员列表 + Route::get('course/addStudentList', 'apiController.course/addStudentList'); + Route::post('course/addStudent', 'apiController.course/addStudent'); + Route::get('course/delStudentCourse', 'apiController.course/delStudentCourse'); + //班级列表 + Route::get('class/jlClassList', 'apiController.classApi/jlClassList'); //课程列表 Route::get('course/courseList', 'apiController.course/courseList'); + //获取课程详情 + Route::get('course/courseInfo', 'apiController.course/courseInfo'); //教研管理文章列表 Route::get('teachingResearch/list', 'apiController.teachingResearch/list'); //教研管理文章详情 diff --git a/niucloud/app/model/assignment/Assignment.php b/niucloud/app/model/assignment/Assignment.php new file mode 100644 index 00000000..e61c6873 --- /dev/null +++ b/niucloud/app/model/assignment/Assignment.php @@ -0,0 +1,61 @@ +hasOne(Student::class, 'id', 'student_id'); + } + +} diff --git a/niucloud/app/model/customer_resources/CustomerResources.php b/niucloud/app/model/customer_resources/CustomerResources.php index cd2e4f79..c6e16bd1 100644 --- a/niucloud/app/model/customer_resources/CustomerResources.php +++ b/niucloud/app/model/customer_resources/CustomerResources.php @@ -24,6 +24,7 @@ use think\model\relation\HasOne; use app\model\personnel\Personnel; use app\model\campus\Campus; +use app\model\member\Member; /** * 客户资源模型 @@ -127,7 +128,9 @@ class CustomerResources extends BaseModel } - + public function member(){ + return $this->hasOne(Member::class, 'member_id', 'member_id'); + } diff --git a/niucloud/app/service/api/apiService/CourseService.php b/niucloud/app/service/api/apiService/CourseService.php index 72619710..ddefbf3b 100644 --- a/niucloud/app/service/api/apiService/CourseService.php +++ b/niucloud/app/service/api/apiService/CourseService.php @@ -13,7 +13,11 @@ namespace app\service\api\apiService; use app\model\course_schedule\CourseSchedule; use app\model\person_course_schedule\PersonCourseSchedule; +use app\model\student_course_usage\StudentCourseUsage; +use app\model\student\Student; +use app\model\assignment\Assignment; use app\model\course\Course; +use app\model\student_courses\StudentCourses; use core\base\BaseApiService; use think\Model; use think\facade\Db; @@ -31,7 +35,7 @@ class CourseService extends BaseApiService $this->model = new Course(); } - //获取教研管理文章列表 + //课程列表 public function list($id,$data) { $where = []; @@ -62,5 +66,120 @@ class CourseService extends BaseApiService } return $list; } + //获取课程详情 + public function info($data) + { + $CourseSchedule = new CourseSchedule(); + $search_model = $CourseSchedule + ->where('id', $data) + ->with(['course' => function($query) { + $query->select(); + },'venue' => function($query) { + $query->select(); + },'coach' => function($query) { + $query->select(); + }]); + $list = $search_model->find(); + $student = Db::name('person_course_schedule') + ->alias('pcs') + ->where('pcs.schedule_id', $list['id']) + ->join('school_student st', 'pcs.student_id = st.id') + ->join('school_customer_resources cr', 'st.user_id = cr.id') + ->join('school_member sm', 'cr.member_id = sm.member_id') + ->field('st.name, sm.headimg as avatar') + ->select(); + $list['student'] = $student; + $student_courses = Db::name('student_courses') + ->alias('sc') + ->where('sc.course_id', $list['id']) + ->join('school_student_course_usage sscu', 'sc.id = sscu.student_course_id') + ->field('sc.student_id,sc.end_date') + ->select()->toArray(); + foreach ($student_courses as &$v){ + $student = Db::name('student') + ->alias('st') + ->where('st.id', $v['student_id']) + ->join('school_customer_resources cr', 'st.user_id = cr.id') + ->join('school_member sm', 'cr.member_id = sm.member_id') + ->field('st.name, sm.headimg as avatar') + ->find(); + $v['name'] = $student['name']; + $v['avatar'] = $student['avatar']; + } + $list['student_courses'] = $student_courses; + + $Assignment = new Assignment(); + $search_model = $Assignment->where('course_id', $data) + ->with(['student' => function($query) { + $query->with(['customerResources' => function($query) { + $query->with(['member' => function($query) { + $query->select(); + }]); + }]); + }]); + $search_model_res = $search_model->select()->toArray(); + $groupedByStatus1 = []; + $groupedByStatus2 = []; + $groupedByStatus3 = []; + + foreach ($search_model_res as $item) { + if ($item['status'] == 1){ + array_push($groupedByStatus1,$item); + } else if ($item['status'] == 2){ + array_push($groupedByStatus2,$item); + } else if ($item['status'] == 3){ + array_push($groupedByStatus3,$item); + } + } + $list['groupedByStatus1'] = $groupedByStatus1; + $list['groupedByStatus2'] = $groupedByStatus2; + $list['groupedByStatus3'] = $groupedByStatus3; + return $list; + } + + + //获取添加学员列表 + public function StudentList($id) + { + $StudentCourses = new StudentCourses(); + $PersonCourseSchedule = new PersonCourseSchedule(); + $student_arr = $PersonCourseSchedule->where('schedule_id',$id)->column('student_id'); + + $query = $StudentCourses->where('course_id', $id); + if (!empty($student_arr)) { + $query->whereNotIn('student_id', $student_arr); + } + $res = $query->field('student_id as value')->select()->toArray(); + $Student = new Student(); + foreach ($res as $k => &$v) { + $StudentName = $Student->where('id',$v['value'])->value('name'); + $v['text'] = $StudentName; + } + return $res; + } + + public function addStudent($data) + { + $PersonCourseSchedule = new PersonCourseSchedule(); + $res = $PersonCourseSchedule->create($data); + return $res; + } + + + public function delStudentCourse($data) + { + $StudentCourseUsage = new StudentCourseUsage(); + $StudentCourses = new StudentCourses(); + $StudentCourses_id = $StudentCourses->where('student_id',$data['student_id'])->where('course_id',$data['course_id'])->value('id'); + $PersonCourseSchedule_id = $StudentCourseUsage->where('student_course_id',$StudentCourses_id)->value('id'); + if ($PersonCourseSchedule_id) { + $StudentCourseUsage->where('student_course_id',$StudentCourses_id)->delete(); + return true; + } else { + return false; + } + } + + }