shish 4 年 前
コミット
e70152fea1

+ 15 - 2
biz-hd/order/classes/OrderItemClass.php

@@ -2,6 +2,7 @@
 
 namespace bizHd\order\classes;
 
+use biz\stat\classes\StatItemClass;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\stock\classes\StockRecordClass;
 use common\components\dict;
@@ -43,7 +44,8 @@ class OrderItemClass extends BaseClass
         $recordData['shopId'] = $shopId;
         $recordData['mainId'] = $mainId;
         $recordData['itemId'] = $ptItemId;
-        $recordData['itemNum'] = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
+        $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
+        $recordData['itemNum'] = $itemNum;
         $recordData['oldStock'] = $stockInfo['oldStock'];
         $recordData['newStock'] = $stockInfo['newStock'];
         $recordData['productId'] = $itemId;
@@ -51,7 +53,18 @@ class OrderItemClass extends BaseClass
         $recordData['relateName'] = $customName;
         StockRecordClass::hdKdAddRecord($recordData);
 
-        return self::add($data);
+        $result = self::add($data, true);
+
+        $price = $data['price'] ?? 0;
+        $params = [
+            'mainId' => $mainId,
+            'itemId' => $itemId,
+            'price' => $price,
+            'num' => $itemNum,
+        ];
+        StatItemClass::replace($params);
+
+        return $result;
     }
 
     public static function getListBySn($sn)

+ 15 - 2
biz-mall/order/classes/OrderItemClass.php

@@ -2,6 +2,7 @@
 
 namespace bizMall\order\classes;
 
+use biz\stat\classes\StatItemClass;
 use common\components\dict;
 use Yii;
 use bizMall\base\classes\BaseClass;
@@ -41,7 +42,8 @@ class OrderItemClass extends BaseClass
         $recordData['shopId'] = $shopId;
         $recordData['mainId'] = $mainId;
         $recordData['itemId'] = $ptItemId;
-        $recordData['itemNum'] = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
+        $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);
+        $recordData['itemNum'] = $itemNum;
         $recordData['oldStock'] = $stockInfo['oldStock'];
         $recordData['newStock'] = $stockInfo['newStock'];
         $recordData['productId'] = $itemId;
@@ -49,7 +51,18 @@ class OrderItemClass extends BaseClass
         $recordData['relateName'] = $customName;
         StockRecordClass::hdKdAddRecord($recordData);
 
-        return self::add($data);
+        $result = self::add($data, true);
+
+        $price = $data['price'] ?? 0;
+        $params = [
+            'mainId' => $mainId,
+            'itemId' => $itemId,
+            'price' => $price,
+            'num' => $itemNum,
+        ];
+        StatItemClass::replace($params);
+
+        return $result;
     }
 
 }

+ 7 - 7
biz/stat/classes/StatItemClass.php

@@ -33,19 +33,19 @@ class StatItemClass extends BaseClass
     //每日花材统计 ssh 2021012
     public static function replace($item, $date = null)
     {
-        $sjId = $item->sjId ?? 0;
-        $mainId = $item->mainId ?? 0;
-        $productId = $item->productId ?? 0;
+        $sjId = $item['sjId'] ?? 0;
+        $mainId = $item['mainId'] ?? 0;
+        $itemId = $item['itemId'] ?? 0;
         $time = $date == null ? date('Ymd') : $date;
-        $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'itemId' => $productId, 'time' => $time], true);
+        $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'itemId' => $itemId, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'itemId' => $productId, 'time' => $time], true);
+            $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'itemId' => $itemId, 'time' => $time], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
 
-        $amount = $item->price ?? 0;
-        $num = $item->num ?? 0;
+        $amount = $item['price'] ?? 0;
+        $num = $item['num'] ?? 0;
         $currentNum = bcadd($unique->num, $num, 2);
         $unique->num = $currentNum;
         $currentAmount = bcadd($unique->amount, $amount, 2);

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

@@ -50,18 +50,18 @@ class StatItemMonthClass extends BaseClass
             $year = date('Y', $timestamp);
             $month = date('m', $timestamp);
         }
-        $sjId = $item->sjId ?? 0;
-        $mainId = $item->mainId ?? 0;
-        $productId = $item->productId ?? 0;
-        $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'itemId' => $productId, 'time' => $time], true);
+        $sjId = $item['sjId'] ?? 0;
+        $mainId = $item['mainId'] ?? 0;
+        $itemId = $item['itemId'] ?? 0;
+        $stat = self::getByCondition(['sjId' => $sjId, 'mainId' => $mainId, 'itemId' => $itemId, 'time' => $time], true);
         if (empty($stat)) {
-            $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'itemId' => $productId, 'time' => $time, 'year' => $year, 'month' => $month], true);
+            $stat = self::add(['mainId' => $mainId, 'sjId' => $sjId, 'itemId' => $itemId, 'time' => $time, 'year' => $year, 'month' => $month], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
 
-        $amount = $item->price ?? 0;
-        $num = $item->num ?? 0;
+        $amount = $item['price'] ?? 0;
+        $num = $item['num'] ?? 0;
 
         $currentNum = bcadd($unique->num, $num, 2);
         $unique->num = $currentNum;

+ 9 - 0
console/controllers/GlobalController.php

@@ -67,6 +67,15 @@ class GlobalController extends Controller
                         }
                         //花材销量统计
                         foreach ($itemList as $itemKey => $itemVal) {
+                            $mainId = $itemVal->mainId ?? 0;
+                            $itemId = $itemVal->productId ?? 0;
+                            $num = $itemVal->num ?? 0;
+                            $params = [
+                                'mainId' => $mainId,
+                                'itemId' => $itemId,
+                                'price' => $price,
+                                'num' => $num,
+                            ];
                             StatItemClass::replace($itemVal);
                         }
                     }