Class BuyemoneyManager
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstractDaoConstant
ru.bitel.bgbilling.modules.buyemoney.server.bean.BuyemoneyManager
public class BuyemoneyManager
extends ru.bitel.bgbilling.common.dao.AbstractDaoConstant
-
Field Summary
Fields inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
con, ERROR, fields, moduleId, SQL_ALL, SQL_AND, SQL_DELETE, SQL_DISTINCT, SQL_EQ, SQL_EQCS, SQL_FROM, SQL_GROUP, SQL_IN, SQL_INSERT, SQL_JOIN, SQL_LEFT_JOIN, SQL_LIMIT, SQL_NOT_IN, SQL_ON, SQL_ON_DUPLICATE_KEY_UPDATE, SQL_ORDER, SQL_SELECT, SQL_SET, SQL_UPDATE, SQL_VALUES, SQL_WHERE, tableName -
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 contractId) Возвращает год, с которого были платежи для этого договора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) Обновление всех параметров из лога платежа.Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractDaoConstant
delete, delete, getPeriod, getSQLOrder, getSQLOrderFields, getTableName, psSetDate, psSetDateOrNull, psSetInt, psSetIntOrNull, psSetPeriod, psSetString, psSetStringOrNull, psSetTimestampOrNull, queryAndIn, setStatementParamMethods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError, warn
-
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:
status- статусыtime1- от (точность полная)time2- до (точность полная)- Returns:
- мэп: протокол-id => список платежей этого протокола со статусом NEW
- Throws:
SQLException
-
getFirstYear
Возвращает год, с которого были платежи для этого договора- Parameters:
contractId- контракт_ид- 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:
SQLExceptionException
-
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
-