Class BuyemoneyManager
java.lang.Object
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddPayment(BuyemoneyPayment payment) Добавление платежа в лог.voidcarryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment) Проведение платежа.voiddeleteCurrencyRate(int id) Удаляем валюту.voiddeletePayment(int id) Удаление платежа из лога.formatComment(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")intgetCountUsedCurrencyRate(int id) Количество использований конкретной записи о курсе валют в платежах.getCurrencyRate(int id) Получаем одну валюту.getCurrencyRateList(Date date, Boolean enabled) Список всех валют.intgetFirstYear(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Обновление/добавление валюты.voidupdatePayment(BuyemoneyPayment payment) Обновление всех параметров из лога платежа.
-
Constructor Details
-
BuyemoneyManager
-
-
Method Details
-
getCurrencyRate
Получаем одну валюту.- Parameters:
id- ид валюты.- Returns:
- объект валюты полностью заполненный.
- Throws:
SQLException- ошибка.
-
getCurrencyRateList
Список всех валют. Если задана дата, то только актуальные на эту дату.- Parameters:
date- дата, на которую надо выдать актуальные тарифы (для использования в вебе конечным юзером, например). Либо null, если надо выдать вообще всё.enabled- учитывать активность. Если null - игнорируется (то есть берутся и активные и неактивные), если стоит значение то возвращаются либо активные либо неактивные.- Returns:
- список объектов Currency.
- Throws:
SQLException- ошибка.
-
updateCurrencyRate
Обновление/добавление валюты. Если id не установлен (<1), то вставится.- Parameters:
curr- объект заполненный- Throws:
SQLException- ошибка
-
deleteCurrencyRate
Удаляем валюту.- Parameters:
id- ид курса валюты.- Throws:
SQLException- ошибка.
-
getCountUsedCurrencyRate
Количество использований конкретной записи о курсе валют в платежах. Используется для определения используется ли эта запись уже. В таком случае мы должны бы запретить её правку, кроме деактивации.- 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
Получаем все непроверенные платежи для каждого протокола.- 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
Возвращает год, с которого были платежи для этого договора- Parameters:
cid- контракт_ид- Returns:
- четырёхзначное число - год
- Throws:
SQLException
-
addPayment
Добавление платежа в лог. Выполняется перед началом транзакции. Все поля берутся при этом из объекта, то есть и дату текущую и статус "новый" надо явно задать. Используются только поля таблицы, заголовок договора и объект rate заполнять, конечно, не нужно. charge_id тоже пока не нужен.- Parameters:
payment- объект-платёж.- Throws:
SQLException- ошибка.
-
deletePayment
Удаление платежа из лога. Делается, например, когда платёж начался и не прошёл по фатальной ошибке.- Parameters:
id- ид платежа в таблице buyemoney_payment- Throws:
SQLException
-
updatePayment
Обновление всех параметров из лога платежа. В объекте должен быть установлен id. Исползуется для модификации параметров (некоторых) после уточнения статуса платежа.- Parameters:
payment- объект для обновления.- Throws:
SQLException
-
getPaymentFromRS
- Throws:
SQLException
-
carryOutCharge
public void carryOutCharge(BuyemoneyPayment payment, int chargeType, String chargeComment) throws ru.bitel.bgbilling.common.BGException Проведение платежа. Проверяется, чтобы статус у переданного был OK.- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
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
-