public function tasks($product = null, $name = null) { $query = Flight::request()->query; $page = (int) $query->page; if ($page < 1) { $page = 1; } $limit = 20; $fromIndex = $limit * ($page - 1); $startTime = $endTime = null; switch ($query->range) { case 'today': $startTime = date('Y-m-d H:i:s', strtotime('today')); break; case 'yesterday': $startTime = date('Y-m-d H:i:s', strtotime('yesterday')); $endTime = date('Y-m-d H:i:s', strtotime('today')); break; case 'month': $startTime = date('Y-m-d H:i:s', strtotime('-30 days')); break; case 'all': break; default: $startTime = date('Y-m-d H:i:s', strtotime('-7 days')); } $options = compact('startTime', 'endTime', 'product', 'name'); $pageOptions = compact('fromIndex', 'limit'); // TODO: 如果已制定 product 和 name, 则移除 operator if ($product && $name) { $operator = null; } else { $operator = Flight::get('username'); } $pkg = new Pkg(); $pkg->multi(); $pkg->getTaskCountByOperator($operator, $options); $pkg->getTaskByOperator($operator, $options + $pageOptions); $rets = $pkg->exec(); $count = array_shift($rets); $list = array_shift($rets); // 控制 Curl 请求错误 $this->handleCurlError($pkg, 0); $this->handleCurlError($pkg, 1); Flight::json(array('total' => (int) $count['count'], 'taskList' => $list)); }