From ac898f8ca3d6c6a13daaa3f133b0014c7857fd6f Mon Sep 17 00:00:00 2001 From: evoxwht <442384644@qq.com> Date: Fri, 9 Jun 2023 11:42:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BD=BF=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=98=AF=E5=90=A6=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E5=BC=80=E5=85=B3=EF=BC=8C=E5=95=86=E5=93=81=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=90=8E=EF=BC=8C=E9=80=80=E5=9B=9E/?= =?UTF-8?q?=E4=B8=8D=E9=80=80=E5=9B=9E=E4=BD=BF=E7=94=A8=E7=9A=84=E4=BC=98?= =?UTF-8?q?=E6=83=A0=E5=88=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/StoreOrderRefundServices.php | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/crmeb/app/services/order/StoreOrderRefundServices.php b/crmeb/app/services/order/StoreOrderRefundServices.php index b366faa4e..860fb9b69 100644 --- a/crmeb/app/services/order/StoreOrderRefundServices.php +++ b/crmeb/app/services/order/StoreOrderRefundServices.php @@ -434,18 +434,22 @@ class StoreOrderRefundServices extends BaseServices /** @var StoreOrderStatusServices $statusService */ $statusService = app()->make(StoreOrderStatusServices::class); $res = true; - //取消的订单退回优惠券 - if ($type == 'cancel' && $order['coupon_id'] && $order['coupon_price']) { + //取消或者退款的订单退回优惠券 + if ($order['coupon_id'] && $order['coupon_price']) { /** @var StoreCouponUserServices $couponUserServices */ $couponUserServices = app()->make(StoreCouponUserServices::class); - $res = $couponUserServices->recoverCoupon((int)$order['coupon_id']); - $statusService->save([ - 'oid' => $order['id'], - 'change_type' => 'coupon_back', - 'change_message' => '商品退优惠券', - 'change_time' => time() - ]); + //未支付取消订单,或者退优惠券开关打开之后的主订单以及最后一个子订单退还优惠券 + if ($type == 'cancel' || (sys_config('coupon_return_open', 1) && ($order['pid'] == 0 || $this->storeOrderServices->count(['pid' => $order['pid'], 'refund_status' => 0]) == 1))) { + $res = $couponUserServices->recoverCoupon((int)$order['coupon_id']); + $statusService->save([ + 'oid' => $order['id'], + 'change_type' => 'coupon_back', + 'change_message' => '商品退优惠券', + 'change_time' => time() + ]); + } } + //回退积分 $order = $this->regressionIntegral($order); $statusService->save([