diff --git a/app/Amqp/Consumer/DetectionCompleteDelayDirectConsumer.php b/app/Amqp/Consumer/DetectionCompleteDelayDirectConsumer.php index f3f9529..d381af2 100644 --- a/app/Amqp/Consumer/DetectionCompleteDelayDirectConsumer.php +++ b/app/Amqp/Consumer/DetectionCompleteDelayDirectConsumer.php @@ -8,6 +8,7 @@ use App\Amqp\Producer\AutoCompleteInquiryDelayDirectProducer; use App\Amqp\Producer\DetectionCompleteDelayDirectProducer; use App\Exception\BusinessException; use App\Model\DetectionProject; +use App\Model\Order; use App\Model\OrderDetection; use App\Model\OrderDetectionCase; use App\Model\OrderInquiry; @@ -150,8 +151,29 @@ class DetectionCompleteDelayDirectConsumer extends ConsumerMessage try { $generator = $this->container->get(IdGeneratorInterface::class); + // 生成订单表 + $data = array(); + $data['user_id'] = $order_detection['user_id']; + $data['patient_id'] = $order_detection['patient_id']; + $data['doctor_id'] = $order_detection['doctor_id']; + $data['order_type'] = 1; // 订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单) + $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付) + $data['pay_status'] = 2; // 1:待支付 + $data['order_no'] = "I" . $generator->generate(); // 订单编号 + $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['amount_total'] = 0; // 订单金额 + $data['coupon_amount_total'] = 0; // 优惠卷总金额 + $data['payment_amount_total'] = 0; // 实际付款金额 + $order = Order::addOrder($data); + if (empty($order)) { + Db::rollBack(); + Log::getInstance("queue-DetectionComplete")->error("问诊订单创建失败"); + return Result::DROP; + } + // 创建问诊订单 $data = array(); + $data['order_id'] = $order['order_id']; $data['user_id'] = $order_detection['user_id']; $data['patient_id'] = $order_detection['patient_id']; $data['doctor_id'] = $order_detection['doctor_id']; @@ -161,8 +183,8 @@ class DetectionCompleteDelayDirectConsumer extends ConsumerMessage $data['inquiry_status'] = 4; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付) $data['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) - $data['inquiry_no'] = $generator->generate();// 订单编号 - $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['inquiry_no'] = $order['order_no'];// 订单编号 + $data['escrow_trade_no'] = $order['escrow_trade_no']; // 第三方支付流水号 $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额 diff --git a/app/Controller/CallBackController.php b/app/Controller/CallBackController.php index b527ada..3522ee1 100644 --- a/app/Controller/CallBackController.php +++ b/app/Controller/CallBackController.php @@ -1514,8 +1514,28 @@ class CallBackController extends AbstractController try { $generator = $this->container->get(IdGeneratorInterface::class); + // 生成订单表 + $data = array(); + $data['user_id'] = $order_detection['user_id']; + $data['patient_id'] = $order_detection['patient_id']; + $data['doctor_id'] = $order_detection['doctor_id']; + $data['order_type'] = 1; // 订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单) + $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付) + $data['pay_status'] = 2; // 1:待支付 + $data['order_no'] = "I" . $generator->generate(); // 订单编号 + $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['amount_total'] = 0; // 订单金额 + $data['coupon_amount_total'] = 0; // 优惠卷总金额 + $data['payment_amount_total'] = 0; // 实际付款金额 + $order = Order::addOrder($data); + if (empty($order)) { + Db::rollBack(); + return $this->detectionResultFailReturn("问诊订单创建失败"); + } + // 创建问诊订单 $data = array(); + $data['order_id'] = $order['order_id']; $data['user_id'] = $order_detection['user_id']; $data['patient_id'] = $order_detection['patient_id']; $data['doctor_id'] = $order_detection['doctor_id']; @@ -1525,8 +1545,8 @@ class CallBackController extends AbstractController $data['inquiry_status'] = 4; // 问诊订单状态(1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消) $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付) $data['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) - $data['inquiry_no'] = $generator->generate();// 订单编号 - $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['inquiry_no'] = $order['order_no'];// 订单编号 + $data['escrow_trade_no'] = $order['escrow_trade_no']; // 第三方支付流水号 $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额 diff --git a/app/Services/DetectionService.php b/app/Services/DetectionService.php index d102e29..dafa1b6 100644 --- a/app/Services/DetectionService.php +++ b/app/Services/DetectionService.php @@ -672,23 +672,25 @@ class DetectionService extends BaseService // 生成订单表 $data = array(); $data['user_id'] = $order_detection['user_id']; - $data['patient_id'] = $order_detection['client_user_id']; + $data['patient_id'] = $order_detection['patient_id']; $data['doctor_id'] = $order_detection['doctor_id']; $data['order_type'] = 1; // 订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单) $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付) $data['pay_status'] = 2; // 1:待支付 $data['order_no'] = "I" . $generator->generate(); // 订单编号 + $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 $data['amount_total'] = 0; // 订单金额 $data['coupon_amount_total'] = 0; // 优惠卷总金额 $data['payment_amount_total'] = 0; // 实际付款金额 $order = Order::addOrder($data); if (empty($order)) { Db::rollBack(); - return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); + return fail(); } // 创建问诊订单 $data = array(); + $data['order_id'] = $order['order_id']; $data['user_id'] = $order_detection['user_id']; $data['patient_id'] = $order_detection['patient_id']; $data['doctor_id'] = $order_detection['doctor_id']; @@ -699,7 +701,7 @@ class DetectionService extends BaseService $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付 3:模拟支付) $data['inquiry_pay_status'] = 2; // 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) $data['inquiry_no'] = $order['order_no'];// 订单编号 - $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['escrow_trade_no'] = $order['escrow_trade_no']; // 第三方支付流水号 $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额 diff --git a/app/Services/InquiryService.php b/app/Services/InquiryService.php index a657d3c..04a01d4 100644 --- a/app/Services/InquiryService.php +++ b/app/Services/InquiryService.php @@ -1325,8 +1325,28 @@ class InquiryService extends BaseService $generator = $this->container->get(IdGeneratorInterface::class); try { + // 生成订单表 + $data = array(); + $data['user_id'] = $order_inquiry['user_id']; + $data['patient_id'] = $order_inquiry['patient_id']; + $data['doctor_id'] = $order_inquiry['doctor_id']; + $data['order_type'] = 1; // 订单类型(1:问诊订单 2:药品订单 3:检测订单 4:随访包订单 5:健康包订单) + $data['inquiry_pay_channel'] = 3; // 支付渠道(1:小程序支付 2:微信扫码支付) + $data['pay_status'] = 2; // 1:待支付 + $data['order_no'] = "I" . $generator->generate(); // 订单编号 + $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['amount_total'] = 0; // 订单金额 + $data['coupon_amount_total'] = 0; // 优惠卷总金额 + $data['payment_amount_total'] = 0; // 实际付款金额 + $order = Order::addOrder($data); + if (empty($order)) { + Db::rollBack(); + return fail(HttpEnumCode::SERVER_ERROR, "赠送失败"); + } + // 生成问诊订单 $data = array(); + $data['order_id'] = $order['order_id']; $data['user_id'] = $order_inquiry['user_id']; $data['patient_id'] = $order_inquiry['patient_id']; $data['doctor_id'] = $order_inquiry['doctor_id']; @@ -1336,8 +1356,8 @@ class InquiryService extends BaseService $data['inquiry_status'] = 4; $data['inquiry_pay_channel'] = 3;// 支付渠道(1:小程序支付 2:微信扫码支付) $data['inquiry_pay_status'] = 2; - $data['inquiry_no'] = $generator->generate();// 订单编号 - $data['escrow_trade_no'] = "GD" . $generator->generate(); // 第三方支付流水号 + $data['inquiry_no'] = $order['order_no'];// 订单编号 + $data['escrow_trade_no'] = $order['escrow_trade_no']; // 第三方支付流水号 $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额