Example #1
0
 /**
  * 复检动作
  */
 public function actionAgain()
 {
     $this->_modelQuality = $this->_getGlobalData('Model_Quality', 'object');
     if ($this->_isPost()) {
         $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
         $userClass = $this->_utilRbac->getUserClass();
         $this->_modelQuality = $this->_getGlobalData('Model_Quality', 'object');
         $updateArr = array('again_status' => $_POST['again_status'], 'again_content' => $_POST['again_content'], 'again_time' => CURRENT_TIME, 'again_user_id' => $userClass['_id']);
         #------添加日志------#
         $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
         $this->_modelOrderLog->addLog(array('Id' => $_POST['work_order_id']), Model_OrderLog::AGAIN);
         #------添加日志------#
         if ($this->_modelQuality->update($updateArr, "Id={$_POST['Id']}")) {
             $this->_utilMsg->showMsg(false);
         } else {
             $this->_utilMsg->showMsg(Tools::getLang('AGAIN_ERROR', __CLASS__), -2);
         }
     }
     if ($_GET['doaction'] == 'option') {
         //更改评价
         $id = Tools::coerceInt($_GET['Id']);
         $option = intval($_GET['option']);
         $this->_modelQuality->update(array('option_id' => $option), "Id={$id}");
         $this->_returnAjaxJson(array('status' => 1, 'msg' => '更改评价成功'));
     }
     if ($_GET['doaction'] == 'scorces') {
         //更改分数
         $id = Tools::coerceInt($_GET['Id']);
         $scores = intval($_GET['scores']);
         $this->_modelQuality->update(array('scores' => $scores), "Id={$id}");
         $this->_returnAjaxJson(array('status' => 1, 'msg' => '更改分类成功'));
     }
 }
 public function add($postArr)
 {
     if (empty($postArr['title'])) {
         return array('status' => -2, 'msg' => '标题不能为空', 'href' => 2);
     }
     if (empty($postArr['content'])) {
         return array('status' => -2, 'msg' => '内容不能为空', 'href' => 2);
     }
     $addArr = array();
     $addArr['org_id'] = $postArr['org_id'];
     $addArr['reply_user_id'] = $postArr['reply_user_id'];
     $addArr['source'] = $postArr['source'];
     $addArr['quality_status'] = $postArr['quality_status'];
     $addArr['quality_user_id'] = $postArr['quality_user_id'];
     $addArr['scores'] = $postArr['scores'];
     $addArr['feedback'] = $postArr['feedback'];
     $addArr['title'] = $postArr['title'];
     $addArr['content'] = $postArr['content'];
     if ($postArr['work_order_id']) {
         $addArr['work_order_id'] = $postArr['work_order_id'];
         #------添加日志------#
         $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
         $this->_modelOrderLog->addLog(array('Id' => $_POST['work_order_id']), Model_OrderLog::ADD_DOC);
         #------添加日志------#
     }
     if ($postArr['qa_id']) {
         $addArr['qa_id'] = $postArr['qa_id'];
     }
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $userClass = $this->_utilRbac->getUserClass();
     $addArr['create_user_id'] = $userClass['_id'];
     $addArr['create_time'] = CURRENT_TIME;
     if (parent::add($addArr)) {
         return array('status' => 1, 'msg' => '添加成功', 'href' => Tools::url(CONTROL, 'Document'));
     } else {
         return array('status' => 1, 'msg' => '添加失败', 'href' => 2);
     }
 }
 /**
  * 工单处理时长统计
  */
 public function actionTime()
 {
     $gameTypes = $this->_getGlobalData('game_type');
     $gameTypes = Model::getTtwoArrConvertOneArr($gameTypes, 'Id', 'name');
     $operatorIds = $this->_getGlobalData('operator_list');
     $operatorIds = Model::getTtwoArrConvertOneArr($operatorIds, 'Id', 'operator_name');
     $vipIndex = Tools::getLang('VIP_LEVEL', 'Common');
     $this->_modelRooms = $this->_getGlobalData('Model_Rooms', 'object');
     $roomList = $this->_modelRooms->findAll();
     $roomList = Model::getTtwoArrConvertOneArr($roomList, 'Id', 'name');
     //$roomList['']=Tools::getLang('All','Common');
     array_pop($vipIndex);
     //弹出最后一个
     if ($this->_isPost()) {
         $selected = array();
         if (!$_POST['game_type_id']) {
             $this->_utilMsg->showMsg('请至少选择一个游戏类型', -1);
         }
         if (!$_POST['operator_id']) {
             $this->_utilMsg->showMsg('请至少选择一个运营商', -1);
         }
         if (!$_POST['start_time'] || !$_POST['end_time']) {
             $this->_utilMsg->showMsg('请指定时间范围', -1);
         }
         $selected['roomList'] = $_POST['roomList'];
         $selected['game_type_id'] = $_POST['game_type_id'];
         $selected['operator_id'] = $_POST['operator_id'];
         $selected['start_time'] = $_POST['start_time'];
         $selected['end_time'] = $_POST['end_time'];
         $selected['vip_level'] = $_POST['vip_level'];
         $this->_view->assign('selected', $selected);
         $time = array('start_time' => strtotime($_POST['start_time']), 'end_time' => strtotime($_POST['end_time']));
         $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
         $dataList = $this->_modelOrderLog->statsTime($time, $_POST['game_type_id'], $_POST['operator_id'], $_POST['vip_level'], $_POST['roomList']);
         $this->_view->assign('dataList', $dataList);
         $this->_view->assign('display', true);
     }
     $this->_view->assign('roomList', $roomList);
     $this->_view->assign('vipIndex', $vipIndex);
     $this->_view->assign('gameTypes', $gameTypes);
     $this->_view->assign('operatorList', $operatorIds);
     $this->_utilMsg->createPackageNavBar();
     $this->_view->display();
 }
 /**
  * 删除某玩家的所有工单
  */
 public function actionDelAll()
 {
     $userInfo = array('user_account' => trim($_REQUEST['user_account']), 'game_user_id' => trim($_REQUEST['user_id']), 'user_nickname' => trim(urldecode($_REQUEST['user_nickname'])));
     $userInfo = array_filter($userInfo);
     //检查用户信息是否都为空
     if (!$userInfo) {
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'player empty', 'data' => null));
     }
     $gameId = intval($_REQUEST['game_id']);
     if (!$gameId) {
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'error game_id', 'data' => null));
     }
     $serverMarking = trim($_REQUEST['server_marking']);
     if (empty($serverMarking)) {
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'server_marking empty', 'data' => null));
     }
     $this->_modelGameSerList = $this->_getGlobalData('Model_GameSerList', 'object');
     $gameServerList = $this->_modelGameSerList->findByMarking($gameId, $serverMarking);
     if (!$gameServerList) {
         //未找到服务器
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'game server non-existent', 'data' => null));
     }
     $status = intval($_REQUEST['status']);
     $this->_loadCore('Help_SqlSearch');
     //载入sql工具
     $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object');
     $helpSqlSearch = new Help_SqlSearch();
     $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
     $helpSqlSearch->set_field('Id');
     //指定玩家
     $helpSqlSearch->set_conditions(key($userInfo) . "='" . current($userInfo) . "'");
     //来自游戏的工单
     $helpSqlSearch->set_conditions('source=2');
     //来自哪个游戏
     $helpSqlSearch->set_conditions("game_type={$gameId}");
     //确定某个服务器
     $helpSqlSearch->set_conditions("game_server_id={$gameServerList['Id']}");
     //处理状态,0:待受理(包括:1未受理,2受理中),3:已答复
     if ($status != -1) {
         if ($status == 3) {
             $helpSqlSearch->set_conditions('status=3');
         } else {
             $helpSqlSearch->set_conditions('status>=1');
             $helpSqlSearch->set_conditions('status<=2');
         }
     }
     $sql = $helpSqlSearch->createSql();
     $workOrderId = $this->_modelWorkOrder->select($sql);
     $isOk = false;
     if ($workOrderId) {
         $workOrderId = Model::getTtwoArrConvertOneArr($workOrderId, 'Id', 'Id');
         //增加每个工单的删除日志
         $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
         foreach ($workOrderId as $id) {
             $this->_modelOrderLog->addLog(array('Id' => $id), Model_OrderLog::DEL);
         }
         //更改工单删除状态
         if (count($workOrderId) == 1) {
             $workOrderId = array_shift($workOrderId);
             $isOk = $this->_modelWorkOrder->update(array('status' => 4), "Id={$workOrderId}");
         } else {
             $isOk = $this->_modelWorkOrder->update(array('status' => 4), "Id in (" . implode(',', $workOrderId) . ")");
         }
     }
     if ($isOk) {
         //是否删除成功
         $this->_utilWorkOrder = $this->_getGlobalData('Util_WorkOrder', 'object');
         $orderClass = $this->_utilWorkOrder->getOrderManage();
         $orderClass->delOrder($workOrderId);
         $this->_returnAjaxJson(array('status' => 1, 'info' => 'InterfaceWorkOrder_DelAll', 'data' => null));
     } elseif (empty($workOrderId)) {
         $this->_returnAjaxJson(array('status' => 1, 'info' => 'InterfaceWorkOrder_DelAll', 'data' => null));
     } else {
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'unknow error', 'data' => null));
     }
 }
