/** * 工单分配 */ 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); }
/** * 删除工单 * @param array $ids */ public function delOrder($ids) { $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object'); $this->_modelAutoOrderQueue->delById($ids); }
/** * 回复用户信息 */ 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); }