From b1ee69453bc62ecc6c7ae78e76aaac5027e1d83b Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 17 Apr 2024 14:32:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=8D=E5=8A=A1=E5=8C=85=E5=85=B3=E8=81=94?= =?UTF-8?q?=E9=97=AE=E8=AF=8A=E8=AE=A2=E5=8D=95=E6=B6=88=E6=81=AF=E5=86=85?= =?UTF-8?q?=E9=A1=B5=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/InquiryController.php | 11 ++++ app/Services/InquiryService.php | 92 ++++++++++++++++++++++++++++ config/routes.php | 3 + 3 files changed, 106 insertions(+) diff --git a/app/Controller/InquiryController.php b/app/Controller/InquiryController.php index cebd4db..f6d0005 100644 --- a/app/Controller/InquiryController.php +++ b/app/Controller/InquiryController.php @@ -173,4 +173,15 @@ class InquiryController extends AbstractController $data = $InquiryService->getInquiryVideoMessageBasic(); return $this->response->json($data); } + + /** + * 获取服务包关联问诊订单消息内页基础数据 + * @return ResponseInterface + */ + public function getInquiryServiceMessageBasic(): ResponseInterface + { + $InquiryService = new InquiryService(); + $data = $InquiryService->getInquiryServiceMessageBasic(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index 1d83b82..1e9fd86 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -29,6 +29,9 @@ use App\Model\OrderInquiryVideoRecord; use App\Model\OrderInquiryVideoReservation; use App\Model\OrderPrescription; use App\Model\OrderProductCoupon; +use App\Model\OrderServicePackage; +use App\Model\OrderServicePackageDetail; +use App\Model\OrderServicePackageInquiry; use App\Model\PatientFamily; use App\Model\PatientFamilyHealth; use App\Model\PatientFamilyPersonal; @@ -1468,6 +1471,95 @@ class InquiryService extends BaseService return success($result); } + /** + * 获取服务包关联问诊订单消息内页基础数据 + * @return array + */ + public function getInquiryServiceMessageBasic(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + $order_inquiry_id = $this->request->route('order_inquiry_id'); + + $params = array(); + $params['order_inquiry_id'] = $order_inquiry_id; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)) { + return fail(HttpEnumCode::HTTP_ERROR, "订单错误"); + } + + $order_inquiry = $order_inquiry->toArray(); + + if ($user_info['user_type'] == 1) { + if ($order_inquiry['patient_id'] != $user_info['client_user_id']) { + return success(); + } + } + + if ($user_info['user_type'] == 2) { + if ($order_inquiry['doctor_id'] != $user_info['client_user_id']) { + return success(); + } + } + + // 获取问诊订单关联服务包 + $params = array(); + $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; + $order_service_package_inquiry = OrderServicePackageInquiry::getOne($params); + if (empty($order_service_package_inquiry)){ + return success(); + } + + // 获取用户当前购买的服务包 + $params = array(); + $params['user_id'] = $user_info['user_id']; + $params['patient_id'] = $user_info['client_user_id']; + $params['order_service_no'] = $order_service_package_inquiry['order_service_no']; + $order_service_package = OrderServicePackage::getOne($params); + if (empty($order_service_package)) { + return success(); + } + + // 检测服务包订单订单状态 + if ($order_service_package['order_service_status'] == 1) { + return success(); + } + + if ($order_service_package['order_service_status'] == 2) { + return success(); + } + + // 获取服务包订单详情 + $params = array(); + $params['order_service_no'] = $order_service_package['order_service_no']; + $order_service_package_detail = OrderServicePackageDetail::getOne($params); + if (empty($order_service_package_detail)) { + return success(); + } + + // 获取当月已问诊次数 + // 3.5号购买,每月2次问诊次数。今天5.3,属于第几个月,这个月的开始时间和结束时间 + $month_inquiry_count = 0; + if ($order_service_package_detail['monthly_frequency'] != 0 && !empty($order_service_package['start_time'])) { + // 获取服务包当月已问诊次数 + $OrderServicePackageService = new OrderServicePackageService(); + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['start_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']); + } + + // 处理剩余服务天数 + $finish_day = null; + if (!empty($order_service_package['finish_time'])){ + $finish_day = ceil((strtotime($order_service_package['finish_time']) - time()) / 60 / 60 / 24); + } + + + $result = array(); + $result['finish_time'] = $finish_day; // 剩余服务天数 + $result['month_inquiry_count'] = $month_inquiry_count; // 服务包当月已问诊次数 + $result['monthly_frequency'] = $order_service_package_detail['monthly_frequency']; // 每月次数(0表示不限次) + + return success($result); + } + /** * 获取医生未接诊订单数量 * @param string $doctor_id 医生id diff --git a/config/routes.php b/config/routes.php index 542d5ce..fc2cdbe 100644 --- a/config/routes.php +++ b/config/routes.php @@ -957,6 +957,9 @@ Router::addGroup('/im', function () { // 获取视频问诊消息内页基础数据 Router::get('/video/{order_inquiry_id:\d+}', [InquiryController::class, 'getInquiryVideoMessageBasic']); + + // 获取服务包关联问诊订单消息内页基础数据 + Router::get('/service/{order_inquiry_id:\d+}', [InquiryController::class, 'getInquiryServiceMessageBasic']); }); }); });