diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index ec63fd0..217b0d4 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2783,11 +2783,19 @@ class PatientOrderService extends BaseService $order_no = $this->request->route('order_no'); // 获取订单数据 + $fields = [ + "order_service_id", + "start_time", + "finish_time", + "order_service_type", + "doctor_id", + ]; + $params = array(); $params['patient_id'] = $user_info['client_user_id']; $params['order_service_no'] = $order_no; $params['is_delete'] = 0; - $order_service_package = OrderServicePackage::getOne($params); + $order_service_package = OrderServicePackage::getOne($params,$fields); if (empty($order_service_package)) { return fail(HttpEnumCode::HTTP_ERROR,"非法订单"); } @@ -2802,12 +2810,28 @@ class PatientOrderService extends BaseService // 定义返回数据 $result = array(); + $result['order_service_package'] = $order_service_package->toArray(); // 订单详情数据 $result['order_service_package_detail'] = $order_service_package_detail->toArray(); // 订单详情数据 $result['order_service_package_product'] = []; // 健康包商品数据 $result['order_service_package_coupon'] = []; // 健康包关联优惠卷数据 $result['order_inquiry'] = []; // 健康包问诊订单数据 $result['order_product'] = []; // 健康包药品订单数据 + // 获取服务包当月问诊次数 + $OrderServicePackageService = new OrderServicePackageService(); + $result['order_service_package']['month_inquiry_count'] = $OrderServicePackageService->getCurrentMonthInquiryCount($order_service_package['start_time'],$order_service_package['order_service_type'],$user_info['client_user_id'], $order_service_package['doctor_id']); + + // 获取问诊订单数据 + if (in_array($order_service_package['order_service_status'],[2,3,4,5])){ + // 订单状态(1:待支付 2:未开始 3:服务中 4:服务完成 5:服务取消) + $params = array(); + $params['order_service_id'] = $order_service_package['order_service_id']; + $order_service_package_inquiry = OrderServicePackageInquiry::getList($params); + if (!empty($order_service_package_inquiry)){ + $result['order_inquiry'] = $order_service_package_inquiry->toArray(); + } + } + // 健康包数据 if ($order_service_package['order_service_type'] == 1){ // 健康包商品数据 @@ -2828,17 +2852,6 @@ class PatientOrderService extends BaseService } } - // 健康包问诊订单数据 - if (in_array($order_service_package['order_service_status'],[2,3,4,5])){ - // 订单状态(1:待支付 2:未开始 3:服务中 4:服务完成 5:服务取消) - $params = array(); - $params['order_service_id'] = $order_service_package['order_service_id']; - $order_service_package_inquiry = OrderServicePackageInquiry::getList($params); - if (!empty($order_service_package_inquiry)){ - $result['order_inquiry'] = $order_service_package_inquiry->toArray(); - } - } - // 健康包药品订单数据-周期内所有药品订单 if (in_array($order_service_package['order_service_status'],[3,4,5])){ $params = array(); @@ -2849,11 +2862,35 @@ class PatientOrderService extends BaseService $created_at = [$order_service_package['start_time'],$order_service_package['finish_time']]; $order_product_status_params = [2,3,4]; - $order_product = OrderProduct::getProductWithCreateTime($params,$created_at,$order_product_status_params); - if (!empty($order_product)){ - $result['order_product'] = $order_product->toArray(); + $order_products = OrderProduct::getProductWithCreateTime($params,$created_at,$order_product_status_params); + if (!empty($order_products)){ + $result['order_product'] = $order_products->toArray(); } + + // 已使用商品数量 + $used_quantity = 0; + foreach ($order_products as $order_product){ + // 获取详情item + $params = array(); + $params['order_product_id'] = $order_product['order_product_id']; + $order_product_items = OrderProductItem::getList($params); + if (empty($order_product_items)){ + return fail(HttpEnumCode::SERVER_ERROR); + } + + foreach ($order_product_items as $order_product_item){ + $used_quantity = $order_product_item["amount"]; + } + } + + if ($used_quantity > 30){ + $used_quantity = 30; + } + + $result['order_service_package_product']['used_quantity'] = $used_quantity; } + + // 获取药品剩余数量 } return success($result);