예제 #1
0
 /**
  * 察看详细
  */
 public function actionQualityDetail()
 {
     #------初始化------#
     $this->_modelQuality = $this->_getGlobalData('Model_Quality', 'object');
     #------初始化------#
     if ($this->_isPost()) {
         switch ($_POST['submit_type']) {
             case '0':
                 //质检
                 $this->_utilMsg->showMsg(false);
                 break;
             case '1':
                 //申诉
                 if ($this->_modelQuality->update(array('status' => $_POST['status'], 'complain_content' => $_POST['complain_content'], 'complain_time' => CURRENT_TIME), "Id={$_POST['Id']}")) {
                     #------添加日志------#
                     $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
                     $this->_modelOrderLog->addLog(array('Id' => $_POST['work_order_id']), Model_OrderLog::AGAIN);
                     #------添加日志------#
                     $this->_utilMsg->showMsg(false);
                 } else {
                     $this->_utilMsg->showMsg(Tools::getLang('APPEAL_ERROR', __CLASS__), -2);
                 }
                 break;
             default:
                 //默认回复申诉
                 $updateArr = array('status' => $_POST['status'], 'reply_content' => $_POST['reply_content'], 'reply_time' => CURRENT_TIME);
                 if ($_POST['status'] == 3) {
                     $updateArr['scores'] = '0';
                 }
                 //如果申诉为同意申诉,将把扣分设置为0,不扣分;
                 if ($this->_modelQuality->update($updateArr, "Id={$_POST['Id']}")) {
                     $this->_utilMsg->showMsg(false);
                 } else {
                     $this->_utilMsg->showMsg(Tools::getLang('REPLY_APPEAL_ERROR', __CLASS__), -2);
                 }
                 break;
         }
     } else {
         #------初始化------#
         $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object');
         $this->_modelSysconfig = $this->_getGlobalData('Model_Sysconfig', 'object');
         $this->_modelGameSerList = $this->_getGlobalData('Model_GameSerList', 'object');
         $this->_modelOperatorList = $this->_getGlobalData('Model_OperatorList', 'object');
         $this->_modelQuestionType = $this->_getGlobalData('Model_QuestionType', 'object');
         $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
         $user = $this->_getGlobalData('user');
         $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
         #------初始化------#
         #------质检详细------#
         $qualityOptions = $this->_getGlobalData('quality_options');
         $qualityList = $this->_modelQuality->findByQaId($_GET['qa_id']);
         $qualityList['word_option_id'] = $qualityOptions[$qualityList['option_id']];
         $qualityList['word_status'] = $this->_statusOptions[$qualityList['status']];
         $qualityList['word_quality_user_id'] = $user[$qualityList['quality_user_id']]['full_name'];
         $qualityList['word_again_user_id'] = $user[$qualityList['again_user_id']]['full_name'];
         $qualityList['reply_time'] = $qualityList['reply_time'] ? date('Y-m-d H:i:s', $qualityList['reply_time']) : '';
         $qualityList['quality_time'] = $qualityList['quality_time'] ? date('Y-m-d H:i:s', $qualityList['quality_time']) : '';
         $qualityList['complain_time'] = $qualityList['complain_time'] ? date('Y-m-d H:i:s', $qualityList['complain_time']) : '';
         $qualityList['again_time'] = $qualityList['again_time'] ? date('Y-m-d H:i:s', $qualityList['again_time']) : '';
         #------质检详细------#
         $dataList = $this->_modelWorkOrder->findByIdDetail($_GET['work_order_id']);
         //获取工单整个数组,包括关联表
         if (!$dataList) {
             $this->_utilMsg->showMsg(Tools::getLang('CONTENT_ERROR', __CLASS__), -2);
         }
         //防止错误
         $dialogArr = $dataList;
         //客服与用户的对话数组
         $dataList = $dataList[0];
         //列表详细
         #------载入缓存------#
         $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name');
         //游戏类型
         $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
         //工单来源
         $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
         //工单状态
         $gameSerList = $this->_modelGameSerList->findById($dataList['game_server_id']);
         $operatorList = $this->_modelOperatorList->findById($dataList['operator_id']);
         #------载入缓存------#
         foreach ($dialogArr as &$list) {
             $list['qa_time'] = date('Y-m-d H:i:s', $list['qa_time']);
             $list['word_reply_name'] = $user[$list['user_id']]['nick_name'];
         }
         $workOrderDetailArr = unserialize($dataList['detail']);
         //获取工单的详细信息
         $userData = $workOrderDetailArr['user_data'];
         //获取提交工单用户的详细信息
         $userData['register_date'] = date('Y-m-d H:i:s', $userData['register_date']);
         $userQuestionDetail = $workOrderDetailArr['form_detail'];
         //获取提问类型工单的值
         $questionDetail = $this->_modelQuestionType->findById($dataList['question_type']);
         //查找问题类型
         #------跟椐ID转换文字显示------#
         $dataList['word_question_type'] = $questionDetail['title'];
         //获取问题类型的中文名称以方便显示
         $dataList['word_game_type'] = $gameTypeArr[$dataList['game_type']];
         $dataList['word_source'] = $workOrderSourceArr[$dataList['source']];
         $dataList['word_status'] = $workOrderStatusArr[$dataList['status']];
         $dataList['word_game_server_id'] = $gameSerList['server_name'];
         $dataList['word_operator_id'] = $operatorList['operator_name'];
         $dataList['create_time'] = date('Y-m-d H:i', $dataList['create_time']);
         $dataList['word_quality_id'] = $user[$dataList['quality_id']]['full_name'];
         #------跟椐ID转换文字显示------#
         $questionDetail = $questionDetail['form_table'];
         //获取问题类型的表单配置值
         $userQuestionDetailArr = array();
         //初始化显示提交问题类型数组
         if (count($questionDetail)) {
             foreach ($questionDetail as $value) {
                 //将表单转换为key/value方式,方便显示
                 if ($value['type'] == 'game_server_list') {
                     continue;
                 }
                 //如果为服务器列表将跳过,因为已经在工单上面有了.
                 switch ($value['type']) {
                     case 'select':
                         $userQuestionDetailArr[$value['title']] = $value['options'][$userQuestionDetail[$value['name']]];
                         break;
                     default:
                         $userQuestionDetailArr[$value['title']] = $userQuestionDetail[$value['name']];
                         break;
                 }
             }
         }
         #------日志------#
         $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
         $this->_view->assign('log', $this->_modelOrderLog->getLog($_GET['work_order_id']));
         #------日志------#
         $this->_view->assign('scorce', $this->_modelQuality->getScorce());
         $this->_view->assign('qualityOptions', $qualityOptions);
         $this->_view->assign('qualityList', $qualityList);
         $this->_view->assign('workOrderStatusArr', $workOrderStatusArr);
         $this->_view->assign('userData', $userData);
         $this->_view->assign('userQuestionDetailArr', $userQuestionDetailArr);
         //问题类型显示
         $this->_view->assign('dialogArr', $dialogArr);
         //对话详细
         $this->_view->assign('data', $dataList);
         //表单详细信息
         $this->_view->assign('userClass', $this->_utilRbac->getUserClass());
         $this->_utilMsg->createNavBar();
         $this->_view->display();
     }
 }