Example #5
0
 private function _saveSource4()
 {
     $orderArr = array();
     $orderArr['game_type'] = intval($_POST['game_id']);
     $orderArr['is_vip'] = intval($_GET['is_vip']);
     $orderArr['user_account'] = $_POST['user_account'] ? $_POST['user_account'] : 0;
     $orderArr['user_nickname'] = trim($_POST['user_nickname']);
     $orderArr['money'] = intval($_POST['money_total']);
     $orderArr['source'] = intval(4);
     //工单来源
     $orderArr['title'] = strip_tags($_POST['title']);
     $orderArr['question_type'] = intval($_POST['question_type']);
     $orderArr['question_num'] = 1;
     $orderArr['create_time'] = CURRENT_TIME;
     $orderArr['game_user_id'] = trim($_POST['user_id']);
     if ($_FILES['image']) {
         $updateInfo = $this->_upload();
         //如果有上传图片就上传文件
     }
     $serverMarking = trim($_POST['server_marking']);
     $gameServerList = $this->_modelGameSerList->findByMarking($_POST['game_id'], $serverMarking, $_POST['server_name']);
     if (!$gameServerList) {
         //未找到服务器
         $this->_utilMsg->showMsg("game server non-existent", 1);
         //			$this->_returnAjaxJson ( array ('status' => 0, 'info' => 'game server non-existent', 'data' => null ) );
     }
     $this->_modelGameOperator = $this->_getGlobalData('Model_GameOperator', 'object');
     $gameOperatorIndex = $this->_modelGameOperator->findByGidOId($_POST['game_id'], $gameServerList['operator_id']);
     //找到此运营商的详细 资料.
     if (!$gameOperatorIndex) {
         //未找到游戏与运营商的索引
         $this->_utilMsg->showMsg("game server or operator non-existent", 1);
         //			$this->_returnAjaxJson ( array ('status' => 0, 'info' => 'game server or operator non-existent', 'data' => null ) );
     }
     //vip等级,如果从游戏中有传$_POST['vip_level']过来,就使用$_POST['vip_level'],否则使用配置值
     $orderArr['vip_level'] = isset($_REQUEST['vip']) ? intval($_REQUEST['vip']) : $this->_modelGameOperator->getVipLevel($gameOperatorIndex['vip_setup']['vip_pay'], $_POST['money_total']);
     $orderArr['vip_level'] = min(6, $orderArr['vip_level']);
     $orderArr['timeout'] = $this->_modelGameOperator->getTimeOut($gameOperatorIndex['vip_setup']['vip_timeout'], $orderArr['vip_level']);
     $orderArr['timeout'] *= 60;
     //换成秒
     $orderArr['is_verify'] = 0;
     $orderArr['operator_id'] = $gameServerList['operator_id'];
     $orderArr['game_server_id'] = $gameServerList['Id'];
     $orderArr['is_read'] = 0;
     if ($gameServerList['room_id']) {
         $orderArr['room_id'] = $gameServerList['room_id'];
     }
     if (!$this->_modelWorkOrder->add($orderArr)) {
         //创建表单失败
         $this->_returnAjaxJson(array('status' => 0, 'info' => 'Failure to create order', 'data' => null));
     }
     $workOrderId = $this->_modelWorkOrder->returnLastInsertId();
     //获取工单id
     #------追加日志------#
     $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
     $this->_modelOrderLog->addLog(array('game_type_id' => $orderArr['game_type'], 'operator_id' => $orderArr['operator_id'], 'server_id' => $orderArr['game_server_id'], 'Id' => $workOrderId), Model_OrderLog::ASK);
     #------追加日志------#
     #------增加新的工单到队列------#
     if ($orderArr['room_id']) {
         $addOrder = array('Id' => $workOrderId, 'vip_level' => $orderArr['vip_level'], 'room_id' => $orderArr['room_id'], 'game_type_id' => $orderArr['game_type'], 'operator_id' => $orderArr['operator_id']);
         $this->_utilWorkOrder = $this->_getGlobalData('Util_WorkOrder', 'object');
         $orderManageClass = $this->_utilWorkOrder->getOrderManage();
         $orderManageClass->addOrder($addOrder);
         $orderManageClass = null;
     }
     #------增加新的工单到队列------#
     $orderDetail = array();
     $orderDetail['form_detail'] = array();
     $orderDetail['user_data'] = array('user_id' => $_POST['user_id'], 'user_account' => $_POST['user_account'], 'user_nickname' => $_POST['user_nickname'], 'money_total' => isset($_POST['money_total']) ? $_POST['money_total'] : -1, 'money_month' => isset($_POST['money_month']) ? $_POST['money_month'] : -1, 'register_date' => !$_POST['register_date'] || $_POST['register_date'] == 'null' ? null : $_POST['register_date'], 'ip' => $_POST['ip']);
     //钻类型
     if (isset($_POST['flatType'])) {
         $orderDetail['ext']['flatType']['desc'] = '钻类型';
         switch ($_POST['flatType']) {
             case '1':
                 $orderDetail['ext']['flatType']['value'] = '<font color="#FF9900">黄钻</font>';
                 break;
             case '10':
                 $orderDetail['ext']['flatType']['value'] = '<font color="#0000FF">蓝钻</font>';
                 break;
             default:
                 $orderDetail['ext']['flatType']['value'] = '<font color="#999999">无</font>';
         }
     }
     //钻等级
     if (isset($_POST['diamondLevel'])) {
         $orderDetail['ext']['diamondLevel'] = array('desc' => '钻等级', 'value' => $_POST['diamondLevel']);
     }
     //是否年费黄钻
     if (isset($_POST['yearDiamond'])) {
         $orderDetail['ext']['yearDiamond'] = array('desc' => '是否年费', 'value' => $_POST['yearDiamond'] ? '是' : '否');
     }
     //游戏VIP等级
     if (isset($_POST['vip'])) {
         $orderDetail['ext']['vip'] = array('desc' => '游戏VIP等级', 'value' => $_POST['vip']);
     }
     $orderDetail = serialize($orderDetail);
     $this->_modelWorkOrderDetail = $this->_getGlobalData('Model_WorkOrderDetail', 'object');
     $this->_modelWorkOrderDetail->add(array('work_order_id' => $workOrderId, 'content' => $orderDetail));
     #-----插入对话表------#
     $retArr = array('order_id' => $workOrderId);
     $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object');
     $content = strip_tags($_POST['content']);
     $content = str_replace(array('\\r\\n', '\\r'), chr(10), $content);
     $orderDialog = array('user_id' => 0, 'game_type_id' => $_POST['game_id'], 'operator_id' => $orderArr['operator_id'], 'work_order_id' => $workOrderId, 'qa' => '0', 'content' => $content, 'create_time' => CURRENT_TIME);
     if ($updateInfo && is_array($updateInfo)) {
         $_imgArr = array();
         $i = '';
         foreach ($updateInfo as $img) {
             $retArr["image_path{$i}"] = $img['web_path'];
             $i++;
             $_imgArr[] = str_replace(__ROOT__, '', $img["web_path"]);
         }
         $orderDialog['image'] = json_encode($_imgArr);
     }
     $this->_modelWorkOrderQa->add($orderDialog);
     //$orderArr["room_id"]
     if ($orderArr['room_id'] && $gameServerList['server_url'] && $_POST['user_id']) {
         $this->_autoreply($orderArr, $gameServerList['server_url']);
     }
     #-----插入对话表------#
     eaccelerator_rm('question_' . $orderArr['user_account']);
     eaccelerator_put('question_' . $orderArr['user_account'], md5($orderArr['user_account'] . $orderArr['title']), 60);
     $this->_utilMsg->showMsg("提交成功", 1);
 }