Ejemplo n.º 1
0
 /**
  * 项目质检管理页面
  */
 public function actionIndex()
 {
     #------初始化------#
     $this->_modelWorkOrder = $this->_getGlobalData('Model_WorkOrder', 'object');
     $this->_utilRbac = $this->_getGlobalData('Util_Rbac', 'object');
     $this->_modelUser = $this->_getGlobalData('Model_User', 'object');
     $users = $this->_modelUser->findSetOrgByUser();
     $this->_view->assign('users', json_encode($users));
     $orgs = $this->_getGlobalData('org');
     $orgs = Model::getTtwoArrConvertOneArr($orgs, 'Id', 'name');
     $this->_loadCore('Help_SqlSearch');
     $helpSqlSearch = new Help_SqlSearch();
     $this->_loadCore('Help_Page');
     $userClass = $this->_utilRbac->getUserClass();
     //获取用户class
     $operatorList = $this->_getGlobalData('operator_list');
     $operatorList = Model::getTtwoArrConvertOneArr($operatorList, 'Id', 'operator_name');
     $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object');
     $onlineUsers = $this->_utilOnline->getOnlineUser('user_id');
     //在线用户,一维数组,value值为user_id
     #------初始化------#
     #------跟据搜索条件获取工单给用户------#
     if ($this->_isPost()) {
         //增加工单
         if (!abs(intval($_POST['num']))) {
             $this->_utilMsg->showMsg('请输入获取工单的数量', -1);
         }
         if (!count($_POST['users'])) {
             $this->_utilMsg->showMsg('请选择要质检的用户', -1);
         }
         $selectedUsers = $this->_modelUser->findByUsersToCache($_POST['users']);
         $selectedUsers = Model::getTtwoArrConvertOneArr($selectedUsers, 'Id', 'full_name');
         $this->_view->assign('selectedUsersOption', $_POST['users']);
         $this->_view->assign('selectedUsers', $selectedUsers);
         $users = implode(',', $_POST['users']);
         $startDate = strtotime($_POST['start_date']);
         $endDate = strtotime($_POST['end_date']);
         $helpSqlSearch->set_field('Id');
         $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
         if ($_POST['start_date'] && $_POST['end_date']) {
             $helpSqlSearch->set_conditions("create_time between {$startDate} and {$endDate}");
             $this->_view->assign('selectedTime', array('start' => $_POST['start_date'], 'end' => $_POST['end_date']));
         }
         if ($_POST['users']) {
             $helpSqlSearch->set_conditions("owner_user_id in ({$users})");
             $this->_view->assign('selectedOrg', $_POST['org']);
         }
         if ($_POST['num']) {
             $helpSqlSearch->setPageLimit(1, abs(intval($_POST['num'])));
             $this->_view->assign('selectedNum', $_POST['num']);
         }
         $helpSqlSearch->set_conditions('quality_id=0');
         //未被质检过
         $helpSqlSearch->set_conditions('owner_user_id is not null');
         //已经被回复或处理过
         $helpSqlSearch->set_conditions('(status=3 or status=4)');
         //已经处理完成的
         $helpSqlSearch->set_conditions('answer_num!=0');
         //必须要有一次回复
         $helpSqlSearch->set_orderBy("rand()");
         $sql = $helpSqlSearch->createSql();
         $dataList = $this->_modelWorkOrder->select($sql);
         if ($dataList) {
             $ids = array();
             foreach ($dataList as $value) {
                 array_push($ids, $value['Id']);
             }
             $this->_modelWorkOrder->addOrderToQualityUser($ids, $userClass['_id']);
             //增加工单到当前用户
         }
         if (is_array($ids)) {
             $addNum = count($ids);
             $addIds = implode(',', $ids);
         } else {
             $addNum = 0;
             $addIds = '';
         }
         $this->_view->assign('addOrderDeatil', array('num' => $addNum, 'addIds' => $addIds));
     }
     #------跟据搜索条件获取工单给用户------#
     #------搜索用户所获取的质检工单------#
     $helpSqlSearch->clearAll();
     $helpSqlSearch->set_tableName($this->_modelWorkOrder->tName());
     $helpSqlSearch->set_field('*');
     $helpSqlSearch->set_conditions("quality_id=-{$userClass['_id']}");
     $helpSqlSearch->set_orderBy('create_time desc');
     $helpSqlSearch->setPageLimit($_GET['page'], PAGE_SIZE);
     #------分页box------#
     $conditions = $helpSqlSearch->get_conditions();
     $helpPage = new Help_Page(array('total' => $this->_modelWorkOrder->findCount($conditions), 'perpage' => PAGE_SIZE));
     #------分页box------#
     $sql = $helpSqlSearch->createSql();
     $dataList = $this->_modelWorkOrder->select($sql);
     #------搜索用户所获取的质检工单------#
     #------载入缓存------#
     $this->_modelSysconfig = $this->_getGlobalData('Model_Sysconfig', 'object');
     $this->_modelQuestionType = $this->_getGlobalData('Model_QuestionType', 'object');
     $gameTypeArr = Model::getTtwoArrConvertOneArr($this->_modelSysconfig->getValueToCache('game_type'), 'Id', 'name');
     $workOrderSourceArr = $this->_modelSysconfig->getValueToCache('workorder_source');
     $workOrderStatusArr = $this->_modelSysconfig->getValueToCache('workorder_status');
     $userList = Model::getTtwoArrConvertOneArr($this->_getGlobalData('user'), 'Id', 'nick_name');
     $serverList = $this->_getGlobalData('gameser_list');
     $serverList = Model::getTtwoArrConvertOneArr($serverList, 'Id', 'server_name');
     #------载入缓存------#
     if ($dataList) {
         Tools::import('Util_FontColor');
         $users = $this->_getGlobalData('user');
         $users = Model::getTtwoArrConvertOneArr($users, 'Id', 'full_name');
         foreach ($dataList as &$list) {
             $list['url_dialog'] = Tools::url(CONTROL, 'OrderDialog', array('Id' => $list['Id']));
             $list['word_game_type'] = Util_FontColor::getGameTypeColor($list['game_type'], $gameTypeArr[$list['game_type']]);
             $list['word_source'] = Util_FontColor::getWorkOrderSource($list['source'], $workOrderSourceArr[$list['source']]);
             $list['word_status'] = Util_FontColor::getWorkOrderStatus($list['status'], $workOrderStatusArr[$list['status']]);
             $list['word_operator_id'] = $operatorList[$list['operator_id']];
             $questionArr = $this->_modelQuestionType->findById($list['question_type']);
             $list['word_question_type'] = $questionArr['title'] ? $questionArr['title'] : '游戏提问';
             $list['url_detail'] = Tools::url(CONTROL, 'Dialog', array('Id' => $list['Id'], 'game_type_id' => $list['game_type'], 'operator_id' => $list['operator_id']));
             $list['word_owner_user_id'] = $users[$list['owner_user_id']];
             $list['word_game_server_id'] = $serverList[$list['game_server_id']];
             $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']);
             if ($list['word_owner_user_id']) {
                 $list['word_owner_user_id'] .= in_array($list['owner_user_id'], $onlineUsers) ? Util_FontColor::getOnline(1) : Util_FontColor::getOnline(0);
             }
         }
         $this->_view->assign('dataList', $dataList);
     }
     $this->_view->assign('pageBox', $helpPage->show());
     $this->_view->assign('orgs', $orgs);
     $this->_view->assign('js', $this->_view->get_curJs());
     $this->_utilMsg->createNavBar();
     $this->_view->display();
 }