model = (new ClassGrade()); } //列表 public function list($id,$data) { $order = 'id desc'; $where = []; if ($data['name'] !== '') { $where[] = ['name','like','%'.$data['name'].'%']; } $search_model = $this->model->where('head_coach', $id)->where($where)->order($order) ->with(['classPersonnelRel' => function($query) { $query->with(['student' => function($query) { $query->with(['customerResources' => function($query) { $query->with(['member' => function($query) { $query->select(); }]); }]); },'studentCourses']); },'personnelAll']); $list = $this->pageQuery($search_model); foreach ($list['data'] as &$v){ if (count($v['classPersonnelRel']) > 0) { $now = time(); $count = 0; foreach ($v['classPersonnelRel'] as $item) { if (isset($item['end_date'])) { $endTime = strtotime($item['end_date']); if ($endTime > $now && $endTime <= $now + 7 * 86400) { $count++; } } } $v['end_count'] = $count; } else { $v['end_count'] = 0; } } return $list; } public function info($data) { $search_model = $this->model->where('id', $data) ->with(['classPersonnelRel' => function($query) { $query->with(['student' => function($query) { $query->with(['customerResources' => function($query) { $query->with(['member' => function($query) { $query->select(); }]); }]); },'studentCourses','studentCoursesInfo']); },'personnelAll', 'personnelName']); $list = $search_model->find(); if (count($list['classPersonnelRel']) > 0) { $now = time(); $count = 0; foreach ($list['classPersonnelRel'] as $item) { if (isset($item['end_date'])) { $endTime = strtotime($item['end_date']); if ($endTime > $now && $endTime <= $now + 7 * 86400) { $count++; } } } $v['end_count'] = $count; } else { $v['end_count'] = 0; } return $list; } public function jlStudentsInfo($data) { $Student = new Student(); $res = $Student->where('id',$data)->with(['customerResources' => function($query) { $query->with(['member' => function($query) { $query->select(); }]); }]); $res = $res->find(); return $res; } public function PhysicalTestList($data) { $resource_id = $data; $where = [ 'resource_id' => $resource_id, ]; $physical_test = (new PhysicalTestService())->getList($where); $res['physical_test'] = $physical_test; return $res; } public function GetClassesList() { $res = $this->model->where('status',1)->select()->toArray(); return $res; } public function GetCoursesList() { $Course = new Course(); $res = $Course->select()->toArray(); return $res; } public function GetStudentList() { $Student = new Student(); $res = $Student->where('status', 1)->select()->toArray(); return $res; } public function addPublishJob($data) { $Assignment = new Assignment(); // foreach ($data['student_id'] as $v) { // $data['student_id'] = $v; // $Assignment->create($data); // } $Assignment->create($data); return true; } public function getStatisticsInfo($id) { $CourseSchedule = new CourseSchedule(); $courseNum = $CourseSchedule->where('coach_id', $id)->count(); $classNum = $this->model->where('head_coach', $id)->count(); $studentInfo = $this->model->where('head_coach', $id) ->with(['classPersonnelRel' => function($query) { $query->select(); }]); $studentInfo = $studentInfo->select()->toArray(); $studentNum = 0; foreach ($studentInfo as $v){ $studentNum += count($v['classPersonnelRel']); } // 获取当前时间戳 $now = time(); $firstDayOfMonth = date('Y-m-01', $now); $lastDayOfMonth = date('Y-m-t', $now); $classMonthNum = $this->model->where('head_coach', $id)->whereBetween('created_at', [$firstDayOfMonth, $lastDayOfMonth])->count(); $courseMonthNum = $CourseSchedule->where('coach_id', $id)->whereBetween('course_date', [$firstDayOfMonth, $lastDayOfMonth])->count(); $studentMonthInfo = $this->model->where('head_coach', $id)->whereBetween('created_at', [$firstDayOfMonth, $lastDayOfMonth]) ->with(['classPersonnelRel' => function($query) { $query->select(); }]); $studentMonthInfo = $studentMonthInfo->select()->toArray(); $studentMonthNum = 0; foreach ($studentMonthInfo as $v){ $studentMonthNum += count($v['classPersonnelRel']); } $arr = [ 'courseNum' => $courseNum, 'classNum' => $classNum, 'studentNum' => $studentNum, 'classMonthNum' => $classMonthNum, 'courseMonthNum' => $courseMonthNum, 'studentMonthNum' => $studentMonthNum, ]; return $arr; } }