Beispiel #1
0
 /**
  * 多服务器检测权限
  */
 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();
 }