From bf94959b06c469e7c5742b1b191d50387948af46 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Tue, 30 Apr 2024 10:42:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E6=94=AF=E4=BB=98/=E4=B8=8A=E6=8A=A5=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E5=A4=84=E6=96=B9=E5=B9=B3=E5=8F=B0=E5=AE=A1=E6=A0=B8=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=83=85=E5=86=B5=E4=B8=8B=E5=81=A5=E5=BA=B7=E5=8C=85?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=9A=84=E8=8D=AF=E5=93=81=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/OrderProductService.php | 19 ++++++++++-- app/Services/OrderService.php | 46 +++++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/app/Services/OrderProductService.php b/app/Services/OrderProductService.php index 2a33267..2506693 100644 --- a/app/Services/OrderProductService.php +++ b/app/Services/OrderProductService.php @@ -13,6 +13,7 @@ use App\Model\OrderProduct; use App\Model\OrderProductCoupon; use App\Model\OrderProductItem; use App\Model\OrderProductRefund; +use App\Model\OrderServicePackageDetail; use App\Model\OrderServicePackageInquiry; use App\Model\OrderServicePackageProduct; use App\Model\Product; @@ -165,13 +166,25 @@ class OrderProductService extends BaseService $params['amount_id'] = $product_platform_amount['amount_id']; ProductPlatformAmount::inc($params, 'stock', (float)$item['amount']); - // 回退服务包已使用药品数量 - if ($order_inquiry['inquiry_type'] == 1 && $order_inquiry['inquiry_mode'] == 8){ + // 获取患者家庭成员进行中的服务包订单-健康包 + $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']; $params['order_product_id'] = $item['order_product_id']; $params['product_item_id'] = $item['product_item_id']; $params['product_id'] = $item['product_id']; - OrderServicePackageProduct::deleteOrderServicePackageProduct($params); + $order_service_package_product = OrderServicePackageProduct::getOne($params); + if (!empty($order_service_package_product)){ + $params = array(); + $params['service_product_id'] = $order_service_package_product['service_product_id']; + + $data = array(); + $data['used_quantity'] = 0; + OrderServicePackageProduct::edit($params,$data); + } } } diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 6dbee40..c89206b 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -12,11 +12,13 @@ use App\Model\OrderInquiry; use App\Model\OrderInquiryCoupon; use App\Model\OrderInquiryRefund; use App\Model\OrderProduct; +use App\Model\OrderProductItem; use App\Model\OrderProductRefund; use App\Model\OrderRefund; use App\Model\OrderServicePackage; use App\Model\OrderServicePackageDetail; use App\Model\OrderServicePackageInquiry; +use App\Model\OrderServicePackageProduct; use App\Model\OrderServicePackageRefund; use App\Utils\Log; use Extend\Wechat\WechatPay; @@ -212,11 +214,6 @@ class OrderService extends BaseService $refund_id = $refund_result['refund_id']; } else { - // 药品订单不存在模拟退款 - if ($order['order_type'] == 2){ - throw new BusinessException("订单金额错误"); - } - // 模拟退款 $refund_status = 3; @@ -337,6 +334,45 @@ class OrderService extends BaseService $params['order_product_id'] = $order_product['order_product_id']; OrderProduct::edit($params,$data); + // 获取问诊订单数据 + $params = array(); + $params['order_inquiry_id'] = $order_product['order_inquiry_id']; + $order_inquiry = OrderInquiry::getOne($params); + if (empty($order_inquiry)){ + throw new BusinessException("未查询到对应问诊订单数据"); + } + + // 获取订单商品订单列表 + $params = array(); + $params['order_product_id'] = $order_product['order_product_id']; + $order_product_items = OrderProductItem::getList($params); + if (empty($order_product_items)){ + throw new BusinessException("未查询到对应订单商品订单列表"); + } + + // 获取患者家庭成员进行中的服务包订单-健康包 + $OrderServicePackageService = new OrderServicePackageService(); + $order_service_package = $OrderServicePackageService->getPatientFamilyInProgressServicePackage($order_product['user_id'],$order_inquiry['family_id'],$order_inquiry['doctor_id'],1); + if (!empty($order_service_package)){ + // 回退服务包已使用药品数量 + foreach ($order_product_items as $order_product_item){ + $params = array(); + $params['order_service_id'] = $order_service_package['order_service_id']; + $params['order_product_id'] = $order_product_item['order_product_id']; + $params['product_item_id'] = $order_product_item['product_item_id']; + $params['product_id'] = $order_product_item['product_id']; + $order_service_package_product = OrderServicePackageProduct::getOne($params); + if (!empty($order_service_package_product)){ + $params = array(); + $params['service_product_id'] = $order_service_package_product['service_product_id']; + + $data = array(); + $data['used_quantity'] = 0; + OrderServicePackageProduct::edit($params,$data); + } + } + } + break; case 3: // 检测订单 // 获取订单数据