Beispiel #1
0
 /**
  * 工单显示列表
  */
 public function actionIndex()
 {
     #------初始化------#
     $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object');
     $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
     $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name');
     $operatorList = $this->_getGlobalData('operator_list');
     $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $orgList = $this->_getGlobalData('org');
     foreach ($orgList as &$value) {
         $curOrgUser = $this->_modelUser->findByOrgId($value['Id']);
         if ($curOrgUser) {
             $curOrgUser = Model::getTtwoArrConvertOneArr($curOrgUser, 'Id', 'nick_name');
             $value['user'] = $curOrgUser;
         }
     }
     #------初始化------#
     $onlineUsers = $this->_utilOnline->getOnlineUser('user_id');
     //在线用户,一维数组,value值为user_id
     #------分页生成sql------#
     $helpSqlSearch = $this->_loadCore('Help_SqlSearch');
     $helpSqlSearch = new Help_SqlSearch();
     $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
     if ($_GET['game_type_id'] != '') {
         $helpSqlSearch->set_conditions("game_type={$_GET['game_type_id']}");
         $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']);
     }
     if ($_GET['operator_id'] != '') {
         $helpSqlSearch->set_conditions("operator_id={$_GET['operator_id']}");
         $this->_view->assign('selectedOperatorId', $_GET['operator_id']);
     }
     if ($_GET['Id']) {
         $helpSqlSearch->set_conditions("Id={$_GET['Id']}");
         $this->_view->assign('selectedId', $_GET['Id']);
     }
     if ($_GET['vip_level'] != '') {
         //如果设置了vip等级,将显示等级
         $helpSqlSearch->set_conditions("vip_level={$_GET['vip_level']}");
         $this->_view->assign('selectedVipLevel', $_GET['vip_level']);
     }
     $helpSqlSearch->setPageLimit($_GET['page'], 20);
     if ($_GET['order_status']) {
         $helpSqlSearch->set_conditions("status={$_GET['order_status']}");
         $this->_view->assign('selectedOrderStatus', $_GET['order_status']);
     }
     if ($_GET['user_nickname']) {
         $helpSqlSearch->set_conditions("user_nickname='{$_GET['user_nickname']}'");
         $this->_view->assign('selectedUserNickname', $_GET['user_nickname']);
         $_GET['user_nickname'] = urlencode($_GET['user_nickname']);
     }
     if ($_GET['user_account']) {
         $helpSqlSearch->set_conditions("user_account='{$_GET['user_account']}'");
         $this->_view->assign('selectedUserAccount', $_GET['user_account']);
         $_GET['user_account'] = urlencode($_GET['user_account']);
     }
     if ($_GET['title']) {
         $helpSqlSearch->set_conditions("title like '%{$_GET['title']}%'");
         $this->_view->assign('selectedTitle', $_GET['title']);
         $_GET['title'] = urlencode($_GET['title']);
     }
     if ($_GET['service_ids']) {
         //如果选择了客服
         $this->_view->assign('selectedServiceIds', $_GET['service_ids']);
         $serviceIds = implode(',', $_GET['service_ids']);
         $helpSqlSearch->set_conditions("owner_user_id in ({$serviceIds})");
     }
     $helpSqlSearch->set_orderBy('create_time desc');
     $sql = $helpSqlSearch->createSql();
     $conditions = $helpSqlSearch->get_conditions();
     $this->_loadCore('Help_Page');
     $helpPage = new Help_Page(array('total' => $this->_modelWorkOrder->findCount($conditions), 'perpage' => 20));
     $this->_view->assign('pageBox', $helpPage->show());
     #------分页生成sql------#
     $dataList = $this->_modelWorkOrder->select($sql);
     #------载入缓存------#
     $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
     $vipLevel = array('0' => '普通', '1' => '一级', '2' => '二级', '3' => '三级', '4' => '四级', '5' => '五级', '6' => '六级', '' => '所有');
     $users = $this->_getGlobalData('user');
     //		$users=Model::getTtwoArrConvertOneArr($users,'Id','full_name');
     $serverList = $this->_getGlobalData('gameser_list');
     $serverList = Model::getTtwoArrConvertOneArr($serverList, 'Id', 'server_name');
     #------载入缓存------#
     if ($dataList) {
         Tools::import('Util_FontColor');
         foreach ($dataList as &$list) {
             $list['url_dialog'] = Tools::url('QualityCheck', '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_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('WorkOrder', 'Detail', array('Id' => $list['Id']));
             $list['word_owner_user_id'] = $users[$list['owner_user_id']]['nick_name'];
             $list['word_game_server_id'] = $serverList[$list['game_server_id']];
             if ($list['status'] == 1) {
                 $isTimeout = Tools::isTimeOut($list['create_time'], $list['timeout']);
                 if ($isTimeout === true) {
                     //已超时
                     $list['time_out_true'] = true;
                 } else {
                     //未超时
                     $list['lost_time'] = Tools::getTimeFormat($isTimeout);
                 }
             }
             $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']);
             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);
     }
     $gameTypeArr[''] = '所有';
     $this->_view->assign('gameTypeList', $gameTypeArr);
     $operatorList[''] = '所有';
     $this->_view->assign('operatorList', $operatorList);
     $this->_view->assign('orgList', $orgList);
     $this->_view->assign('vipLevel', $vipLevel);
     $workOrderStatusArr[''] = '所有';
     $this->_view->assign('workOrderStatusArr', $workOrderStatusArr);
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }
Beispiel #2
0
 /**
  * 详细统计
  */
 public function actionDetail()
 {
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $orgList = $this->_getGlobalData('org');
     $allOrgUser = $this->_modelUser->findSetOrgByUser();
     $qualityOptions = $this->_getGlobalData('quality_options');
     //质检选项
     foreach ($orgList as &$value) {
         $curOrgUser = $this->_modelUser->findByOrgId($value['Id']);
         if ($curOrgUser) {
             $curOrgUser = Model::getTtwoArrConvertOneArr($curOrgUser, 'Id', 'nick_name');
             $value['user'] = $curOrgUser;
         }
     }
     if ($this->_isPost()) {
         if (count($_POST['check_users']) && $_POST['start_date'] && $_POST['end_date']) {
             //必须保证有搜索项而且还选择了用户才会开开始搜索
             $date = array();
             $this->_view->assign('selectedTime', array('start' => $_POST['start_date'], 'end' => $_POST['end_date']));
             $this->_view->assign('selectedUsers', $_POST['check_users']);
             $date['start'] = strtotime($_POST['start_date']);
             //开始时间
             $date['end'] = strtotime($_POST['end_date']);
             //结束时间
             if ($date['start'] > $date['end']) {
                 $this->_utilMsg->showMsg('开始时间不能大于结束时间', -2);
             }
             $statsUsers = array();
             //所有的用户
             $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object');
             $this->_modelReplyQulity = $this->_getGlobalData('Model_ReplyQulity', 'object');
             $allUsers = $this->_getGlobalData('user');
             foreach ($_POST['check_users'] as $userId) {
                 //对用户进行逐个搜索
                 $curUserDetail = $allUsers[$userId];
                 $curUserDetail['workload'] = $this->_modelWorkOrderQa->findWorkLoadByUser($curUserDetail['user_name'], $date);
                 //回复量
                 $curUserDetail['quality'] = $this->_modelReplyQulity->findQualityByUerName($curUserDetail['user_name'], $date);
                 //质检量
                 array_push($statsUsers, $curUserDetail);
             }
             $startKey = date('Ymd', $date['start']);
             $endDate = date('Ymd', $date['end']);
             $baseTotal = array();
             for ($i = $startKey; $i <= $endDate; $i++) {
                 foreach ($statsUsers as $childUser) {
                     $baseTotal['workload'][$i]['timeout_num'] += intval($childUser['workload'][$i]['timeout_num']) ? intval($childUser['workload'][$i]['timeout_num']) : 0;
                     $baseTotal['workload'][$i]['no_timeout_num'] += intval($childUser['workload'][$i]['no_timeout_num']) ? intval($childUser['workload'][$i]['no_timeout_num']) : 0;
                     $baseTotal['workload'][$i]['quality_num'] += intval($childUser['workload'][$i]['quality_num']) ? intval($childUser['workload'][$i]['quality_num']) : 0;
                     $baseTotal['workload'][$i]['no_quality_num'] += intval($childUser['workload'][$i]['no_quality_num']) ? intval($childUser['workload'][$i]['no_quality_num']) : 0;
                     $baseTotal['workload'][$i]['total'] += intval($childUser['workload'][$i]['total']) ? intval($childUser['workload'][$i]['total']) : 0;
                     $baseTotal['quality'][$i]['status_num'][1] += intval($childUser['quality'][$i]['status_num'][1]) ? intval($childUser['quality'][$i]['status_num'][1]) : 0;
                     $baseTotal['quality'][$i]['status_num'][2] += intval($childUser['quality'][$i]['status_num'][2]) ? intval($childUser['quality'][$i]['status_num'][2]) : 0;
                     $baseTotal['quality'][$i]['status_num'][3] += intval($childUser['quality'][$i]['status_num'][3]) ? intval($childUser['quality'][$i]['status_num'][3]) : 0;
                     $baseTotal['quality'][$i]['status_num'][4] += intval($childUser['quality'][$i]['status_num'][4]) ? intval($childUser['quality'][$i]['status_num'][4]) : 0;
                     $baseTotal['quality'][$i]['status_num'][5] += intval($childUser['quality'][$i]['status_num'][5]) ? intval($childUser['quality'][$i]['status_num'][5]) : 0;
                     $baseTotal['quality'][$i]['deduction'] += intval($childUser['quality'][$i]['deduction']) ? intval($childUser['quality'][$i]['deduction']) : 0;
                     $baseTotal['quality'][$i]['bonus'] += intval($childUser['quality'][$i]['bonus']) ? intval($childUser['quality'][$i]['bonus']) : 0;
                     $baseTotal['quality'][$i]['option_num'][1] += intval($childUser['quality'][$i]['option_num'][1]) ? intval($childUser['quality'][$i]['option_num'][1]) : 0;
                     $baseTotal['quality'][$i]['option_num'][2] += intval($childUser['quality'][$i]['option_num'][2]) ? intval($childUser['quality'][$i]['option_num'][2]) : 0;
                     $baseTotal['quality'][$i]['option_num'][3] += intval($childUser['quality'][$i]['option_num'][-1]) ? intval($childUser['quality'][$i]['option_num'][-1]) : 0;
                     $baseTotal['quality'][$i]['option_num'][4] += intval($childUser['quality'][$i]['option_num'][-2]) ? intval($childUser['quality'][$i]['option_num'][-2]) : 0;
                     $baseTotal['quality'][$i]['option_num'][5] += intval($childUser['quality'][$i]['option_num'][-3]) ? intval($childUser['quality'][$i]['option_num'][-3]) : 0;
                     $baseTotal['quality'][$i]['option_num'][6] += intval($childUser['quality'][$i]['option_num'][-4]) ? intval($childUser['quality'][$i]['option_num'][-4]) : 0;
                     $baseTotal['quality'][$i]['option_num'][7] += intval($childUser['quality'][$i]['option_num'][-5]) ? intval($childUser['quality'][$i]['option_num'][-5]) : 0;
                     $baseTotal['quality'][$i]['option_num'][8] += intval($childUser['quality'][$i]['option_num'][-6]) ? intval($childUser['quality'][$i]['option_num'][-6]) : 0;
                 }
             }
             foreach ($statsUsers as $childUser) {
                 $baseTotal['workload']['total']['timeout_num'] += intval($childUser['workload']['total']['timeout_num']) ? intval($childUser['workload']['total']['timeout_num']) : 0;
                 $baseTotal['workload']['total']['no_timeout_num'] += intval($childUser['workload']['total']['no_timeout_num']) ? intval($childUser['workload']['total']['no_timeout_num']) : 0;
                 $baseTotal['workload']['total']['quality_num'] += intval($childUser['workload']['total']['quality_num']) ? intval($childUser['workload']['total']['quality_num']) : 0;
                 $baseTotal['workload']['total']['no_quality_num'] += intval($childUser['workload']['total']['no_quality_num']) ? intval($childUser['workload']['total']['no_quality_num']) : 0;
                 $baseTotal['workload']['total']['total'] += intval($childUser['workload']['total']['total']) ? intval($childUser['workload']['total']['total']) : 0;
                 $baseTotal['quality']['total']['status_num'][1] += intval($childUser['quality']['total']['status_num'][1]) ? intval($childUser['quality']['total']['status_num'][1]) : 0;
                 $baseTotal['quality']['total']['status_num'][2] += intval($childUser['quality']['total']['status_num'][2]) ? intval($childUser['quality']['total']['status_num'][2]) : 0;
                 $baseTotal['quality']['total']['status_num'][3] += intval($childUser['quality']['total']['status_num'][3]) ? intval($childUser['quality']['total']['status_num'][3]) : 0;
                 $baseTotal['quality']['total']['status_num'][4] += intval($childUser['quality']['total']['status_num'][4]) ? intval($childUser['quality']['total']['status_num'][4]) : 0;
                 $baseTotal['quality']['total']['status_num'][5] += intval($childUser['quality']['total']['status_num'][5]) ? intval($childUser['quality']['total']['status_num'][5]) : 0;
                 $baseTotal['quality']['total']['deduction'] += intval($childUser['quality']['total']['deduction']) ? intval($childUser['quality']['total']['deduction']) : 0;
                 $baseTotal['quality']['total']['bonus'] += intval($childUser['quality']['total']['bonus']) ? intval($childUser['quality']['total']['bonus']) : 0;
                 $baseTotal['quality']['total']['option_num'][1] += intval($childUser['quality']['total']['option_num'][1]) ? intval($childUser['quality']['total']['option_num'][1]) : 0;
                 $baseTotal['quality']['total']['option_num'][2] += intval($childUser['quality']['total']['option_num'][2]) ? intval($childUser['quality']['total']['option_num'][2]) : 0;
                 $baseTotal['quality']['total']['option_num'][3] += intval($childUser['quality']['total']['option_num'][-1]) ? intval($childUser['quality']['total']['option_num'][-1]) : 0;
                 $baseTotal['quality']['total']['option_num'][4] += intval($childUser['quality']['total']['option_num'][-2]) ? intval($childUser['quality']['total']['option_num'][-2]) : 0;
                 $baseTotal['quality']['total']['option_num'][5] += intval($childUser['quality']['total']['option_num'][-3]) ? intval($childUser['quality']['total']['option_num'][-3]) : 0;
                 $baseTotal['quality']['total']['option_num'][6] += intval($childUser['quality']['total']['option_num'][-4]) ? intval($childUser['quality']['total']['option_num'][-4]) : 0;
                 $baseTotal['quality']['total']['option_num'][7] += intval($childUser['quality']['total']['option_num'][-5]) ? intval($childUser['quality']['total']['option_num'][-5]) : 0;
                 $baseTotal['quality']['total']['option_num'][8] += intval($childUser['quality']['total']['option_num'][-6]) ? intval($childUser['quality']['total']['option_num'][-6]) : 0;
             }
             $this->_view->assign('statsUsers', $statsUsers);
             $this->_view->assign('baseTotal', $baseTotal);
             $this->_view->assign('displayTrue', true);
         } else {
             $this->_utilMsg->showMsg('请选择用户,时间', -2);
         }
     }
     $this->_view->assign('qualityOptions', $qualityOptions);
     $this->_view->assign('orgList', $orgList);
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_view->assign('css', $this->_view->get_curCss());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }
 /**
  * 我质检过的工单
  */
 public function actionMyTask()
 {
     #------初始化------#
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object');
     $onlineUsers = $this->_utilOnline->getOnlineUser('user_id');
     //在线用户,一维数组,value值为user_id
     $operatorList = $this->_getGlobalData('operator_list');
     $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
     $serverList = $this->_getGlobalData('gameser_list');
     $serverList = Model::getTtwoArrConvertOneArr($serverList, 'Id', 'server_name');
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $userClass = $this->_utilRbac->getUserClass();
     $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object');
     $this->_loadCore('Help_Page');
     $this->_loadCore('Help_SqlSearch');
     $orgList = $this->_getGlobalData('org');
     $evArr = $this->_modelWorkOrder->getEvArr();
     //获取评价数组
     $badEvArr = $this->_getGlobalData('player_evaluation');
     $badEvArr = $badEvArr[3]['Description'];
     //差评数组
     foreach ($orgList as &$value) {
         $curOrgUser = $this->_modelUser->findByOrgId($value['Id']);
         if ($curOrgUser) {
             $curOrgUser = Model::getTtwoArrConvertOneArr($curOrgUser, 'Id', 'full_name');
             $value['user'] = $curOrgUser;
         }
     }
     #------初始化------#
     $helpSqlSearch = new Help_SqlSearch();
     $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
     if ($_GET['game_type_id'] != '') {
         $helpSqlSearch->set_conditions("game_type={$_GET['game_type_id']}");
         $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']);
         #------提问类型------#
         $questionTypes = $this->_getGlobalData('question_types');
         $qTypes = array();
         foreach ($questionTypes as $key => $list) {
             if ($list['game_type_id'] == $_GET['game_type_id']) {
                 $qTypes[$key] = $list['title'];
             }
         }
         unset($questionTypes);
         $qTypes[''] = Tools::getLang('ALL', 'Common');
         $this->_view->assign('qType', $qTypes);
         if ($_GET['question_type']) {
             $helpSqlSearch->set_conditions("question_type={$_GET['question_type']}");
             $this->_view->assign('selectedQtype', $_GET['question_type']);
         }
         #------提问类型------#
     }
     if ($_GET['operator_id'] != '') {
         $helpSqlSearch->set_conditions("operator_id={$_GET['operator_id']}");
         $this->_view->assign('selectedOperatorId', $_GET['operator_id']);
     }
     if ($_GET['vip_level'] != '') {
         //如果设置了vip等级,将显示等级
         $helpSqlSearch->set_conditions("vip_level={$_GET['vip_level']}");
         $this->_view->assign('selectedVipLevel', $_GET['vip_level']);
     }
     if ($_GET['order_status']) {
         $helpSqlSearch->set_conditions("status={$_GET['order_status']}");
         $this->_view->assign('selectedOrderStatus', $_GET['order_status']);
     }
     if ($_GET['user_nickname']) {
         $helpSqlSearch->set_conditions("user_nickname='{$_GET['user_nickname']}'");
         $this->_view->assign('selectedUserNickname', $_GET['user_nickname']);
         $_GET['user_nickname'] = urlencode($_GET['user_nickname']);
     }
     if ($_GET['user_account']) {
         $helpSqlSearch->set_conditions("user_account='{$_GET['user_account']}'");
         $this->_view->assign('selectedUserAccount', $_GET['user_account']);
         $_GET['user_account'] = urlencode($_GET['user_account']);
     }
     if ($_GET['title']) {
         $helpSqlSearch->set_conditions("title like '%{$_GET['title']}%'");
         $this->_view->assign('selectedTitle', $_GET['title']);
         $_GET['title'] = urlencode($_GET['title']);
     }
     if ($_GET['service_ids']) {
         //如果选择了客服
         $this->_view->assign('selectedServiceIds', $_GET['service_ids']);
         $serviceIds = implode(',', $_GET['service_ids']);
         $helpSqlSearch->set_conditions("owner_user_id in ({$serviceIds})");
     }
     $helpSqlSearch->set_conditions("quality_id={$userClass['_id']}");
     $helpSqlSearch->setPageLimit($_GET['page'], PAGE_SIZE);
     $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');
     $vipLevel = Tools::getLang('VIP_LEVEL', 'Common');
     $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
     $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
     $userList = Model::getTtwoArrConvertOneArr($this->_getGlobalData('user'), 'Id', 'nick_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);
     }
     $gameTypeArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('gameTypeList', $gameTypeArr);
     $operatorList[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('operatorList', $operatorList);
     $this->_view->assign('orgList', $orgList);
     $this->_view->assign('vipLevel', $vipLevel);
     $workOrderStatusArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('workOrderStatusArr', $workOrderStatusArr);
     $this->_view->assign('pageBox', $helpPage->show());
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }
Beispiel #4
0
 /**
  * 工单显示列表
  */
 public function actionIndex()
 {
     #------初始化------#
     $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object');
     $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
     $verifyStatusArr = $this->_getGlobalData('verify_status');
     //bug 状态
     $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name');
     $operatorList = $this->_getGlobalData('operator_list');
     $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $orgList = $this->_getGlobalData('org');
     $evArr = $this->_modelWorkOrder->getEvArr();
     //获取评价数组
     $badEvArr = $this->_getGlobalData('player_evaluation');
     $badEvArr = $badEvArr[3]['Description'];
     //差评数组
     $questionTypes = $this->_getGlobalData('question_types');
     foreach ($orgList as &$value) {
         $curOrgUser = $this->_modelUser->findByOrgId($value['Id']);
         if ($curOrgUser) {
             $curOrgUser = Model::getTtwoArrConvertOneArr($curOrgUser, 'Id', 'nick_name');
             $value['user'] = $curOrgUser;
         }
     }
     $this->_modelRooms = $this->_getGlobalData('Model_Rooms', 'object');
     $roomList = $this->_modelRooms->findAll();
     $roomList = Model::getTtwoArrConvertOneArr($roomList, 'Id', 'name');
     $roomList[''] = Tools::getLang('All', 'Common');
     $this->_utilWorkOrder = $this->_getGlobalData('Util_WorkOrder', 'object');
     $orderManage = $this->_utilWorkOrder->getOrderManage();
     $orderVipNum = $orderManage['_orderNum'];
     $orderVipNum[''] = array_sum($orderVipNum);
     #------初始化------#
     $onlineUsers = $this->_utilOnline->getOnlineUser('user_id');
     //在线用户,一维数组,value值为user_id
     #------分页生成sql------#
     $helpSqlSearch = $this->_loadCore('Help_SqlSearch');
     $helpSqlSearch = new Help_SqlSearch();
     $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
     if ($_GET['game_type_id'] != '') {
         $helpSqlSearch->set_conditions("game_type={$_GET['game_type_id']}");
         $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']);
         #------提问类型------#
         $qTypes = array();
         foreach ($questionTypes as $key => $list) {
             if ($list['game_type_id'] == $_GET['game_type_id']) {
                 $qTypes[$key] = $list['title'];
             }
         }
         $qTypes[''] = Tools::getLang('ALL', 'Common');
         $this->_view->assign('qType', $qTypes);
         if ($_GET['question_type']) {
             $helpSqlSearch->set_conditions("question_type={$_GET['question_type']}");
             $this->_view->assign('selectedQtype', $_GET['question_type']);
         }
         #------提问类型------#
         #------运营商------#
         $operatorListTemp = array();
         $gameOperatorIndex = $this->_getGlobalData('Model_GameOperator', 'object')->findByGameTypeId($_GET['game_type_id']);
         foreach ($gameOperatorIndex as $value) {
             if (array_key_exists($value['operator_id'], $operatorList)) {
                 $operatorListTemp[$value['operator_id']] = $operatorList[$value['operator_id']];
             }
         }
         $operatorList = $operatorListTemp;
         unset($operatorListTemp);
         #------运营商------#
     }
     if ($_GET['operator_id'] != '') {
         $helpSqlSearch->set_conditions("operator_id={$_GET['operator_id']}");
         $this->_view->assign('selectedOperatorId', $_GET['operator_id']);
     }
     //增加服务器选择列表
     if ($_GET['game_type_id'] != '' && $_GET['operator_id'] != '') {
         $gameOptServerLists = $this->_getServers($_GET['game_type_id'], $_GET['operator_id']);
         if ($_GET['server_id'] != '') {
             $helpSqlSearch->set_conditions('game_server_id=' . intval($_GET['server_id']));
         }
         $this->_view->assign('gameOptServerLists', $gameOptServerLists);
     }
     if ($_GET['Id']) {
         $helpSqlSearch->set_conditions("Id={$_GET['Id']}");
         $this->_view->assign('selectedId', $_GET['Id']);
     }
     if ($_GET['room_id']) {
         $helpSqlSearch->set_conditions("room_id={$_GET['room_id']}");
         $this->_view->assign('selectedRoomId', $_GET['room_id']);
     }
     if ($_GET['evaluation_status'] != '') {
         $helpSqlSearch->set_conditions("evaluation_status={$_GET['evaluation_status']}");
         $this->_view->assign('selectedEv', $_GET['evaluation_status']);
         if ($_GET['evaluation_status'] == 3) {
             //如果为差评
             $this->_view->assign('badev_display', true);
         }
     }
     if ($_GET['is_verify'] != '') {
         $helpSqlSearch->set_conditions("is_verify={$_GET['is_verify']}");
         $this->_view->assign('selectedIsVerify', $_GET['is_verify']);
     }
     if ($_GET['evaluation_desc'] != '') {
         $helpSqlSearch->set_conditions("evaluation_desc={$_GET['evaluation_desc']}");
         $this->_view->assign('selectedBadEv', $_GET['evaluation_desc']);
     }
     if ($_GET['vip_level'] != '') {
         //如果设置了vip等级,将显示等级
         $helpSqlSearch->set_conditions("vip_level={$_GET['vip_level']}");
         $this->_view->assign('selectedVipLevel', $_GET['vip_level']);
     }
     $helpSqlSearch->setPageLimit($_GET['page'], 20);
     if ($_GET['order_status']) {
         $helpSqlSearch->set_conditions("status={$_GET['order_status']}");
         $this->_view->assign('selectedOrderStatus', $_GET['order_status']);
     }
     if ($_GET['user_nickname']) {
         $helpSqlSearch->set_conditions("user_nickname='{$_GET['user_nickname']}'");
         $this->_view->assign('selectedUserNickname', $_GET['user_nickname']);
         $_GET['user_nickname'] = urlencode($_GET['user_nickname']);
     }
     if ($_GET['user_account']) {
         $helpSqlSearch->set_conditions("user_account='{$_GET['user_account']}'");
         $this->_view->assign('selectedUserAccount', $_GET['user_account']);
         $_GET['user_account'] = urlencode($_GET['user_account']);
     }
     if ($_GET['title']) {
         $helpSqlSearch->set_conditions("title like '%{$_GET['title']}%'");
         $this->_view->assign('selectedTitle', $_GET['title']);
         $_GET['title'] = urlencode($_GET['title']);
     }
     if ($_GET['service_ids']) {
         //如果选择了客服
         $this->_view->assign('selectedServiceIds', $_GET['service_ids']);
         $serviceIds = implode(',', $_GET['service_ids']);
         $helpSqlSearch->set_conditions("owner_user_id in ({$serviceIds})");
     }
     if ($_GET['start_time'] && $_GET['end_time']) {
         $this->_view->assign('selectedStartTime', $_GET['start_time']);
         $this->_view->assign('selectedEndTime', $_GET['end_time']);
         $helpSqlSearch->set_conditions('create_time between ' . strtotime($_GET['start_time']) . ' and ' . strtotime($_GET['end_time']));
     }
     $helpSqlSearch->set_orderBy('status asc,create_time desc');
     $sql = $helpSqlSearch->createSql();
     $conditions = $helpSqlSearch->get_conditions();
     $this->_loadCore('Help_Page');
     $helpPage = new Help_Page(array('total' => $this->_modelWorkOrder->findCount($conditions), 'perpage' => 20));
     $this->_view->assign('pageBox', $helpPage->show());
     #------分页生成sql------#
     $dataList = $this->_modelWorkOrder->select($sql);
     #------载入缓存------#
     $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
     $vipLevel = Tools::getLang('VIP_LEVEL', 'Common');
     foreach ($vipLevel as $key => &$vipCount) {
         $vipCount .= " [<font color='#ff0000'>" . intval($orderVipNum[$key]) . "</font>]";
     }
     $users = $this->_getGlobalData('user_all');
     $serverList = $this->_getGlobalData('gameser_list');
     #------载入缓存------#
     if ($dataList) {
         Tools::import('Util_FontColor');
         $timeInterval = array();
         //定时器计时
         foreach ($dataList as &$list) {
             $TimeDifference = intval($serverList[$list['game_server_id']]['time_zone']);
             //时差
             $list['url_dialog'] = Tools::url('QualityCheck', 'OrderDialog', array('Id' => $list['Id'], 'TimeDifference' => $TimeDifference));
             $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'] ? Tools::getLang('VERIFY_STATUS', 'Common') : '';
             $list['word_operator_id'] = $operatorList[$list['operator_id']];
             $list['word_question_type'] = $questionTypes[$list['question_type']]['title'] ? $questionTypes[$list['question_type']]['title'] : Tools::getLang('NOT_QUESTION_TYPE', 'Common');
             $list['url_detail'] = Tools::url('WorkOrder', 'Detail', array('Id' => $list['Id']));
             $list['word_owner_user_id'] = $users[$list['owner_user_id']]['nick_name'];
             $list['word_game_server_id'] = $serverList[$list['game_server_id']]['server_name'];
             $list['word_ev'] = Util_FontColor::getPlayerEvaluation($list['evaluation_status'], $evArr[$list['evaluation_status']]);
             //提问类型
             $list['url_reply_detail'] = Tools::url(CONTROL, 'ReplyIndex', array('user_id' => $list['owner_user_id']));
             $list['word_room_id'] = $list['room_id'] ? $roomList[$list['room_id']] : '<font color="#666666">' . Tools::getLang('NOT', 'Common') . '</font>';
             if ($list['evaluation_status'] == 3) {
                 $list['word_ev_desc'] = $badEvArr[$list['evaluation_desc']];
             }
             if ($list['status'] == 1) {
                 $isTimeout = Tools::isTimeOut($list['create_time'], $list['timeout']);
                 if ($isTimeout === true) {
                     //已超时
                     $list['time_out_true'] = true;
                 } else {
                     //未超时
                     $list['lost_time'] = Tools::getTimeFormat($isTimeout);
                     $timeInterval[$list['Id']]['div'] = $list['Id'];
                     $timeInterval[$list['Id']]['time'] = $isTimeout;
                 }
             }
             if ($TimeDifference != 0) {
                 $list['create_time'] = date('Y-m-d H:i:s', $list['create_time'] + $TimeDifference * 3600);
                 $list['create_time'] .= '(' . Tools::getLang('GAME_SERVER_TIME', 'Common') . ')';
             } else {
                 $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']);
             }
             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);
             }
             $verifyInfo = $this->_modelWorkOrder->select('select status from ' . DB_PREFIX . 'verify ' . 'where work_order_id =' . $list['Id'], 1);
             $verifyStatus = $verifyInfo['status'];
             $list['word_verify_status'] = $verifyStatusArr[$verifyStatus];
         }
         $this->_view->assign('dataList', $dataList);
     }
     $evArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('statusurl', Tools::url(CONTROL, 'ChangetheStatus'));
     $badEvArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('verify', $this->_modelWorkOrder->getVerify());
     $this->_view->assign('badEvArr', $badEvArr);
     $this->_view->assign('evArr', $evArr);
     $this->_view->assign('roomList', $roomList);
     $this->_view->assign('timeInterval', json_encode($timeInterval));
     $gameTypeArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('gameTypeList', $gameTypeArr);
     $operatorList[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('operatorList', $operatorList);
     $this->_view->assign('orgList', $orgList);
     $this->_view->assign('vipLevel', $vipLevel);
     $workOrderStatusArr[''] = Tools::getLang('ALL', 'Common');
     $this->_view->assign('workOrderStatusArr', $workOrderStatusArr);
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }