diff --git a/app/Services/PatientDoctorService.php b/app/Services/PatientDoctorService.php index 27c85dc..5e741ae 100644 --- a/app/Services/PatientDoctorService.php +++ b/app/Services/PatientDoctorService.php @@ -21,6 +21,129 @@ use Hyperf\DbConnection\Db; class PatientDoctorService extends BaseService { +// /** +// * 获取问诊医生列表 +// * 专家问诊-公益问诊共用 +// * @return array +// */ +// public function getInquiryDoctorList(): array +// { +// $expertise_id = $this->request->input('expertise_id'); +// $province_id = $this->request->input('province_id'); +// $city_id = $this->request->input('city_id'); +// $sort_order = $this->request->input('sort_order',1); +// $keyword = $this->request->input('keyword',""); +// $is_search_welfare_reception = $this->request->input('is_search_welfare_reception',0); +// $page = $this->request->input('page',1); +// $per_page = $this->request->input('per_page',10); +// +// // 组合条件 +// $hospital_params = array();// 医院搜索 +// $doctor_params = array();// 医生搜索 +// $doctor_expertise_params = array();// 医生专长搜索 +// +// // 省市区 +// if (!empty($province_id)) { +// if (empty($city_id)) { +// // 省份存在时需和城市在一块 +// return fail(HttpEnumCode::CLIENT_HTTP_ERROR); +// } +// $hospital_params[] = ['province_id', '=', $province_id]; +// $hospital_params[] = ['city_id', '=', $city_id]; +// } +// +// // 医生专长 +// if (!empty($expertise_id)) { +// $doctor_expertise_params['expertise_id'] = $expertise_id; +// } +// +// // 固定医生查询条件 +// $doctor_params['status'] = 1; // 状态(0:禁用 1:正常 2:删除) +// +// $doctor_params["iden_auth_status"] = 1;// 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) +// $doctor_params["is_bind_bank"] = 1;// 是否已绑定结算银行卡(0:否 1:是) +// +//// if (!empty($is_search_welfare_reception)){ +//// $doctor_params["is_img_welfare_reception"] = $is_search_welfare_reception;// 是否参加公益图文问诊(0:否 1:是) +//// } +// +// $fields = [ +// "doctor_id", +// "user_id", +// "user_name", +// "multi_point_status", +// "is_bind_bank", +// "is_recommend", +// "avatar", +// "doctor_title", +// "department_custom_id", +// "department_custom_name", +// "hospital_id", +// "served_patients_num", +// "praise_rate", +// "avg_response_time", +// "number_of_fans", +// "is_online", +// "be_good_at", +// ]; +// +// $user_doctors = UserDoctor::getInquiryDoctorPage($keyword,$hospital_params, $doctor_params,$doctor_expertise_params, $sort_order, $fields,$page,$per_page); +// +// if (!empty($user_doctors['data'])) { +// foreach ($user_doctors['data'] as &$user_doctor) { +// $user_doctor['doctor_title_name'] = empty($user_doctor['doctor_title']) ? "" : DoctorTitleCode::getMessage($user_doctor['doctor_title']); +// +// // 处理医生专长 +// if (!empty($user_doctor['DoctorExpertise'])) { +// foreach ($user_doctor['DoctorExpertise'] as &$data) { +// if (!empty($data['DiseaseClassExpertise'])) { +// $data['expertise_name'] = $data['DiseaseClassExpertise']['expertise_name']; +// } +// unset($data['DiseaseClassExpertise']); +// } +// } +// +// // 处理问诊价格 +// $user_doctor['price'] = 0; +// $user_doctor['free_clinic_price'] = 0; +// if (!empty($user_doctor['DoctorInquiryConfig'])) { +// foreach ($user_doctor['DoctorInquiryConfig'] as $doctor_inquiry_config) { +// if ($doctor_inquiry_config['inquiry_mode'] == 1) { +// if ($doctor_inquiry_config['inquiry_type'] == 1) { +// // 专家 +// $user_doctor['price'] = $doctor_inquiry_config['inquiry_price'] ?? 0; +// } +// if ($doctor_inquiry_config['inquiry_type'] == 3) { +// // 公益 +// $user_doctor['free_clinic_price'] = $doctor_inquiry_config['inquiry_price']; +// } +// } +// } +// } +// +// // 好评率-超过5个已结束的订单后展示 +// $user_doctor['praise_rate'] = floor($user_doctor['praise_rate'] * 0.05 * 100) / 100; +// // 响应时间-超过5个已结束的订单后展示 +// $user_doctor['avg_response_time'] = (float)floor($user_doctor['avg_response_time'] * 10) / 10; +// +// // 获取医生订单数 +// $params = array(); +// $params['doctor_id'] = $user_doctor['doctor_id']; +// $params['inquiry_status'] = 6; // 已结束 +// $inquiry_order_count = OrderInquiry::getCount($params); +// if (empty($inquiry_order_count) || $inquiry_order_count == 0) { +// $user_doctor['is_display_score'] = false; +// } else { +// $user_doctor['is_display_score'] = true; +// } +// +// // 头像 +// $user_doctor['avatar'] = addAliyunOssWebsite($user_doctor['avatar']); +// } +// } +// return success($user_doctors); +// } + /** * 获取问诊医生列表 * 专家问诊-公益问诊共用 @@ -33,7 +156,7 @@ class PatientDoctorService extends BaseService $city_id = $this->request->input('city_id'); $sort_order = $this->request->input('sort_order',1); $keyword = $this->request->input('keyword',""); - $is_search_welfare_reception = $this->request->input('is_search_welfare_reception',0); + $is_search_welfare_reception = $this->request->input('is_search_welfare_reception',0); // 是否参加公益图文问诊(0:否 1:是) $page = $this->request->input('page',1); $per_page = $this->request->input('per_page',10); @@ -63,9 +186,9 @@ class PatientDoctorService extends BaseService $doctor_params["iden_auth_status"] = 1;// 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) $doctor_params["is_bind_bank"] = 1;// 是否已绑定结算银行卡(0:否 1:是) -// if (!empty($is_search_welfare_reception)){ -// $doctor_params["is_img_welfare_reception"] = $is_search_welfare_reception;// 是否参加公益图文问诊(0:否 1:是) -// } + if (!empty($is_search_welfare_reception)){ + $inquiry_type = 3; + } $fields = [ "doctor_id", @@ -87,7 +210,7 @@ class PatientDoctorService extends BaseService "be_good_at", ]; - $user_doctors = UserDoctor::getInquiryDoctorPage($keyword,$hospital_params, $doctor_params,$doctor_expertise_params, $sort_order, $fields,$page,$per_page); + $user_doctors = UserDoctor::getInquiryDoctorPage($keyword,$hospital_params, $doctor_params,$doctor_expertise_params,$inquiry_type, $sort_order, $fields,$page,$per_page); if (!empty($user_doctors['data'])) { foreach ($user_doctors['data'] as &$user_doctor) { @@ -227,6 +350,9 @@ class PatientDoctorService extends BaseService $params['doctor_id'] = $doctor_id; $result['follow'] = PatientFollow::getExists($params); + // 获取医生问诊配置-问诊购药 + $user_doctor['multi_point_enable'] = 0; + // 获取问诊价格 // 专家-公益 $params = array(); @@ -270,6 +396,9 @@ class PatientDoctorService extends BaseService $value['times_number'] = $system_inquiry_config['times_number']; $value['duration'] = $system_inquiry_config['duration']; + if ($value['is_enable'] == 1 && $value['inquiry_type'] == 4 && $value['inquiry_mode'] == 1){ + $user_doctor['multi_point_enable'] = 1; + } unset($system_inquiry_config); } $result['doctor_inquiry_config'] = $doctor_inquiry_config;