/** * 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)); }
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)-------# }
/** * 点击率统计 */ 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(); } }
/** * 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)); } }
/** * 修复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'; }
/** * 统计(按小时) * @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; }