This commit is contained in:
wucongxing 2023-05-05 17:07:58 +08:00
parent a39c1b1290
commit 388c23f57e

View File

@ -1914,7 +1914,7 @@ class UserDoctorService extends BaseService
}
// 检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生
$doctor_ids = $this->getNowTimePlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids);
$doctor_ids = $this->getMinPlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids);
if (!empty($doctor_ids)){
Log::getInstance()->info("检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生:" ,$doctor_ids);
@ -1927,6 +1927,19 @@ class UserDoctorService extends BaseService
}
}
// 检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生
$doctor_ids = $this->getMinPlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids);
if (!empty($doctor_ids)){
Log::getInstance()->info("检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生:" ,$doctor_ids);
// 检测医生是否可被分配
$result = $this->checkDoctorCanBeAssigned($doctor_ids,$patient_id,1,$inquiry_type);
Log::getInstance()->info("检测医生是否可被分配:" ,$result);
if (!empty($result['doctor_id'])){
return $result['doctor_id'];
}
}
// 获取自由注册医生
$user_doctor = $this->getOnlineDoctor($inquiry_type,$not_doctor_ids);
if (!empty($user_doctor)){
@ -1945,18 +1958,7 @@ class UserDoctorService extends BaseService
}
}
// 检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生
$doctor_ids = $this->getNowTimePlatDeepCooperationDoctorId($inquiry_type,strtotime ("+5 minute"),$not_doctor_ids);
if (!empty($doctor_ids)){
Log::getInstance()->info("检测当前时间5分钟后坐班时间包含某时间的平台深度合作医生:" ,$doctor_ids);
// 检测医生是否可被分配
$result = $this->checkDoctorCanBeAssigned($doctor_ids,$patient_id,1,$inquiry_type);
Log::getInstance()->info("检测医生是否可被分配:" ,$result);
if (!empty($result['doctor_id'])){
return $result['doctor_id'];
}
}
return "";
}
@ -2007,6 +2009,51 @@ class UserDoctorService extends BaseService
return $doctor_ids;
}
/**
* 获取坐班时间包含某时间的平台深度合作医生
* @param string $inquiry_type
* @param string $time 时间戳
* @param array $not_doctor_ids 不可选择的医生id数组
* @return array 医生id
*/
public function getMinPlatDeepCooperationDoctorId(string $inquiry_type,string $time,array $not_doctor_ids = []): array
{
$doctor_ids = [];
$params = array();
$params[] = ['inquiry_type','=',$inquiry_type];
$params[] = ['inquiry_mode','=',1];
$params[] = ['start_time','<',date('H',$time) . date('i',$time)];
$params[] = ['end_time','>',date('H',$time) . date('i',$time)];
$user_doctor_params = array();
$user_doctor_params['is_platform_deep_cooperation'] = 1;
if ($inquiry_type == 2){
// 快速问诊
$user_doctor_params['is_img_quick_reception'] = 1;
}elseif ($inquiry_type == 4){
// 问诊购药
$user_doctor_params['multi_point_status'] = 1;
}
$doctor_inquiry_times = DoctorInquiryTime::getWithDoctorNotInList($params,$user_doctor_params,$not_doctor_ids);
if (!empty($doctor_inquiry_times)){
foreach ($doctor_inquiry_times as $item){
// 检测是否存在日期
if (!empty($item['inquiry_date'])){
// 获取当前日期
$now_day = date('Y-m-d',time());
if ($item['inquiry_date'] == $now_day){
$doctor_ids[] = $item['doctor_id'];
}
}else{
$doctor_ids[] = $item['doctor_id'];
}
}
}
return $doctor_ids;
}
/**
* 获取医生每日最大接诊数量
* @param string $doctor_id