diff --git a/app/Services/ImService.php b/app/Services/ImService.php index d62c5d9..e568ca9 100644 --- a/app/Services/ImService.php +++ b/app/Services/ImService.php @@ -3,6 +3,7 @@ namespace App\Services; use App\Constants\DoctorTitleCode; +use App\Constants\HttpEnumCode; use App\Exception\BusinessException; use App\Model\Hospital; use App\Model\User; @@ -215,17 +216,6 @@ class ImService extends BaseService $redis->hSet($redis_key,$hash_key,json_encode($content,JSON_UNESCAPED_UNICODE)); } - /** - * 发送文本消息 - * @param string $from_user_id 发送者id - * @param string $to_user_id 接受者id - * @param string $content 内容 - * @param string $order_inquiry_id 订单id - * @param int $inquiry_type - * @return void - * @throws GuzzleException - */ - /** * 发送消息 * @param string $from_user_id 发送者id @@ -278,4 +268,36 @@ class ImService extends BaseService throw new BusinessException($e->getMessage()); } } + + + // 问诊已结束 + public function sendInquiryEnd(array $order_inquiry,string $from_user_id){ + try { + + } catch (\Exception $e) { + throw new BusinessException($e->getMessage()); + } + + // 发送消息 + $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'] = 1; + $message_content_data['title'] = "问诊已结束"; + $message_content_data['desc'] = "线上咨询不能代替问诊,医生的回复仅为建议。"; + $message_content = [ + 'Data' => json_encode($message_content_data,JSON_UNESCAPED_UNICODE), + ]; + + $this->sendMessage($from_user_id, $order_inquiry['user_id'], $message_content, "TIMCustomElem", $cloud_custom_data); + + } } \ No newline at end of file diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index 9d755c6..f2f99a5 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -67,7 +67,7 @@ class InquiryService extends BaseService // 检测是否存在同类型未完成的问诊订单 $PatientOrderService = new PatientOrderService(); - $order_inquiry_id = $PatientOrderService->getNotFinishedOrdeInquiry($user_info['client_user_id']); + $order_inquiry_id = $PatientOrderService->getNotFinishedOrderInquiry($request_params['inquiry_type'],$user_info['client_user_id']); if (!empty($order_inquiry_id)) { return fail(HttpEnumCode::HTTP_ERROR, "当前患者存在进行中的问诊订单"); } diff --git a/app/Services/PatientDoctorService.php b/app/Services/PatientDoctorService.php index 6825134..8c47ad7 100644 --- a/app/Services/PatientDoctorService.php +++ b/app/Services/PatientDoctorService.php @@ -386,7 +386,7 @@ class PatientDoctorService extends BaseService // 检测是否存在同类型未完成的问诊订单 $PatientOrderService = new PatientOrderService(); - $order_inquiry_id = $PatientOrderService->getNotFinishedOrdeInquiry($inquiry_type,$user_info['client_user_id']); + $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; diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 1b00605..329d8a1 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1329,7 +1329,7 @@ class PatientOrderService extends BaseService * @param string $family_id * @return string */ - public function getNotFinishedOrdeInquiry(string|int $inquiry_type,string $patient_id = '',string $family_id = ''): string + public function getNotFinishedOrderInquiry(string|int $inquiry_type, string $patient_id = '', string $family_id = ''): string { $params = array(); if (!empty($patient_id)){ diff --git a/app/Services/UserDoctorService.php b/app/Services/UserDoctorService.php index 622fc1b..ce43938 100644 --- a/app/Services/UserDoctorService.php +++ b/app/Services/UserDoctorService.php @@ -1725,6 +1725,14 @@ class UserDoctorService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "订单未支付,无法结束"); } + // 查看订单是否存在处方 + $params = array(); + $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $order_prescription = OrderPrescription::getOne($params); + if ($order_prescription['prescription_status'] == 1){ + return fail(HttpEnumCode::HTTP_ERROR, "处方正在开具中,请您耐心等待,稍后取消"); + } + Db::beginTransaction(); try {