Example #1
0
 /**
  * faq分类
  */
 public function actionType()
 {
     $gameTypeId = abs(intval($_GET['game_id']));
     $this->_modelPlayerKindFaq = $this->_getGlobalData('Model_PlayerKindFaq', 'object');
     $dataList = $this->_modelPlayerKindFaq->findByGameTypeId($gameTypeId);
     $this->_returnAjaxJson(array('status' => 1, 'info' => '', 'data' => $dataList));
 }
Example #2
0
 public function update($keyvalue, $conditions)
 {
     #------修正更改分类后计数器不正常的情况------#
     $this->_modelPlayerKindFaq = $this->_getGlobalData('Model_PlayerKindFaq', 'object');
     $agoList = $this->select("select * from {$this->tName()} where {$conditions} ", 1);
     if ($agoList) {
         if (isset($keyvalue['kind_id']) && $agoList['kind_id'] != $keyvalue['kind_id']) {
             $this->_modelPlayerKindFaq->update(array('count' => 'count+1'), "Id={$keyvalue['kind_id']}");
             $this->_modelPlayerKindFaq->update(array('count' => 'count-1'), "Id={$agoList['kind_id']}");
         }
     }
     #------修正更改分类后计数器不正常的情况------#
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $userClass = $this->_utilRbac->getUserClass();
     $keyvalue['user_id'] = $userClass['_id'];
     $keyvalue['time'] = CURRENT_TIME;
     parent::update($keyvalue, $conditions);
     #------记录日志(生成msg)-------#
     $logArr = array();
     array_push($logArr, '修改了一条FAQ记录');
     $gameTypeName = $this->_modelPlayerKindFaq->getGameKind();
     $gameTypeName = $gameTypeName[$keyvalue['game_type_id']];
     array_push($logArr, "FAQ所属游戏[{$gameTypeName}]");
     $lang = $this->_getGlobalData('lang');
     $lang = $lang[$keyvalue['lang_id']];
     array_push($logArr, "FAQ所属语言[{$lang}]");
     $kindList = $this->_modelPlayerKindFaq->findById($keyvalue['kind_id']);
     $kindName = $kindList['name'];
     array_push($logArr, "FAQ所属类型[{$kindName}]");
     array_push($logArr, "FAQ记录 [{$conditions}]");
     $msg = Tools::formatLog($logArr);
     Tools::addLog($msg, true);
     return true;
     #------记录日志(生成msg)-------#
 }
Example #3
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 #4
0
 /**
  * FAQ删除
  */
 public function actionPlayerDel()
 {
     if (!$this->_isAjax()) {
         return false;
     }
     if ($this->_modelPlayerFaq->deleteById($_GET['Id'])) {
         $this->_modelPlayerKindFaq->update(array('count' => 'count-1'), "Id={$_GET['kind_id']}");
         //数量减1
         $this->_returnAjaxJson(array('status' => 1));
     }
 }
Example #5
0
 /**
  * 修复FAQ分类下的FAQ数量不对的接口
  */
 public function actionXiuFu()
 {
     $game_id = intval($_GET['game_id']);
     if (!$game_id) {
         echo 'field';
         exit;
     }
     $faqKindTable = $this->_modelPlayerKindFaq->tName();
     $kindIds = $this->_modelPlayerKindFaq->select("select Id from {$faqKindTable} where game_type_id = {$game_id}");
     foreach ($kindIds as $key => $val) {
         $faqCount = $this->_modelPlayerFaq->findCount("kind_id={$val['Id']} and status !=1");
         $this->_modelPlayerKindFaq->update(array('count' => $faqCount), "Id={$val['Id']}");
     }
     echo 'ok';
 }
Example #6
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;
 }