Class BuyemoneyManager

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

public class BuyemoneyManager extends Object
  • Constructor Details

    • BuyemoneyManager

      public BuyemoneyManager(Connection con, int mid)
  • 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:
      time1 - от (точность полная)
      time2 - до (точность полная)
      status - статусы
      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