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); } //如果有工单发出去,就删除这个工单 }
/** * 对象管理页面 */ 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(); }