From 9e8f5290d9fa9ead9e846581443ff18dc20bec91 Mon Sep 17 00:00:00 2001 From: weizong song Date: Tue, 25 May 2021 12:48:45 +0800 Subject: [PATCH] up --- app/Customer.php | 12 ------------ app/Http/Controllers/Manager/OrdersController.php | 2 +- app/Models/Orders.php | 14 ++++++++++++++ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/app/Customer.php b/app/Customer.php index 52125c5..981f758 100644 --- a/app/Customer.php +++ b/app/Customer.php @@ -125,16 +125,4 @@ class Customer extends Authenticatable implements JWTSubject return $this->hasMany(Recharge::class, "customer_id")->whereNotNull("paid_at"); } - public function getOnlineRefundableRecharge($amount) - { - //todo:根据交易状态是否可以退款、以及多次退款金额是否足够进行更精准筛选 - //but:出问题的几率微乎其微可以忽略 - $recharge = Recharge::where("customer_id", $this->id) - ->whereNotNull("paid_at") - ->whereIn("payment", ["weixin", "alipay"]) - ->doesntHave("refunds") - ->orderBy("id", "desc") - ->first(); - return $recharge; - } } diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 9784d11..e8d6b4e 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -1064,7 +1064,7 @@ class OrdersController extends CommonController $to_refund_total = max(0, -$to_recharge_total); $to_recharge_total = max(0, $to_recharge_total); if ($to_refund_total > 0) { - $recharge_for_online_refund = $order->customer->getOnlineRefundableRecharge($to_refund_total); + $recharge_for_online_refund = $order->getOnlineRefundableRecharge($to_refund_total); } else { $recharge_for_online_refund = null; } diff --git a/app/Models/Orders.php b/app/Models/Orders.php index b1a4f58..c161e43 100755 --- a/app/Models/Orders.php +++ b/app/Models/Orders.php @@ -410,4 +410,18 @@ class Orders extends SoftDeletesModel return $result; } + + public function getOnlineRefundableRecharge($amount) + { + //todo:根据交易状态是否可以退款、以及多次退款金额是否足够进行更精准筛选 + //but:出问题的几率微乎其微可以忽略 + $recharge = Recharge::where("order_id", $this->id) + ->whereNotNull("paid_at") + ->whereIn("payment", ["weixin", "alipay"]) + ->where("money",">=",$amount) + ->doesntHave("refunds") + ->orderBy("id", "desc") + ->first(); + return $recharge; + } }