Browse Source

feat(xy): 学生端新增学生课程安排详情和请假功能- 新增学生课程安排详情接口和页面

- 新增学生课程安排修改请假状态接口和页面- 优化学生课程安排列表接口,增加状态筛选功能
- 在模型中添加课程安排表的一对一关联关系
master
liutong 10 months ago
parent
commit
adf5986145
  1. 46
      niucloud/app/api/controller/apiController/PersonCourseSchedule.php
  2. 3
      niucloud/app/api/route/route.php
  3. 7
      niucloud/app/model/person_course_schedule/PersonCourseSchedule.php
  4. 106
      niucloud/app/service/api/apiService/PersonCourseScheduleService.php

46
niucloud/app/api/controller/apiController/PersonCourseSchedule.php

@ -14,6 +14,7 @@ namespace app\api\controller\apiController;
use app\Request; use app\Request;
use app\service\api\apiService\PersonCourseScheduleService; use app\service\api\apiService\PersonCourseScheduleService;
use core\base\BaseApiService; use core\base\BaseApiService;
use function DI\string;
/** /**
* 学生课程安排-控制器相关接口 * 学生课程安排-控制器相关接口
@ -27,16 +28,61 @@ class PersonCourseSchedule extends BaseApiService
public function index(Request $request) public function index(Request $request)
{ {
$resources_id = $request->param('resources_id', '');//客户资源ID $resources_id = $request->param('resources_id', '');//客户资源ID
$status = $request->param('status', '');//状态0待上课1已上课2请假
if (empty($resources_id)) { if (empty($resources_id)) {
return fail('缺少参数'); return fail('缺少参数');
} }
$where = [ $where = [
'resources_id' => $resources_id, 'resources_id' => $resources_id,
'status' => $status,
]; ];
$res = (new PersonCourseScheduleService())->getList($where); $res = (new PersonCourseScheduleService())->getList($where);
return success($res); 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']);
}
} }

3
niucloud/app/api/route/route.php

@ -363,6 +363,9 @@ Route::group(function () {
//学生端-学生课程安排-详情 //学生端-学生课程安排-详情
Route::get('xy/personCourseSchedule/info', 'apiController.PersonCourseSchedule/info'); Route::get('xy/personCourseSchedule/info', 'apiController.PersonCourseSchedule/info');
//学生端-学生课程安排-修改请假状态
Route::post('xy/personCourseSchedule/editStatus', 'apiController.PersonCourseSchedule/editStatus');

7
niucloud/app/model/person_course_schedule/PersonCourseSchedule.php

@ -11,6 +11,7 @@
namespace app\model\person_course_schedule; namespace app\model\person_course_schedule;
use app\model\course_schedule\CourseSchedule;
use app\model\personnel\Personnel; use app\model\personnel\Personnel;
use app\model\student\Student; use app\model\student\Student;
use core\base\BaseModel; use core\base\BaseModel;
@ -132,4 +133,10 @@ class PersonCourseSchedule extends BaseModel
public function customerResources(){ public function customerResources(){
return $this->hasOne(CustomerResources::class, 'id', 'person_id')->joinType('left')->withField('name,id')->bind(['person_id_name'=>'name']); 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');
}
} }

106
niucloud/app/service/api/apiService/PersonCourseScheduleService.php

@ -41,45 +41,74 @@ class PersonCourseScheduleService extends BaseApiService
if (!empty($where['resources_id'])) { if (!empty($where['resources_id'])) {
$model = $model->where('resources_id', $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) $data = $model->order('course_date','desc')
->order('course_date','desc')
->with([ ->with([
//课程安排表
'courseScheduleHasOne'=>function($query){
$query->with([
'venue',//场地 'venue',//场地
'campus',//校区 'campus',//校区
'course',//课程 'course',//课程
]);
},
]) ])
->paginate([ ->paginate([
'list_rows' => $limit, 'list_rows' => $limit,
'page' => $page, 'page' => $page,
])->toArray(); ])->toArray();
return $data; return $data;
} }
//查询详情 //查询详情
public function getTestInfo(array $where) public function getInfo(array $where)
{ {
$model = new ChatFriends();
//判断用没有员工id $res = [
if (!empty($where['personnel_id'])) { 'code' => 0,
$model = $model->where('personnel_id', $where['personnel_id']); 'msg' => '暂无数据',
} 'data' => []
if (!empty($where['customer_resources_id'])) { ];
$model = $model->where('customer_resources_id', $where['customer_resources_id']);
$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) { if ($data) {
$data = $data->toArray(); $data = $data->toArray();
if(empty($data['courseScheduleHasOne']['id'])){
$res = [
'code' => 0,
'msg' => '暂无课程安排数据',
'data' => []
];
return $res;
}
$res = [ $res = [
'code' => 1, 'code' => 1,
'msg' => '操作成功', 'msg' => '操作成功',
@ -95,4 +124,49 @@ class PersonCourseScheduleService extends BaseApiService
return $res; 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;
}
}
} }

Loading…
Cancel
Save