shish %!s(int64=4) %!d(string=hai) anos
pai
achega
2d073a4754

+ 15 - 0
app-hd/controllers/NoticeController.php

@@ -2,6 +2,8 @@
 
 namespace hd\controllers;
 
+use bizGhs\order\classes\RefundOrderClass;
+use bizHd\cg\classes\CgRefundClass;
 use bizHd\wx\classes\WxOpenClass;
 use common\components\dict;
 use common\components\noticeUtil;
@@ -82,6 +84,19 @@ class NoticeController extends PublicController
         $settlement_refund_fee = $req_info_obj->settlement_refund_fee ?? 0.00;
 
         if ($refund_status == 'SUCCESS') {
+
+            $cgRefund = CgRefundClass::getByCondition(['orderSn' => $out_refund_no], true);
+            if (!empty($cgRefund)) {
+                $cgRefund->status = CgRefundClass::STATUS_COMPLETE;
+                $cgRefund->save();
+                $saleRefundId = $cgRefund->saleRefundId ?? 0;
+                $saleRefund = RefundOrderClass::getById($saleRefundId, true);
+                if (!empty($saleRefund)) {
+                    $saleRefund->status = RefundOrderClass::STATUS_COMPLETE;
+                    $saleRefund->save();
+                }
+            }
+
             $text = "【退款成功】退款单号:{$orderSn} {$out_refund_no} 订单金额:{$total_fee} 退款金额:{$settlement_refund_fee} ";
         } elseif ($refund_status == 'REFUNDCLOSE') {
             $text = "【退款关闭】退款单号:{$orderSn} {$out_refund_no} 订单金额:{$total_fee} 退款金额:{$settlement_refund_fee} ";

+ 2 - 2
biz-ghs/order/classes/OrderClass.php

@@ -187,7 +187,7 @@ class OrderClass extends BaseClass
         $shopAdminId = $data['shopAdminId'] ?? 0;
         $shopAdminName = $data['shopAdminName'] ?? '';
 
-        $refundId = 0;
+        $refund = null;
         if ($bookPrice != $currentPrice) {
             if ($bookPrice > $currentPrice) {
                 $refundPrice = bcsub($bookPrice, $currentPrice, 2);
@@ -259,7 +259,7 @@ class OrderClass extends BaseClass
                 $order->save();
             }
         }
-        return ['kiloFee' => $kiloFee, 'refundId' => $refundId, 'miniKilo' => $miniKilo];
+        return ['kiloFee' => $kiloFee, 'refund' => $refund, 'miniKilo' => $miniKilo];
     }
 
     //添加订单 ssh 2019.12.5

+ 16 - 2
biz-ghs/order/services/OrderService.php

@@ -87,16 +87,30 @@ class OrderService extends BaseService
             $cgProduct[$currentId] = ['num' => $num, 'price' => $price, 'productId' => $currentId];
         }
         //零售到货
+        $saleRefund = $respond['refund'] ?? null;
+        $saleRefundId = 0;
+        if (!empty($saleRefund)) {
+            $saleRefundId = $saleRefund->id ?? 0;
+        }
+
         $kiloFee = $respond['kiloFee'] ?? 0;
         $miniKilo = $respond['miniKilo'] ?? 0;
-        $saleRefundId = $respond['refundId'] ?? 0;
+        $saleRefundId = $saleRefundId;
         $cgData = [
             'product' => $cgProduct,
             'kiloFee' => $kiloFee,
             'miniKilo' => $miniKilo,
             'saleRefundId' => $saleRefundId,
         ];
-        PurchaseClass::arrival($cg, $cgData);
+        $result = PurchaseClass::arrival($cg, $cgData);
+        $cgRefund = $result['refund'] ?? null;
+        if (!empty($cgRefund)) {
+            $cgRefundId = $cgRefund->id ?? 0;
+            if (!empty($saleRefund)) {
+                $saleRefund->cgRefundId = $cgRefundId;
+                $saleRefund->save();
+            }
+        }
     }
 
     //添加订单

+ 3 - 1
biz-hd/purchase/classes/PurchaseClass.php

@@ -123,9 +123,10 @@ class PurchaseClass extends BaseClass
         $shop->cgFinish += 1;
         $shop->save();
 
+        $cgRefund = null;
         $bookPrice = $cg->bookPrice ?? 0;
         if ($bookPrice == $currentPrice) {
-            return true;
+            return ['refund' => $cgRefund];
         } elseif ($bookPrice > $currentPrice) {
             //退款
             $refundPrice = bcsub($bookPrice, $currentPrice, 2);
@@ -225,6 +226,7 @@ class PurchaseClass extends BaseClass
             $cg->debt = PurchaseClass::DEBT_YES;
             $cg->save();
         }
+        return ['refund' => $cgRefund];
     }
 
     //添加采购 ssh 2021.1.18