Example #1
0
 public function sendOrder()
 {
     $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object');
     $this->_workOrder = $this->_modelAutoOrderQueue->findAll();
     $this->_utilRooms = $this->_getGlobalData('Util_Rooms', 'object');
     $sendOrder = array();
     $updateUser = array();
     foreach ($this->_workOrder as $workOrder) {
         $roomClass = $this->_utilRooms->getRoom($workOrder['room_id']);
         $userClasses = $roomClass->findOnlineUser();
         //查找房间内所有在线的用户
         if (!$userClasses) {
             continue;
         }
         //如果没有用户对象,就跳过
         $userClass = $this->_findMinUser($userClasses, $workOrder);
         //找到工单数最少的那个用户
         if ($userClass === false) {
             continue;
         }
         //如果没有找到对象就跳过
         array_push($sendOrder, $workOrder['Id']);
         //压入数组.表示此ID的工单已经发送出去了.
         $this->updateWorkOrderOwner($userClass, $workOrder);
     }
     if (count($sendOrder)) {
         $this->_clearSendOrder($sendOrder);
     }
     //如果有工单发出去,就删除这个工单
 }
Example #2
0
 /**
  * 对象管理页面
  */
 private function _orderIndex()
 {
     $this->_utilWorkOrder = $this->_getGlobalData('Util_WorkOrder', 'object');
     $this->_modelAutoOrderQueue = $this->_getGlobalData('Model_AutoOrderQueue', 'object');
     $this->_modelRooms = $this->_getGlobalData('Model_Rooms', 'object');
     $this->_utilOnline = $this->_getGlobalData('Util_Online', 'object');
     $onlineUsers = $this->_utilOnline->getOnlineUser();
     $users = $this->_getGlobalData('user_index');
     foreach ($onlineUsers as &$user) {
         $user = $users[$user];
     }
     $objectOrderManage = $this->_utilWorkOrder->getOrderManage();
     $dataList = $this->_modelAutoOrderQueue->findAll();
     if ($dataList) {
         $this->_utilRooms = $this->_getGlobalData('Util_Rooms', 'object');
         $roomList = $this->_modelRooms->findAll();
         $roomList = Model::getTtwoArrConvertOneArr($roomList, 'Id', 'name');
         $gameTypes = $this->_getGlobalData('game_type');
         $operators = $this->_getGlobalData('operator_list');
         foreach ($dataList as &$list) {
             $roomClass = $this->_utilRooms->getRoom($list['room_id']);
             $roomUsers = $roomClass->findAllUser();
             if (count($roomUsers)) {
                 $list['add_users'] = $roomUsers;
             }
             $list['game_type_id'] = $gameTypes[$list['game_type_id']]['name'];
             $list['operator_id'] = $operators[$list['operator_id']]['operator_name'];
             $list['room_id'] = $roomList[$list['room_id']];
             $list['create_time'] = date('Y-m-d H:i:s', $list['create_time']);
             $list['order_detail'] = Tools::url('WorkOrder', 'Detail', array('Id' => $list['work_order_id']));
         }
         $this->_view->assign('dataList', $dataList);
     }
     $this->_view->assign('onlineUsers', $onlineUsers);
     $this->_view->assign('orderNum', $objectOrderManage['_orderNum']);
     $this->_view->assign('dataList', $dataList);
     $this->_view->set_tpl(array('body' => 'Master/OrderIndex.html'));
     $this->_view->display();
 }