diff --git a/app/Controller/UserDoctorController.php b/app/Controller/UserDoctorController.php index e52c923..9faaef4 100644 --- a/app/Controller/UserDoctorController.php +++ b/app/Controller/UserDoctorController.php @@ -331,7 +331,8 @@ class UserDoctorController extends AbstractController /** * 新增医生接诊 * @return ResponseInterface - * @throws GuzzleException + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface */ public function addDoctorInquiry(): ResponseInterface { diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index ad641e8..49fa036 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1834,6 +1834,10 @@ class UserDoctorService extends BaseService $params = array(); $params['inquiry_type'] = $order_inquiry['inquiry_type']; $params['inquiry_mode'] = $order_inquiry['inquiry_mode']; + $system_inquiry_config = SystemInquiryConfig::getOne($params); + if (empty($system_inquiry_config)){ + return fail(HttpEnumCode::HTTP_ERROR, "接诊失败"); + } Db::beginTransaction(); @@ -1846,25 +1850,32 @@ class UserDoctorService extends BaseService $params['order_inquiry_id'] = $order_inquiry_id; OrderInquiry::edit($params,$data); - // 获取订单结束周期 + /** + * 获取订单结束周期 + * 疑难问诊为自己配置周期。 + */ + // 疑难问诊 + if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 6){ + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $params['inquiry_type'] = $order_inquiry['inquiry_type']; + $params['inquiry_mode'] = $order_inquiry['inquiry_mode']; + $doctor_inquiry_config_service = DoctorInquiryConfigService::getOne($params); + if(empty($doctor_inquiry_config_service)){ + Db::rollBack(); + return fail(HttpEnumCode::HTTP_ERROR, "接诊失败"); + } - // 添加自动结束队列 - if ($order_inquiry['inquiry_type'] == 1 || $order_inquiry['inquiry_type'] == 3){ - // 专家问诊-公益问诊 - $time = 1000 * 60 * 60 * 24; - }elseif($order_inquiry['inquiry_type'] == 2){ - // 快速问诊 - $time = 1000 * 60 * 60; + $time = $doctor_inquiry_config_service['service_period'] * 24 * 60 * 60; }else{ - // 购药 - $time = 1000 * 60 * 30; + $time = $system_inquiry_config['duration'] * 60; } + // 添加自动结束队列 $data = array(); $data['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; - $message = new AutoCompleteInquiryDelayDirectProducer($data); - $message->setDelayMs($time); + $message->setDelayMs(1000 * $time); $producer = $this->container->get(Producer::class); $res = $producer->produce($message); if (!$res) {