diff --git a/app/Services/ImService.php b/app/Services/ImService.php index a0e05f4..da46cc7 100644 --- a/app/Services/ImService.php +++ b/app/Services/ImService.php @@ -342,6 +342,30 @@ 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['start_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){ @@ -349,6 +373,16 @@ 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个回合。医生繁忙请耐心等待,医生接诊会后第一时间短信通知您。"; } @@ -425,6 +459,14 @@ 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['start_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']); @@ -486,6 +528,17 @@ class ImService extends BaseService $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'] = "医生已接诊,为提高沟通效率,您可一次性如实补充病情(具体症状,患病时长,用药情况及想咨询的问题等)。线上咨询不能代替面诊,医生建议仅供参考。"; } @@ -649,6 +702,22 @@ 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['start_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){ @@ -658,6 +727,16 @@ 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'] = "平台已自动发起退款,请注意查看账户信息。";