diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index 1f32903..208a792 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -1554,4 +1554,30 @@ class OrderServicePackageService extends BaseService return $result; } + + /** + * 获取患者家庭成员进行中的服务包订单 + * @param string|int $patient_user_id + * @param string|int $family_id + * @param string|int $doctor_id + * @param string|int $service_type + * @return array + */ + public function getPatientFamilyInProgressServicePackage(string|int $patient_user_id,string|int $family_id,string|int $doctor_id,string|int $service_type): array + { + // 检测患者是否购买服务包 + $params = array(); + $params['user_id'] = $patient_user_id; + $params['doctor_id'] = $doctor_id; + $params['family_id'] = $family_id; + $params['order_service_type'] = $service_type; + + $order_service_status = ['3']; + $order_service_package = OrderServicePackage::getStatusOne($params, $order_service_status); + if (empty($order_service_package)) { + return []; + } + + return $order_service_package->toArray(); + } } \ No newline at end of file diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 58e80e1..b9ec65d 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -1520,24 +1520,11 @@ class PatientOrderService extends BaseService return fail(); } - // 处理健康包赠送商品-金额、数量 - if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){ - // 获取问诊订单关联服务包id - $params = array(); - $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; - $order_service_package_inquiry = OrderServicePackageInquiry::getOne($params); - if (empty($order_service_package_inquiry)){ - return fail(); - } - - // 获取服务包订单 - $params = array(); - $params['order_service_no'] = $order_service_package_inquiry['order_service_no']; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - return fail(); - } - + // 获取患者家庭成员进行中的服务包订单 + $OrderServicePackageService = new OrderServicePackageService(); + $order_service_package = $OrderServicePackageService->getPatientFamilyInProgressServicePackage($order_inquiry['user_id'],$order_inquiry['family_id'],$order_inquiry['doctor_id'],1); + if (!empty($order_service_package)){ + // 处理健康包赠送商品-金额、数量 // 获取服务包订单详情 $params = array(); $params['order_service_id'] = $order_service_package['order_service_id']; @@ -1556,7 +1543,7 @@ class PatientOrderService extends BaseService $total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']); // 获取服务包内某一药品的剩余数量 - $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity); + $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$product_data['product_id'],$total_quantity); // 可用数量大于处方商品数量 if ($remaining_quantity >= $product_data['product_num']){ @@ -2080,24 +2067,11 @@ class PatientOrderService extends BaseService return fail(); } - // 处理健康包赠送商品 - if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){ - // 获取问诊订单关联服务包id - $params = array(); - $params['order_inquiry_id'] = $order_inquiry['order_inquiry_id']; - $order_service_package_inquiry = OrderServicePackageInquiry::getOne($params); - if (empty($order_service_package_inquiry)){ - return fail(); - } - - // 获取服务包订单 - $params = array(); - $params['order_service_no'] = $order_service_package_inquiry['order_service_no']; - $order_service_package = OrderServicePackage::getOne($params); - if (empty($order_service_package)){ - return fail(); - } - + // 获取患者家庭成员进行中的服务包订单 + $OrderServicePackageService = new OrderServicePackageService(); + $order_service_package = $OrderServicePackageService->getPatientFamilyInProgressServicePackage($order_inquiry['user_id'],$order_inquiry['family_id'],$order_inquiry['doctor_id'],1); + if (!empty($order_service_package)){ + // 处理健康包赠送商品 // 获取服务包订单详情 $params = array(); $params['order_service_id'] = $order_service_package['order_service_id']; @@ -2108,15 +2082,13 @@ class PatientOrderService extends BaseService // 此处不检测未支付的商品订单,在创建订单时会进行数量的扣减 // 处理商品数量、金额 - $OrderServicePackageService = new OrderServicePackageService(); - $amount_total = 0; foreach ($product_datas as &$product_data){ // 获取服务包内某一药品的总数量 $total_quantity = $OrderServicePackageService->getOrderServiceProductTotalQuantity($order_service_package_detail['package_id'],$product_data['product_id']); // 获取服务包内某一药品的剩余数量 - $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package_inquiry['order_service_id'],$product_data['product_id'],$total_quantity); + $remaining_quantity = $OrderServicePackageService->getOrderServiceProductCanUseQuantity($order_service_package['order_service_id'],$product_data['product_id'],$total_quantity); // 可用数量大于处方商品数量 if ($remaining_quantity >= $product_data['product_num']){