Example #1
0
 /**
  * 点击率统计
  */
 public function actionRatio()
 {
     $gameTypes = $this->_getGlobalData('game_type');
     $gameTypes = Model::getTtwoArrConvertOneArr($gameTypes, 'Id', 'name');
     $sources = $this->_getGlobalData('workorder_source');
     $lang = $this->_getGlobalData('lang');
     $statsType = array('day' => '按天', 'hour' => '按小时');
     $selected = array();
     //统计数组
     $selected['stats_type'] = $_POST['stats_type'] ? $_POST['stats_type'] : 'day';
     //统计类型默认天
     $selected['game_type_id'] = $_POST['game_type_id'];
     $selected['source'] = $_POST['source'];
     $selected['start_time'] = $_POST['start_time'];
     $selected['end_time'] = $_POST['end_time'];
     $selected['lang_id'] = $_POST['lang_id'];
     if ($this->_isPost()) {
         $this->_modelPlayerKindFaq = $this->_getGlobalData('Model_PlayerKindFaq', 'object');
         $kindList = $this->_modelPlayerKindFaq->findListAll($_POST['game_type_id'], $_POST['lang_id']);
         $this->_modelStatsFaq = $this->_getGlobalData('Model_StatsFaq', 'object');
         if (empty($_POST['start_time']) || empty($_POST['end_time'])) {
             $this->_utilMsg->showMsg('请选择开始时间与结束时间', -1, 2);
         }
         if ($_POST['stats_type'] == 'day') {
             //按天
             $this->_view->assign('allDay', Tools::getdateArr($_POST['start_time'], $_POST['end_time']));
             $stats = $this->_modelStatsFaq->statsDay(array('start_time' => $_POST['start_time'], 'end_time' => $_POST['end_time']), $_POST['game_type_id'], $_POST['source'], $_POST['lang_id']);
         } else {
             //按小时
             $this->_view->assign('allHour', range(0, 23));
             $stats = $this->_modelStatsFaq->statsHour(array('start_time' => $_POST['start_time'], 'end_time' => $_POST['end_time']), $_POST['game_type_id'], $_POST['source'], $_POST['lang_id']);
         }
     } else {
         $selected["start_time"] = date("Y-m-d", time()) . " 00:00:00";
         $selected["end_time"] = date("Y-m-d", time()) . " 23:59:59";
     }
     $this->_view->assign('kindList', $kindList);
     $this->_view->assign('dataList', $stats);
     $gameTypes[''] = '所有';
     $sources[''] = '所有';
     $lang[''] = '所有';
     $this->_view->assign('selected', $selected);
     $this->_view->assign('statsType', $statsType);
     $this->_view->assign('gameTypes', $gameTypes);
     $this->_view->assign('sources', $sources);
     $this->_view->assign('lang', $lang);
     $this->_utilMsg->createPackageNavBar();
     if ($_POST['xls']) {
         //导出excel
         Tools::import('Util_ExportExcel');
         $this->_utilExportExcel = new Util_ExportExcel('faq统计', 'Excel/StatsFaq', $stats);
         $this->_utilExportExcel->outPutExcel();
     } else {
         $this->_view->display();
     }
 }
Example #2
0
 /**
  * 统计(按小时)
  * @param array $date
  * @param int $gameTypeId
  * @param int $source
  * @param int $lang
  */
 public function statsHour($date, $gameTypeId = NULL, $source = NULL, $lang = NULL)
 {
     $sql = "select kind_id,time from {$this->tName()} where 1";
     $startTime = strtotime(date('Y-m-d 00:00:00', strtotime($date['start_time'])));
     $endTime = strtotime(date('Y-m-d 23:59:59', strtotime($date['end_time'])));
     $sql .= " and time between {$startTime} and {$endTime}";
     if ($gameTypeId) {
         $sql .= " and game_type_id={$gameTypeId}";
     }
     if ($source) {
         $sql .= " and source={$source}";
     }
     if ($lang) {
         $sql .= " and lang_id={$lang}";
     }
     $dataList = $this->select($sql);
     if (!$dataList) {
         return false;
     }
     $stats = array();
     foreach ($dataList as $list) {
         $stats['total']['total']++;
         $stats['total'][$list['kind_id']]++;
         $stats[intval(date('H', $list['time']))]['total']++;
         $stats[intval(date('H', $list['time']))][$list['kind_id']]++;
     }
     $this->_modelPlayerKindFaq = $this->_getGlobalData('Model_PlayerKindFaq', 'object');
     $kindFaq = $this->_modelPlayerKindFaq->findListAll($gameTypeId);
     for ($i = 0; $i < 24; $i++) {
         if (!$stats[$i]) {
             $stats[$i]['total'] = 0;
         }
         foreach ($kindFaq as $key => $value) {
             $stats[$i][$key] = intval($stats[$i][$key]);
         }
     }
     ksort($stats);
     return $stats;
 }