From 35ad7ae43af9d134294e7fb2263ef4c16e7f4ed6 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Thu, 25 Apr 2024 10:18:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9im=E6=B6=88=E6=81=AF=E6=8E=A8?= =?UTF-8?q?=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/ImService.php | 633 ++++---------------- app/Services/OrderServicePackageService.php | 74 +++ 2 files changed, 203 insertions(+), 504 deletions(-) diff --git a/app/Services/ImService.php b/app/Services/ImService.php index b0c6057..2d54ee1 100644 --- a/app/Services/ImService.php +++ b/app/Services/ImService.php @@ -294,52 +294,20 @@ class ImService extends BaseService $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } + // 消息内容 医生-患者 $message_content_data = array(); $message_content_data['message_type'] = 1; $message_content_data['title'] = "—问诊已结束—"; $message_content_data['desc'] = "线上咨询不能代替面诊,医生建议仅供参考。"; - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -372,6 +340,15 @@ class ImService extends BaseService $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } + // 消息内容 医生-患者 $message_content_data = array(); $message_content_data['message_type'] = 1; @@ -383,30 +360,6 @@ class ImService extends BaseService // 获取服务包订单编号-通过问诊订单id $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - // 获取服务包订单数据 - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情数据 - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package_detail = OrderServicePackageDetail::getOne($params); - if (empty($order_service_package_detail)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['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){ @@ -414,16 +367,6 @@ class ImService extends BaseService }else{ $message_content_data['desc'] = "温馨提示:医生繁忙请耐心等待,医生接诊后会第一时间通知您。"; } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 }else{ $message_content_data['desc'] = "温馨提示:当前服务为专家问诊,医师接诊后可以在24小时内和医生沟通20个回合。医生繁忙请耐心等待,医生接诊会后第一时间短信通知您。"; } @@ -467,6 +410,15 @@ class ImService extends BaseService $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } + // 消息内容 医生-患者 $message_content_data = array(); $message_content_data['message_type'] = 1; @@ -500,14 +452,6 @@ class ImService extends BaseService throw new BusinessException("im消息发送失败"); } - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - // 转换服务包订单类型为汉字 $order_type = orderServiceTypeToString($order_service_package['order_service_type']); @@ -526,10 +470,6 @@ class ImService extends BaseService $remaining_inquiry_count = "不限"; } - if ($remaining_inquiry_count == 0){ - $message_content_data['desc'] = "医生已接诊,为提高沟通效率,您可一次性如实补充病情(具体症状,患病时长,用药情况及想咨询的问题等)。线上咨询不能代替面诊,医生建议仅供参考。"; - } - // 检测问诊是否服务包首次问诊 $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no); if ($is_first){ @@ -537,47 +477,28 @@ class ImService extends BaseService }else{ // 健康包 if ($order_inquiry['inquiry_mode'] == 8){ - // 获取服务包内药品 - $params = array(); - $params['order_service_id'] = $order_service_package['order_service_id']; - $order_service_package_products = OrderServicePackageProduct::getList($params); - if (!empty($order_service_package_products)){ - $remaining_quantity = 0; - foreach ($order_service_package_products as $order_service_package_product){ - // 获取服务包内某一药品的总数量 - $total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_product['product_id']); - + $remaining_quantity = 0; + if ($order_service_package['order_service_type'] == 1){ + // 获取服务包内所有药品 + $health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']); + foreach ($health_package_products as $health_package_product) { // 获取服务包内某一药品的剩余数量 - $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$order_service_package_product['product_id'],$total_quantity); - if ($remaining_quantity > 0){ - break; - } + $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']); } + } - if ($remaining_quantity > 0){ - $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,且还剩余{$remaining_quantity}盒肝爽颗粒,提醒医生开具处方。"; - }else{ - $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; - } + if ($remaining_quantity > 0){ + $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,且还剩余{$remaining_quantity}盒肝爽颗粒,提醒医生开具处方。"; + }else{ + $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; } } // 随访包 if ($order_inquiry['inquiry_mode'] == 9){ - $message_content_data['desc'] = "医生已接诊,{$order_type}服务本月剩余{$remaining_inquiry_count}/不限次,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; + $message_content_data['desc'] = "医生已接诊,{$order_type}服务本月剩余{$remaining_inquiry_count}次,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; } } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - }else{ $message_content_data['desc'] = "医生已接诊,为提高沟通效率,您可一次性如实补充病情(具体症状,患病时长,用药情况及想咨询的问题等)。线上咨询不能代替面诊,医生建议仅供参考。"; } @@ -614,6 +535,15 @@ class ImService extends BaseService $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } + // 消息内容 医生-患者 $message_content_data = array(); $message_content_data['message_type'] = 1; @@ -631,22 +561,6 @@ class ImService extends BaseService throw new BusinessException("im消息发送失败"); } - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - // 转换服务包订单类型为汉字 $order_type = orderServiceTypeToString($order_service_package['order_service_type']); @@ -659,16 +573,6 @@ class ImService extends BaseService $message_content_data['title'] = "—医生未接诊—"; $message_content_data['desc'] = "温馨提示:医生因工作繁忙未能及时进行接诊,请您见谅;稍后请再次发起问诊。"; } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 }else{ $message_content_data['title'] = "—医生未接诊—"; $message_content_data['desc'] = "医生因工作繁忙未能及时接诊,请您谅解。所支付金额会在24小时内原路退回,再次感谢您的支持"; @@ -709,6 +613,15 @@ class ImService extends BaseService $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } + // 消息内容 $message_content_data = array(); $message_content_data['message_type'] = $message_type; @@ -719,46 +632,6 @@ class ImService extends BaseService $message_content_data['data']['product_name'] = $product_name ?? "药品"; $message_content_data['data']['pharmacist_verify_time'] = date('Y-m-d H:i:s', time()); - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -791,6 +664,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 医生-患者 $message_content_data = array(); @@ -801,29 +682,6 @@ class ImService extends BaseService // 获取服务包订单编号-通过问诊订单id $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['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){ @@ -833,16 +691,6 @@ class ImService extends BaseService $message_content_data['title'] = "—问诊退款—"; $message_content_data['desc'] = "平台已自动发起退款,请注意查看账户信息。"; } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 }else{ $message_content_data['title'] = "—问诊退款—"; $message_content_data['desc'] = "平台已自动发起退款,请注意查看账户信息。"; @@ -878,6 +726,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 - 患者-医生 $message_content_data = array(); @@ -885,52 +741,11 @@ class ImService extends BaseService $message_content_data['desc'] = ""; $message_content_data['data']['order_inquiry_id'] = (string)$order_inquiry['order_inquiry_id']; - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $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); - } /** @@ -956,6 +771,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 医生-患者 $message_content_data = array(); @@ -966,47 +789,6 @@ class ImService extends BaseService $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());; - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1038,53 +820,20 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 医生-患者 $message_content_data = array(); $message_content_data['message_type'] = 1; $message_content_data['title'] = "—问诊已结束—"; $message_content_data['desc'] = "本次问诊服务已正式结束,祝您早日康复,再次感谢您的支持。"; - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1115,6 +864,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } if ($order_inquiry['inquiry_type'] == 1 || $order_inquiry['inquiry_type'] == 3) { // 专家、公益 @@ -1130,47 +887,6 @@ class ImService extends BaseService $message_content_data['title'] = "您有一个新的问诊服务等待接诊"; $message_content_data['desc'] = $desc; $message_content_data['data']['message_path'] = "/Pages/yishi/wenzhen_v2/wenzhen"; - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1273,6 +989,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 $message_content_data = array(); @@ -1282,47 +1006,6 @@ class ImService extends BaseService $message_content_data['data']['order_no'] = (string)$order_inquiry['inquiry_no']; $message_content_data['data']['disease_desc'] = $disease_desc ?: ""; $message_content_data['data']['message_path'] = "user/pages/case/index?order_inquiry_id=" . $order_inquiry['order_inquiry_id']; // 跳转地址(小程序内页) - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1356,6 +1039,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 $message_content_data = array(); @@ -1366,47 +1057,6 @@ class ImService extends BaseService $message_content_data['data']['order_no'] = (string)$order_inquiry['inquiry_no']; $message_content_data['data']['message_path'] = "patient/pages/sickForm/sickForm"; // 跳转地址(小程序内页) $message_content_data['data']['case_not_fill_fields'] = $case_fields; // 病例字段,json格式,医生端发送患者端使用(此字段仅针对message_type为12的情况) - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1440,6 +1090,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 $message_content_data = array(); @@ -1451,47 +1109,6 @@ class ImService extends BaseService $message_content_data['data']['message_path'] = "user/pages/sick_detail/index"; // 跳转地址(小程序内页) $message_content_data['data']['case_patient_message_path'] = "/patient/sickDetail/sickDetail"; // 跳转地址(小程序内页) $message_content_data['data']['case_filled_fields'] = $case_fields; // 病例字段,json格式,患者端发送医生端使用(此字段仅针对message_type为12的情况) - - if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ - $OrderServicePackageService = new OrderServicePackageService(); - - // 获取服务包订单编号-通过问诊订单id - $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); - - $params = array(); - $params['order_service_no'] = $order_service_no; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包订单详情 - $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)){ - throw new BusinessException("im消息发送失败"); - } - - // 获取服务包当月已问诊次数 - $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['pay_time'], $order_service_package['order_service_type'], $order_service_package['user_id'], $order_service_package['doctor_id']); - } - - $message_content_data['data']['remaining_month_inquiry_count'] = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; // 服务包当月剩余问诊次数 - if (!empty($order_service_package['start_time'])){ - $message_content_data['data']['service_package_start_time'] = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); // 服务包开始时间 - } - - if (!empty($order_service_package['finish_time'])){ - $message_content_data['data']['service_package_finish_time'] = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); // 服务包结束时间 - } - $message_content_data['data']['service_period'] = $order_service_package_detail['service_period']; // 服务包服务周期 - } - $message_content = [ 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), ]; @@ -1567,6 +1184,14 @@ class ImService extends BaseService $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']; + if ($order_inquiry['inquiry_mode'] == 8 || $order_inquiry['inquiry_mode'] == 9){ + // 获取im消息推送中,服务包订单相关的自定义参数 + $OrderServicePackageService = new OrderServicePackageService(); + $result = $OrderServicePackageService->getImServicePackageCloudCustomData($order_inquiry['inquiry_no']); + if (!empty($result)){ + $cloud_custom_data = $result; + } + } // 消息内容 医生-患者 $message_content_data = array(); diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index e9b78bb..60c6910 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -1478,4 +1478,78 @@ class OrderServicePackageService extends BaseService return $amount_total; } + + /** + * 获取im消息推送中,服务包订单相关的自定义参数 + * @param string|int $inquiry_no + * @return array + */ + public function getImServicePackageCloudCustomData(string|int $inquiry_no): array + { + $OrderServicePackageService = new OrderServicePackageService(); + + // 获取服务包订单编号-通过问诊订单id + $order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($inquiry_no); + + $params = array(); + $params['order_service_no'] = $order_service_no; + $order_service_package = OrderServicePackage::getOne($params); + if (empty($order_service_package)){ + return []; + } + + // 获取服务包订单详情 + $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 []; + } + + // 每月问诊次数(0表示不限次) + $monthly_frequency = $order_service_package_detail['monthly_frequency']; + + // 获取服务包当月已问诊次数 + $month_inquiry_count = 0; + if ($order_service_package_detail['monthly_frequency'] != 0 && !empty($order_service_package['start_time'])) { + $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']); + } + + // 服务包当月剩余问诊次数 + $remaining_month_inquiry_count = $order_service_package_detail['monthly_frequency'] - $month_inquiry_count; + + // 服务包开始时间 + if (!empty($order_service_package['start_time'])){ + $service_package_start_time = date('Y-m-d H:i',strtotime($order_service_package['start_time'])); + } + + // 服务包结束时间 + if (!empty($order_service_package['finish_time'])){ + $service_package_finish_time = date('Y-m-d H:i',strtotime($order_service_package['finish_time'])); + } + + // 服务包服务周期 + $service_period = $order_service_package_detail['service_period']; + + // 药品剩余数量 + $remaining_quantity = 0; + + // 获取服务包内所有药品 + $health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']); + foreach ($health_package_products as $health_package_product) { + // 获取服务包内某一药品的剩余数量 + $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']); + } + + $result = array(); + $result['monthly_frequency'] = $monthly_frequency; // 每月问诊次数(0表示不限次) + $result['month_inquiry_count'] = $month_inquiry_count; // 获取服务包当月已问诊次数 + $result['remaining_month_inquiry_count'] = $remaining_month_inquiry_count; // 服务包当月剩余问诊次数 + $result['service_package_start_time'] = $service_package_start_time ?? ""; // 服务包开始时间 + $result['service_package_finish_time'] = $service_package_finish_time ?? ""; // 服务包结束时间 + $result['service_period'] = $service_period; // 服务包服务周期 + $result['remaining_quantity'] = $remaining_quantity; // 药品剩余数量 + + return $result; + } } \ No newline at end of file