diff --git a/app/Amqp/Consumer/AssignDoctorDelayDirectConsumer.php b/app/Amqp/Consumer/AssignDoctorDelayDirectConsumer.php index 7265c33..09a095a 100644 --- a/app/Amqp/Consumer/AssignDoctorDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AssignDoctorDelayDirectConsumer.php @@ -243,16 +243,23 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage return Result::REQUEUE; } - Log::getInstance("queue-AssignDoctor")->info("信息:发送消息"); + Db::commit(); + Log::getInstance("queue-AssignDoctor")->info("成功"); + } catch (\Exception $e) { + Db::rollBack(); + Log::getInstance("queue-AssignDoctor")->error("失败:" . $e->getMessage()); + return Result::REQUEUE; // 重回队列 + } + // 发送消息 + try { // 获取订单医生数据 $params = array(); $params['doctor_id'] = $doctor_id; $user_doctor = UserDoctor::getOne($params); if (empty($user_doctor)) { - Db::rollBack(); Log::getInstance("queue-AssignDoctor")->error("错误:医生数据错误"); - return Result::REQUEUE; + return Result::ACK; } // 发送IM消息-等待医生接诊 @@ -262,13 +269,9 @@ class AssignDoctorDelayDirectConsumer extends ConsumerMessage // 医生-医生有新问诊 站内、订阅失败发送短信 $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']); $MessagePush->doctorHaveNewInquiry(); - - Db::commit(); - Log::getInstance("queue-AssignDoctor")->info("成功"); - } catch (\Exception $e) { - Db::rollBack(); - Log::getInstance("queue-AssignDoctor")->error("失败:" . $e->getMessage()); - return Result::REQUEUE; // 重回队列 + }catch (\Exception $e){ + Log::getInstance("queue-AssignDoctor")->error("发送消息异常错误:" . $e->getMessage()); + return Result::ACK; } return Result::ACK; diff --git a/app/Amqp/Consumer/AutoCompleteInquiryDelayDirectConsumer.php b/app/Amqp/Consumer/AutoCompleteInquiryDelayDirectConsumer.php index 734601b..ad98fbd 100644 --- a/app/Amqp/Consumer/AutoCompleteInquiryDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoCompleteInquiryDelayDirectConsumer.php @@ -145,23 +145,11 @@ class AutoCompleteInquiryDelayDirectConsumer extends ConsumerMessage OrderPrescription::edit($params,$data); - // 站内、订阅失败发送短信-医生开具的处方审核未通过 - $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']); - $MessagePush->prescriptionVerifyFail($order_prescription['order_prescription_id']); + // 是否需要推送消息 + $is_push_prescription_verify_fail = true; } } - // 发送IM消息-问诊已完成 - $imService = new ImService(); - $imService->inquiryComplete($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']); - - // 发送IM消息-问诊结束评价通知 - $imService->inquiryEndEvaluation($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']); - - // 医生-发送站内消息-问诊结束 - $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']); - $MessagePush->finishInquiryToDoctor(); - // 添加自动完成队列 $data = array(); $data['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; @@ -178,11 +166,38 @@ class AutoCompleteInquiryDelayDirectConsumer extends ConsumerMessage Db::commit(); Log::getInstance()->info("自动完成问诊订单队列执行成功"); - return Result::ACK; + } catch (\Exception $e) { Db::rollBack(); Log::getInstance()->error("自动完成问诊订单执行失败:" . $e->getMessage()); return Result::ACK; // 重回队列 } + + // 发送消息 + try { + if (isset($is_push_prescription_verify_fail)){ + // 站内、订阅失败发送短信-医生开具的处方审核未通过 + $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']); + $MessagePush->prescriptionVerifyFail($order_prescription['order_prescription_id']); + } + + // 发送IM消息-问诊已完成 + $imService = new ImService(); + $imService->inquiryComplete($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']); + + // 发送IM消息-问诊结束评价通知 + $imService->inquiryEndEvaluation($order_inquiry,$user_doctor['user_id'],$order_inquiry['user_id']); + + // 医生-发送站内消息-问诊结束 + $MessagePush = new MessagePush($user_doctor['user_id'],$order_inquiry['order_inquiry_id']); + $MessagePush->finishInquiryToDoctor(); + + + }catch (\Exception $e){ + Log::getInstance()->error("发送消息异常错误:" . $e->getMessage()); + return Result::ACK; + } + + return Result::ACK; } }