From 5170f8f12545d68f7e9b01e9354531a228bb3cd3 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Thu, 6 Apr 2023 10:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=97=AE=E8=AF=8A=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E8=AF=84=E4=BB=B7=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/ImService.php | 67 ++++++++++++++----- app/Services/UserDoctorService.php | 3 + .../RegulatoryPlatform/regulatoryPlatform.php | 11 +++ 3 files changed, 64 insertions(+), 17 deletions(-) create mode 100644 extend/RegulatoryPlatform/regulatoryPlatform.php diff --git a/app/Services/ImService.php b/app/Services/ImService.php index c39983c..655fbc0 100644 --- a/app/Services/ImService.php +++ b/app/Services/ImService.php @@ -340,11 +340,11 @@ class ImService extends BaseService $message_content_data['message_type'] = 8; $message_content_data['title'] = "--等待医生接诊--"; - if ($order_inquiry['inquiry_type'] == 1){ + if ($order_inquiry['inquiry_type'] == 1) { $message_content_data['desc'] = "温馨提示:当前服务为专家问诊,可以在24小时内和医生沟通20个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; - } elseif ($order_inquiry['inquiry_type'] == 2){ + } elseif ($order_inquiry['inquiry_type'] == 2) { $message_content_data['desc'] = "温馨提示:您可继续补充问诊内容,便于更快确认病情,医生均在临床一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; - } elseif ($order_inquiry['inquiry_type'] == 3){ + } elseif ($order_inquiry['inquiry_type'] == 3) { $message_content_data['desc'] = "温馨提示:当前服务为公益问诊,可以在24小时内和医生沟通10个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; } else { $message_content_data['desc'] = "温馨提示:当前服务为公益问诊,可以在24小时内和医生沟通10个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; @@ -360,11 +360,11 @@ class ImService extends BaseService $message_content_data = array(); $message_content_data['message_type'] = 1; $message_content_data['title'] = "--等待医生接诊--"; - if ($order_inquiry['inquiry_type'] == 1){ + if ($order_inquiry['inquiry_type'] == 1) { $message_content_data['desc'] = "温馨提示:当前服务为专家问诊,可以在24小时内和医生沟通20个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; - } elseif ($order_inquiry['inquiry_type'] == 2){ + } elseif ($order_inquiry['inquiry_type'] == 2) { $message_content_data['desc'] = "温馨提示:您可继续补充问诊内容,便于更快确认病情,医生均在临床一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; - } elseif ($order_inquiry['inquiry_type'] == 3){ + } elseif ($order_inquiry['inquiry_type'] == 3) { $message_content_data['desc'] = "温馨提示:当前服务为公益问诊,可以在24小时内和医生沟通10个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; } else { $message_content_data['desc'] = "温馨提示:当前服务为公益问诊,可以在24小时内和医生沟通10个回合。医生均为一线工作,还请耐心等待,医生接诊会第一时间短信通知您。"; @@ -403,16 +403,16 @@ class ImService extends BaseService $message_content_data = array(); $message_content_data['message_type'] = 8; - if ($order_inquiry['inquiry_type'] == 1){ + if ($order_inquiry['inquiry_type'] == 1) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续24小时--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 2){ + } elseif ($order_inquiry['inquiry_type'] == 2) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续60分钟--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 3){ + } elseif ($order_inquiry['inquiry_type'] == 3) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续24小时--"; $message_content_data['desc'] = "医生已接诊,您可一次描述需要问诊的内容,以免浪费问诊次数,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 4){ + } elseif ($order_inquiry['inquiry_type'] == 4) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续30分钟--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; } @@ -427,16 +427,16 @@ class ImService extends BaseService $message_content_data = array(); $message_content_data['message_type'] = 1; - if ($order_inquiry['inquiry_type'] == 1){ + if ($order_inquiry['inquiry_type'] == 1) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续24小时--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 2){ + } elseif ($order_inquiry['inquiry_type'] == 2) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续60分钟--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 3){ + } elseif ($order_inquiry['inquiry_type'] == 3) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续24小时--"; $message_content_data['desc'] = "医生已接诊,您可一次描述需要问诊的内容,以免浪费问诊次数,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; - } elseif ($order_inquiry['inquiry_type'] == 4){ + } elseif ($order_inquiry['inquiry_type'] == 4) { $message_content_data['title'] = "--问诊已开始,本次问诊可持续30分钟--"; $message_content_data['desc'] = "医生已接诊,您可继续补充问诊内容,如目前症状、患病时长、检查及用药情况、需要的帮助等,线上咨询不能代表面诊,医生的回复仅为建议。"; } @@ -508,7 +508,7 @@ class ImService extends BaseService * @param string $message_type 6/7 * @return void */ - public function prescriptionIssued(array|object $order_inquiry, string $doctor_user_id, string $patient_user_id,string $product_name,string $order_prescription_id,string $message_type): void + public function prescriptionIssued(array|object $order_inquiry, string $doctor_user_id, string $patient_user_id, string $product_name, string $order_prescription_id, string $message_type): void { try { // 发送消息 @@ -529,9 +529,9 @@ class ImService extends BaseService $message_content_data['data']['order_inquiry_id'] = (string)$order_inquiry['order_inquiry_id']; $message_content_data['data']['order_prescription_id'] = $order_prescription_id; $message_content_data['data']['product_name'] = $product_name ?? "药品"; - $message_content_data['data']['pharmacist_verify_time'] = date('Y-m-d H:i:s',time());; + $message_content_data['data']['pharmacist_verify_time'] = date('Y-m-d H:i:s', time());; $message_content = [ - 'Data' => json_encode($message_content_data,JSON_UNESCAPED_UNICODE), + 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; $this->sendMessage($doctor_user_id, $patient_user_id, $message_content, "TIMCustomElem", $cloud_custom_data); @@ -589,4 +589,37 @@ class ImService extends BaseService } } + /** + * 问诊结束评价通知 + * @param array|object $order_inquiry + * @param string $doctor_user_id + * @param string $patient_user_id + * @return void + */ + public function inquiryEndEvaluation(array|object $order_inquiry, string $doctor_user_id, string $patient_user_id): void + { + // 发送消息 + $cloud_custom_data = array(); + $cloud_custom_data['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $cloud_custom_data['is_system'] = 1; + $cloud_custom_data['inquiry_type'] = $order_inquiry['inquiry_type']; + $cloud_custom_data['message_rounds'] = 0; + $cloud_custom_data['patient_family_data']['patient_name'] = $order_inquiry['patient_name']; + $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; + $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + + // 消息内容 - 患者-医生 + $message_content_data = array(); + $message_content_data['message_type'] = 2; // 订单结束评价弹出 + $message_content_data['title'] = "评价"; + $message_content_data['desc'] = ""; + $message_content_data['data']['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + + $message_content = [ + 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), + ]; + + $this->sendMessage($doctor_user_id, $patient_user_id, $message_content, "TIMCustomElem", $cloud_custom_data); + + } } \ No newline at end of file diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index c8913e0..bc551ac 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1713,6 +1713,9 @@ class UserDoctorService extends BaseService $imService = new ImService(); $imService->inquiryEnd($order_inquiry,$user_info['user_id'],$order_inquiry['user_id']); + // 发送IM消息-问诊结束评价通知 + $imService->inquiryEndEvaluation($order_inquiry,$user_info['user_id'],$order_inquiry['user_id']); + // 发送站内消息-医生有新问诊 $MessagePush = new MessagePush($user_info['user_id'],$order_inquiry['order_inquiry_id']); $MessagePush->finishInquiryToDoctor(); diff --git a/extend/RegulatoryPlatform/regulatoryPlatform.php b/extend/RegulatoryPlatform/regulatoryPlatform.php new file mode 100644 index 0000000..e3d5f56 --- /dev/null +++ b/extend/RegulatoryPlatform/regulatoryPlatform.php @@ -0,0 +1,11 @@ +