Class BuyemoneyManager
java.lang.Object
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addPayment
(BuyemoneyPayment payment) Добавление платежа в лог.void
carryOutCharge
(BuyemoneyPayment payment, int chargeType, String chargeComment) Проведение платежа.void
deleteCurrencyRate
(int id) Удаляем валюту.void
deletePayment
(int id) Удаление платежа из лога.formatComment
(String pattern, BuyemoneyPayment payment, String userComment, ru.bitel.bgbilling.modules.buyemoney.server.protocols.ProtocolManager protocolManager) Форматируем камент из шаблона. 1) Комментарий расхода для нашего биллинга. 2) Камент для отправки на сервер авторизации строки камента (кое-где называется "основание зачисления")int
getCountUsedCurrencyRate
(int id) Количество использований конкретной записи о курсе валют в платежах.getCurrencyRate
(int id) Получаем одну валюту.getCurrencyRateList
(Date date, Boolean enabled) Список всех валют.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
updatePayment
(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 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
-