Explorar el Código

花材销量统计变动

shish hace 4 años
padre
commit
2ca0345292

+ 13 - 3
biz-ghs/order/services/RefundOrderService.php

@@ -5,6 +5,7 @@ namespace bizGhs\order\services;
 use biz\hb\classes\HbClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
+use biz\stat\classes\StatItemClass;
 use biz\stat\classes\StatOutClass;
 use biz\stat\classes\StatRefundClass;
 use bizGhs\base\services\BaseService;
@@ -84,9 +85,9 @@ class RefundOrderService extends BaseService
                 $ghsItemInfo[$k]['newStock'] = $stockInfo['newStock'];
             }
         }
-        //写入详情表
-        if ($ghsItemInfo) {
 
+        //退款订单花材详情
+        if ($ghsItemInfo) {
             $saleOrderSn = $order->orderSn ?? '';
             $orderItemData = OrderItemClass::getAllByCondition(['orderSn' => $saleOrderSn], null, '*', 'productId');
 
@@ -95,12 +96,21 @@ class RefundOrderService extends BaseService
         }
         $orderData = RefundOrderClass::getOrderDetail($orderSn, $refund->shopId);
         $orderData['shopId'] = $data['shopId'];
+
+        //增加库存变动记录
         if ($data['refundType'] == RefundOrderClass::REFUND_TYPE_MONEY_GOOD) {
-            //写流水
             $orderData['relateName'] = $order->customName ?? '';
             StockRecordClass::addRecordByOrder($orderData, StockRecordClass::STOCK_RECORD_TYPE_REFUND);
         }
 
+        //花材销量统计变动
+        $refundItemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
+        if (!empty($refundItemList)) {
+            foreach ($refundItemList as $refundItemInfo) {
+                StatItemClass::replace($refundItemInfo, 1);
+            }
+        }
+
         $payWay = $order->payWay;
         $shopId = $order->shopId;
         $shop = ShopClass::getLockById($shopId);

+ 19 - 10
biz/stat/classes/StatItemClass.php

@@ -12,7 +12,7 @@ class StatItemClass extends BaseClass
     public static $baseFile = '\biz\stat\models\StatItem';
 
     //每日花材统计 shish 2021012
-    public static function replace($item, $date = null)
+    public static function replace($item, $isRefund, $date = null)
     {
         $sjId = $item->sjId ?? 0;
         $shopId = $item->shopId ?? 0;
@@ -25,17 +25,26 @@ class StatItemClass extends BaseClass
         $id = $stat->id;
         $unique = self::getLockById($id);
 
-        $amount = $item->price ?? 0;
-        $num = $item->num ?? 0;
-
-        $currentNum = bcadd($unique->num, $num, 2);
-        $unique->num = $currentNum;
-
-        $currentAmount = bcadd($unique->amount, $amount, 2);
-        $unique->amount = $currentAmount;
+        if ($isRefund == 1) {
+            $num = $item->itemNum ?? 0;
+            $unitePrice = $item->itemPrice ?? 0;
+            $price = bcmul($unitePrice, $num, 2);
+
+            $currentRefundNum = bcadd($unique->refundNum, $num, 2);
+            $currentRefundAmount = bcadd($unique->refundAmount, $price, 2);
+            $unique->refundNum = $currentRefundNum;
+            $unique->refundAmount = $currentRefundAmount;
+        } else {
+            $amount = $item->price ?? 0;
+            $num = $item->num ?? 0;
+            $currentNum = bcadd($unique->num, $num, 2);
+            $unique->num = $currentNum;
+            $currentAmount = bcadd($unique->amount, $amount, 2);
+            $unique->amount = $currentAmount;
+        }
 
         $unique->save();
-        StatItemMonthClass::replace($item, $time);
+        StatItemMonthClass::replace($item, $isRefund, $time);
     }
 
 }

+ 10 - 7
biz/stat/classes/StatItemMonthClass.php

@@ -12,7 +12,7 @@ class StatItemMonthClass extends BaseClass
     public static $baseFile = '\biz\stat\models\StatItemMonth';
 
     //每月花材统计 shish 20211012
-    public static function replace($item, $date = null)
+    public static function replace($item, $isRefund, $date = null)
     {
         if ($date == null) {
             $time = date('Ym');
@@ -34,15 +34,18 @@ class StatItemMonthClass extends BaseClass
         $id = $stat->id;
         $unique = self::getLockById($id);
 
-        $amount = $item->price ?? 0;
-        $num = $item->num ?? 0;
+        if ($isRefund == 1) {
 
-        $currentNum = bcadd($unique->num, $num, 2);
-        $unique->num = $currentNum;
+        } else {
+            $amount = $item->price ?? 0;
+            $num = $item->num ?? 0;
 
-        $currentAmount = bcadd($unique->amount, $amount, 2);
-        $unique->amount = $currentAmount;
+            $currentNum = bcadd($unique->num, $num, 2);
+            $unique->num = $currentNum;
 
+            $currentAmount = bcadd($unique->amount, $amount, 2);
+            $unique->amount = $currentAmount;
+        }
         $unique->save();
     }
 

+ 1 - 1
console/controllers/GlobalController.php

@@ -27,7 +27,7 @@ class GlobalController extends Controller
         if ((int)date('i') % 3 == 0) {
 
         }
-        OrderClass::newOrderFromQueueDone();
+        //OrderClass::newOrderFromQueueDone();
 
     }