diff --git a/admin/src/app/api/assignment.ts b/admin/src/app/api/assignment.ts new file mode 100644 index 00000000..85d478cf --- /dev/null +++ b/admin/src/app/api/assignment.ts @@ -0,0 +1,62 @@ +import request from '@/utils/request' + + + +// USER_CODE_BEGIN -- assignment +/** + * 获取作业管理列表 + * @param params + * @returns + */ +export function getAssignmentList(params: Record) { + return request.get(`assignment/assignment`, {params}) +} + +/** + * 获取作业管理详情 + * @param id 作业管理id + * @returns + */ +export function getAssignmentInfo(id: number) { + return request.get(`assignment/assignment/${id}`); +} + +/** + * 添加作业管理 + * @param params + * @returns + */ +export function addAssignment(params: Record) { + return request.post('assignment/assignment', params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 编辑作业管理 + * @param id + * @param params + * @returns + */ +export function editAssignment(params: Record) { + return request.put(`assignment/assignment/${params.id}`, params, { showErrorMessage: true, showSuccessMessage: true }) +} + +/** + * 删除作业管理 + * @param id + * @returns + */ +export function deleteAssignment(id: number) { + return request.delete(`assignment/assignment/${id}`, { showErrorMessage: true, showSuccessMessage: true }) +} + +export function getWithClassGradeList(params: Record){ + return request.get('assignment/class_grade_all', {params}) +}export function getWithCourseList(params: Record){ + return request.get('assignment/course_all', {params}) +}export function getWithPersonnelList(params: Record){ + return request.get('assignment/personnel_all', {params}) +}export function getWithStudentList(params: Record){ + return request.get('assignment/student_all', {params}) +} + +// USER_CODE_END -- assignment diff --git a/admin/src/app/lang/zh-cn/assignment.assignment.json b/admin/src/app/lang/zh-cn/assignment.assignment.json new file mode 100644 index 00000000..a6d03ec6 --- /dev/null +++ b/admin/src/app/lang/zh-cn/assignment.assignment.json @@ -0,0 +1,23 @@ +{ + "classId":"班级", + "classIdPlaceholder":"全部", + "courseId":"课程", + "courseIdPlaceholder":"全部", + "personnelId":"老师", + "personnelIdPlaceholder":"全部", + "studentId":"学员", + "studentIdPlaceholder":"全部", + "description":"作业描述", + "descriptionPlaceholder":"请输入作业描述", + "contentType":"作业类型", + "contentTypePlaceholder":"请输入作业类型", + "contentText":"学生提交的作业内容", + "contentTextPlaceholder":"请输入学生提交的作业内容", + "status":"状态", + "statusPlaceholder":"请输入状态", + "addAssignment":"添加作业管理", + "updateAssignment":"编辑作业管理", + "assignmentDeleteTips":"确定要删除该数据吗?", + "startDate":"请选择开始时间", + "endDate":"请选择结束时间" +} \ No newline at end of file diff --git a/admin/src/app/views/assignment/assignment.vue b/admin/src/app/views/assignment/assignment.vue new file mode 100644 index 00000000..e8f83100 --- /dev/null +++ b/admin/src/app/views/assignment/assignment.vue @@ -0,0 +1,274 @@ + + + + + diff --git a/admin/src/app/views/assignment/components/assignment-edit.vue b/admin/src/app/views/assignment/components/assignment-edit.vue new file mode 100644 index 00000000..a652f783 --- /dev/null +++ b/admin/src/app/views/assignment/components/assignment-edit.vue @@ -0,0 +1,291 @@ + + + + + + diff --git a/niucloud/app/.idea/.gitignore b/niucloud/app/.idea/.gitignore new file mode 100644 index 00000000..35410cac --- /dev/null +++ b/niucloud/app/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/niucloud/app/.idea/app.iml b/niucloud/app/.idea/app.iml new file mode 100644 index 00000000..c956989b --- /dev/null +++ b/niucloud/app/.idea/app.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/niucloud/app/.idea/modules.xml b/niucloud/app/.idea/modules.xml new file mode 100644 index 00000000..8c4259da --- /dev/null +++ b/niucloud/app/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/niucloud/app/.idea/php.xml b/niucloud/app/.idea/php.xml new file mode 100644 index 00000000..29059d00 --- /dev/null +++ b/niucloud/app/.idea/php.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/niucloud/app/.idea/vcs.xml b/niucloud/app/.idea/vcs.xml new file mode 100644 index 00000000..b2bdec2d --- /dev/null +++ b/niucloud/app/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/niucloud/app/adminapi/controller/assignment/Assignment.php b/niucloud/app/adminapi/controller/assignment/Assignment.php new file mode 100644 index 00000000..4b980b29 --- /dev/null +++ b/niucloud/app/adminapi/controller/assignment/Assignment.php @@ -0,0 +1,119 @@ +request->params([ + ["class_id",""], + ["course_id",""], + ["personnel_id",""], + ["student_id",""], + ["status",""] + ]); + return success((new AssignmentService())->getPage($data)); + } + + /** + * 作业管理详情 + * @param int $id + * @return \think\Response + */ + public function info(int $id){ + return success((new AssignmentService())->getInfo($id)); + } + + /** + * 添加作业管理 + * @return \think\Response + */ + public function add(){ + $data = $this->request->params([ + ["class_id",0], + ["course_id",0], + ["personnel_id",0], + ["student_id",""], + ["description",""], + ["content_type",""], + ["content_text",""], + ["status",0], + + ]); + $this->validate($data, 'app\validate\assignment\Assignment.add'); + $id = (new AssignmentService())->add($data); + return success('ADD_SUCCESS', ['id' => $id]); + } + + /** + * 作业管理编辑 + * @param $id 作业管理id + * @return \think\Response + */ + public function edit(int $id){ + $data = $this->request->params([ + ["class_id",0], + ["course_id",0], + ["personnel_id",0], + ["student_id",""], + ["description",""], + ["content_type",""], + ["content_text",""], + ["status",0], + + ]); + $this->validate($data, 'app\validate\assignment\Assignment.edit'); + (new AssignmentService())->edit($id, $data); + return success('EDIT_SUCCESS'); + } + + /** + * 作业管理删除 + * @param $id 作业管理id + * @return \think\Response + */ + public function del(int $id){ + (new AssignmentService())->del($id); + return success('DELETE_SUCCESS'); + } + + + public function getClassGradeAll(){ + return success(( new AssignmentService())->getClassGradeAll()); + } + + public function getCourseAll(){ + return success(( new AssignmentService())->getCourseAll()); + } + + public function getPersonnelAll(){ + return success(( new AssignmentService())->getPersonnelAll()); + } + + public function getStudentAll(){ + return success(( new AssignmentService())->getStudentAll()); + } + +} diff --git a/niucloud/app/adminapi/route/assignment.php b/niucloud/app/adminapi/route/assignment.php new file mode 100644 index 00000000..448d3e6d --- /dev/null +++ b/niucloud/app/adminapi/route/assignment.php @@ -0,0 +1,46 @@ +middleware([ + AdminCheckToken::class, + AdminCheckRole::class, + AdminLog::class +]); +// USER_CODE_END -- assignment diff --git a/niucloud/app/api/controller/apiController/Attendance.php b/niucloud/app/api/controller/apiController/Attendance.php index 704874cf..c5824fa2 100644 --- a/niucloud/app/api/controller/apiController/Attendance.php +++ b/niucloud/app/api/controller/apiController/Attendance.php @@ -16,6 +16,7 @@ use app\service\admin\campus\CampusService; use app\service\api\apiService\AttendanceService; use app\service\api\apiService\CommonService; use core\base\BaseApiService; +use think\facade\Db; /** * 员工考勤控制器相关接口 @@ -42,9 +43,12 @@ class Attendance extends BaseApiService //员工考勤-编辑(员工打卡/请假/签退) public function edit(Request $request){ + $id =$request->param('id','');//考勤表id $campus_id =$request->param('campus_id','');//校区ID $staff_id =$this->member_id;//人员ID $attendance_date =$request->param('attendance_date','');//考勤日期 + $leave_start_time =$request->param('leave_start_time','');//请假开始时间 + $leave_end_time =$request->param('leave_end_time','');//请假结束时间 $remarks =$request->param('remarks','');//备注 $status =$request->param('status','');//考勤状态: present-出勤, absent-缺勤, late-迟到, leave_early-早退,leave-请假,sign_out-签退 $longitude = $request->param('longitude','');//经度 @@ -56,106 +60,169 @@ class Attendance extends BaseApiService return fail('缺少定位坐标'); } - if(empty($campus_id) || empty($attendance_date) || empty($status)){ + if(empty($attendance_date) || empty($status)){ return fail('缺少参数'); } + if(!in_array($status,['present','absent','late','leave_early','leave','sign_out'])){ return fail('状态类型不正确'); } - //获取校区的经纬度坐标 - $campus_data = (new CampusService)->getInfo($campus_id);//查校区详情 - $campus_lng = $campus_data['campus_coordinates']['lng'];//校区经度坐标 - $campus_lat = $campus_data['campus_coordinates']['lat'];//校区纬度坐标 - $radius = 1500.0;//打卡半径(米) //判断签到+签退时是否超出打卡范围 - if(in_array($status,['present','sign_out'])){ - $isInCheckRange = (new CommonService())->isInCheckRange((float)$campus_lng, (float)$campus_lat, (float)$longitude, (float)$latitude, (float)$radius); + if(in_array($status,['present','sign_out']) && !empty($campus_id)){ + //获取校区的经纬度坐标 + $campus_data = (new CampusService)->getInfo($campus_id);//查校区详情 + $campus_lng = $campus_data['campus_coordinates']['lng'];//校区经度坐标 + $campus_lat = $campus_data['campus_coordinates']['lat'];//校区纬度坐标 + $radius = 1500.0;//打卡半径(米) + + $isInCheckRange = (new CommonService())->isInCheckRange((float)$campus_lng, (float)$campus_lat, (float)$longitude, (float)$latitude, (float)$radius);//判断是否在打卡范围内 if(!$isInCheckRange){ return fail("超出打卡范围,规定打卡范围({$radius}米)"); } } - - //查询数据是否存在,一天一个校区同一个人只能产生一条数据 + //查询数据是否存在,一天一个校区同一个人可能有多条打卡记录数据,只要有1条打卡没签退就不能新增新的打卡记录 $date_h = date('H:i:s'); $obj = (new AttendanceService()); $info = $obj->info([ + 'id'=>$id, 'campus_id'=>$campus_id, 'staff_id'=>$staff_id, 'attendance_date'=>$attendance_date, ])['data']; - //如果是签退的时候就是修改 - if($status == 'sign_out'){ - if (($info['status'] ?? '') != 'present') { - return fail('未查询到今日签到信息,无法签退'); + //判断是打卡 + if($status == 'present'){ + $model = new \app\model\attendance\Attendance(); + $model = $model->where('staff_id',$staff_id)->where('status','present'); + if($campus_id === '0' || $campus_id === 0 || !empty($campus_id)){ + $model = $model->where('campus_id',$campus_id); + } + if(!empty($attendance_date)){ + $model = $model->where('attendance_date',$attendance_date); } - //签退的情况 - $where = [ - 'id'=>$info['id'] - ]; - $data = [ - 'check_out_time'=>$date_h,//签退时间 - 'coordinate'=>$coordinate,//坐标|经度,纬度 - ]; - //执行修改操作 - $res = $obj->editData($where,$data); - }else{ - //如果是签到/请假 - $data = [ - 'campus_id'=>$campus_id,//校区ID - 'staff_id'=>$staff_id,//人员ID - 'attendance_date'=>$attendance_date,//考勤日期 - 'coordinate'=>$coordinate,//坐标|经度,纬度 - 'status'=>$status,//考勤状态 - ]; - //如果是签到的情况 - if($info){ - if($status == 'present' && $info['status'] == 'present'){ - //更新签到数据 - //执行修改操作 - $edit_data = [ - 'check_in_time'=>$date_h,//签到时间 - 'coordinate'=>$coordinate,//坐标|经度,纬度 - 'status'=>$status//考勤状态 - ]; - $res = $obj->editData(['id'=>$info['id']],$edit_data); - if(!$res['code']){ - return fail($res['msg']); - } - return success($res['data']); + // 获取今天所有考勤记录 + $records = $model->order('id', 'desc')->select()->toArray(); + // Step 1: 检查是否有未签退的记录 + foreach ($records as $record) { + if (empty($record['check_out_time'])) { + return fail('今日有签到记录未签退,请先签退后再试'); } - $status_arr = (new \app\model\attendance\Attendance())::STATUS; - $status_name = $status_arr[$info['status']] ?? ''; - if(!$status_name){ - $status_name = '考勤'; - } - return fail("今日已{$status_name}重复操作"); - }else{ - $data['check_in_time'] = $date_h;//签到时间 - if($remarks){ - $data['remarks'] = $remarks; + } + + //获取今天请假的数据(leave_end_time>当前时间的 && attendance_date=当前日期的)请假数据,更新leave_end_time=当前时间 + //请假的id + $leave_id_arr = new \app\model\attendance\Attendance(); + if($campus_id === '0' || $campus_id === 0 || !empty($campus_id)){ + $leave_id_arr = $leave_id_arr->where('campus_id',$campus_id); + } + $leave_id_arr = $leave_id_arr->where('staff_id',$staff_id) + ->where('status','leave') + ->where('attendance_date',$attendance_date) + ->where('leave_end_time','>=',$date_h)->column('id'); + + Db::startTrans(); + try { + if($leave_id_arr){ + $update = \app\model\attendance\Attendance::whereIn('id',$leave_id_arr)->update([ + 'leave_end_time'=>$date_h, + 'updated_at'=>date('Y-m-d H:i:s'), + ]); + if(!$update){ +// Db::rollback(); +// return fail('更新请假数据失败'); + } } - //执行创建操作 + + //插入打卡记录 + $data = [ + 'campus_id'=>$campus_id ?? 0,// + 'staff_id'=>$staff_id,// + 'attendance_date'=>$attendance_date,// + 'check_in_time'=>$date_h,// + 'status'=>$status,// + 'coordinate'=>$coordinate,//坐标|经度,纬度 + 'remarks'=>$remarks,// + ]; $res = $obj->addData($data); + Db::commit(); if(!$res['code']){ + Db::rollback(); return fail($res['msg']); } return success($res['data']); + }catch (\Exception $e){ + Db::rollback(); + dd(123123,$e->getMessage()); + return fail('操作失败'); + } + } + //判断是签退 + if($status == 'sign_out'){ + if(!empty($id)){ + $info = \app\model\attendance\Attendance::where('id',$id)->find(); + }else{ + $info = \app\model\attendance\Attendance::where('attendance_date',$attendance_date) + ->where('check_out_time',null) + ->where('status','present') + ->where('staff_id',$staff_id); + if($campus_id){ + $info = $info->where('campus_id',$campus_id); + } + $info = $info->find(); } + if(!$info){ + return fail('为找到签到记录'); + } + //签退的情况 + $where = [ + 'id'=>$info['id'] + ]; + $data = [ + 'check_out_time'=>$date_h,//签退时间 + 'coordinate'=>$coordinate,//坐标|经度,纬度 + 'remarks' => $remarks,// + ]; + //执行修改操作 + $res = $obj->editData($where,$data); + if(!$res['code']){ + return fail($res['msg']); + } + return success($res['data']); + } + //判断是请假 + if($status == 'leave'){ + //判断今日是否存在打卡记录,判断今日的打开记录是否已经签退,是则不可以再请假了 + if($info && $info['status'] == 'present' && $info['attendance_date'] == $attendance_date && !empty($info['check_out_time'])){ + return fail('今日已签退,无法进行请假操作'); + } + $data = [ + 'campus_id' => $campus_id ?? 0, + 'staff_id' => $staff_id, + 'attendance_date' => $attendance_date, + 'leave_start_time' => $leave_start_time, + 'leave_end_time' => $leave_end_time, + 'status' => $status, + 'coordinate' => $coordinate, + 'remarks' => $remarks, + ]; - - + //创建请假记录 + $res = $obj->addData($data); + if(!$res['code']){ + return fail($res['msg']); + } + return success($res['data']); } } } diff --git a/niucloud/app/api/controller/apiController/CustomerResources.php b/niucloud/app/api/controller/apiController/CustomerResources.php index 7f7072fe..4f8afca8 100644 --- a/niucloud/app/api/controller/apiController/CustomerResources.php +++ b/niucloud/app/api/controller/apiController/CustomerResources.php @@ -28,12 +28,14 @@ class CustomerResources extends BaseApiService public function getAll(Request $request){ $name = $request->param('name', '');//客户姓名 - if(empty($name)){ - return fail("缺少客户姓名"); + $phone_number = $request->param('phone_number', '');//客户手机号 + if(empty($name) && empty($phone_number)){ + return fail("缺少查询参数"); } $where = [ - 'name'=>$name + 'name'=>$name, + 'phone_number'=>$phone_number ]; $res = (new CustomerResourcesService())->getAll($where); if(!$res['code']){ @@ -93,6 +95,11 @@ class CustomerResources extends BaseApiService return fail("缺少必填项{$k}"); } } + + if (strlen($customer_resources_data['phone_number']) > 12) { + return fail("联系电话不能超过12位"); + } + foreach($six_speed_data as $k=>$v){ if(!isset($v) || $v === ''){ return fail("缺少必填项{$k}"); @@ -166,7 +173,7 @@ class CustomerResources extends BaseApiService "preferred_class_time" => $optional_class_time,//可选上课时间 "distance" => $request->param('distance', ''),//距离 "communication" => $request->param('communication', ''),//沟通备注 - "staff_id" => $request->param('staff_id', ''),//人员ID + "staff_id" => $request->param('staff_id', ''),//人员ID//如果没有就是当前登录人的员工id "first_visit_status" => $request->param('first_visit_status', null),//一访情况 "second_visit_status" => $request->param('second_visit_status', null),//二访情况 @@ -177,6 +184,16 @@ class CustomerResources extends BaseApiService return fail("缺少必填项{$k}"); } } + + if (strlen($customer_resources_data['phone_number']) > 12) { + return fail("联系电话不能超过12位"); + } + + //如果六要素人员id没有就是当前登录人的员工id + if(empty($six_speed_data['staff_id'])){ + $six_speed_data['staff_id'] = $this->member_id; + } + foreach($six_speed_data as $k=>$v){ // 排除 first_visit_status 和 second_visit_status 的必填校验 if (in_array($k, ['first_visit_status', 'second_visit_status'])) { diff --git a/niucloud/app/model/assignment/Assignment.php b/niucloud/app/model/assignment/Assignment.php index facc8ebc..4a87708d 100644 --- a/niucloud/app/model/assignment/Assignment.php +++ b/niucloud/app/model/assignment/Assignment.php @@ -15,12 +15,19 @@ use core\base\BaseModel; use think\model\concern\SoftDelete; use think\model\relation\HasMany; use think\model\relation\HasOne; + +use app\model\class_grade\ClassGrade; + +use app\model\course\Course; + +use app\model\personnel\Personnel; + use app\model\student\Student; -use app\model\customer_resources\CustomerResources; + /** - * 校区模型 - * Class Campus - * @package app\model\campus + * 作业管理模型 + * Class Assignment + * @package app\model\assignment */ class Assignment extends BaseModel { @@ -46,16 +53,90 @@ class Assignment extends BaseModel protected $deleteTime = 'deleted_at'; /** - * 定义软删除字段的默认值. - * @var int - */ + * 定义软删除字段的默认值. + * @var int + */ protected $defaultSoftDelete = 0; + /** + * 搜索器:作业管理班级 + * @param $value + * @param $data + */ + public function searchClassIdAttr($query, $value, $data) + { + if ($value) { + $query->where("class_id", $value); + } + } + + /** + * 搜索器:作业管理课程 + * @param $value + * @param $data + */ + public function searchCourseIdAttr($query, $value, $data) + { + if ($value) { + $query->where("course_id", $value); + } + } + + /** + * 搜索器:作业管理老师 + * @param $value + * @param $data + */ + public function searchPersonnelIdAttr($query, $value, $data) + { + if ($value) { + $query->where("personnel_id", $value); + } + } + + /** + * 搜索器:作业管理学员 + * @param $value + * @param $data + */ + public function searchStudentIdAttr($query, $value, $data) + { + if ($value) { + $query->where("student_id", $value); + } + } + + /** + * 搜索器:作业管理状态 + * @param $value + * @param $data + */ + public function searchStatusAttr($query, $value, $data) + { + if ($value) { + $query->where("status", $value); + } + } + + + + + + public function classGrade(){ + return $this->hasOne(ClassGrade::class, 'id', 'class_id')->joinType('left')->withField('class_name,id')->bind(['class_id_name'=>'class_name']); + } - public function student() - { - return $this->hasOne(Student::class, 'id', 'student_id'); + public function course(){ + return $this->hasOne(Course::class, 'id', 'course_id')->joinType('left')->withField('course_name,id')->bind(['course_id_name'=>'course_name']); + } + + public function personnel(){ + return $this->hasOne(Personnel::class, 'id', 'personnel_id')->joinType('left')->withField('name,id')->bind(['personnel_id_name'=>'name']); + } + + public function student(){ + return $this->hasOne(Student::class, 'id', 'student_id')->joinType('left')->withField('name,id')->bind(['student_id_name'=>'name']); } } diff --git a/niucloud/app/model/customer_resources/CustomerResources.php b/niucloud/app/model/customer_resources/CustomerResources.php index ae42a928..30a93c58 100644 --- a/niucloud/app/model/customer_resources/CustomerResources.php +++ b/niucloud/app/model/customer_resources/CustomerResources.php @@ -341,6 +341,33 @@ class CustomerResources extends BaseModel } } + /** + * 获取决策人类型名称 + * @param $value + * @param $data + * @return array|mixed|string + */ + public function getDecisionMakerNameAttr($value, $data) + { + $key = 'decision_maker'; + $val = (String)$data['decision_maker'] ?? ''; + if ((!empty($val) || isset($val)) && $val !== '') { + $dict = Dict::where('key',$key)->find(); + $dictionary = $dict['dictionary'] ?? []; + // 查找匹配的 name + $res = $val; + foreach ($dictionary as $item) { + if ($item['value'] == $val) { + $res = $item['name']; + break; + } + } + return $res; + } else { + return $val; + } + } + } diff --git a/niucloud/app/service/admin/assignment/AssignmentService.php b/niucloud/app/service/admin/assignment/AssignmentService.php new file mode 100644 index 00000000..4ae7b748 --- /dev/null +++ b/niucloud/app/service/admin/assignment/AssignmentService.php @@ -0,0 +1,123 @@ +model = new Assignment(); + } + + /** + * 获取作业管理列表 + * @param array $where + * @return array + */ + public function getPage(array $where = []) + { + $field = 'id,type,class_id,course_id,personnel_id,student_id,description,content_type,content_text,status,create_time,update_time,deleted_at'; + $order = 'id desc'; + + $search_model = $this->model->withSearch(["class_id","course_id","personnel_id","student_id","status"], $where)->with(['classGrade','course','personnel','student'])->field($field)->order($order); + $list = $this->pageQuery($search_model); + return $list; + } + + /** + * 获取作业管理信息 + * @param int $id + * @return array + */ + public function getInfo(int $id) + { + $field = 'id,type,class_id,course_id,personnel_id,student_id,description,content_type,content_text,status,create_time,update_time,deleted_at'; + + $info = $this->model->field($field)->where([['id', "=", $id]])->with(['classGrade','course','personnel','student'])->findOrEmpty()->toArray(); + return $info; + } + + /** + * 添加作业管理 + * @param array $data + * @return mixed + */ + public function add(array $data) + { + $res = $this->model->create($data); + return $res->id; + + } + + /** + * 作业管理编辑 + * @param int $id + * @param array $data + * @return bool + */ + public function edit(int $id, array $data) + { + + $this->model->where([['id', '=', $id]])->update($data); + return true; + } + + /** + * 删除作业管理 + * @param int $id + * @return bool + */ + public function del(int $id) + { + $model = $this->model->where([['id', '=', $id]])->find(); + $res = $model->delete(); + return $res; + } + + + public function getClassGradeAll(){ + $classGradeModel = new ClassGrade(); + return $classGradeModel->select()->toArray(); + } + + public function getCourseAll(){ + $courseModel = new Course(); + return $courseModel->select()->toArray(); + } + + public function getPersonnelAll(){ + $personnelModel = new Personnel(); + return $personnelModel->select()->toArray(); + } + + public function getStudentAll(){ + $studentModel = new Student(); + return $studentModel->select()->toArray(); + } + + +} diff --git a/niucloud/app/service/api/apiService/AttendanceService.php b/niucloud/app/service/api/apiService/AttendanceService.php index 1eb2a255..883168af 100644 --- a/niucloud/app/service/api/apiService/AttendanceService.php +++ b/niucloud/app/service/api/apiService/AttendanceService.php @@ -91,6 +91,18 @@ class AttendanceService extends BaseApiService if (!empty($where['attendance_date'])) { $model = $model->where('attendance_date', $where['attendance_date']); } + if(!empty($where['status'])){ + $model = $model->where('status', $where['status']); + } + if(!empty($where['check_out_time'])){ + if($where['check_out_time'] === 'null'){ + $where['check_out_time'] = null; + $model = $model->where('check_out_time', null); + }else{ + $model = $model->whereIn('check_out_time', $where['check_out_time']); + } + + } $data = $model->field($field)->find(); if ($data) { $res = [ diff --git a/niucloud/app/service/api/apiService/CustomerResourcesService.php b/niucloud/app/service/api/apiService/CustomerResourcesService.php index 3a4ea94d..ec8855cb 100644 --- a/niucloud/app/service/api/apiService/CustomerResourcesService.php +++ b/niucloud/app/service/api/apiService/CustomerResourcesService.php @@ -87,12 +87,15 @@ class CustomerResourcesService extends BaseApiService if (!empty($where['name'])) { $model = $model->where('name', 'like', "%{$where['name']}%"); } + if(!empty($where['phone_number'])){ + $model = $model->where('phone_number', $where['phone_number']); + } $data = $model->field($field) ->with([ 'resourceSharingHasMany' ]) ->append([ - 'initial_intent_name' + 'initial_intent_name', ]) ->select()->toArray(); if (!$data) { diff --git a/niucloud/app/validate/assignment/Assignment.php b/niucloud/app/validate/assignment/Assignment.php new file mode 100644 index 00000000..23e612ce --- /dev/null +++ b/niucloud/app/validate/assignment/Assignment.php @@ -0,0 +1,43 @@ + 'require', + 'course_id' => 'require', + 'personnel_id' => 'require', + 'student_id' => 'require', + 'content_type' => 'require', + ]; + + protected $message = [ + 'class_id.require' => ['common_validate.require', ['class_id']], + 'course_id.require' => ['common_validate.require', ['course_id']], + 'personnel_id.require' => ['common_validate.require', ['personnel_id']], + 'student_id.require' => ['common_validate.require', ['student_id']], + 'content_type.require' => ['common_validate.require', ['content_type']], + ]; + + protected $scene = [ + "add" => ['class_id', 'course_id', 'personnel_id', 'student_id', 'description', 'content_type', 'content_text', 'status'], + "edit" => ['class_id', 'course_id', 'personnel_id', 'student_id', 'description', 'content_type', 'content_text', 'status'] + ]; + +}