Example #1
0
 /**
  * app或者游戏下载概况数据
  * @return json
  */
 public function downappdataAction()
 {
     $data = reqstr('data');
     if (!$data) {
         return;
     }
     $page = reqnum('page', 1);
     $pagesize = 10;
     $data = urldecode($data);
     $info = array();
     parse_str($data, $info);
     $date = (int) $info['date'] ? (int) $info['date'] : 7;
     //默认是查出7天的数据
     $sdate = trim($info['sdate']) ? trim($info['sdate']) : '';
     $edate = trim($info['edate']) ? trim($info['edate']) : '';
     $station = (int) $info['station'] ? (int) $info['station'] : 0;
     // 0 表示查询出所有车站
     $type = (int) $info['type'] ? (int) $info['type'] : 1;
     //默认是游戏
     if (!$sdate || !$edate) {
         $edate = date('Y-m-d');
         $sdate = date('Y-m-d', strtotime("-{$date} day"));
     }
     //如果时间区间大于30天则按照30天计算
     $date_area = abs(strtotime($edate) - strtotime($sdate)) / 86400;
     if ($date_area > 30) {
         $sdate = date('Y-m-d', strtotime("-30 day"));
     }
     $sdate = str_replace('-', '_', $sdate);
     $edate = str_replace('-', '_', $edate);
     $nt = new Psys_ResourceModel();
     $data = $nt->DownAppData($sdate, $edate, $station, $type, $page, $pagesize);
     $data_graph = $nt->DownAppData($sdate, $edate, $station, $type, $page, $pagesize, 1);
     $paging = $this->paging($data['allnum'], $page, $pagesize, count($data['allrow']));
     $stations = $nt->station();
     $total = 0;
     foreach ($data['allrow'] as &$v) {
         if ($station) {
             $v['stationname'] = $this->getstationname($stations, $v['stationid']);
         } else {
             $v['stationname'] = 'ALL';
         }
         $total += $v['num'];
     }
     $datas[0]['type'] = 'pie';
     $datas[0]['name'] = '下载占比';
     foreach ($data_graph['allrow'] as $v1) {
         $datas[0]['data'][] = array($v1['appname'], (double) round($v1['num'] / $total * 100, 2));
     }
     $result['y_cat'] = $datas;
     return array('table' => $data['allrow'], 'paging' => $paging, 'graph' => $result);
 }