Bläddra i källkod

待结分页优化

shish 2 månader sedan
förälder
incheckning
a2ca6d8a44

+ 2 - 2
app-ghs/controllers/GhsController.php

@@ -260,7 +260,7 @@ class GhsController extends BaseController
             }
         } else {
             // 总欠款:各供货商 balance 字段之和
-            $totalDebtAmount = GhsClass::sumTotalOutstandingDebt($this->shopId, 0);
+            $totalDebtAmount = GhsClass::sumTotalOutstandingDebt($this->mainId, 0);
         }
         $list['totalDebtAmount'] = $totalDebtAmount;
         util::success($list);
@@ -278,4 +278,4 @@ class GhsController extends BaseController
         util::success(['file' => $fileUrl, 'shortFile' => $shortFile]);
     }
 
-}
+}

+ 11 - 5
app-ghs/controllers/OrderController.php

@@ -2479,19 +2479,25 @@ class OrderController extends BaseController
                 util::fail('请选时间');
             }
         }
-        $list = OrderClass::getAllByCondition($where, 'addTime DESC', ['id', 'orderSn', 'actPrice', 'addTime', 'remainDebtPrice', 'debtPrice', 'payTime']);
-        if (!empty($list)) {
-            foreach ($list as $key => $value) {
+        $allowedPageSizes = [20, 50, 100, 300];
+        $pageSize = isset($get['pageSize']) && in_array((int)$get['pageSize'], $allowedPageSizes, true)
+            ? (int)$get['pageSize'] : 20;
+        $page = max(1, (int)($get['page'] ?? 1));
+        $fields = ['id', 'orderSn', 'actPrice', 'addTime', 'remainDebtPrice', 'debtPrice', 'payTime'];
+        Yii::$app->request->setQueryParams(array_merge($get, ['page' => $page, 'pageSize' => $pageSize]));
+        $result = OrderClass::getList($fields, $where, 'addTime DESC');
+        if (!empty($result['list'])) {
+            foreach ($result['list'] as $key => $value) {
                 $debtPrice = $value['debtPrice'] ?? 0;
                 $remainDebtPrice = $value['remainDebtPrice'] ?? 0;
                 $hasPayDebt = '0.00';
                 if (bccomp((string)$debtPrice, (string)$remainDebtPrice, 2) > 0) {
                     $hasPayDebt = bcsub((string)$debtPrice, (string)$remainDebtPrice, 2);
                 }
-                $list[$key]['hasPayDebt'] = floatval($hasPayDebt);
+                $result['list'][$key]['hasPayDebt'] = floatval($hasPayDebt);
             }
         }
-        $result = ['customInfo' => $info, 'list' => $list];
+        $result['customInfo'] = $info;
         util::success($result);
     }
 

+ 11 - 5
app-hd/controllers/OrderController.php

@@ -184,19 +184,25 @@ class OrderController extends BaseController
             $period = dateUtil::formatTime($searchTime, $startTime, $endTime);
             $where['addTime'] = ['between', [$period['startTime'], $period['endTime']]];
         }
-        $list = OrderClass::getAllByCondition($where, 'addTime DESC', ['id', 'orderSn', 'actPrice', 'addTime', 'remainDebtPrice', 'debtPrice']);
-        if (!empty($list)) {
-            foreach ($list as $key => $value) {
+        $allowedPageSizes = [20, 50, 100, 300];
+        $pageSize = isset($get['pageSize']) && in_array((int)$get['pageSize'], $allowedPageSizes, true)
+            ? (int)$get['pageSize'] : 20;
+        $page = max(1, (int)($get['page'] ?? 1));
+        $fields = ['id', 'orderSn', 'actPrice', 'addTime', 'remainDebtPrice', 'debtPrice'];
+        Yii::$app->request->setQueryParams(array_merge($get, ['page' => $page, 'pageSize' => $pageSize]));
+        $result = OrderClass::getList($fields, $where, 'addTime DESC');
+        if (!empty($result['list'])) {
+            foreach ($result['list'] as $key => $value) {
                 $debtPrice = $value['debtPrice'] ?? 0;
                 $remainDebtPrice = $value['remainDebtPrice'] ?? 0;
                 $hasPayDebt = 0;
                 if ($debtPrice > $remainDebtPrice) {
                     $hasPayDebt = bcsub($debtPrice, $remainDebtPrice, 2);
                 }
-                $list[$key]['hasPayDebt'] = floatval($hasPayDebt);
+                $result['list'][$key]['hasPayDebt'] = floatval($hasPayDebt);
             }
         }
-        $result = ['customInfo' => $info, 'list' => $list];
+        $result['customInfo'] = $info;
         util::success($result);
     }
 

+ 4 - 3
biz-ghs/ghs/classes/GhsClass.php

@@ -45,15 +45,16 @@ class GhsClass extends BaseClass
         ];
     }
 
