From a1fc3c3015158a60b5871dece0bc572c12cceac3 Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Wed, 8 May 2024 16:23:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8C=85=E8=AE=A2=E5=8D=95=E4=B8=AD=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E5=8F=AF=E5=88=86=E6=88=90=E7=9A=84=E9=97=AE=E8=AF=8A?= =?UTF-8?q?=E9=87=91=E9=A2=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...pleteServicePackageDelayDirectConsumer.php | 24 ++++++++++--------- app/Model/OrderServicePackageRefund.php | 10 ++++---- app/Services/DoctorAccountService.php | 4 ++-- app/Services/OrderServicePackageService.php | 6 +++++ 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/app/Amqp/Consumer/AutoCompleteServicePackageDelayDirectConsumer.php b/app/Amqp/Consumer/AutoCompleteServicePackageDelayDirectConsumer.php index 32d20dd..90e527c 100644 --- a/app/Amqp/Consumer/AutoCompleteServicePackageDelayDirectConsumer.php +++ b/app/Amqp/Consumer/AutoCompleteServicePackageDelayDirectConsumer.php @@ -128,18 +128,20 @@ class AutoCompleteServicePackageDelayDirectConsumer extends ConsumerMessage $OrderServicePackageService = new OrderServicePackageService(); $amount_total = $OrderServicePackageService->getServicePackageDoctorInquiryAmountTotal($order_service_package['order_service_no'],$order_service_package,$order_service_package_detail); - // 处理医生账户总表 - $res = $this->handleDoctorAccount($amount_total,$order_service_package['doctor_id']); - if (!$res) { - Db::rollBack(); - return Result::REQUEUE; - } + if ($amount_total > 0){ + // 处理医生账户总表 + $res = $this->handleDoctorAccount($amount_total,$order_service_package['doctor_id']); + if (!$res) { + Db::rollBack(); + return Result::REQUEUE; + } - // 处理医生账户表-日 - $res = $this->handleDoctorAccountDay($amount_total,$order_service_package['doctor_id'],$order_service_package['start_time']); - if (!$res) { - Db::rollBack(); - return Result::REQUEUE; + // 处理医生账户表-日 + $res = $this->handleDoctorAccountDay($amount_total,$order_service_package['doctor_id'],$order_service_package['start_time']); + if (!$res) { + Db::rollBack(); + return Result::REQUEUE; + } } Db::commit(); diff --git a/app/Model/OrderServicePackageRefund.php b/app/Model/OrderServicePackageRefund.php index 54a785c..9c2f709 100644 --- a/app/Model/OrderServicePackageRefund.php +++ b/app/Model/OrderServicePackageRefund.php @@ -17,12 +17,14 @@ use Hyperf\Snowflake\Concern\Snowflake; * @property string $order_service_no 系统订单编号 * @property string $service_refund_no 系统退款编号 * @property string $refund_id 第三方退款单号 - * @property int $refund_status 订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常) + * @property int $refund_status 订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭 6:退款异常 7:部分退款) * @property string $refund_total 退款金额 + * @property string $product_refund_total 药品退款金额 + * @property string $inquiry_refund_total 问诊退款金额 * @property string $refund_reason 退款原因 * @property string $success_time 退款成功时间 - * @property Carbon $created_at 创建时间 - * @property Carbon $updated_at 修改时间 + * @property \Carbon\Carbon $created_at 创建时间 + * @property \Carbon\Carbon $updated_at 修改时间 */ class OrderServicePackageRefund extends Model { @@ -36,7 +38,7 @@ class OrderServicePackageRefund extends Model /** * The attributes that are mass assignable. */ - protected array $fillable = ['service_refund_id', 'patient_id', 'order_service_id', 'order_service_no', 'service_refund_no', 'refund_id', 'refund_status', 'refund_total', 'refund_reason', 'success_time', 'created_at', 'updated_at']; + protected array $fillable = ['service_refund_id', 'patient_id', 'order_service_id', 'order_service_no', 'service_refund_no', 'refund_id', 'refund_status', 'refund_total', 'product_refund_total', 'inquiry_refund_total', 'refund_reason', 'success_time', 'created_at', 'updated_at']; protected string $primaryKey = "service_refund_id"; diff --git a/app/Services/DoctorAccountService.php b/app/Services/DoctorAccountService.php index 6868498..f1cb7c6 100644 --- a/app/Services/DoctorAccountService.php +++ b/app/Services/DoctorAccountService.php @@ -200,9 +200,9 @@ class DoctorAccountService extends BaseService } elseif ($result['OrderServicePackage']['order_service_status'] == 4) { $result['entry_status'] = 2;// 入账成功 } elseif ($result['OrderServicePackage']['order_service_status'] == 5) { - if ($result['expected_amount_total'] > 0) { + if (($result['payment_amount_total'] - $result['refund_total']) > 0){ $result['entry_status'] = 2;// 入账成功 - } else { + }else{ $result['entry_status'] = 3;// 入账失败 } } else { diff --git a/app/Services/OrderServicePackageService.php b/app/Services/OrderServicePackageService.php index 4d3239d..96ad26d 100644 --- a/app/Services/OrderServicePackageService.php +++ b/app/Services/OrderServicePackageService.php @@ -1671,6 +1671,12 @@ class OrderServicePackageService extends BaseService $OrderService = new OrderService(); $refund_total = $OrderService->getOrderRefundAmount($order_service_no); + // 检测订单是否全部退款 + if (($order_service_package['payment_amount_total'] - $refund_total) <= 0){ + // 订单已全部退款,此处可分成问诊金额直接为0 + return 0; + } + if ($order_service_package['order_service_type'] == 1){ // 健康包 // 实际问诊数量