/** * 质检动作 */ public function actionQuality() { $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object'); if ($this->_isPost()) { $this->_modelQuality = $this->_getGlobalData('Model_Quality', 'object'); $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $userClass = $this->_utilRbac->getUserClass(); $addArr = array('reply_user_id' => $_POST['user_id'], 'game_type_id' => $_POST['game_type_id'], 'operator_id' => $_POST['operator_id'], 'work_order_id' => $_POST['work_order_id'], 'quality_user_id' => $userClass['_id'], 'qa_id' => $_POST['qa_id'], 'option_id' => $_POST['option_id'], 'quality_content' => $_POST['quality_content'], 'quality_time' => CURRENT_TIME, 'scores' => $_POST['scores']); if ($_POST['option_id'] > 0 && $_POST['scores'] >= 0) { $addArr['status'] = 5; } //如果质检都是好的话并且所扣分数是大于零,将会变成同意质检,不需要申诉 if ($this->_modelQuality->add($addArr)) { $this->_modelWorkOrderQa->update(array('is_quality' => $userClass['_id']), "Id={$_POST['qa_id']}"); //更新回复,表示已质检 #------添加日志------# $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object'); $this->_modelOrderLog->addLog(array('Id' => $_POST['work_order_id']), Model_OrderLog::QUALITY); #------添加日志------# $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $this->_modelWorkOrder->update(array('quality_id' => $userClass['_id']), "Id={$_POST['work_order_id']}"); $this->_utilMsg->showMsg(false); } else { $this->_utilMsg->showMsg(Tools::getLang('QUALITY_ERROR', __CLASS__), -2); } } }
/** * 更新拥有者 */ public function updateWorkOrderOwner(Object_UserInfo $userClass, $workOrder) { $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $this->_modelWorkOrder->update(array('owner_user_id' => $userClass['_id']), "Id={$workOrder['work_order_id']}"); $userClass->addToOrderNum(1); //增加自身的工单数量 $userClass->setUpdateInfo(1); }
/** * 更改状态 */ public function actionChangeStatus() { if ($this->_isAjax()) { $id = Tools::coerceInt($_GET['Id']); $status = Tools::coerceInt($_GET['status']); if ($this->_modelWorkOrder->update(array('status' => $status), "Id={$id}")) { $this->_returnAjaxJson(array('status' => 1, 'msg' => '更改状态成功')); } else { $this->_returnAjaxJson(array('status' => 0, 'msg' => '更改状态失败')); } } }
/** * 更改状态 */ public function actionChangeStatus() { if ($this->_isAjax()) { $id = Tools::coerceInt($_GET['Id']); $status = Tools::coerceInt($_GET['status']); if ($this->_modelWorkOrder->update(array('status' => $status), "Id={$id}")) { #------添加日志------# $this->_modelOrderLog = $this->_getGlobalData('Model_OrderLog', 'object'); $this->_modelOrderLog->addLog(array('Id' => $id), Model_OrderLog::CHANGE_STATUS); #------添加日志------# $this->_returnAjaxJson(array('status' => 1, 'msg' => Tools::getLang('CHANGESTATUS_SUCCESS', __CLASS__))); } else { $this->_returnAjaxJson(array('status' => 0, 'msg' => Tools::getLang('CHANGESTATUS_ERROR', __CLASS__))); } } }
/** * 删除工单 */ public function actionDel() { $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $workOrderId = $_REQUEST['id']; if (is_array($workOrderId)) { //判断单个删除或是多个删除 $workOrderId = implode(',', $workOrderId); $isOk = $this->_modelWorkOrder->update(array('status' => 4), "Id in ({$workOrderId})"); } else { $workOrderId = Tools::coerceInt($workOrderId); $isOk = $this->_modelWorkOrder->update(array('status' => 4), "Id={$workOrderId}"); } if ($isOk) { //是否删除成功 $this->_returnAjaxJson(array('status' => 1, 'info' => null, 'data' => null)); } else { $this->_returnAjaxJson(array('status' => 0, 'info' => null, 'data' => null)); } }
public function actionWorkOrderDetail() { $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) { $workOrder_condition = key($userInfo) . "='" . current($userInfo) . "'"; } else { $this->_returnAjaxJson(array('status' => 0, 'info' => 'player empty', 'data' => null)); } $workOrderId = intval($_REQUEST['work_order_id']); if (!$workOrderId) { $this->_returnAjaxJson(array('status' => 0, 'info' => 'Work Order Id Empty', 'data' => null)); } $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $sql_CheckWorkOrder = "select Id,question_type as type,title,create_time as update_time,evaluation_status as ev,evaluation_desc as ev_desc,status,is_read from {$this->_modelWorkOrder->tName()} where Id={$workOrderId} and {$workOrder_condition}"; $workOrderData = $this->_modelWorkOrder->select($sql_CheckWorkOrder, 1); if (!$workOrderData) { $this->_returnAjaxJson(array('status' => 0, 'info' => 'the player has not this order', 'data' => null)); } if ($workOrderData['is_read'] == 0) { $this->_modelWorkOrder->update(array('is_read' => 1), "Id={$workOrderId}"); //更改已读状态 } $this->_loadCore('Help_SqlSearch'); //载入sql工具 $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object'); $helpSqlSearch = new Help_SqlSearch(); $helpSqlSearch->set_field('Id as id,work_order_id,qa,service_id,content,create_time,image'); $helpSqlSearch->set_tableName($this->_modelWorkOrderQa->tName()); $helpSqlSearch->set_conditions('work_order_id=' . $workOrderId); $helpSqlSearch->set_conditions('not_sendmsg=0'); $helpSqlSearch->set_orderBy('create_time'); $sql = $helpSqlSearch->createSql(); $dataList = $this->_modelWorkOrderQa->select($sql); $this->_returnAjaxJson(array('status' => 1, 'info' => CONTROL . '_' . ACTION, 'data' => $dataList, 'ext' => $workOrderData)); }
/** * 显示某一个工单的对话 */ public function actionDialog() { $this->_modelWorkOrderQa = $this->_getGlobalData('Model_WorkOrderQa', 'object'); if ($this->_isPost()) { $this->_modelQuality = $this->_getGlobalData('Model_Quality', 'object'); $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $userClass = $this->_utilRbac->getUserClass(); $addArr = array('game_type_id' => $_POST['game_type_id'], 'operator_id' => $_POST['operator_id'], 'work_order_id' => $_POST['work_order_id'], 'quality_user_id' => $userClass['_id'], 'qa_id' => $_POST['qa_id'], 'option_id' => $_POST['option_id'], 'quality_content' => $_POST['quality_content'], 'quality_time' => CURRENT_TIME, 'scores' => $_POST['scores']); if ($_POST['option_id'] > 0 && $_POST['scores'] >= 0) { $addArr['status'] = 5; } //如果质检都是好的话并且所扣分数是大于零,将会变成同意质检,不需要申诉 if ($this->_modelQuality->add($addArr)) { $this->_modelWorkOrderQa->update(array('is_quality' => $userClass['_id']), "Id={$_POST['qa_id']}"); //更新回复,表示已质检 $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $this->_modelWorkOrder->update(array('quality_id' => $userClass['_id']), "Id={$_POST['work_order_id']}"); $this->_utilMsg->showMsg(false); } else { $this->_utilMsg->showMsg('质检失败', -2); } } else { $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $data = $this->_modelWorkOrder->findByIdToDetail($_GET['Id']); #------载入缓存------# $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_getGlobalData('game_type'), 'Id', 'name'); //游戏类型 $workOrderSourceArr = $this->_getGlobalData('workorder_source'); //工单来源 $workOrderStatusArr = $this->_getGlobalData('workorder_status'); //工单状态 $gameServerList = $this->_getGlobalData('gameser_list'); $gameServerList = Model::getTtwoArrConvertOneArr($gameServerList, 'Id', 'server_name'); $operatorList = $this->_getGlobalData('operator_list'); $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name'); $user = $this->_getGlobalData('user'); $departmentList = $this->_getGlobalData('department'); $departmentList = Model::getTtwoArrConvertOneArr($departmentList, 'Id', 'name'); #------载入缓存------# #------跟椐ID转换文字显示------# $data['word_game_type'] = $gameTypeArr[$data['game_type']]; $data['word_source'] = $workOrderSourceArr[$data['source']]; $data['word_game_server_id'] = $gameServerList[$data['game_server_id']]; $data['word_operator_id'] = $operatorList[$data['operator_id']]; $data['create_time'] = date('Y-m-d H:i', $data['create_time']); $data['word_quality_id'] = $data['quality_id'] < 0 ? $user[$data['quality_id']]['nick_name'] . "[{$departmentList[$user[$data['quality_id']]['department_id']]}]" : '未质检'; $data['word_quality_id'] = $user[$data['quality_id']]['full_name']; #------跟椐ID转换文字显示------# $workOrderDetailArr = unserialize($data['content']); //获取工单的详细信息 $userData = $workOrderDetailArr['user_data']; //获取提交工单用户的详细信息 $userData['register_date'] = $userData['register_date'] ? date('Y-m-d H:i:s', $userData['register_date']) : ''; if ($data['evaluation_status'] != 0) { //如果已经评价 $playerEvaluation = $this->_getGlobalData('player_evaluation'); $evaluation = $playerEvaluation[$data['evaluation_status']]; $evaluation = $evaluation['title']; if ($data['evaluation_status'] == 3) { $evaluation .= ': ' . $workOrderDetailArr['other']['ev']; } $this->_view->assign('evaluation', $evaluation); } $users = $this->_getGlobalData('user'); $users = Model::getTtwoArrConvertOneArr($users, 'user_name', 'full_name'); $dataList = $this->_modelWorkOrderQa->findByWorkOrderId($_GET['Id']); foreach ($dataList as &$value) { $value['create_time'] = date('Y-m-d H:i:s', $value['create_time']); $value['word_reply_name'] = $users[$value['reply_name']]; } $this->_view->assign('userData', $userData); $this->_view->assign('data', $data); //表单详细信息 $qualityList = $this->_getGlobalData('quality_options'); $this->_view->assign('workOrderId', $_GET['Id']); $this->_view->assign('qualityOptions', $qualityList); $this->_view->assign('dataList', $dataList); $this->_view->assign('gameTypeId', $_GET['game_type_id']); $this->_view->assign('operatorId', $_GET['operator_id']); $this->_view->assign('js', $this->_view->get_curJs()); $this->_utilMsg->createNavBar(); $this->_view->display(); } }
/** * 添加查证处理 */ public function actionOrderVerify() { $this->_modelVerify = $this->_getGlobalData('Model_Verify', 'object'); if ($this->_isPost()) { if (!$_POST['game_type_id'] || !$_POST['operator_id'] || !$_POST['game_server_id']) { $this->_utilMsg->showMsg(Tools::getLang('SELECT_COMPLETE_MSG', __CLASS__), -1); } else { $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $userClass = $this->_utilRbac->getUserClass(); $addArr = array('user_id' => $userClass['_id'], 'department_id' => $_POST['department_id'], 'create_time' => CURRENT_TIME, 'game_type_id' => $_POST['game_type_id'], 'operator_id' => $_POST['operator_id'], 'game_server_id' => $_POST['game_server_id'], 'status' => $_POST['status'], 'type' => $_POST['type'], 'level' => $_POST['level'], 'title' => $_POST['title'], 'content' => $_POST['content'], 'game_user_id' => trim($_POST['game_user_id']), 'game_user_account' => $_POST['game_user_account'], 'game_user_nickname' => $_POST['game_user_nickname'], 'source' => $_POST['source']); if ($_POST['source_detail']) { $addArr['source_detail'] = $_POST['source_detail']; } if ($_POST['work_order_id']) { $addArr['work_order_id'] = $_POST['work_order_id']; } $addArr['log'] = array(); array_push($addArr['log'], $this->_addLog(array('action' => 'add', 'status' => $_POST['status']))); $addArr['log'] = serialize($addArr['log']); if ($this->_modelVerify->add($addArr)) { if ($_POST['work_order_id']) { $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object'); $this->_modelWorkOrder->update(array('is_verify' => 1), "Id={$_POST['work_order_id']}"); $this->_utilMsg->showMsg(false); } else { $this->_utilMsg->showMsg(false); } } else { $this->_utilMsg->showMsg(Tools::getLang('ADD_BUGLIST_ERROR', __CLASS__), -2); } } } else { $verifyStatus = $this->_getGlobalData('verify_status'); $verifyType = $this->_getGlobalData('verify_type'); $verifyLevel = $this->_getGlobalData('verify_level'); $verifySource = $this->_getGlobalData('verify_source'); $gameType = $this->_getGlobalData('game_type'); //$gameType = Model::getTtwoArrConvertOneArr ( $gameType, 'Id', 'name' ); $operatorList = $this->_getGlobalData('operator_list'); //$operatorList = Model::getTtwoArrConvertOneArr ( $operatorList, 'Id', 'operator_name' ); $gameServerList = $this->_getGlobalData('gameser_list'); $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object'); $userClass = $this->_utilRbac->getUserClass(); $myGameType = array(); $myGameOpt = array(); $myOpt = array(); if ($userClass['_operatorIds'] && is_array($userClass['_operatorIds'])) { foreach ($userClass['_operatorIds'] as $sub) { $myGameOpt[$sub['game_type_id']][$sub['operator_id']] = $operatorList[$sub['operator_id']]['operator_name']; $myOpt[$sub['operator_id']] = $operatorList[$sub['operator_id']]['operator_name']; } foreach ($myGameOpt as $gameId => $sub) { $myGameType[$gameId] = $gameType[$gameId]['name']; } } $operatorList = $myOpt; $gameType = $myGameType; foreach ($gameServerList as &$list) { unset($list['room_id'], $list['marking'], $list['time_zone'], $list['server_url'], $list['full_name']); } $department = $this->_modelVerify->getDep(); if (isset($_GET['work_order_id'])) { $this->_view->assign('workOrderId', $_GET['work_order_id']); $dataList = $this->_modelVerify->findByUserAccountWorkId($_GET['user_account'], $_GET['work_order_id']); if ($dataList) { foreach ($dataList as &$value) { $verifyTypeToGameType = $this->_getVerifyTypeByGameType($value['game_type_id']); $value['word_game_type_id'] = $gameType[$value['game_type_id']]; $value['word_operator_id'] = $operatorList[$value['operator_id']]; $value['word_game_server_id'] = $gameServerList[$value['game_server_id']]['server_name']; $value['word_status'] = $verifyStatus[$value['status']]; $value['word_type'] = $verifyTypeToGameType[$value['type']]; $value['word_level'] = $verifyLevel[$value['level']]; $value['create_time'] = date('Y-m-d H:i:s', $value['create_time']); $value['word_department_id'] = $department[$value['department_id']]; $value['url_detail'] = Tools::url(CONTROL, 'Detail', array('Id' => $value['Id'], 'work_order_id' => $_GET['work_order_id'])); if ($value['log']) { $value['log'] = unserialize($value['log']); } } $this->_view->assign('dataList', $dataList); } } #------selected------# $this->_view->assign('selectedGameTypeId', $_GET['game_type_id']); $this->_view->assign('selectedOperatorId', $_GET['operator_id']); $this->_view->assign('selectedServerId', $_GET['game_server_id']); $this->_view->assign('gameUserId', $_GET['game_user_id']); $this->_view->assign('userAccount', $_GET['user_account']); $this->_view->assign('userNickname', $_GET['user_nickname']); #------selected------# $this->_view->assign('verifySource', $verifySource); $this->_view->assign('gameServerList', json_encode($gameServerList)); $this->_view->assign('department', $department); $this->_view->assign('verifyStatus', $verifyStatus); $this->_view->assign('verifyType', json_encode($verifyType)); $this->_view->assign('verifyLevel', $verifyLevel); $this->_view->assign('gameType', $gameType); $this->_view->assign('operatorList', $operatorList); $this->_view->assign('js', $this->_view->get_curJs()); if (!$_REQUEST['work_order_id']) { $this->_utilMsg->createNavBar(); } $this->_view->display(); } }