From 726cb70bfcee1201f0893a58398faa85a214016a Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Thu, 9 May 2024 09:18:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=9C=8D=E5=8A=A1=E5=8C=85?= =?UTF-8?q?=E5=BD=93=E6=9C=88=E5=B7=B2=E9=97=AE=E8=AF=8A=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/ImService.php | 13 +++++-- app/Services/InquiryService.php | 10 +++++- app/Services/MessagePush.php | 11 ++++-- app/Services/OrderServicePackageService.php | 40 ++++++++++++++++++--- app/Services/PatientOrderService.php | 8 ++++- 5 files changed, 71 insertions(+), 11 deletions(-) diff --git a/app/Services/ImService.php b/app/Services/ImService.php index 4cfdae0..2808c0a 100644 --- a/app/Services/ImService.php +++ b/app/Services/ImService.php @@ -457,10 +457,18 @@ class ImService extends BaseService $start_time = date('Y年m月d日 H时i分',strtotime($order_service_package['start_time'])); $finish_time = date('Y年m月d日 H时i分',strtotime($order_service_package['finish_time'])); + // 检测问诊是否服务包首次问诊 + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no); + // 获取服务包当月剩余问诊次数 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['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$order_service_package['user_id'], $order_service_package['doctor_id']); + } + $remaining_inquiry_count = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; if ($remaining_inquiry_count < 0){ $remaining_inquiry_count = 0; @@ -470,7 +478,6 @@ class ImService extends BaseService } // 检测问诊是否服务包首次问诊 - $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no); if ($is_first){ $message_content_data['desc'] = "医生已接诊,{$order_type}服务开始,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; }else{ diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index c6f1ffc..3e3f7d0 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -1591,7 +1591,15 @@ class InquiryService extends BaseService 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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + + // 检测问诊是否服务包首次问诊 + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + } } // 处理剩余服务天数 diff --git a/app/Services/MessagePush.php b/app/Services/MessagePush.php index b168a25..07d0202 100644 --- a/app/Services/MessagePush.php +++ b/app/Services/MessagePush.php @@ -3278,8 +3278,15 @@ class MessagePush extends BaseService $OrderServicePackageService = new OrderServicePackageService(); if ($order_service_package_detail['monthly_frequency'] != 0) { - // 获取服务包当月已问诊次数 - $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($this->order_service_package['pay_time'],$this->order_service_package['order_service_type'],$this->order_service_package['user_id'], $this->order_service_package['doctor_id']); + // 检测问诊是否服务包首次问诊 + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($this->order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + // 获取服务包当月已问诊次数 + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($this->order_service_package['pay_time'],$this->order_service_package['order_service_type'],$this->order_service_package['user_id'], $this->order_service_package['doctor_id']); + } // 获取服务包当月剩余问诊次数 $remaining_inquiry_count = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index 96ad26d..d0d7666 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -174,7 +174,15 @@ class OrderServicePackageService extends BaseService // 3.5号购买,每月2次问诊次数。今天5.3,属于第几个月,这个月的开始时间和结束时间 if ($order_service_package_detail['monthly_frequency'] != 0) { // 获取服务包当月已问诊次数 - $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$service_type,$user_info['user_id'], $doctor_id); + // 检测问诊是否服务包首次问诊 + $OrderServicePackageService = new OrderServicePackageService(); + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$service_type,$user_info['user_id'], $doctor_id); + } if ($month_inquiry_count >= $order_service_package_detail['monthly_frequency']) { // 超出当月问诊次数 @@ -670,7 +678,14 @@ class OrderServicePackageService extends BaseService // 3.5号购买,每月2次问诊次数。今天5.3,属于第几个月,这个月的开始时间和结束时间 if ($order_service_package_detail['monthly_frequency'] != 0) { // 获取服务包当月已问诊次数 - $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$user_info['user_id'], $order_service_package['doctor_id']); + $OrderServicePackageService = new OrderServicePackageService(); + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$user_info['user_id'], $order_service_package['doctor_id']); + } if ($month_inquiry_count >= $order_service_package_detail['monthly_frequency']) { return fail(HttpEnumCode::HTTP_ERROR, "超出服务包所包含的当月问诊次数"); @@ -1116,7 +1131,14 @@ class OrderServicePackageService extends BaseService // 3.5号购买,每月2次问诊次数。今天5.3,属于第几个月,这个月的开始时间和结束时间 if ($order_service_package_detail['monthly_frequency'] != 0) { // 获取服务包当月已问诊次数 - $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$user_info['user_id'], $order_service_package['doctor_id']); + $OrderServicePackageService = new OrderServicePackageService(); + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $this->getCurrentMonthInquiryCount($order_service_package['pay_time'],$order_service_package['order_service_type'],$user_info['user_id'], $order_service_package['doctor_id']); + } if ($month_inquiry_count >= $order_service_package_detail['monthly_frequency']) { // 超出当月问诊次数 @@ -1559,13 +1581,23 @@ class OrderServicePackageService extends BaseService return []; } + + // 每月问诊次数(0表示不限次) $monthly_frequency = $order_service_package_detail['monthly_frequency']; // 获取服务包当月已问诊次数 $month_inquiry_count = 0; if ($order_service_package_detail['monthly_frequency'] != 0) { - $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + // 检测问诊是否服务包首次问诊 + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no); + + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + } } // 服务包当月剩余问诊次数 diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 10cdc0f..6a7011a 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -3317,7 +3317,13 @@ class PatientOrderService extends BaseService $result['order_service_package']['current_month_finish_date'] = $current_month_date['current_month_finish_date']; // 获取服务包当月已问诊次数 - $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_package['order_service_no']); + if ($is_first){ + // 首次必定只问诊了一次 + $month_inquiry_count = 1; + }else{ + $month_inquiry_count = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); + } // 获取服务包当月剩余问诊次数 if ($order_service_package_detail['monthly_frequency'] != 0) {