From 31c3ce57b807c38dfd5758a52cc5bb5433aca7a6 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Mon, 15 Apr 2024 13:27:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=B8=BB=E5=8A=A8=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E8=AE=A2=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E3=80=82=E5=8F=96=E6=B6=88=E8=AE=A2=E5=8D=95-=E9=97=AE?= =?UTF-8?q?=E8=AF=8A/=E6=A3=80=E6=B5=8B/=E6=9C=8D=E5=8A=A1=E5=8C=85?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A8=E9=80=81=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/CallBackController.php | 2 +- app/Services/OrderService.php | 7 +++ app/Services/PatientOrderService.php | 63 +++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/app/Controller/CallBackController.php b/app/Controller/CallBackController.php index 00be6b4..1c01699 100644 --- a/app/Controller/CallBackController.php +++ b/app/Controller/CallBackController.php @@ -2354,7 +2354,7 @@ class CallBackController extends AbstractController if ($order_service_package['refund_status'] == 3) { // 检测订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) Db::rollBack(); - Log::getInstance("CallBack-wxPayServiceRefund")->error("订单退款状态错误:当前为" . $order_service_package['refund_status']); + Log::getInstance("CallBack-wxPayServiceRefund")->info('已退款成功,此回调不处理'); return $server->serve(); } diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index 56fee98..dca1367 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -992,6 +992,13 @@ class OrderService extends BaseService throw new BusinessException("订单类型错误"); } + // 检测支付状态,判断是否需要退款处理 + if ($order['pay_status'] == 2 && $order['refund_status'] != 3) { + // 需退款 + $OrderService = new OrderService(); + $OrderService->orderRefund($order['order_no'], "主动取消"); + } + // 删除锁 $redis->del($redis_key); diff --git a/app/Services/PatientOrderService.php b/app/Services/PatientOrderService.php index 7273ed0..a8c2d36 100644 --- a/app/Services/PatientOrderService.php +++ b/app/Services/PatientOrderService.php @@ -2421,6 +2421,14 @@ class PatientOrderService extends BaseService Db::beginTransaction(); try { + // 获取订单数据 + $params = array(); + $params['order_no'] = $order_no; + $order = Order::getOne($params); + if (empty($order)) { + return fail(HttpEnumCode::HTTP_ERROR, "非法订单"); + } + $OrderService = new OrderService(); $result = $OrderService->PatientActiveCancelOrder($order_no); if ($result['status'] != 1) { @@ -2434,6 +2442,61 @@ class PatientOrderService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage()); } + // 推送消息 + try { + // 处理对应订单 + switch ($order['order_type']) { + case 1: // 问诊订单 + // 获取订单数据 + $params = array(); + $params['inquiry_no'] = $order_no; + $order_inquiry = OrderInquiry::getOne($params); + if (!empty($order_inquiry)) { + // 获取医生数据 + $params = array(); + $params['doctor_id'] = $order_inquiry['doctor_id']; + $user_doctor = UserDoctor::getOne($params); + if (!empty($user_doctor)) { + // 推送医生-患者取消问诊 + $MessagePush = new MessagePush($user_doctor['user_id'], $order_inquiry['order_inquiry_id']); + $MessagePush->patientCancelInquiryToDoctor(); + } + } + + break; + case 3: // 检测订单 + // 获取订单数据 + $params = array(); + $params['detection_no'] = $order_no; + $order_detection = OrderDetection::getOne($params); + if (!empty($order_detection)) { + // 推送患者-订单取消成功通知 + $MessagePush = new MessagePush($order_detection['user_id']); + $MessagePush->patientCancelDetectionOrderSuccess($order_detection['order_detection_id']); + } + + break; + case 4: // 健康包订单 + case 5: // 随访包订单 + // 获取订单数据 + $params = array(); + $params['order_service_no'] = $order_no; + $order_service_package = OrderServicePackage::getOne($params); + if (empty($order_service_package)) { + $result['status'] = 0; + $result['message'] = "订单数据为空"; + return $result; + } + + break; + default: + // 错误不处理 + } + }catch (\Throwable $e){ + // 错误不处理 + Log::getInstance("PatientOrderService-putCancelPatientOrder")->error($e->getMessage()); + } + return success(); }