修改医生列表、修改上报数据

This commit is contained in:
2023-08-16 09:08:24 +08:00
parent 340a447a83
commit 7479355def
4 changed files with 81 additions and 66 deletions
+15 -9
View File
@@ -219,13 +219,8 @@ class UserDoctor extends Model
{
$query = self::with([
"Hospital:hospital_id,hospital_name,hospital_status,hospital_level_name,province_id,city_id",
"DoctorExpertise" => function ($query) use ($doctor_expertise_params) {
$query->where($doctor_expertise_params);
},
"DoctorExpertise",
"DoctorInquiryConfig" => function ($query) use ($sort_order) {
$params = array();
$params['inquiry_mode'] = 1;// 接诊方式:图文
$query->where($params)->whereIn('inquiry_type', [1, 3]);
if ($sort_order == 1) {
// 综合-价格从低到高
$query->orderBy('inquiry_price', 'asc');
@@ -236,8 +231,6 @@ class UserDoctor extends Model
// 价格从高到低
$query->orderBy('inquiry_price', 'desc');
}
return $query;
},
])
->where($doctor_params)
@@ -253,6 +246,14 @@ class UserDoctor extends Model
});
});
})
->whereHas('DoctorExpertise', function ($query) use ($doctor_expertise_params) {
$query->where($doctor_expertise_params);
})
->whereHas('DoctorInquiryConfig', function ($query) {
$params = array();
$params['inquiry_mode'] = 1;// 接诊方式:图文
$query->where($params)->whereIn('inquiry_type', [1, 3]);
})
->when($sort_order, function ($query, $sort_order) {
if ($sort_order == 1) {
$query->orderBy('is_recommend', 'desc');// 是否首页推荐(0:否 1:是)
@@ -277,7 +278,12 @@ class UserDoctor extends Model
$query->orderBy(Db::raw("convert(substr(user_name,1,1) using `GBK`)"), 'asc');// 名称排名
}
return $query;
});
})
// ->join('doctor_inquiry_config', 'user_doctor.doctor_id', '=', 'doctor_inquiry_config.doctor_id')
// ->groupBy("user_doctor.doctor_id")
// ->orderBy("doctor_inquiry_config.inquiry_price",'desc')
->select("user_doctor.*");
$result = $query->paginate($per_page, $fields, "page", $page);
+53 -53
View File
@@ -93,59 +93,59 @@ class PatientDoctorService extends BaseService
$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'];
}
}
}
unset($user_doctor['DoctorInquiryConfig']);
}
// 好评率-超过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']);
}
}
// 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'];
// }
// }
// }
// unset($user_doctor['DoctorInquiryConfig']);
// }
//
// // 好评率-超过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);
}