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

+ 12 - 4
biz-ghs/order/services/RefundOrderService.php

@@ -65,7 +65,7 @@ class RefundOrderService extends BaseService
             $productInfo = ProductClass::getByids($ids, null, 'id');
 
             $saleOrderSn = $order->orderSn ?? '';
-            $orderItemData = OrderItemClass::getAllByCondition(['orderSn' => $saleOrderSn], null, '*', 'productId');
+            $orderItemData = OrderItemClass::getAllByCondition(['orderSn' => $saleOrderSn], null, '*', 'productId', true);
             if (empty($orderItemData)) {
                 util::fail('没有找到花材');
             }
@@ -84,8 +84,16 @@ class RefundOrderService extends BaseService
                 $itemCost = $productInfo[$id]['cost'] ?? 0;
                 $ratio = $productInfo[$id]['ratio'] ?? 0;
 
-                $xhNum = $orderItemData[$id]['xhNum'] ?? 0;
-                $refundNum = $orderItemData[$id]['refundNum'] ?? 0;
+                $currentOrderItem = $orderItemData[$id] ?? null;
+                if (empty($currentOrderItem)) {
+                    util::fail('没有找到退款的花材');
+                }
+                $xhNum = $currentOrderItem->xhNum ?? 0;
+                $refundNum = $currentOrderItem->refundNum ?? 0;
+
+                $currentOrderItem->refundNum = bcadd($refundNum, $num);
+                $currentOrderItem->save();
+
                 $remainNum = bcsub($xhNum, $refundNum);
                 if ($num > $remainNum) {
                     util::fail("{$name}超过可退数量");
@@ -112,7 +120,7 @@ class RefundOrderService extends BaseService
                     'xhPrice' => $xhPrice,
                     'mainId' => $mainId,
                 ];
-                RefundOrderItemClass::addData($thisItemData,$order);
+                RefundOrderItemClass::addData($thisItemData, $order);
             }
 
         }

+ 13 - 5
biz-hd/cg/services/CgRefundService.php

@@ -36,6 +36,7 @@ class CgRefundService extends BaseService
         $shopId = $cg->shopId ?? 0;
         $sjId = $cg->sjId ?? 0;
         $payWay = $cg->payWay;
+        $cgOrderSn = $cg->orderSn ?? '';
         $cg->refund = PurchaseClass::REFUND_YES;
         $cg->save();
 
@@ -89,18 +90,25 @@ class CgRefundService extends BaseService
         $cgRefund = CgRefundClass::add($data, true);
 
         if ($refundType == CgRefundClass::REFUND_TYPE_MONEY_GOOD) {
-            if (empty($productList)) {
-                util::fail('没有找到花材哦!');
-            }
+
+            $cgItemInfo = PurchaseItemClass::getAllByCondition(['orderSn' => $cgOrderSn], null, '*', 'productId', true);
+
             foreach ($productList as $info) {
                 $unitType = $info['unitType'] ?? 0;
                 $num = $info['num'] ?? 0;
                 $unitPrice = $info['unitPrice'] ?? 0;
                 $unitName = $info['unitName'] ?? '';
-
-                $refundData = [];
                 $productId = $info['productId'] ?? 0;
                 $ptItemId = $info['ptItemId'] ?? 0;
+
+                $currentCgItem = $cgItemInfo[$productId] ?? null;
+                if (empty($currentCgItem)) {
+                    util::fail('没有找到花材哦!');
+                }
+                $currentCgItem->refundNum = bcadd($currentCgItem->refundNum, $num);
+                $currentCgItem->save();
+
+                $refundData = [];
                 $refundData['orderSn'] = $refundOrderSn;
                 $refundData['itemId'] = $ptItemId;
                 $refundData['productId'] = $productId;