PHP 根據 搜索條件/勾選數據 分批次 處理數據

                                                      PHP 根據 搜索條件/勾選數據 分批次 處理數據

 

    /**
     * 根據搜索條件處理數據
     */
    public function updateBySearch(){
        $data = $_GET;
        $param = [];
        if (isset($data['name']) && $data['name']){
            $param[] = ['name', 'prefix', $data['name']];
        }
        if (!empty($data['phone'])){
            $param[] = ['phone', 'prefix', $data['phone']];
        }
        if (!empty($data['status'])){
            $param['status'] = $data['status'];
        }
        $result = $this->handleData($param);
    }

    /**
     * 根據勾選數據處理數據
     */
    public function updateById(){
        $data = $_POST['id'];
        $ids = explode(',', $data);
        $param[] = ['id', 'in', $ids];
        $result = $this->handleData($param);
    }

    /**
     * 根據條件查詢數據
     * @param $param
     * @param int $batchNums 分批次處理,一次處理100條
     */
    public function handleData($param, $batchNums = 100){
        $orderDao = new OrderDao();
        $count = $orderDao->count($param);   //獲取總記錄數

        $page = ceil($count / $batchNums);
        for ($i = 0; $i<$page; $i++) {
            $pager = [
                'page' => ($i + 1),         //第幾頁
                'page_size' => $batchNums   //每頁的數量
            ];

            $list = $orderDao->queryLimit($param, $pager, ['id' => 'ASC']);
            $log = '';
            $result = $this->handleListData($list, $log);
        }
    }

    /**
     * 處理每一個 $list 的數據
     * @param $list 列表數據
     * @param $log 記錄日誌信息
     */
    public function handleListData($list, &$log){
        $log = '該 list 有 [ ' . count($list) . ' ] 條數據';

        /**

         ... 處理數據的代碼塊 ...

            return $result;
         */
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章