/** * 选择合适的游戏类型 * * @param Zend_Db_Select $select * @param boolean $group * @return Zend_Db_Select */ protected function _selectGameTypes(Zend_Db_Select $select, $group = false) { $tableName = $this->_tableDAO->info('name'); $column = (strstr($tableName, '_', true) ?: $tableName) . '_gametype'; if (is_array(self::$_allowedGameTypes) && is_array($this->_gameTypes)) { $gameTypes = array_intersect($this->_gameTypes, self::$_allowedGameTypes); } else { if (is_array(self::$_allowedGameTypes)) { $gameTypes = self::$_allowedGameTypes; } else { if (is_array($this->_gameTypes)) { $gameTypes = $this->_gameTypes; } } } if (isset($gameTypes) && !empty($gameTypes)) { count($gameTypes) === 1 ? $select->where("{$column} = ?", $gameTypes) : $select->where("{$column} IN (?)", $gameTypes); } if (true === $group) { if (!in_array(ZtChart_Model_Assemble::GAMETYPE, $this->_merge)) { array_unshift($this->_merge, ZtChart_Model_Assemble::GAMETYPE); } $select->columns("{$column} AS " . ZtChart_Model_Assemble::GAMETYPE)->group(ZtChart_Model_Assemble::GAMETYPE); } return $select; }