From 79447beb4b6a3fb79a0caf4bcdcd1e73dece76de Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Fri, 12 Apr 2024 10:31:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8C=85=E9=97=AE=E8=AF=8A?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=97=AE=E8=AF=8A=E6=AC=A1?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/CallBackController.php | 28 ++++++++++++++++----- app/Services/OrderServicePackageService.php | 20 ++++++++++----- 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/app/Controller/CallBackController.php b/app/Controller/CallBackController.php index d85887a..f3f35c9 100644 --- a/app/Controller/CallBackController.php +++ b/app/Controller/CallBackController.php @@ -40,6 +40,7 @@ use App\Model\PatientFamilyHealth; use App\Model\PatientFamilyPersonal; use App\Model\Product; use App\Model\ProductPlatformAmount; +use App\Model\SystemInquiryConfig; use App\Model\User; use App\Model\UserCoupon; use App\Model\UserDoctor; @@ -2431,6 +2432,13 @@ class CallBackController extends AbstractController return $server->serve(); } + // 处理问诊类型 + if ($order_service_package['order_service_type'] == 1) { + $inquiry_mode = 8; + } else { + $inquiry_mode = 9; + } + // 支付状态无需验证,如第一次支付失败,会修改支付状态,再次支付时,会出现验证不通过的情况 // 处理支付状态 @@ -2523,6 +2531,17 @@ class CallBackController extends AbstractController return $server->serve(); } + // 沟通次数,沟通时长 + $params = array(); + $params['inquiry_type'] = 1; + $params['inquiry_mode'] = $inquiry_mode; + $system_inquiry_config = SystemInquiryConfig::getOne($params); + if (empty($system_inquiry_config)) { + Db::rollBack(); + Log::getInstance("CallBack-wxPayServiceSuccess")->error("系统问诊配置错误"); + return $server->serve(); + } + $generator = $this->container->get(IdGeneratorInterface::class); // 生成订单表 @@ -2555,11 +2574,7 @@ class CallBackController extends AbstractController $data['doctor_id'] = $order_service_package['doctor_id']; $data['family_id'] = $order_service_package['family_id']; $data['inquiry_type'] = 1; // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测) - if ($order_service_package['order_service_type'] == 1){ - $data['inquiry_mode'] = 8; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) - }else{ - $data['inquiry_mode'] = 9; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) - } + $data['inquiry_mode'] = $inquiry_mode; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) $data['inquiry_status'] = 3; // 问诊订单状态(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:转入退款) @@ -2568,8 +2583,9 @@ class CallBackController extends AbstractController $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额 + $data['times_number'] = $system_inquiry_config['times_number'];// 沟通次数(0为不限制次数) + $data['duration'] = $system_inquiry_config['duration'];// 沟通时长(分钟,0为不限制时长) $data['pay_time'] = date('Y-m-d H:i:s', time());// 支付时间 - $data['reception_time'] = date('Y-m-d H:i:s', time());// 接诊时间 $data['patient_name'] = $patient_family['card_name'];// 患者姓名-就诊人 $data['patient_name_mask'] = $patient_family['card_name_mask'];// 患者姓名-就诊人(掩码) $data['patient_sex'] = $patient_family['sex'];// 患者性别-就诊人(0:未知 1:男 2:女) diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index 7d093a9..478a7b4 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -615,6 +615,8 @@ class OrderServicePackageService extends BaseService $order_no = $this->request->input("order_no"); try { + + // 检测患者是否购买服务包 $params = array(); $params['user_id'] = $user_info['user_id']; @@ -736,6 +738,15 @@ class OrderServicePackageService extends BaseService return fail(HttpEnumCode::HTTP_ERROR, "问诊病例数据错误"); } $order_service_package_case = $order_service_package_case->toArray(); + + // 沟通次数,沟通时长 + $params = array(); + $params['inquiry_type'] = 1; + $params['inquiry_mode'] = $inquiry_mode; + $system_inquiry_config = SystemInquiryConfig::getOne($params); + if (empty($system_inquiry_config)) { + return fail(HttpEnumCode::SERVER_ERROR, "订单创建失败"); + } }catch (\Throwable $e){ return fail(HttpEnumCode::HTTP_ERROR, $e->getMessage()); } @@ -773,11 +784,7 @@ class OrderServicePackageService extends BaseService $data['doctor_id'] = $order_service_package['doctor_id']; $data['family_id'] = $order_service_package['family_id']; $data['inquiry_type'] = 1; // 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测) - if ($order_service_package['order_service_type'] == 1){ - $data['inquiry_mode'] = 8; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) - }else{ - $data['inquiry_mode'] = 9; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) - } + $data['inquiry_mode'] = $inquiry_mode; // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员 6:疑难会诊 7:附赠 8:健康包 9:随访包) $data['inquiry_status'] = 3; // 问诊订单状态(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:转入退款) @@ -786,8 +793,9 @@ class OrderServicePackageService extends BaseService $data['amount_total'] = 0;// 订单金额 $data['coupon_amount_total'] = 0;// 优惠卷总金额 $data['payment_amount_total'] = 0;// 实际付款金额 + $data['times_number'] = $system_inquiry_config['times_number'];// 沟通次数(0为不限制次数) + $data['duration'] = $system_inquiry_config['duration'];// 沟通时长(分钟,0为不限制时长) $data['pay_time'] = date('Y-m-d H:i:s', time());// 支付时间 - $data['reception_time'] = date('Y-m-d H:i:s', time());// 接诊时间 $data['patient_name'] = $patient_family['card_name'];// 患者姓名-就诊人 $data['patient_name_mask'] = $patient_family['card_name_mask'];// 患者姓名-就诊人(掩码) $data['patient_sex'] = $patient_family['sex'];// 患者性别-就诊人(0:未知 1:男 2:女)