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
Получаем одну валюту.- 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
Обновление/добавление валюты. Если 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
Добавление платежа в лог. Выполняется перед началом транзакции. Все поля берутся при этом из объекта, то есть и дату текущую и статус "новый" надо явно задать. Используются только поля таблицы, заголовок договора и объект 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
Обновление всех параметров из лога платежа. В объекте должен быть установлен 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
-