예제 #2
0
 /**
  * 查看工单详细
  */
 public function actionDetail()
 {
     $dataList = $this->_modelWorkOrder->findByIdToDetail($_GET['Id']);
     $_REQUEST['operator_id'] = $dataList['operator_id'];
     $this->_checkOperatorAct(true);
     $dialogList = $this->_modelWorkOrderQa->findByWorkOrderId($_GET['Id']);
     #------载入缓存------#
     $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name');
     //游戏类型
     $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
     //工单来源
     $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
     //工单状态
     $gameServerList = $this->_getGlobalData('gameser_list');
     $TimeDifference = intval($gameServerList[$dataList['game_server_id']]['time_zone']) * 3600;
     //时差
     $gameServerList = Model::getTtwoArrConvertOneArr($gameServerList, 'Id', 'server_name');
     $operatorList = $this->_getGlobalData('operator_list');
     $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
     $user = $this->_getGlobalData('user_all');
     $departmentList = $this->_getGlobalData('department');
     $departmentList = Model::getTtwoArrConvertOneArr($departmentList, 'Id', 'name');
     #------载入缓存------#
     #------跟椐ID转换文字显示------#
     $dataList['word_status'] = $workOrderStatusArr[$dataList['status']];
     $dataList['word_game_type'] = $gameTypeArr[$dataList['game_type']];
     $dataList['word_source'] = $workOrderSourceArr[$dataList['source']];
     $dataList['word_game_server_id'] = $gameServerList[$dataList['game_server_id']];
     $dataList['word_operator_id'] = $operatorList[$dataList['operator_id']];
     $dataList['create_time'] = date('Y-m-d H:i:s', $dataList['create_time'] + $TimeDifference);
     if ($TimeDifference) {
         $dataList['create_time'] .= '(' . Tools::getLang('GAME_SERVER_TIME', 'Common') . ')';
     }
     $dataList['word_quality_id'] = $dataList['quality_id'] < 0 ? $user[$dataList['quality_id']]['nick_name'] . "[{$departmentList[$user[$dataList['quality_id']]['department_id']]}]" : '未质检';
     $dataList['url_nick_name_detail_list'] = Tools::url('MyTask', 'Index', array('view_type' => 2, 'user_nickname' => $dataList['user_nickname']));
     $dataList['url_change_verify'] = Tools::url(CONTROL, 'ChangeVerify', array('Id' => $dataList['Id'], 'verify' => $dataList['is_verify'] ? 0 : 1));
     #------跟椐ID转换文字显示------#
     foreach ($dialogList as &$list) {
         $list['create_time'] = date('Y-m-d H:i:s', $list['create_time'] + $TimeDifference);
         if ($TimeDifference) {
             $list['create_time'] .= '(' . Tools::getLang('GAME_SERVER_TIME', 'Common') . ')';
         }
         $list["image"] = json_decode($list["image"], true);
         $list['word_reply_name'] = $user[$list['user_id']]['full_name'];
     }
     $workOrderDetailArr = unserialize($dataList['content']);
     //获取工单的详细信息
     $userData = $workOrderDetailArr['user_data'];
     //获取提交工单用户的详细信息
     //		$userData ['register_date'] =$userData ['register_date']? date ( 'Y-m-d H:i:s', $userData ['register_date'] ):'';
     if ($userData['register_date']) {
         $userData['register_date'] = date('Y-m-d H:i:s', $userData['register_date'] + $TimeDifference);
         if ($TimeDifference) {
             $userData['register_date'] .= '(' . Tools::getLang('GAME_SERVER_TIME', 'Common') . ')';
         }
     } else {
         $userData['register_date'] = '';
     }
     if ($dataList['evaluation_status'] != 0) {
         //如果已经评价
         $playerEvaluation = $this->_getGlobalData('player_evaluation');
         $evaluation = $playerEvaluation[$dataList['evaluation_status']];
         $evaluation = $evaluation['title'];
         if ($dataList['evaluation_status'] == 3) {
             $evaluation .= ':&nbsp;' . $playerEvaluation[3]['Description'][$dataList['evaluation_desc']];
         }
         $this->_view->assign('evaluation', $evaluation);
     }
     $userQuestionDetail = $workOrderDetailArr['form_detail'];
     //获取提问类型工单的值
     $questionDetail = $this->_modelQuestionType->findById($dataList['question_type']);
     //查找问题类型
     $dataList['word_question_type'] = $questionDetail['title'];
     //获取问题类型的中文名称以方便显示
     if ($dataList['source'] != 2) {
         //如果工单不是从游戏里面来的话
         $questionDetail = $questionDetail['form_table'];
         //获取问题类型的表单配置值
         $userQuestionDetailArr = array();
         //初始化显示提交问题类型数组
         if ($questionDetail) {
             foreach ($questionDetail as $value) {
                 //将表单转换为key/value方式,方便显示
                 if ($value['type'] == 'game_server_list') {
                     continue;
                 }
                 //如果为服务器列表将跳过,因为已经在工单上面有了.
                 switch ($value['type']) {
                     case 'select':
                         $userQuestionDetailArr[$value['title']] = $value['options'][$userQuestionDetail[$value['name']]];
                         break;
                     default:
                         $userQuestionDetailArr[$value['title']] = $userQuestionDetail[$value['name']];
                         break;
                 }
             }
         }
     }
     #------发送短消息URL------#
     $sendMsgUrl = array(1 => '', 2 => Tools::url('MasterFRG', 'SendMail', array('UserId[1]' => $userData['user_id'], 'server_id' => $dataList['game_server_id'], 'lock' => 1)), 3 => Tools::url('GmSftx', 'SendMsg', array('users[1]' => $userData['user_id'], 'server_id' => $dataList['game_server_id'], 'lock' => 1)));
     $this->_view->assign('sendMsgUrl', $sendMsgUrl[$dataList['game_type']]);
     //url
     #------发送短消息URL------#
     #------日志------#
     $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
     $this->_view->assign('log', $this->_modelOrderLog->getLog($_GET['Id']));
     #------日志------#
     unset($workOrderStatusArr[1]);
     //删除待处理状态
     unset($workOrderStatusArr[4]);
     //删除被玩家删除状态
     //玩家附加的信息(腾讯数据)
     if (isset($workOrderDetailArr['ext'])) {
         $this->_view->assign('userExt', $workOrderDetailArr['ext']);
     }
     $this->_view->assign('workOrderStatusArr', $workOrderStatusArr);
     $this->_view->assign('userData', $userData);
     $this->_view->assign('userQuestionDetailArr', $userQuestionDetailArr);
     //问题类型显示
     $this->_view->assign('dialogArr', $dialogList);
     //对话详细
     $this->_view->assign('data', $dataList);
     //表单详细信息
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_url['Verify_OrderVerify'] = Tools::url('Verify', 'OrderVerify', array('work_order_id' => $_GET['Id'], 'game_type_id' => $dataList['game_type'], 'operator_id' => $dataList['operator_id'], 'game_server_id' => $dataList['game_server_id'], 'game_user_id' => $userData['user_id'], 'user_account' => urlencode($userData['user_account']), 'user_nickname' => urlencode($userData['user_nickname'])));
     $this->_view->assign('url', $this->_url);
     //加载游戏配置
     $gameClass = $this->_getGlobalData($dataList['game_type'], 'game');
     $isSendOrderReplay = true;
     $isSendImage = false;
     if ($gameClass) {
         $isSendOrderReplay = $gameClass->_isSendOrderReplay;
         $isSendImage = $gameClass->_sendImage;
     }
     $this->_view->assign('isSendOrderReplay', $isSendOrderReplay);
     $this->_view->assign('isSendImage', $isSendImage);
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }