model = new MedicalDoctor(); $this->validate = true; $this->validateClass = new DoctorValidate(); } /** * @Desc 列表 * @Author Gorden * @Date 2024/2/29 14:31 * * @param Request $request * @return Response * @throws \support\exception\BusinessException */ public function select(Request $request): Response { [$where, $format, $limit, $field, $order] = $this->selectInput($request); $order = $request->get('order', 'desc'); $field = $field ?? 'doctor_addTime'; $where['doctor_is_del'] = 0; $query = $this->doSelect($where, $field, $order); return $this->doFormat($query, $format, $limit); } protected function afterQuery($items) { foreach ($items as &$item) { $item['doctor_avatar'] = getenv('STORAGE_DOMAIN') . $item['doctor_avatar']; } return $items; } protected function afterInfoQuery($info) { $info->doctor_avatar = getenv("STORAGE_DOMAIN") . $info->doctor_avatar; // 出诊时间 if ($info->doctor_visit_time) { $doctorVisitTimeArr = explode('~', $info->doctor_visit_time); foreach ($doctorVisitTimeArr as $key => $item){ $doctorVisitTimeArr[$key] = date("Y-m-d\TH:i:s\Z",strtotime(date('Y-m-d ').$item)-8*3600); } $info->doctor_visit_time = $doctorVisitTimeArr; } // 上班时间 if ($info->doctor_work) { $doctorWorkArr = explode('~', $info->doctor_work); foreach ($doctorWorkArr as $key => $item){ $doctorWorkArr[$key] = date("Y-m-d\TH:i:s\Z",strtotime(date('Y-m-d ').$item)-8*3600); } $info->doctor_work = $doctorWorkArr; } return $info; } protected function insertInput(Request $request): array { $data = $this->inputFilter($request->post()); $data['doctor_avatar'] = str_replace(getenv("STORAGE_DOMAIN"), '', $data['doctor_avatar']); // 处理时间 if ($data['doctor_visit_time']) { $doctorVisitTimeStart = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[0])); $doctorVisitTimeEnd = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[1])); $data['doctor_visit_time'] = $doctorVisitTimeStart . '~' . $doctorVisitTimeEnd; } if ($data['doctor_work']){ $doctorWorkStart = date('H:i', strtotime(explode(',', $data['doctor_work'])[0])); $doctorWorkEnd = date('H:i', strtotime(explode(',', $data['doctor_work'])[1])); $data['doctor_work'] = $doctorWorkStart . '~' . $doctorWorkEnd; } return $data; } protected function updateInput(Request $request): array { $primary_key = $this->model->getKeyName(); $id = $request->post($primary_key); $data = $this->inputFilter($request->post()); $model = $this->model->find($id); if (!$model) { throw new BusinessException('记录不存在', 2); } unset($data[$primary_key]); // 头像 $data['doctor_avatar'] = str_replace(getenv("STORAGE_DOMAIN"), '', $data['doctor_avatar']); // 处理时间 if ($data['doctor_visit_time']) { $doctorVisitTimeStart = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[0])); $doctorVisitTimeEnd = date('H:i', strtotime(explode(',', $data['doctor_visit_time'])[1])); $data['doctor_visit_time'] = $doctorVisitTimeStart . '~' . $doctorVisitTimeEnd; } if ($data['doctor_work']){ $doctorWorkStart = date('H:i', strtotime(explode(',', $data['doctor_work'])[0])); $doctorWorkEnd = date('H:i', strtotime(explode(',', $data['doctor_work'])[1])); $data['doctor_work'] = $doctorWorkStart . '~' . $doctorWorkEnd; } return [$id, $data]; } /** * @Desc 软删除 * @Author Gorden * @Date 2024/2/29 14:37 * * @param Request $request * @return Response * @throws \support\exception\BusinessException */ public function delete(Request $request): Response { $ids = $this->deleteInput($request); $this->doSoftDelete($ids, ['doctor_is_del' => 1]); return json_success('success'); } }