Class ServerUtils

java.lang.Object
ru.bitel.bgbilling.server.util.ServerUtils

public class ServerUtils extends Object
Серверный утилс. Работа с соединениями с БД. Также содержит методы импортируемые в xslt-шаблонах.
  • Constructor Details

    • ServerUtils

      public ServerUtils()
  • Method Details

    • tableExists

      public static boolean tableExists(Connection con, String table)
      Проверка на существование таблицы в БД с периодической (раз в час) чисткой тех к которым за последний час не было обращений
      Parameters:
      con - объект доступа к БД
      tableName - имя проверяемой таблицы
      Returns:
      true - таблица существует, false - таблица не существует или нет доступа к БД
      Throws:
      SQLException - если возникают проблемы с доступом к БД
    • columnExist

      public static boolean columnExist(Connection con, String table, String column)
    • dropExistColumn

      public static void dropExistColumn(Connection con, String table, String column) throws SQLException
      Throws:
      SQLException
    • addItemsFromRS

      public static List<String> addItemsFromRS(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) throws SQLException, XMLStreamException
      Throws:
      SQLException
      XMLStreamException
    • addItemsFromRS

      public static List<String> addItemsFromRS(Connection con, Element whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) throws SQLException, XMLStreamException
      Throws:
      SQLException
      XMLStreamException
    • addItemsFromRS

      public static List<String> addItemsFromRS(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2) throws SQLException, XMLStreamException
      Throws:
      SQLException
      XMLStreamException
    • addItemsFromRS

      public static List<String> addItemsFromRS(Connection con, XMLStreamWriter whereAdd, String table, String keyColumn, String keyValue, String retColumn, boolean dateFilter, String date1, String date2, String joins) throws SQLException, XMLStreamException
      Throws:
      SQLException
      XMLStreamException
    • deleteRowsFromTable

      public static List<String> deleteRowsFromTable(Connection con, String table, String keyColumn, String keyValue, String retColumn) throws SQLException
      Throws:
      SQLException
    • getModuleMonthTableName

      public static String getModuleMonthTableName(String name, LocalDate time, int moduleId)
    • getModuleMonthTableName

      public static String getModuleMonthTableName(String name, Date time, int moduleId)
      Функция выдает название помесячной таблицы на основании префикса, календаря с месяцем и кода модуля
      name_mid_yyyyMM</>
    • getModuleMonthDayTableName

      public static String getModuleMonthDayTableName(String name, Date time, int moduleId)
      Вернет name_mid_yyyyMMdd</>
    • getModuleTableName

      public static String getModuleTableName(String name, int mid)
      Функция выдает название таблицы на основании префикса и кода модуля name_mid</>
    • getMonthTableName

      public static String getMonthTableName(String name, Date time)
      Вернет name_yyyyMM</>
    • prepareElementToSerialize

      public static void prepareElementToSerialize(Node el)
    • checkTable

      public static void checkTable(Connection con, String tableName, String createQuery) throws SQLException
      проверка наличия таблицы и создание ее если нет для месячных таблиц желательно использовать @ru.bitel.bgbilling.server.util.DefaultServerSetup.checkModuleMonthTableName
      Throws:
      SQLException
    • uptimeStatus

      public static final String uptimeStatus(Date startTime)
      Сстатус uptime чего либо. Используется в отдельнозапущенных серверах для инфы в статусе.
      Parameters:
      startTime - время запуска этого "что-либо"
      Returns:
      некая uptime-информация в виде строки
    • getSetupValue

      public static String getSetupValue(Connection con, String name)
    • getSetupValue

      public static String getSetupValue(Connection con, String name, String defaultValue)
      Возвращает данные из таблицы setup
      Parameters:
      con -
      name - имя параметра
      defaultValue - значение по умолчанию
      Returns:
      значение из таблицы если есть запись с заданным именем, иначе defaultValue
    • setSetupValue

      public static void setSetupValue(Connection con, String name, String value)
    • removeSetupValue

      public static void removeSetupValue(Connection con, String name)
    • getLastModificationTime

      public static Calendar getLastModificationTime(Connection con, String param)
    • lastInsertId

      public static int lastInsertId(Connection con) throws SQLException
      Throws:
      SQLException
    • lastInsertId

      public static int lastInsertId(PreparedStatement ps) throws SQLException
      Throws:
      SQLException
    • lastInsertLongId

      public static long lastInsertLongId(PreparedStatement ps) throws SQLException
      Throws:
      SQLException
    • foundRows

      public static int foundRows(Connection con) throws SQLException
      Throws:
      SQLException
    • changeLastModificationTime

      public static void changeLastModificationTime(Connection con, String param)
    • closeConnection

      public static final void closeConnection(Connection... con)
      Безопасное закрытие одного или нескольких соединений с БД.
      Parameters:
      con -
    • closeConnection

      public static final void closeConnection(Connection con)
      Безопасное закрытие одного соединения с БД. Более быстр по сравнению с closeConnection(Connection...), т.к. на каждый вызов не создаётся массив.
      Parameters:
      con - - соединение, не может быть null
    • closeConnection

      public static final void closeConnection(Connection con, Connection conSlave)
      Безопасное закрытие одного или двух соединений с БД. Более быстр по сравнению с closeConnection(Connection...), т.к. на каждый вызов не создаётся массив.
      Parameters:
      con - - первое соединение, не может быть null
      conSlave - - второе соединенеи может быть null
    • commitConnection

      public static final void commitConnection(Connection con)
      Каммит одного соединения с БД.
      Parameters:
      con - - соединение.
    • getRanges

      public static List<List<Integer>> getRanges(int gid, String range)
      Парсит конфиги вида 1-10;12;20-4096 добавляем их парамми. для одного числа делает дублирование
      Parameters:
      gid -
      range -
      Returns:
    • getEntriesFromZip

      public static Map<String,byte[]> getEntriesFromZip(ZipInputStream zis, String mask)
    • resultSetToXML

      public static void resultSetToXML(ResultSet rs, Element whereAdd, String table) throws SQLException
      сериализует таблицу в XML елемент
      Throws:
      SQLException
    • getFileEntriesFromZipByPrefix

      public static Map<String,byte[]> getFileEntriesFromZipByPrefix(ZipInputStream zis, String prefix)
    • getSocketOut

      public static PrintWriter getSocketOut(Socket socket) throws Exception
      Throws:
      Exception
    • getSocketIn

      public static BufferedReader getSocketIn(Socket socket) throws Exception
      Throws:
      Exception
    • dropExistTable

      public static final void dropExistTable(Connection con, String tableName) throws SQLException
      Throws:
      SQLException
    • setAutoCommit

      public static final void setAutoCommit(Connection con, boolean auto)
    • resultSetToXML

      public static void resultSetToXML(ResultSet rs, XMLStreamWriter whereAdd, String table) throws SQLException, XMLStreamException
      Throws:
      SQLException
      XMLStreamException
    • replace

      public static String replace(String value, String from, String to)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      from -
      to -
      Returns:
    • urlencode

      public static String urlencode(String value)
      Кодирование mime данных в урлах (в x-www-form-urlencoded), НЕ кодирование урлов целиком. personalAcc=adfuf|name=mmmmm personalAcc%3Dadfuf%2Fname%3Dmmmmm Используется XSLT скриптами в качестве расширения.
    • urldecode

      public static String urldecode(String value)
      Декодирование mime данных в урлах, НЕ декодирование урлов целиком, обратная к urlencode. Используется XSLT скриптами в качестве расширения.
    • valueOrDefault

      public static String valueOrDefault(String value, String defaultValue)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      defaultValue -
      Returns:
    • formatNumber

      public static String formatNumber(Number value, String formatPattern)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      value -
      formatPattern -
      Returns:
    • upd5

      public static String upd5(String doc1, String doc2, String date1, String date2)
      Используется XSLT скриптами в качестве расширения.
      Parameters:
      doc1 -
      doc2 -
      date1 -
      date2 -
      Returns:
    • dateToString

      public static String dateToString(String source, String inPattern, String outPattern)
    • recycle

      public static void recycle(Object... oo)
    • addNoCache

      public static void addNoCache(jakarta.servlet.http.HttpServletResponse response)
    • deleteDir

      public static void deleteDir(File dirPath)
    • getQuestions

      public static String getQuestions(int count)
      Получаем строку вида ?,?,?
      Parameters:
      count -
      Returns:
    • createDirectoriesOnFTP

      public static void createDirectoriesOnFTP(org.apache.commons.net.ftp.FTPClient ftpConnect, String pathOnFTP) throws IOException
      Разбивает переданный путь по / , затем по каждой директории проверяет существует ли она, если нет, то создаёт
      Parameters:
      ftpConnect - коннект с FTP сервером
      pathOnFTP - абсолютный путь до нужной директории
      Throws:
      IOException
    • checkPeriod

      public static void checkPeriod(Date date1, Date date2) throws ru.bitel.bgbilling.common.BGException
      проверка как в старых экшенах, чтобы date2>=date1 или одна их них null, внимание: допускается date1=null
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getServerHome

      public static String getServerHome()
      общий код в серверах - получает полный путь до корня сервера (там где находится каталог data итд)
    • checkAndCreatePeriodicTableName

      public static void checkAndCreatePeriodicTableName(Connection con, String tableName, String createQuery)
      Функция берет имя таблицы(xxxx) из xxxx_mid_yyyyMM и создает ее
      Parameters:
      con -
      tableName -
      createQuery -