Class BuyemoneyManager

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

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

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

    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.AbstarctDaoConstant

    getPeriod, getSQLOrder, getTableName, sqlLimit

    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