/** * 多服务器检测权限 */ protected function _checkOperatorsAct() { $this->_utilMsg = $this->_getGlobalData('Util_Msg', 'object'); $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $this->_view->assign('operatorList', $this->_utilRbac->getOperatorActList(self::GAME_ID)); if (count($_REQUEST['server_ids'])) { foreach ($_REQUEST['server_ids'] as $value) { if (!$this->_utilRbac->checkOperatorAct($value)) { $this->_utilMsg->showMsg(Tools::getLang('NOT_ACTSERVER', 'Common'), -2); } } } }
/** * 项目质检管理页面 */ public function actionIndex() { #------初始化------# //print_r($_POST); $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $this->_modelUser = $this->_getGlobalData('Model_User', 'object'); $users = $this->_modelUser->findSetOrgByUser(); $gamelist = $this->_getGlobalData("game_type"); $operators = $this->_utilRbac->getOperatorActList(); //个人授权可操作的运营商 if ($_POST["gamelist"]) { foreach ($gamelist as &$gamemsg) { if (in_array($gamemsg["Id"], $_POST["gamelist"])) { $gamemsg["tab"] = 1; } } } $this->_view->assign('gamelist', $gamelist); $this->_view->assign('operators', $operators); $this->_view->assign('users', json_encode($users)); $orgs = $this->_getGlobalData('org'); $orgs = Model::getTtwoArrConvertOneArr($orgs, 'Id', 'name'); $this->_loadCore('Help_SqlSearch'); $helpSqlSearch = new Help_SqlSearch(); $this->_loadCore('Help_Page'); $userClass = $this->_utilRbac->getUserClass(); //获取用户class $operatorList = $this->_getGlobalData('operator_list'); $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name'); $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object'); $onlineUsers = $this->_utilOnline->getOnlineUser('user_id'); //在线用户,一维数组,value值为user_id $evArr = $this->_modelWorkOrder->getEvArr(); //获取评价数组 $badEvArr = $this->_getGlobalData('player_evaluation'); $badEvArr = $badEvArr[3]['Description']; //差评数组 #------初始化------# #------跟据搜索条件获取工单给用户------# if ($this->_isPost()) { //增加工单 if (!abs(intval($_POST['num']))) { $this->_utilMsg->showMsg(Tools::getLang('INDEX_ERROR1', __CLASS__), -1); } if (!count($_POST['users'])) { $this->_utilMsg->showMsg(Tools::getLang('INDEX_ERROR2', __CLASS__), -1); } if (!count($_POST['operator_id'])) { $this->_utilMsg->showMsg('请选择运营商', -1); } $selectedUsers = $this->_modelUser->findByUsersToCache($_POST['users']); $selectedUsers = Model::getTtwoArrConvertOneArr($selectedUsers, 'Id', 'full_name'); $this->_view->assign('selectedUsersOption', $_POST['users']); $this->_view->assign('selectedUsers', $selectedUsers); $users = implode(',', $_POST['users']); $startDate = strtotime($_POST['start_date']); $endDate = strtotime($_POST['end_date']); $redatalist = array(); foreach ($_POST['users'] as $_user) { $helpSqlSearch->clearAll(); $helpSqlSearch->set_field('Id'); $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName()); if ($_POST['start_date'] && $_POST['end_date']) { $helpSqlSearch->set_conditions("create_time between {$startDate} and {$endDate}"); $this->_view->assign('selectedTime', array('start' => $_POST['start_date'], 'end' => $_POST['end_date'])); } if ($_POST["gamelist"]) { $games = implode(',', $_POST['gamelist']); $helpSqlSearch->set_conditions("game_type in ({$games})"); } if ($_POST['users']) { $helpSqlSearch->set_conditions("owner_user_id = {$_user}"); $this->_view->assign('selectedOrg', $_POST['org']); } if ($_POST['operator_id']) { $helpSqlSearch->set_conditions("operator_id in (" . implode(',', $_POST['operator_id']) . ")"); } if ($_POST['num']) { $helpSqlSearch->setPageLimit(1, abs(intval($_POST['num']))); $this->_view->assign('selectedNum', $_POST['num']); } $helpSqlSearch->set_conditions('quality_id=0'); //未被质检过 $helpSqlSearch->set_conditions('owner_user_id is not null'); //已经被回复或处理过 $helpSqlSearch->set_conditions('(status=3 or status=4)'); //已经处理完成的 $helpSqlSearch->set_conditions('answer_num!=0'); //必须要有一次回复 $helpSqlSearch->set_orderBy("rand()"); $sql = $helpSqlSearch->createSql(); $dataList = $this->_modelWorkOrder->select($sql); $redatalist = array_merge($redatalist, $dataList); } if ($redatalist) { $ids = array(); foreach ($redatalist as $value) { array_push($ids, $value['Id']); } $this->_modelWorkOrder->addOrderToQualityUser($ids, $userClass['_id']); //增加工单到当前用户 } if (is_array($ids)) { $addNum = count($ids); $addIds = implode(',', $ids); } else { $addNum = 0; $addIds = ''; } $this->_view->assign('addOrderDeatil', array('num' => $addNum, 'addIds' => $addIds)); } #------跟据搜索条件获取工单给用户------# #------搜索用户所获取的质检工单------# $helpSqlSearch->clearAll(); $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName()); $helpSqlSearch->set_field('*'); $helpSqlSearch->set_conditions("quality_id=-{$userClass['_id']}"); $helpSqlSearch->set_orderBy('create_time desc'); $helpSqlSearch->setPageLimit($_GET['page'], PAGE_SIZE); #------分页box------# $conditions = $helpSqlSearch->get_conditions(); $helpPage = new Help_Page(array('total' => $this->_modelWorkOrder->findCount($conditions), 'perpage' => PAGE_SIZE)); #------分页box------# $sql = $helpSqlSearch->createSql(); $dataList = $this->_modelWorkOrder->select($sql); #------搜索用户所获取的质检工单------# #------载入缓存------# $this->_modelSysconfig = $this->_getGlobalData('Model_Sysconfig', 'object'); $this->_modelQuestionType = $this->_getGlobalData('Model_QuestionType', 'object'); $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name'); $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source'); $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status'); $userList = Model::getTtwoArrConvertOneArr($this->_getGlobalData('user'), 'Id', 'nick_name'); $serverList = $this->_getGlobalData('gameser_list'); $serverList = Model::getTtwoArrConvertOneArr($serverList, 'Id', 'server_name'); #------载入缓存------# if ($dataList) { Tools::import('Util_FontColor'); $users = $this->_getGlobalData('user'); $users = Model::getTtwoArrConvertOneArr($users, 'Id', 'full_name'); foreach ($dataList as &$list) { $list['url_dialog'] = Tools::url(CONTROL, 'OrderDialog', array('Id' => $list['Id'])); $list['word_game_type'] = Util_FontColor::getGameTypeColor($list['game_type'], $gameTypeArr[$list['game_type']]); $list['word_source'] = Util_FontColor::getWorkOrderSource($list['source'], $workOrderSourceArr[$list['source']]); $list['word_status'] = Util_FontColor::getWorkOrderStatus($list['status'], $workOrderStatusArr[$list['status']]); $list['word_status'] .= $list['is_verify'] ? '(查)' : ''; $list['word_operator_id'] = $operatorList[$list['operator_id']]; $questionArr = $this->_modelQuestionType->findById($list['question_type']); $list['word_question_type'] = $questionArr['title'] ? $questionArr['title'] : ' '; $list['url_detail'] = Tools::url(CONTROL, 'Dialog', array('Id' => $list['Id'], 'game_type_id' => $list['game_type'], 'operator_id' => $list['operator_id'])); $list['word_owner_user_id'] = $users[$list['owner_user_id']]; $list['word_game_server_id'] = $serverList[$list['game_server_id']]; $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']); $list['word_ev'] = Util_FontColor::getPlayerEvaluation($list['evaluation_status'], $evArr[$list['evaluation_status']]); //提问类型 if ($list['evaluation_status'] == 3) { $list['word_ev_desc'] = $badEvArr[$list['evaluation_desc']]; } if ($list['word_owner_user_id']) { $list['word_owner_user_id'] .= in_array($list['owner_user_id'], $onlineUsers) ? Util_FontColor::getOnline(1) : Util_FontColor::getOnline(0); } } $this->_view->assign('dataList', $dataList); } $this->_view->assign('pageBox', $helpPage->show()); $this->_view->assign('orgs', $orgs); $this->_view->assign('js', $this->_view->get_curJs()); $this->_utilMsg->createNavBar(); $this->_view->display(); }