Class BuyemoneyManager

java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstractDaoConstant
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager

public class BuyemoneyManager extends ru.bitel.bgbilling.common.dao.AbstractDaoConstant
  • Field Summary

    Fields inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant

    con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName
  • Constructor Summary

    Constructors
    Constructor
    Description
    BuyemoneyManager(Connection con, int moduleId)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Добавление платежа в лог.
    void
    carryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment)
    Проведение платежа.
    void
    Удаляем валюту.
    void
    deletePayment(int id)
    Удаление платежа из лога.
    formatComment(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager)
    Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")
    int
    Количество использований конкретной записи о курсе валют в платежах.
    Получаем одну валюту.
    Список всех валют.
    int
    getFirstYear(int cid)
    Возвращает год, с которого были платежи для этого договора
    getPaymentFromRS(ResultSet rs, boolean fillExtend)
     
    getPaymentList(int fCid, Period fPeriod, int fCurrency, String fGroups, String fContract)
    Запрос списка(лога) платежей, по фильтру. f_period (если !
    getProtocolPaymentMap(Date datetime1, Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status)
    Получаем все платежи указанного статуса (если null - всех) для каждого протокола.
    Получаем все непроверенные платежи для каждого протокола.
    void
    Обновление/добавление валюты.
    void
    Обновление всех параметров из лога платежа.

    Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant

    getPeriod, getSQLOrder, getTableName, psSetDate, psSetDateOrNull, psSetInt, psSetIntOrNull, psSetPeriod, psSetString, psSetStringOrNull, psSetTimestampOrNull, queryAndIn

    Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger

    error, error, error, getLogger, logError, logError, warn

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • BuyemoneyManager

      public BuyemoneyManager(Connection con, int moduleId)
  • Method Details

    • getCurrencyRate

      public CurrencyRate getCurrencyRate(int id) throws SQLException
      Получаем одну валюту.
      Parameters:
      id - ид валюты.
      Returns:
      объект валюты полностью заполненный.
      Throws:
      SQLException - ошибка.
    • getCurrencyRateList

      public List<CurrencyRate> getCurrencyRateList(Date date, Boolean enabled) throws SQLException
      Список всех валют. Если задана дата, то только актуальные на эту дату.
      Parameters:
      date - дата, на которую надо выдать актуальные тарифы (для использования в вебе конечным юзером, например). Либо null, если надо выдать вообще всё.
      enabled - учитывать активность. Если null - игнорируется (то есть берутся и активные и неактивные), если стоит значение то возвращаются либо активные либо неактивные.
      Returns:
      список объектов Currency.
      Throws:
      SQLException - ошибка.
    • updateCurrencyRate

      public void updateCurrencyRate(CurrencyRate curr) throws SQLException
      Обновление/добавление валюты. Если id не установлен (<1), то вставится.
      Parameters:
      curr - объект заполненный
      Throws:
      SQLException - ошибка
    • deleteCurrencyRate

      public void deleteCurrencyRate(int id) throws SQLException
      Удаляем валюту.
      Parameters:
      id - ид курса валюты.
      Throws:
      SQLException - ошибка.
    • getCountUsedCurrencyRate

      public int getCountUsedCurrencyRate(int id) throws SQLException
      Количество использований конкретной записи о курсе валют в платежах. Используется для определения используется ли эта запись уже. В таком случае мы должны бы запретить её правку, кроме деактивации.
      Parameters:
      id - ид курса валюты.
      Returns:
      количество использований (логично, что если 0 - курс валюты ещё не использовался)
      Throws:
      SQLException
    • getPaymentList

      public List<BuyemoneyPayment> getPaymentList(int fCid, Period fPeriod, int fCurrency, String fGroups, String fContract) throws SQLException
      Запрос списка(лога) платежей, по фильтру. f_period (если != null), f_currency (если > 0) действуют всегда. f_groups, f_contract, fCid тоже действуют иногда, если установлены. Ещё запрашивается для юзера из веба, там только cid и период. Заполняются также заголовок договора и объект rate соотвествующий (если теряется связь, то будет не null, но пустой объект)
      Parameters:
      fCid - ид договора (действует если >0)
      fPeriod - период (действует если != null)
      fCurrency - валюта протокольная (!), не из таблицы rate, а из конфига (действует если>0)
      fGroups - список ид групп (действует если !=null и не пустой)
      fContract - кусок текстового наименования договора, ищется по LIKE (действует если !=null и не пустой)
      Returns:
      соответствующий список объектов "e-money платёж"
      Throws:
      SQLException - ошибка.
    • getUnstatusedPaymentMap

      public Map<Integer,List<BuyemoneyPayment>> getUnstatusedPaymentMap() throws SQLException
      Получаем все непроверенные платежи для каждого протокола.
      Returns:
      мэп: протокол-id => список платежей этого протокола со статусом NEW
      Throws:
      SQLException
    • getProtocolPaymentMap

      public Map<Integer,List<BuyemoneyPayment>> getProtocolPaymentMap(Date datetime1, Date datetime2, ru.bitel.bgbilling.modules.buyemoney.common.BuyemoneyStatus status) throws SQLException
      Получаем все платежи указанного статуса (если null - всех) для каждого протокола. В периоде с даты по дату (граница не указана - игнорируется).
      Parameters:
      status - статусы
      time1 - от (точность полная)
      time2 - до (точность полная)
      Returns:
      мэп: протокол-id => список платежей этого протокола со статусом NEW
      Throws:
      SQLException
    • getFirstYear

      public int getFirstYear(int cid) throws SQLException
      Возвращает год, с которого были платежи для этого договора
      Parameters:
      cid - контракт_ид
      Returns:
      четырёхзначное число - год
      Throws:
      SQLException
    • addPayment

      public void addPayment(BuyemoneyPayment payment) throws SQLException
      Добавление платежа в лог. Выполняется перед началом транзакции. Все поля берутся при этом из объекта, то есть и дату текущую и статус "новый" надо явно задать. Используются только поля таблицы, заголовок договора и объект rate заполнять, конечно, не нужно. charge_id тоже пока не нужен.
      Parameters:
      payment - объект-платёж.
      Throws:
      SQLException - ошибка.
    • deletePayment

      public void deletePayment(int id) throws SQLException
      Удаление платежа из лога. Делается, например, когда платёж начался и не прошёл по фатальной ошибке.
      Parameters:
      id - ид платежа в таблице buyemoney_payment
      Throws:
      SQLException
    • updatePayment

      public void updatePayment(BuyemoneyPayment payment) throws SQLException
      Обновление всех параметров из лога платежа. В объекте должен быть установлен id. Исползуется для модификации параметров (некоторых) после уточнения статуса платежа.
      Parameters:
      payment - объект для обновления.
      Throws:
      SQLException
    • getPaymentFromRS

      public BuyemoneyPayment getPaymentFromRS(ResultSet rs, boolean fillExtend) throws SQLException
      Throws:
      SQLException
    • carryOutCharge

      public void carryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment) throws Exception
      Проведение платежа. Проверяется, чтобы статус у переданного был OK.
      Throws:
      SQLException
      Exception
    • formatComment

      public String formatComment(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) throws SQLException
      Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")
      Parameters:
      pattern - шаблон
      payment - платёж-покупки (лучше с заполненным объектом rate)
      userComment - то что ввёл юзер в поле комментария
      protocolManager - менеджер валюты надо передать, чтобы можно было название валюты вытянуть
      Returns:
      строка-коммент
      Throws:
      SQLException