Example #1
0
 /**
  * 工单分配
  */
 private function _orderAssign()
 {
     $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object');
     $this->_modelAutoOrderQueue->delById($_GET['Id']);
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $this->_utilWorkOrder = $this->_getGlobalData('Util_WorkOrder', 'object');
     $objectOrderManage = $this->_utilWorkOrder->getOrderManage();
     $userClass = $this->_utilRbac->getUserClassById($_GET['userId']);
     $objectOrderManage->updateWorkOrderOwner($userClass, array('work_order_id' => $_GET['workOrderId']));
     $this->_utilMsg->showMsg(false);
 }
Example #2
0
 /**
  * 删除工单
  * @param array $ids
  */
 public function delOrder($ids)
 {
     $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object');
     $this->_modelAutoOrderQueue->delById($ids);
 }
Example #3
0
 /**
  * 回复用户信息
  */
 public function actionReply()
 {
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $userClass = $this->_utilRbac->getUserClass();
     $timeout = intval(strtotime(substr($_POST['create_time'], 0, 19))) + intval($_POST['timeout']);
     // 		var_dump( strtotime(substr($_POST ['create_time'] , 0,19)) );
     // 		var_dump( $_POST ['timeout'] );
     // 		echo date('Y-m-d H:i:s',$timeout);
     $gameServerList = $this->_getGlobalData('server/server_list_' . $_POST['game_type_id']);
     $TimeDifference = intval($gameServerList[$_POST['game_server_id']]['time_zone']) * 3600;
     //时差
     // 		echo date('Y-m-d H:i:s', CURRENT_TIME+$TimeDifference);exit;
     if (CURRENT_TIME + $TimeDifference > $timeout && $_POST['cur_status'] == 1) {
         //如果当前时间大于超时时间,并且当前工单为未处理状态,就说明回复时间已经过了,那么就超时
         $isTimeout = '1';
     } else {
         $isTimeout = '0';
     }
     $_POST['game_type_id'] = intval($_POST['game_type_id']);
     $replyContent = $_POST['reply'];
     $not_sendmsg = 0;
     if ($_POST['lock']) {
         $replyContent = Tools::getLang('REPLY_NOT_SEND_SERVER', __CLASS__) . $replyContent;
         //如果为不发送消息将自动在前面加上
         $not_sendmsg = 1;
     }
     $addQaArr = array('is_timeout' => $isTimeout, 'work_order_id' => $_POST['Id'], 'content' => $replyContent, 'qa' => 1, 'user_id' => $userClass['_id'], 'create_time' => CURRENT_TIME, 'game_type_id' => $_POST['game_type_id'], 'operator_id' => $_POST['operator_id'], 'service_id' => $userClass['_serviceId'] ? $userClass['_serviceId'] : '001', 'not_sendmsg' => $not_sendmsg);
     if ($isTimeout) {
         $addQaArr['last_reply_time'] = $timeout;
     }
     //如果超时的话,将记录最后超时的时间
     if (($_POST['source'] == 2 || $_POST['source'] == 3) && !$_POST['lock']) {
         //如果工单来源为2并且lock为不锁定,那么就要发送webservice
         $gameServerUrl = $gameServerList[$_POST['game_server_id']]['server_url'];
         //获取url地址
         if (!$gameServerUrl) {
             $this->_utilMsg->showMsg(Tools::getLang('REPLY_SEND_ERROR', __CLASS__), -2);
         }
         //			$isOk = $this->_sendMsg ( array (
         //									'work_order_id' => $_POST ['Id'],
         //									'service_id' => $userClass ['_serviceId'] ? $userClass ['_serviceId'] : '001',
         //									'content' => $replyContent,
         //									'send_url' => $gameServerUrl,
         //									'status'=>$_POST ['status'],
         //									'game_type_id'=>$_POST['game_type_id'] ) );
         $isOk = 'error';
         $gameObject = $this->_getGlobalData($_POST['game_type_id'], 'game');
         $file_img = '';
         if ($gameObject->_sendImage) {
             if (!empty($_FILES["file_img"]["name"])) {
                 $file_img = $gameObject->ImgUpload();
                 if ($file_img == false) {
                     $errorInfo = Tools::getLang('SEND_MSG', 'Control_WorkOrder') . ':请检查好图片的大小和格式';
                     $this->_utilMsg->showMsg($errorInfo, -2, 1, false);
                 }
                 $webPath = pathinfo($file_img);
                 $webPath = '/Upload/Service/' . date('Ymd', CURRENT_TIME) . '/' . $webPath["basename"];
                 $addQaArr['image'] = json_encode(array($webPath));
             }
         }
         if ($gameObject && is_callable(array($gameObject, 'sendOrderReplay'))) {
             $sendData = array('work_order_id' => $_POST['Id'], 'service_id' => $userClass['_serviceId'] ? $userClass['_serviceId'] : '001', 'content' => $replyContent, 'send_url' => $gameServerUrl, 'status' => $_POST['status'], 'game_type_id' => $_POST['game_type_id'], 'file_img' => $file_img, 'game_user_id' => $_POST["game_user_id"], 'server_id' => $_POST['game_server_id']);
             $isOk = $gameObject->sendOrderReplay($sendData);
         }
         if ($isOk !== true) {
             $this->_utilMsg->showMsg($isOk, -2, 1, false);
         }
     }
     $this->_modelWorkOrderQa->add($addQaArr);
     #------改变房间工单,用户回复数------#
     $userClass->setUpdateInfo(1);
     $userClass->addToReplyNum(1);
     /*if ($_POST['owner_user_id']==$userClass['_id'] && $_POST ['cur_status']==1)$userClass->setIncompleteOrderNum(-1);//用户完成一个工单
     
     		if ($_POST ['cur_status']!=3 && $_POST['status']==3){//如果为未回复将房间未完成工单数减1
     		$roomClass=$this->_utilRooms->getRoom($_POST['room_id']);
     		if (is_object($roomClass)){
     		$roomClass->completeOrder(-1);	//完成一个工单数
     		$roomClass->setUpdateInfo(1);
     		}
     
     		//vip等级的工单数减1,
     		$this->_utilWorkOrder = $this->_getGlobalData ( 'Util_WorkOrder', 'object' );
     		$objOrderManage=$this->_utilWorkOrder->getOrderManage();
     		$objOrderManage->setOrderNum($_POST['vip_level']);
     		$objOrderManage->setUpdateInfo(1);
     		}*/
     #------改变房间工单,用户回复数------#
     $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object');
     $this->_modelAutoOrderQueue->delByWorkOrderId($_POST['Id']);
     //删除队列
     #------添加日志------#
     $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object');
     $this->_modelOrderLog->addLog(array('Id' => $_POST['Id']), $_POST['status']);
     #------添加日志------#
     $workOrderUpdateArr = array('status' => $_POST['status'], 'answer_num' => 'answer_num+1', 'owner_user_id' => $userClass['_id'], 'is_read' => 0, 'remark' => $_POST['remark']);
     //更改状态,提问数+1,修改备注
     if ($_POST['is_verify']) {
         $workOrderUpdateArr['is_verify'] = 1;
     }
     //如果为需查证,将改为需查证.
     $this->_modelWorkOrder->update($workOrderUpdateArr, "Id={$_POST['Id']}");
     $this->_utilMsg->showMsg(false);
 }