diff --git a/niucloud/app/api/controller/apiController/PersonCourseSchedule.php b/niucloud/app/api/controller/apiController/PersonCourseSchedule.php index df2731ee..514d3d5a 100644 --- a/niucloud/app/api/controller/apiController/PersonCourseSchedule.php +++ b/niucloud/app/api/controller/apiController/PersonCourseSchedule.php @@ -14,6 +14,7 @@ namespace app\api\controller\apiController; use app\Request; use app\service\api\apiService\PersonCourseScheduleService; use core\base\BaseApiService; +use function DI\string; /** * 学生课程安排-控制器相关接口 @@ -27,16 +28,61 @@ class PersonCourseSchedule extends BaseApiService public function index(Request $request) { $resources_id = $request->param('resources_id', '');//客户资源ID + $status = $request->param('status', '');//状态0待上课1已上课2请假 if (empty($resources_id)) { return fail('缺少参数'); } $where = [ 'resources_id' => $resources_id, + 'status' => $status, ]; $res = (new PersonCourseScheduleService())->getList($where); return success($res); } + + //详情 + public function info(Request $request) + { + $person_course_schedule_id = $request->param('person_course_schedule_id', '');//客户资源ID + + if (empty($person_course_schedule_id)) { + return fail('缺少参数'); + } + + $where = [ + 'person_course_schedule_id' => $person_course_schedule_id, + ]; + + $res = (new PersonCourseScheduleService())->getInfo($where); + if(!$res['code']){ + return fail($res['msg']); + } + + return success($res['data']); + } + + //学生端-学生课程安排-修改请假状态 + public function editStatus(Request $request) + { + $person_course_schedule_id = $request->param('person_course_schedule_id', ''); + $status = $request->param('status', ''); + if (empty($person_course_schedule_id)) { + return fail('缺少参数'); + } + if (!in_array($status, [0, 1, 2])) { + return fail('状态错误'); + } + $data = [ + 'status' => $status + ]; + $res = (new PersonCourseScheduleService())->editStatus($person_course_schedule_id, $data); + if(!$res['code']){ + return fail($res['msg']); + } + return success($res['data']); + + } } diff --git a/niucloud/app/api/route/route.php b/niucloud/app/api/route/route.php index 79593a19..7368d51d 100644 --- a/niucloud/app/api/route/route.php +++ b/niucloud/app/api/route/route.php @@ -363,6 +363,9 @@ Route::group(function () { //学生端-学生课程安排-详情 Route::get('xy/personCourseSchedule/info', 'apiController.PersonCourseSchedule/info'); + //学生端-学生课程安排-修改请假状态 + Route::post('xy/personCourseSchedule/editStatus', 'apiController.PersonCourseSchedule/editStatus'); + diff --git a/niucloud/app/model/person_course_schedule/PersonCourseSchedule.php b/niucloud/app/model/person_course_schedule/PersonCourseSchedule.php index e547d1ae..2280b671 100644 --- a/niucloud/app/model/person_course_schedule/PersonCourseSchedule.php +++ b/niucloud/app/model/person_course_schedule/PersonCourseSchedule.php @@ -11,6 +11,7 @@ namespace app\model\person_course_schedule; +use app\model\course_schedule\CourseSchedule; use app\model\personnel\Personnel; use app\model\student\Student; use core\base\BaseModel; @@ -132,4 +133,10 @@ class PersonCourseSchedule extends BaseModel public function customerResources(){ return $this->hasOne(CustomerResources::class, 'id', 'person_id')->joinType('left')->withField('name,id')->bind(['person_id_name'=>'name']); } + + //一对一关联-课程安排表 + public function courseScheduleHasOne() + { + return $this->hasOne(CourseSchedule::class, 'id', 'schedule_id'); + } } diff --git a/niucloud/app/service/api/apiService/PersonCourseScheduleService.php b/niucloud/app/service/api/apiService/PersonCourseScheduleService.php index 8d5d7538..3e223ddb 100644 --- a/niucloud/app/service/api/apiService/PersonCourseScheduleService.php +++ b/niucloud/app/service/api/apiService/PersonCourseScheduleService.php @@ -41,45 +41,74 @@ class PersonCourseScheduleService extends BaseApiService if (!empty($where['resources_id'])) { $model = $model->where('resources_id', $where['resources_id']); } - $schedule_id = $model->distinct(true)->column('schedule_id');//课程安排id - if(!$schedule_id){ - return []; + + //判断有没有客户上课状态 + if (array_key_exists('status', $where) && $where['status'] != '') { + $model = $model->where('status', $where['status']); } - $data = CourseSchedule::whereIn('id', $schedule_id) - ->order('course_date','desc') + $data = $model->order('course_date','desc') ->with([ - 'venue',//场地 - 'campus',//校区 - 'course',//课程 + //课程安排表 + 'courseScheduleHasOne'=>function($query){ + $query->with([ + 'venue',//场地 + 'campus',//校区 + 'course',//课程 + ]); + }, ]) - ->paginate([ - 'list_rows' => $limit, - 'page' => $page, - ])->toArray(); - + 'list_rows' => $limit, + 'page' => $page, + ])->toArray(); return $data; } //查询详情 - public function getTestInfo(array $where) + public function getInfo(array $where) { - $model = new ChatFriends(); - //判断用没有员工id - if (!empty($where['personnel_id'])) { - $model = $model->where('personnel_id', $where['personnel_id']); - } - if (!empty($where['customer_resources_id'])) { - $model = $model->where('customer_resources_id', $where['customer_resources_id']); + + $res = [ + 'code' => 0, + 'msg' => '暂无数据', + 'data' => [] + ]; + + $model = new PersonCourseSchedule(); + //判断有无人员与课程安排关系表id + if (!empty($where['person_course_schedule_id'])) { + $model = $model->where('id', $where['person_course_schedule_id']); } - $data = $model->find(); + $data = $model + ->with([ + //课程安排表 + 'courseScheduleHasOne' => function ($query) { + $query->with([ + 'venue',//场地 + 'campus',//校区 + 'course',//课程 + 'coach',//教练 + ]); + }, + ]) + ->find(); if ($data) { $data = $data->toArray(); + + if(empty($data['courseScheduleHasOne']['id'])){ + $res = [ + 'code' => 0, + 'msg' => '暂无课程安排数据', + 'data' => [] + ]; + return $res; + } + $res = [ 'code' => 1, 'msg' => '操作成功', @@ -95,4 +124,49 @@ class PersonCourseScheduleService extends BaseApiService return $res; } } + + //修改人员与课程安排关系表 + public function editStatus( $person_course_schedule_id,array $data){ + + $res = [ + 'code' => 0, + 'msg' => '操作失败', + 'data' => [] + ]; + + if(empty($data['updated_at'])){ + $data['updated_at'] = date('Y-m-d H:i:s'); + } + + $model = PersonCourseSchedule::where('id',$person_course_schedule_id)->find(); + if(!$model){ + $res = [ + 'code' => 0, + 'msg' => '未找到课程安排信息', + 'data' => [] + ]; + return $res; + } + + //状态0待上课1已上课2请假 + if(in_array($model['status'],[0,2])){ + $edit = PersonCourseSchedule::where('id',$person_course_schedule_id)->update($data); + + if($edit){ + $res = [ + 'code' => 1, + 'msg' => '操作成功', + 'data' => [] + ]; + } + return $res; + }elseif($model['status'] == 1){ + $res = [ + 'code' => 0, + 'msg' => '该课程已上课无法请假', + 'data' => [] + ]; + return $res; + } + } }