From f8cabb455a927f67009e5de3985a8c176a9f9a3d Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Fri, 12 Apr 2024 18:32:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=9C=8D=E5=8A=A1=E5=8C=85?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=81=A5=E5=BA=B7=E5=8C=85?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=85=B3=E8=81=94=E5=95=86=E5=93=81=E3=80=81?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BA=86=E8=8E=B7=E5=8F=96=E6=82=A3=E8=80=85?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8C=85=E8=AE=A2=E5=8D=95=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=9D=83=E7=9B=8A=E8=AF=A6=E6=83=85=EF=BC=88=E5=BE=85=E5=AE=8C?= =?UTF-8?q?=E6=88=90=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/PatientOrderController.php | 11 +++ app/Model/HealthPackage.php | 4 +- app/Model/OrderServicePackageProduct.php | 81 +++++++++++++++++++++ app/Services/OrderServicePackageService.php | 39 ++++++++++ app/Services/PatientOrderService.php | 37 ++++++++++ config/routes.php | 3 + 6 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 app/Model/OrderServicePackageProduct.php diff --git a/app/Controller/PatientOrderController.php b/app/Controller/PatientOrderController.php index 0c59805..83d543d 100644 --- a/app/Controller/PatientOrderController.php +++ b/app/Controller/PatientOrderController.php @@ -356,4 +356,15 @@ class PatientOrderController extends AbstractController $data = $PatientOrderService->getPatientServiceOrderInfo(); return $this->response->json($data); } + + /** + * 获取患者服务包订单服务权益详情 + * @return ResponseInterface + */ + public function getPatientServiceOrderDetailInfo(): ResponseInterface + { + $PatientOrderService = new PatientOrderService(); + $data = $PatientOrderService->getPatientServiceOrderDetailInfo(); + return $this->response->json($data); + } } \ No newline at end of file diff --git a/app/Model/HealthPackage.php b/app/Model/HealthPackage.php index 902d8b2..8d7e234 100644 --- a/app/Model/HealthPackage.php +++ b/app/Model/HealthPackage.php @@ -17,8 +17,8 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property string $effective_days 服务有效天数 * @property string $service_rate 服务费率。100为满值,表示1,正常费率。 * @property string $discount_product_total_amount 折扣商品总价格 - * @property \Carbon\Carbon $created_at 创建时间 - * @property \Carbon\Carbon $updated_at 修改时间 + * @property Carbon $created_at 创建时间 + * @property Carbon $updated_at 修改时间 */ class HealthPackage extends Model { diff --git a/app/Model/OrderServicePackageProduct.php b/app/Model/OrderServicePackageProduct.php new file mode 100644 index 0000000..b7f5e41 --- /dev/null +++ b/app/Model/OrderServicePackageProduct.php @@ -0,0 +1,81 @@ +first($fields); + } + + /** + * 多条 + * @param array $params + * @param array $fields + * @return Collection|array + */ + public static function getList(array $params, array $fields = ['*']): Collection|array + { + return self::where($params)->get($fields); + } + + /** + * 新增 + * @param array $data + * @return OrderServicePackageProduct|\Hyperf\Database\Model\Model + */ + public static function addOrderServicePackageProduct(array $data): \Hyperf\Database\Model\Model|OrderServicePackageProduct + { + return self::create($data); + } + + /** + * 修改 + * @param array $params + * @param array $data + * @return int + */ + public static function edit(array $params = [], array $data = []): int + { + return self::where($params)->update($data); + } +} diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index 30f0baa..9ba0452 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -13,6 +13,7 @@ use App\Model\DoctorConfigFollowPackageItem; use App\Model\DoctorConfigHealthPackage; use App\Model\DoctorInquiryConfig; use App\Model\HealthPackage; +use App\Model\HealthPackageProduct; use App\Model\InquiryCaseProduct; use App\Model\Order; use App\Model\OrderCoupon; @@ -23,6 +24,7 @@ use App\Model\OrderServicePackage; use App\Model\OrderServicePackageCase; use App\Model\OrderServicePackageDetail; use App\Model\OrderServicePackageInquiry; +use App\Model\OrderServicePackageProduct; use App\Model\PatientFamily; use App\Model\PatientFamilyHealth; use App\Model\PatientFamilyPersonal; @@ -531,6 +533,41 @@ class OrderServicePackageService extends BaseService return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); } + // 增加健康包订单关联商品 + if ($request_params['service_type'] == 1){ + // 获取医生健康包配置 + $params = array(); + $health_package = HealthPackage::getOne($params); + if (empty($health_package)){ + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); + } + + // 获取医生健康包关联商品 + $params = array(); + $params['package_id'] = $health_package['package_id']; + $health_package_products = HealthPackageProduct::getList($params); + if (empty($health_package_product)){ + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); + } + + // 增加健康包订单关联商品 + foreach ($health_package_products as $health_package_product){ + $data = array(); + $data['order_service_id'] = $order_service_package['order_service_id']; + $data['product_id'] = $health_package_product['product_id']; + $data['product_name'] = $health_package_product['product_name']; + $data['quantity'] = $health_package_product['quantity']; + $data['discount_product_price'] = $health_package_product['discount_product_price']; + $order_service_package_product = OrderServicePackageProduct::addOrderServicePackageProduct($data); + if (empty($order_service_package_product)){ + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); + } + } + } + // 增加患者服务包病例 $data = array(); $data['user_id'] = $user_info['user_id']; @@ -616,6 +653,8 @@ class OrderServicePackageService extends BaseService /** * 创建服务包问诊订单 * @return array + * @throws ContainerExceptionInterface + * @throws NotFoundExceptionInterface */ public function addServiceInquiryOrder(): array { diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 7145ca4..93e877f 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -31,6 +31,7 @@ use App\Model\OrderProductItem; use App\Model\OrderProductLogistic; use App\Model\OrderServicePackage; use App\Model\OrderServicePackageCase; +use App\Model\OrderServicePackageDetail; use App\Model\OrderServicePackageRefund; use App\Model\PatientFamily; use App\Model\PatientFamilyHealth; @@ -2690,6 +2691,42 @@ class PatientOrderService extends BaseService return success($order_service_package->toArray()); } + /** + * 获取患者服务包订单服务权益详情 + * @return array + */ + public function getPatientServiceOrderDetailInfo(): array + { + $user_info = $this->request->getAttribute("userInfo") ?? []; + + $order_no = $this->request->route('order_no'); + + // 获取订单数据 + $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); + if (empty($order_service_package)) { + return fail(HttpEnumCode::HTTP_ERROR,"非法订单"); + } + + $params = array(); + $params['order_service_id'] = $order_service_package['order_service_id']; + $order_service_package_detail = OrderServicePackageDetail::getOne($params); + if (empty($order_service_package_detail)){ + return fail(HttpEnumCode::HTTP_ERROR,"非法订单"); + } + + // 健康报 + if ($order_service_package['order_service_type'] == 1){ + $params = array(); + $params['order_service_id'] = $order_service_package['order_service_id']; + } + + return success($order_service_package_detail->toArray()); + } + /** * 获取患者未完成订单 * @param string $patient_id diff --git a/config/routes.php b/config/routes.php index 3542b7e..e8d51dd 100644 --- a/config/routes.php +++ b/config/routes.php @@ -558,6 +558,9 @@ Router::addGroup('/patient', function () { // 获取患者服务包订单详情 Router::get('/{order_no}', [PatientOrderController::class, 'getPatientServiceOrderInfo']); + + // 获取患者服务包订单服务权益详情 + Router::get('/detail/{order_no}', [PatientOrderController::class, 'getPatientServiceOrderDetailInfo']); }); // 获取患者订单支付数据