/** * * Enter description here ... * @param unknown_type $params */ public function Pages($params = array()) { //设置默认参数 $_defaults_params = array('allow_cache' => true, 'page' => isset($_GET['page']) ? intval($_GET['page']) : 1, 'pagesize' => 10); $params = array_merge($_defaults_params, $params); //有开启缓存功能,则从缓存中取数据, 如果有数据,则直接返回结果 if ($params['allow_cache'] && isset($this->cache)) { $cacheKey = 'collect.rule.pages.' . serialize($params); $ret = $this->cache->get($cacheKey); if ($ret && is_array($ret)) { return $ret; } } //添加条件 $builds = array('select' => 'COUNT(ct.collect_rule_id) AS COUNT', 'from' => array('{{collect_rule}}', 'ct')); if (isset($params['collect_rule_status']) && !empty($params['collect_rule_status'])) { $builds['where'][] = array('AND', 'ct.collect_rule_status=:collect_rule_status'); $sql_params[':collect_rule_status'] = $params['collect_rule_status']; } else { $builds['where'][] = array('AND', 'ct.collect_rule_status>:collect_rule_status'); $sql_params[':collect_rule_status'] = 0; } if (isset($params['collect_rule_id']) && !empty($params['collect_rule_id'])) { $builds['where'][] = array('AND', 'ct.collect_rule_id=:collect_rule_id'); $sql_params[':collect_rule_id'] = $params['collect_rule_id']; } // if (isset($params['collect_rule_name']) && !empty($params['collect_rule_name'])) { $builds['where'][] = array('LIKE', 'ct.collect_rule_name', '%:collect_rule_name%'); $sql_params[':collect_rule_name'] = $params['collect_rule_name']; } // // if (isset($params['searchKey']) && $params['searchKey']) { $builds['where'][] = array('OR', array('OR LIKE', 'ct.collect_rule_name', ":searchKey")); $sql_params[':searchKey'] = "%{$params['searchKey']}%"; } $sql = $this->buildQuery($builds); //统计数量 $count = $this->db->queryScalar($sql, $sql_params); //分页处理 $pages = new CPagination($count); //设置分页大小 $pages->pageSize = $params['pagesize']; if (isset($params['orderby']) && $params['orderby']) { $builds['order'] = $params['orderby']; } else { $builds['order'] = array('ct.collect_rule_dateline DESC'); } $builds['select'] = 'ct.collect_rule_id, ct.collect_rule_name'; $pages->applyLimit($builds); $sql = $this->buildQuery($builds); $ret = array('pages' => $pages, 'rows' => $this->db->queryAll($sql, $sql_params)); //有开启缓存,则把结果添加到缓存中 if ($params['allow_cache'] && isset($this->cache)) { $cacheTimeout = SettingModel::getSettingValue('COLLECT_TEMPLATE_PAGES_CACHE_TIME'); $this->cache->set($cacheKey, json_encode($ret), $cacheTimeout); unset($cacheTimeout, $cacheKey); } return $ret; }