From adf59861456d41274cd81e07b1447c2844f67f0a Mon Sep 17 00:00:00 2001 From: liutong <836164388@qq.com> Date: Fri, 6 Jun 2025 15:49:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(xy):=20=E5=AD=A6=E7=94=9F=E7=AB=AF?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AD=A6=E7=94=9F=E8=AF=BE=E7=A8=8B=E5=AE=89?= =?UTF-8?q?=E6=8E=92=E8=AF=A6=E6=83=85=E5=92=8C=E8=AF=B7=E5=81=87=E5=8A=9F?= =?UTF-8?q?=E8=83=BD-=20=E6=96=B0=E5=A2=9E=E5=AD=A6=E7=94=9F=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E5=AE=89=E6=8E=92=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=92=8C=E9=A1=B5=E9=9D=A2=20-=20=E6=96=B0=E5=A2=9E=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E8=AF=BE=E7=A8=8B=E5=AE=89=E6=8E=92=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AF=B7=E5=81=87=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2-=20=E4=BC=98=E5=8C=96=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AE=89=E6=8E=92=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=8A=B6=E6=80=81=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E5=8A=9F=E8=83=BD=20-=20=E5=9C=A8=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E8=AF=BE=E7=A8=8B=E5=AE=89=E6=8E=92?= =?UTF-8?q?=E8=A1=A8=E7=9A=84=E4=B8=80=E5=AF=B9=E4=B8=80=E5=85=B3=E8=81=94?= =?UTF-8?q?=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiController/PersonCourseSchedule.php | 46 +++++++ niucloud/app/api/route/route.php | 3 + .../PersonCourseSchedule.php | 7 ++ .../PersonCourseScheduleService.php | 118 ++++++++++++++---- 4 files changed, 152 insertions(+), 22 deletions(-) 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; + } + } }