-    public static function sumTotalOutstandingDebt($shopId, $delStatus = 0)
+    public static function sumTotalOutstandingDebt($mainId, $delStatus = 0)
     {
-        if (empty($shopId)) {
+        if (empty($mainId)) {
             return '0.00';
         }
-        $sum = self::sum(['ownShopId' => $shopId, 'delStatus' => $delStatus], 'balance');
+        $sum = self::sum(['ownMainId' => $mainId, 'delStatus' => $delStatus], 'balance');
         return bcadd($sum ?: '0', '0', 2);
     }
 
+
     public static function groupBaseInfo($list)
     {
         if (empty($list)) {

+ 9 - 3
biz-ghs/order/services/PurchaseOrderService.php

@@ -14,9 +14,15 @@ class PurchaseOrderService extends BaseService
     //所有的欠款采购单 ssh 2021.1.26
     public static function getDebtList($where)
     {
-        $list = PurchaseOrderClass::getAllList('*', $where, 'addTime DESC');
-        $count = PurchaseOrderClass::getCount($where);
-        return ['list' => $list, 'debtNum' => $count];
+        $get = Yii::$app->request->get();
+        $allowedPageSizes = [20, 50, 100, 300];
+        $pageSize = isset($get['pageSize']) && in_array((int)$get['pageSize'], $allowedPageSizes, true)
+            ? (int)$get['pageSize'] : 20;
+        $page = max(1, (int)($get['page'] ?? 1));
+        Yii::$app->request->setQueryParams(array_merge($get, ['page' => $page, 'pageSize' => $pageSize]));
+        $result = PurchaseOrderClass::getList('*', $where, 'addTime DESC');
+        $result['debtNum'] = $result['totalNum'] ?? 0;
+        return $result;
     }
 
 }

+ 18 - 2
biz-hd/purchase/services/PurchaseService.php

@@ -18,6 +18,7 @@ use bizGhs\clear\classes\OrderCgClearClass;
 use bizHd\purchase\classes\PurchaseClass;
 use bizHd\purchase\classes\PurchaseItemClass;
 use bizHd\purchase\classes\PurchaseSnClass;
+use Yii;
 use bizHd\shop\classes\MainClass;
 use common\components\dict;
 use common\components\imgUtil;
@@ -185,6 +186,12 @@ class PurchaseService extends BaseService
     //所有的欠款采购单 ssh 2021.1.26
     public static function getDebtList($where)
     {
+        $get = Yii::$app->request->get();
+        $allowedPageSizes = [20, 50, 100, 300];
+        $pageSize = isset($get['pageSize']) && in_array((int)$get['pageSize'], $allowedPageSizes, true)
+            ? (int)$get['pageSize'] : 20;
+        $page = max(1, (int)($get['page'] ?? 1));
+
         $list = PurchaseClass::getAllList('*', $where, 'addTime DESC');
         $synced = [];
         $clearedSum = '0.00';
@@ -200,9 +207,18 @@ class PurchaseService extends BaseService
             $clearedSum = bcadd($clearedSum, (string)($row['hasPayDebt'] ?? 0), 2);
             $remainSum = bcadd($remainSum, (string)($row['remainDebtPrice'] ?? 0), 2);
         }
+        $totalNum = count($synced);
+        $totalPage = max(1, (int)ceil($totalNum / $pageSize));
+        if ($page > $totalPage) {
+            $page = $totalPage;
+        }
+        $offset = ($page - 1) * $pageSize;
         return [
-            'list' => $synced,
-            'debtNum' => count($synced),
+            'list' => array_slice($synced, $offset, $pageSize),
+            'debtNum' => $totalNum,
+            'totalNum' => $totalNum,
+            'totalPage' => $totalPage,
+            'moreData' => $page < $totalPage ? 1 : 0,
             'clearedAmount' => floatval($clearedSum),
             'remainDebtAmount' => floatval($remainSum),
         ];