Class BuyemoneyManager

java.lang.Object
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager

public class BuyemoneyManager
extends java.lang.Object
  • Constructor Summary

    Constructors
    Constructor Description
    BuyemoneyManager​(java.sql.Connection con, int mid)  
  • Method Summary

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

    Methods inherited from class java.lang.Object

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

    • BuyemoneyManager

      public BuyemoneyManager​(java.sql.Connection con, int mid)
  • Method Details

    • getCurrencyRate

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

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

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

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

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

      public java.util.List<BuyemoneyPayment> getPaymentList​(int fCid, Period fPeriod, int fCurrency, java.lang.String fGroups, java.lang.String fContract) throws java.sql.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:
      java.sql.SQLException - ошибка.
    • getUnstatusedPaymentMap

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

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

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

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

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

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

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

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

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