修正分配医生逻辑,修改搜索医生列表新增是否参加公益图文问诊字段

This commit is contained in:
2023-03-25 13:21:59 +08:00
parent 2459a251c2
commit 88667147e8
11 changed files with 575 additions and 208 deletions
+58 -12
View File
@@ -30,6 +30,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);
$page = $this->request->input('page',1);
$per_page = $this->request->input('per_page',10);
@@ -62,6 +63,10 @@ class PatientDoctorService extends BaseService
$doctor_params["is_img_expert_reception"] = 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",
@@ -238,12 +243,11 @@ class PatientDoctorService extends BaseService
$doctor_inquiry_config = DoctorInquiryConfigModel::getInquiryConfigList($params);
if (!empty($doctor_inquiry_config)) {
foreach ($doctor_inquiry_config as &$value) {
// 获取医生当日已付款的全部订单
// 获取医生当日的全部订单
$params = array();
$params[] = ['doctor_id', '=', $doctor_id];
$params[] = ['inquiry_type', '=', $value['inquiry_type']];
$params[] = ['inquiry_mode', '=', 1];
$params[] = ['inquiry_status', '=', 3];
$params[] = ['inquiry_refund_status', '=', 0];
$value['order_inquiry_count'] = OrderInquiry::getCount($params);
@@ -367,16 +371,16 @@ class PatientDoctorService extends BaseService
$doctor_id = $this->request->input('doctor_id','');
$result = array();
$result['data'] = "";
$result['data'] = [];
$result['message'] = "可接诊";
$result['status'] = 1;
// 检测是否存在未完成的问诊订单
$UserPatientService = new UserPatientService();
$res = $UserPatientService->getNotFinishedOrdeInquiry($user_info['client_user_id']);
if (!empty($res)){
// 检测是否存在同类型未完成的问诊订单
$PatientOrderService = new PatientOrderService();
$order_inquiry_id = $PatientOrderService->getNotFinishedOrdeInquiry($inquiry_type,$user_info['client_user_id']);
if (!empty($order_inquiry_id)){
$result['status'] = 2;
$result['data'] = $res;
$result['data']['order_inquiry_id'] = $order_inquiry_id;
$result['message'] = "存在未完成的问诊订单";
return success($result);
}
@@ -384,7 +388,7 @@ class PatientDoctorService extends BaseService
if (!empty($doctor_id)){
// 获取医生信息
$params = array();
$params['doctor_id'] = $user_info['client_user_id'];
$params['doctor_id'] = $doctor_id;
$fields = [
'doctor_id',
@@ -413,14 +417,56 @@ class PatientDoctorService extends BaseService
return fail(HttpEnumCode::HTTP_ERROR, "医生未开通在线问诊服务");
}
// 检测医生今日接诊数量
// 检测当前医生是否和患者存在未完成问诊订单
$InquiryService = new InquiryService();
$order_inquiry = $InquiryService->checkPatientDoctorProgressInquiry($user_info['client_user_id'],$doctor_id);
if (!empty($order_inquiry)){
$result['status'] = 2;
$result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
$result['message'] = "您和当前医生存在问诊中订单,无法再次发起问诊";
return success($result);
}
// 获取医生每日最大接诊数量
$UserDoctorService = new UserDoctorService();
$max_work_num_day = $UserDoctorService->getDoctorInquiryDayMaxNum($doctor_id,$inquiry_type,$inquiry_mode);
// 获取医生未接诊订单数量(包含未接诊、未支付、已接诊)
$order_inquiry_count = $UserDoctorService->getDoctorUnInquiryOrderNum($doctor_id,$inquiry_type,$inquiry_mode);
// 计算剩余未接诊数量 = 最大数量-
$access_inquiry_num = $max_work_num_day - $order_inquiry_count;
if ($access_inquiry_num <= 0){
$result['status'] = 3;
$result['data'] = "";
$result['message'] = "当前医生已无每日问诊次数,请选择其他医生";
return success($result);
}
}
if ($inquiry_type == 4){
// 公益问诊-检测当前患者问诊次数(24小时内两次公益问诊)
$params = array();
$params['patient_id'] = $user_info['client_user_id'];
$params['inquiry_type'] = $inquiry_type;
$params['inquiry_mode'] = $inquiry_mode;
$inquiry_status_params = [1,2,3,4];
$inquiry_count = OrderInquiry::getInquiryStatusCount($params,$inquiry_status_params);
if ($inquiry_count >= 2){
$result['status'] = 3;
$result['data'] = "";
$result['message'] = "您还有未完成的公益问诊,完成之后才可以重新问诊";
return success($result);
}
}
// 检测快速、购药问诊是否由可分配医生
if ($inquiry_type == 2 || $inquiry_type == 4){
// 获取快速、购药问诊可分配医生
$UserDoctorService = new UserDoctorService();
$doctor_id = $UserDoctorService->getInquiryAssignDoctor($inquiry_type);
$doctor_id = $UserDoctorService->getInquiryAssignDoctor($inquiry_type,$user_info['client_user_id']);
if (empty($doctor_id)){
// 无合适医生
$result['status'] = 3;
$result['data'] = "";
$result['message'] = "目前暂无可接诊医生";