Exemple #1
0
 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));
 }