From 9e8b1126e7f97cf5481af01bbfad16b8cddd12fb Mon Sep 17 00:00:00 2001
From: lihan <3398341942@qq.com>
Date: Mon, 22 Oct 2018 17:40:47 +0800
Subject: [PATCH] 退货&退款

---
 app/admin/controller/ZjOrderController.php | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/app/admin/controller/ZjOrderController.php b/app/admin/controller/ZjOrderController.php
index 4f6ad75..ade6f62 100644
--- a/app/admin/controller/ZjOrderController.php
+++ b/app/admin/controller/ZjOrderController.php
@@ -340,13 +340,19 @@ class ZjOrderController extends AdminBaseController
                     $this->error('退款金额需大于0');
                 }
                 $return = $this->wxRefund($param['id'], $param['refund_fee']);
-                if ($return) {
-                    $param['step'] = 9;
-                    $edit = Db::name('zj_order')->update($param);
-                    if (empty($edit)) {
-                        $this->error('订单退款失败1');
-                    } else {
-                        $this->success('订单退款成功');
+                if ($return !== false) {
+                    $out_refund_no = Db::name('zj_order')->where(['id'=>$param['id']])->value('out_refund_no');
+                    if($out_refund_no == '' && $out_refund_no != $return) {
+                        $param['step'] = 9;
+                        $param['out_refund_no'] = $return;
+                        $edit = Db::name('zj_order')->update($param);
+                        if (empty($edit)) {
+                            $this->error('订单退款失败1');
+                        } else {
+                            $this->success('订单退款成功');
+                        }
+                    }else {
+                        $this->error('禁止重复退款');
                     }
                 } else {
                     $this->error('订单退款失败2');
@@ -369,7 +375,7 @@ class ZjOrderController extends AdminBaseController
                 $refund = new \Refund($info['out_trade_no'], $totalFee * 100, $info['order_num'], $refundFee * 100);
                 $return = $refund->refund();
                 if ($return['return_code'] == 'SUCCESS' && $return['result_code'] == 'SUCCESS') {
-                    return true;
+                    return $return['out_refund_no'];
                 } else {
                     return false;
                 }
--
libgit2 0.24.0