diff --git a/niucloud/app/api/controller/member/Member.php b/niucloud/app/api/controller/member/Member.php index 437fd58e..953aae5b 100644 --- a/niucloud/app/api/controller/member/Member.php +++ b/niucloud/app/api/controller/member/Member.php @@ -11,10 +11,13 @@ namespace app\api\controller\member; +use app\model\assignment\Assignment; +use app\model\course_schedule\CourseSchedule; use app\service\api\login\AuthService; use app\service\api\member\MemberLogService; use app\service\api\member\MemberService; use core\base\BaseApiController; +use think\facade\Db; use think\Response; class Member extends BaseApiController @@ -137,4 +140,11 @@ class Member extends BaseApiController ]); return success((new MemberService())->update_call_up($data['id'], $data['remarks'])); } + + public function jl_index() + { + return success((new MemberService())->jl_index()); + } + + } diff --git a/niucloud/app/api/route/member.php b/niucloud/app/api/route/member.php index a05e0cb3..540220a7 100644 --- a/niucloud/app/api/route/member.php +++ b/niucloud/app/api/route/member.php @@ -12,6 +12,7 @@ use app\api\middleware\ApiChannel; use app\api\middleware\ApiCheckToken; use app\api\middleware\ApiLog; +use app\api\middleware\ApiPersonnelCheckToken; use think\facade\Route; @@ -105,8 +106,10 @@ Route::group('member', function () { //获取签到设置 Route::get('sign/config', 'member.MemberSign/signConfig'); + Route::get('jl_index', 'member.Member/jl_index'); + })->middleware(ApiChannel::class) - ->middleware(ApiCheckToken::class, true) + ->middleware(ApiPersonnelCheckToken::class, true) ->middleware(ApiLog::class); diff --git a/niucloud/app/service/api/apiService/CourseService.php b/niucloud/app/service/api/apiService/CourseService.php index c7eb1868..197cfa4e 100644 --- a/niucloud/app/service/api/apiService/CourseService.php +++ b/niucloud/app/service/api/apiService/CourseService.php @@ -11,8 +11,10 @@ namespace app\service\api\apiService; +use app\model\campus_person_role\CampusPersonRole; use app\model\course_schedule\CourseSchedule; use app\model\person_course_schedule\PersonCourseSchedule; +use app\model\six_speed\SixSpeed; use app\model\student_course_usage\StudentCourseUsage; use app\model\student\Student; use app\model\assignment\Assignment; @@ -39,13 +41,17 @@ class CourseService extends BaseApiService //课程列表 public function list($id,$data) { + $campus_person_role = new CampusPersonRole(); $where = []; if ($data['schedule_date']) { $where[] = ['course_date','=', $data['schedule_date']]; } + + $campus_id = $campus_person_role->where(['person_id' => $id])->column('campus_id'); + $CourseSchedule = new CourseSchedule(); $search_model = $CourseSchedule - ->where('coach_id', $id) + ->where('campus_id','in',$campus_id) ->where($where) ->with(['course' => function($query) { $query->select(); @@ -69,6 +75,7 @@ class CourseService extends BaseApiService //获取课程详情 public function info($data) { + $school_six_speed = new SixSpeed(); $CourseSchedule = new CourseSchedule(); $search_model = $CourseSchedule ->where('id', $data) @@ -95,14 +102,24 @@ class CourseService extends BaseApiService ->join('school_student_course_usage sscu', 'sc.id = sscu.student_course_id') ->field('sc.student_id,sc.end_date,sc.end_date,sc.start_date,sc.course_id') ->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') + ->field('st.name, sm.headimg as avatar,cr.id as resources_id,cr.source') ->find(); + if($student){ + $v['school_six_speed'] = $school_six_speed->where(['staff_id' => $student['resources_id']])->find(); + + }else{ + $v['school_six_speed'] = []; + } + $v['source'] = get_dict_value("source",$student['source']); $v['name'] = $student['name']; $v['avatar'] = $student['avatar']; } diff --git a/niucloud/app/service/api/member/MemberService.php b/niucloud/app/service/api/member/MemberService.php index 93c27bd3..10421563 100644 --- a/niucloud/app/service/api/member/MemberService.php +++ b/niucloud/app/service/api/member/MemberService.php @@ -11,13 +11,18 @@ namespace app\service\api\member; +use app\model\assignment\Assignment; use app\model\campus\Campus; use app\model\communication_records\CommunicationRecords; +use app\model\course_schedule\CourseSchedule; use app\model\member\Member; +use app\model\person_course_schedule\PersonCourseSchedule; +use app\model\service_logs\ServiceLogs; use app\service\core\member\CoreMemberService; use core\base\BaseApiService; use core\exception\ApiException; use core\util\Barcode; +use think\facade\Db; use think\Model; /** @@ -184,4 +189,58 @@ class MemberService extends BaseApiService $campus = new CommunicationRecords(); return $campus->where('resource_id', $resource_id)->update(['remarks' => $remarks]); } + + public function jl_index(){ + + $schedules = new CourseSchedule(); + $person_course_schedule = new PersonCourseSchedule(); + $Assignment = new Assignment(); + $service_logs = new ServiceLogs(); + $course_list = $schedules + ->alias("a") + ->join(['school_venue' => 'b'],'a.venue_id = b.id','left') + ->join(['school_course' => 'c'],'a.course_id = c.id','left') + ->where([ + ['a.status','<>','completed'], + ['a.course_date', 'between', [date('Y-m-d', strtotime('-6 days')), date('Y-m-d')]], + ]) + ->where("a.coach_id = {$this->member_id} OR education_id = {$this->member_id} OR find_in_set('{$this->member_id}', a.assistant_ids) ") + ->field("a.id,a.status,c.course_name,a.course_date,a.time_slot,b.venue_name as address,a.student_ids") + ->order("time_slot desc") + ->limit(3) + ->select(); + + if($course_list){ + $course_list = $course_list->toArray(); + foreach ($course_list as $k=>$v){ + $course_list[$k]['students_count'] = $person_course_schedule->where(['schedule_id' => $v['id']])->count(); + $course_list[$k]['sign_count'] = $person_course_schedule->where(['schedule_id' => $v['id'],'status' => 2])->count(); + } + } + + //作业列表 + $task_list = $Assignment + ->alias("a") + ->join(['school_class' => 'b'],"a.class_id = b.id","left") + ->join(['school_course' => 'c'],"a.course_id = c.id","left") + ->field("a.id,a.create_time,b.class_name,c.course_name") + ->where([ + 'a.personnel_id' => $this->member_id, + 'a.status' => 3 + ]) + ->limit("5") + ->select(); + + + $service_list = $service_logs + ->alias("a") + ->join(['school_service' => 'b'],"a.service_id = b.id","left") + ->field("a.id,b.service_name,b.description,a.created_at,a.status") + ->where(['staff_id' => $this->member_id]) + ->order("a.created_at desc") + ->limit("5") + ->select(); + + return ['course_list' => $course_list,'task_list' => $task_list,'service_list' => $service_list]; + } }