修改问诊购药分配医生
This commit is contained in:
@@ -384,99 +384,120 @@ class PatientDoctorService extends BaseService
|
||||
$result['message'] = "可接诊";
|
||||
$result['status'] = 1;
|
||||
|
||||
// 检测是否存在同类型未完成的问诊订单
|
||||
$PatientOrderService = new PatientOrderService();
|
||||
$order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($inquiry_type,$user_info['client_user_id']);
|
||||
if (!empty($order_inquiry_id)){
|
||||
$result['status'] = 2;
|
||||
$result['data']['order_inquiry_id'] = $order_inquiry_id;
|
||||
$result['message'] = "存在未完成的问诊订单";
|
||||
return success($result);
|
||||
}
|
||||
|
||||
if (!empty($doctor_id)){
|
||||
// 获取医生信息
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
|
||||
$fields = [
|
||||
'doctor_id',
|
||||
'user_name',
|
||||
'iden_auth_status',
|
||||
'idcard_status',
|
||||
'multi_point_status',
|
||||
'avatar',
|
||||
'is_bind_bank',
|
||||
];
|
||||
$user_doctor = UserDoctor::getOne($params, $fields);
|
||||
if (empty($user_doctor)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法医生");
|
||||
}
|
||||
|
||||
// 检测医生身份认证
|
||||
if ($user_doctor['iden_auth_status'] != 1) {
|
||||
return fail();
|
||||
}
|
||||
|
||||
if ($user_doctor['idcard_status'] != 1) {
|
||||
return fail();
|
||||
}
|
||||
|
||||
// 检测当前医生是否和患者存在未完成问诊订单
|
||||
$InquiryService = new InquiryService();
|
||||
$order_inquiry = $InquiryService->checkPatientDoctorProgressInquiry($user_info['client_user_id'],$doctor_id);
|
||||
if (!empty($order_inquiry)){
|
||||
try {
|
||||
// 检测是否存在同类型未完成的问诊订单
|
||||
$PatientOrderService = new PatientOrderService();
|
||||
$order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($inquiry_type,$user_info['client_user_id']);
|
||||
if (!empty($order_inquiry_id)){
|
||||
$result['status'] = 2;
|
||||
$result['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id'];
|
||||
$result['message'] = "您和当前医生存在问诊中订单,无法再次发起问诊";
|
||||
$result['data']['order_inquiry_id'] = $order_inquiry_id;
|
||||
$result['message'] = "存在未完成的问诊订单";
|
||||
return success($result);
|
||||
}
|
||||
|
||||
// 获取医生每日最大接诊数量
|
||||
$UserDoctorService = new UserDoctorService();
|
||||
$max_work_num_day = $UserDoctorService->getDoctorInquiryDayMaxNum($doctor_id,$inquiry_type,$inquiry_mode);
|
||||
// 检测是否检测医生
|
||||
if (!empty($doctor_id)){
|
||||
// 获取医生信息
|
||||
$params = array();
|
||||
$params['doctor_id'] = $doctor_id;
|
||||
|
||||
// 获取医生未接诊订单数量(包含未接诊、未支付、已接诊)
|
||||
$order_inquiry_count = $UserDoctorService->getDoctorUnInquiryOrderNum($doctor_id,$inquiry_type,$inquiry_mode);
|
||||
$fields = [
|
||||
'doctor_id',
|
||||
'user_name',
|
||||
'iden_auth_status',
|
||||
'idcard_status',
|
||||
'multi_point_status',
|
||||
'avatar',
|
||||
'is_bind_bank',
|
||||
];
|
||||
$user_doctor = UserDoctor::getOne($params, $fields);
|
||||
if (empty($user_doctor)) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR, "非法医生");
|
||||
}
|
||||
|
||||
// 计算剩余未接诊数量 = 最大数量-
|
||||
$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 ($user_doctor['iden_auth_status'] != 1) {
|
||||
return fail(HttpEnumCode::HTTP_ERROR,"医生暂不可接诊");
|
||||
}
|
||||
|
||||
if ($user_doctor['idcard_status'] != 1) {
|
||||
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;
|
||||
// 检测公益问诊-当前患者问诊次数(24小时内两次公益问诊)
|
||||
if ($inquiry_type == 4){
|
||||
$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);
|
||||
$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,$user_info['client_user_id']);
|
||||
if (empty($doctor_id)){
|
||||
// 无合适医生
|
||||
$result['status'] = 3;
|
||||
$result['data'] = "";
|
||||
$result['message'] = "目前暂无可接诊医生";
|
||||
return success($result);
|
||||
// 检测当前是否符合系统问诊时间
|
||||
$inquiryService = new InquiryService();
|
||||
$is_system_time_pass = $inquiryService->checkSystemInquiryTime($inquiry_type);
|
||||
if (!$is_system_time_pass){
|
||||
// 非坐班时间
|
||||
if ($inquiry_type == 4){
|
||||
// 问诊购药非坐班时间不允许接诊
|
||||
$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,$user_info['client_user_id'],$is_system_time_pass);
|
||||
dump($doctor_id);
|
||||
if (empty($doctor_id)){
|
||||
// 无合适医生
|
||||
$result['status'] = 3;
|
||||
$result['data'] = "";
|
||||
$result['message'] = "目前暂无可接诊医生";
|
||||
return success($result);
|
||||
}
|
||||
}
|
||||
}catch(\Exception $e){
|
||||
// 错误不做处理,此处只是检测
|
||||
return success($result);
|
||||
}
|
||||
|
||||
return success($result);
|
||||
|
||||
Reference in New Issue
Block a user