修改im消息推送

This commit is contained in:
wucongxing8150 2024-04-25 10:18:06 +08:00
parent ace286e096
commit 35ad7ae43a
2 changed files with 203 additions and 504 deletions

View File

@ -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_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = 1; $message_content_data['message_type'] = 1;
$message_content_data['title'] = "—问诊已结束—"; $message_content_data['title'] = "—问诊已结束—";
$message_content_data['desc'] = "线上咨询不能代替面诊,医生建议仅供参考。"; $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = 1; $message_content_data['message_type'] = 1;
@ -383,30 +360,6 @@ class ImService extends BaseService
// 获取服务包订单编号-通过问诊订单id // 获取服务包订单编号-通过问诊订单id
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); $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); $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){ if ($is_first){
@ -414,16 +367,6 @@ class ImService extends BaseService
}else{ }else{
$message_content_data['desc'] = "温馨提示:医生繁忙请耐心等待,医生接诊后会第一时间通知您。"; $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{ }else{
$message_content_data['desc'] = "温馨提示当前服务为专家问诊医师接诊后可以在24小时内和医生沟通20个回合。医生繁忙请耐心等待医生接诊会后第一时间短信通知您。"; $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_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = 1; $message_content_data['message_type'] = 1;
@ -500,14 +452,6 @@ class ImService extends BaseService
throw new BusinessException("im消息发送失败"); 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']); $order_type = orderServiceTypeToString($order_service_package['order_service_type']);
@ -526,10 +470,6 @@ class ImService extends BaseService
$remaining_inquiry_count = "不限"; $remaining_inquiry_count = "不限";
} }
if ($remaining_inquiry_count == 0){
$message_content_data['desc'] = "医生已接诊,为提高沟通效率,您可一次性如实补充病情(具体症状,患病时长,用药情况及想咨询的问题等)。线上咨询不能代替面诊,医生建议仅供参考。";
}
// 检测问诊是否服务包首次问诊 // 检测问诊是否服务包首次问诊
$is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no); $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){ if ($is_first){
@ -537,47 +477,28 @@ class ImService extends BaseService
}else{ }else{
// 健康包 // 健康包
if ($order_inquiry['inquiry_mode'] == 8){ if ($order_inquiry['inquiry_mode'] == 8){
// 获取服务包内药品 $remaining_quantity = 0;
$params = array(); if ($order_service_package['order_service_type'] == 1){
$params['order_service_id'] = $order_service_package['order_service_id']; // 获取服务包内所有药品
$order_service_package_products = OrderServicePackageProduct::getList($params); $health_package_products = $OrderServicePackageService->getOrderServiceProduct($order_service_package_detail['package_id']);
if (!empty($order_service_package_products)){ foreach ($health_package_products as $health_package_product) {
$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 = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$order_service_package_product['product_id'],$total_quantity); $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$health_package_product['product_id'],$health_package_product['quantity']);
if ($remaining_quantity > 0){
break;
}
} }
}
if ($remaining_quantity > 0){ if ($remaining_quantity > 0){
$message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,且还剩余{$remaining_quantity}盒肝爽颗粒,提醒医生开具处方。"; $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,且还剩余{$remaining_quantity}盒肝爽颗粒,提醒医生开具处方。";
}else{ }else{
$message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。"; $message_content_data['desc'] = "医生已接诊,健康包服务本月剩余{$remaining_inquiry_count}次问诊,服务周期为:{$start_time}~{$finish_time},线上咨询不能代表面诊,医生的回复仅为建议。";
}
} }
} }
// 随访包 // 随访包
if ($order_inquiry['inquiry_mode'] == 9){ 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{ }else{
$message_content_data['desc'] = "医生已接诊,为提高沟通效率,您可一次性如实补充病情(具体症状,患病时长,用药情况及想咨询的问题等)。线上咨询不能代替面诊,医生建议仅供参考。"; $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_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = 1; $message_content_data['message_type'] = 1;
@ -631,22 +561,6 @@ class ImService extends BaseService
throw new BusinessException("im消息发送失败"); 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']); $order_type = orderServiceTypeToString($order_service_package['order_service_type']);
@ -659,16 +573,6 @@ class ImService extends BaseService
$message_content_data['title'] = "—医生未接诊—"; $message_content_data['title'] = "—医生未接诊—";
$message_content_data['desc'] = "温馨提示:医生因工作繁忙未能及时进行接诊,请您见谅;稍后请再次发起问诊。"; $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{ }else{
$message_content_data['title'] = "—医生未接诊—"; $message_content_data['title'] = "—医生未接诊—";
$message_content_data['desc'] = "医生因工作繁忙未能及时接诊请您谅解。所支付金额会在24小时内原路退回再次感谢您的支持"; $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_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = $message_type; $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']['product_name'] = $product_name ?? "药品";
$message_content_data['data']['pharmacist_verify_time'] = date('Y-m-d H:i:s', time()); $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -801,29 +682,6 @@ class ImService extends BaseService
// 获取服务包订单编号-通过问诊订单id // 获取服务包订单编号-通过问诊订单id
$order_service_no = $OrderServicePackageService->getOrderServiceNoByOrderInquiryId($order_inquiry['inquiry_no']); $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); $is_first = $OrderServicePackageService->isFirstInquiryServicePackage($order_service_no);
if ($is_first){ if ($is_first){
@ -833,16 +691,6 @@ class ImService extends BaseService
$message_content_data['title'] = "—问诊退款—"; $message_content_data['title'] = "—问诊退款—";
$message_content_data['desc'] = "平台已自动发起退款,请注意查看账户信息。"; $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{ }else{
$message_content_data['title'] = "—问诊退款—"; $message_content_data['title'] = "—问诊退款—";
$message_content_data['desc'] = "平台已自动发起退款,请注意查看账户信息。"; $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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -885,52 +741,11 @@ class ImService extends BaseService
$message_content_data['desc'] = ""; $message_content_data['desc'] = "";
$message_content_data['data']['order_inquiry_id'] = (string)$order_inquiry['order_inquiry_id']; $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), 'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE),
]; ];
$this->sendMessage($doctor_user_id, $patient_user_id, $message_content, "TIMCustomElem", $cloud_custom_data); $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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -966,47 +789,6 @@ class ImService extends BaseService
$message_content_data['data']['order_prescription_id'] = $order_prescription_id; $message_content_data['data']['order_prescription_id'] = $order_prescription_id;
$message_content_data['data']['product_name'] = $product_name ?: "药品"; $message_content_data['data']['product_name'] = $product_name ?: "药品";
$message_content_data['data']['pharmacist_verify_time'] = date('Y-m-d H:i:s', time());; $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
$message_content_data['message_type'] = 1; $message_content_data['message_type'] = 1;
$message_content_data['title'] = "—问诊已结束—"; $message_content_data['title'] = "—问诊已结束—";
$message_content_data['desc'] = "本次问诊服务已正式结束,祝您早日康复,再次感谢您的支持。"; $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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) { 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['title'] = "您有一个新的问诊服务等待接诊";
$message_content_data['desc'] = $desc; $message_content_data['desc'] = $desc;
$message_content_data['data']['message_path'] = "/Pages/yishi/wenzhen_v2/wenzhen"; $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -1282,47 +1006,6 @@ class ImService extends BaseService
$message_content_data['data']['order_no'] = (string)$order_inquiry['inquiry_no']; $message_content_data['data']['order_no'] = (string)$order_inquiry['inquiry_no'];
$message_content_data['data']['disease_desc'] = $disease_desc ?: ""; $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']; // 跳转地址(小程序内页) $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -1366,47 +1057,6 @@ class ImService extends BaseService
$message_content_data['data']['order_no'] = (string)$order_inquiry['inquiry_no']; $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']['message_path'] = "patient/pages/sickForm/sickForm"; // 跳转地址(小程序内页)
$message_content_data['data']['case_not_fill_fields'] = $case_fields; // 病例字段json格式医生端发送患者端使用此字段仅针对message_type为12的情况 $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();
@ -1451,47 +1109,6 @@ class ImService extends BaseService
$message_content_data['data']['message_path'] = "user/pages/sick_detail/index"; // 跳转地址(小程序内页) $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_patient_message_path'] = "/patient/sickDetail/sickDetail"; // 跳转地址(小程序内页)
$message_content_data['data']['case_filled_fields'] = $case_fields; // 病例字段json格式患者端发送医生端使用此字段仅针对message_type为12的情况 $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 = [ $message_content = [
'Data' => json_encode($message_content_data, JSON_UNESCAPED_UNICODE), '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_name'] = $order_inquiry['patient_name'];
$cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex']; $cloud_custom_data['patient_family_data']['patient_sex'] = $order_inquiry['patient_sex'];
$cloud_custom_data['patient_family_data']['patient_age'] = $order_inquiry['patient_age']; $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 = array();

View File

@ -1478,4 +1478,78 @@ class OrderServicePackageService extends BaseService
return $amount_total; 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;
}
} }