فهرست منبع

Merge branch 'master' into dev

shish 1 ماه پیش
والد
کامیت
cf37be51a0

+ 9 - 15
app-ghs/controllers/ConsoleController.php

@@ -30,21 +30,15 @@ class ConsoleController extends BaseController
         //$lsDebt = \bizHd\order\classes\OrderClass::sum(['mainId' => $this->mainId, 'debt' => 1], 'remainDebtPrice');
         //$lsDebt = $lsDebt === null ? 0 : $lsDebt;
         //$totalDebt = bcadd($pfDebt, $lsDebt, 2);
-        $itemList = ItemClass::getAllByCondition(['mainId' => $this->mainId], null, 'id,stock,avCost,cost,virtualStock,delStatus', null, true);
-        $totalItemNum = 0;
-        $totalCost = 0;
-        if (!empty($itemList)) {
-            foreach ($itemList as $item) {
-                if ($item->virtualStock == 0 && $item->delStatus == 0) {
-                    $stock = $item->stock ?? 0;
-                    $cost = $item->avCost ?? 0;
-                    $totalItemNum = bcadd($stock, $totalItemNum, 2);
-                    $currentCost = bcmul($stock, $cost, 2);
-                    $totalCost = bcadd($currentCost, $totalCost, 2);
-                }
-            }
-        }
-        $totalItemNum = floor($totalItemNum);
+        // 优化慢查询:直接在数据库层聚合库存和成本,避免取出全量数据到PHP内存中循环计算
+        $stat = ItemClass::getByCondition(
+            ['mainId' => $this->mainId, 'virtualStock' => 0, 'delStatus' => 0],
+            false,
+            false,
+            'SUM(stock) as totalItemNum, SUM(stock * avCost) as totalCost'
+        );
+        $totalItemNum = floor($stat['totalItemNum'] ?? 0);
+        $totalCost = round($stat['totalCost'] ?? 0, 2);
         $totalBalance = CustomClass::sum(['ownMainId'=>$this->mainId],'balance');
         $may = $totalBalance<0 ? abs($totalBalance) : 0;
         $overview = [

+ 4 - 4
app-ghs/controllers/TestController.php

@@ -839,7 +839,7 @@ class TestController extends BaseController
 
     public function actionClearQuery()
     {
-        $shopId = 8249;
+        $shopId = 91064;
         $shop = ShopClass::getById($shopId, true);
         if (empty($shop)) {
             util::stop('没有找到门店信息呢');
@@ -855,12 +855,12 @@ class TestController extends BaseController
             'lklCertificatePath' => $lklCertificatePath,
         ];
         $laResource = new Lakala($params);
-        $orderSn = 'CL29416751';
+        $orderSn = 'CL29443345';
         $queryParams = [
             'orderSn' => $orderSn,
-            //'tradeNo' => '66222923861204',
+            'tradeNo' => '66224623283235',
         ];
-        $response = $laResource->query($queryParams, 0);
+        $response = $laResource->query($queryParams, 1);
         echo "<pre>";
         print_r($response);
         util::stop();

+ 9 - 15
app-hd/controllers/ConsoleController.php

@@ -22,21 +22,15 @@ class ConsoleController extends BaseController
     {
         //不要用缓存!!!!
 
-        $itemList = ItemClass::getAllByCondition(['mainId' => $this->mainId], null, 'id,stock,avCost,cost,virtualStock,delStatus', null, true);
-        $totalItemNum = 0;
-        $totalCost = 0;
-        if (!empty($itemList)) {
-            foreach ($itemList as $item) {
-                if ($item->virtualStock == 0 && $item->delStatus == 0) {
-                    $stock = $item->stock ?? 0;
-                    $cost = $item->avCost ?? 0;
-                    $totalItemNum = bcadd($stock, $totalItemNum, 2);
-                    $currentCost = bcmul($stock, $cost, 2);
-                    $totalCost = bcadd($currentCost, $totalCost, 2);
-                }
-            }
-        }
-        $totalItemNum = floor($totalItemNum);
+        // 优化慢查询:直接在数据库层聚合库存和成本,避免取出全量数据到PHP内存中循环计算
+        $stat = ItemClass::getByCondition(
+            ['mainId' => $this->mainId, 'virtualStock' => 0, 'delStatus' => 0],
+            false,
+            false,
+            'SUM(stock) as totalItemNum, SUM(stock * avCost) as totalCost'
+        );
+        $totalItemNum = floor($stat['totalItemNum'] ?? 0);
+        $totalCost = round($stat['totalCost'] ?? 0, 2);
         $goodsCount = GoodsClass::getCount(['mainId' => $this->mainId]);
         $customCount = CustomClass::getCount(['shopId' => $this->shopId]);
         $orderCount = OrderClass::getCount(['mainId' => $this->mainId, 'status' => 4]);

+ 1 - 1
biz-ghs/shop/classes/GhsNoticeClass.php

@@ -193,7 +193,7 @@ class GhsNoticeClass extends BaseClass
             'content' => is_string($content) ? $content : json_encode($content, JSON_UNESCAPED_UNICODE),
             'position' => $position,
             'sort' => intval($data['sort'] ?? 0),
-            'status' => intval($data['status'] ?? 0) === 1 ? 1 : 0,
+            'status' => intval($data['status'] ?? 1) === 1 ? 1 : 0,
         ];
     }
 

+ 1 - 4
biz-hd/shop/classes/ShopNoticeClass.php

@@ -170,7 +170,7 @@ class ShopNoticeClass extends BaseClass
             'content' => is_string($content) ? $content : json_encode($content, JSON_UNESCAPED_UNICODE),
             'position' => $position,
             'sort' => intval($data['sort'] ?? 0),
-            'status' => intval($data['status'] ?? 0) === 1 ? 1 : 0,
+            'status' => intval($data['status'] ?? 1) === 1 ? 1 : 0,
         ];
     }
 
@@ -241,9 +241,6 @@ class ShopNoticeClass extends BaseClass
     {
         $status = $status === 1 ? 1 : 0;
         $updateData = ['status' => $status];
-        if ($status === 1) {
-            $updateData['publishTime'] = date('Y-m-d H:i:s');
-        }
         if ($staffId > 0) {
             $updateData['staffId'] = $staffId;
         }

+ 2 - 2
console/controllers/ItemController.php

@@ -40,8 +40,8 @@ class ItemController extends Controller
     public function actionMigrate()
     {
         if (getenv('YII_ENV') == 'production') {
-            $newMainId = 97789;
-            $oldMainId = 42940;
+            $newMainId = 100880;
+            $oldMainId = 16299;
         } else {
             $newMainId = 762;
             $oldMainId = 644;