get()->goCheck(); //请求参数设置 $this->request = request(); $this->params = $this->request->param(); //分页初始化 $this->initPage(); //搜索初始化 $this->initSearch(); //排序初始化 $this->initSort(); // //导出初始化 // $this->initExport(); } /** * @notes 分页参数初始化 * @author 令狐冲 * @date 2021/7/30 23:55 */ private function initPage() { $this->pageSizeMax = Config::get('project.lists.page_size_max'); $this->pageSize = Config::get('project.lists.page_size'); $this->pageType = $this->request->get('page_type', 1); if ($this->pageType == 1) { //分页 $this->pageNo = $this->request->get('page_no', 1) ?: 1; $this->pageSize = $this->request->get('page_size', $this->pageSize) ?: $this->pageSize; } else { //不分页 $this->pageNo = 1;//强制到第一页 $this->pageSize = $this->pageSizeMax;// 直接取最大记录数 } //limit查询参数设置 $this->limitOffset = ($this->pageNo - 1) * $this->pageSize; $this->limitLength = $this->pageSize; } /** * @notes 初始化搜索 * @return array * @author 令狐冲 * @date 2021/7/31 00:00 */ private function initSearch() { if (!($this instanceof ListsSearchInterface)) { return []; } $startTime = $this->request->get('start_time'); $this->startTime = strtotime($startTime); $endTime = $this->request->get('end_time'); $this->endTime = strtotime($endTime); $this->start = $this->request->get('start'); $this->end = $this->request->get('end'); return $this->searchWhere = $this->createWhere($this->setSearch()); } /** * @notes 初始化排序 * @return array|string[] * @author 令狐冲 * @date 2021/7/31 00:03 */ private function initSort() { if (!($this instanceof ListsSortInterface)) { return []; } $this->field = $this->request->get('field', ''); $this->orderBy = $this->request->get('order_by', ''); return $this->sortOrder = $this->createOrder($this->setSortFields(), $this->setDefaultOrder()); } /** * @notes 不需要分页,可以调用此方法,无需查询第二次 * @return int * @author 令狐冲 * @date 2021/7/6 00:34 */ public function defaultCount(): int { return count($this->lists()); } }