Class TransactionManager
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.common.dao.AbstarctDaoConstant
ru.bitel.common.dao.AbstractDao<B>
ru.bitel.common.dao.AbstractIdDao<B>
ru.bitel.bgbilling.server.bean.AbstractTransactionManager<Transaction>
ru.bitel.bgbilling.modules.assist.server.bean.TransactionManager
- All Implemented Interfaces:
AutoCloseable
Менеджер платежей ассист, записи о платежах/транзакциях в БД биллинга.
-
Nested Class Summary
Nested classes/interfaces inherited from class ru.bitel.common.dao.AbstractDao
ru.bitel.common.dao.AbstractDao.ResultSetIterator -
Field Summary
FieldsFields inherited from class ru.bitel.bgbilling.server.bean.AbstractTransactionManager
moduleSetupFields inherited from class ru.bitel.common.dao.AbstractDao
cacheFilter, cacheJoin, cacheOrderBy, cachePaged, cachePS, cacheWhat, con, getByIdPS, moduleId, orderByPattern, tableNameFields inherited from class ru.bitel.common.dao.AbstarctDaoConstant
ERROR, fields, SQL_ALL, SQL_AND, SQL_CALC_FOUND_ROWS, 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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddPayment(int contractId, BigDecimal sum, int recurringParentId) Добавляем первоначальную строку платежа, когда юзер только пытается провести платёж - заносим сюда цид, дату и сумму.voidcarryOutPayment(Transaction transaction) Проведение платежа.doCheckRequest(int contractId, boolean autopaymentTransaction) doCheckRequest(Transaction transaction, int contractId, int orderId) intgetFirstYear(int contractId) Возвращает год, с которого были платежи для этого договораprotected Transactionprotected TransactiongetImpl(int id) Чтение одного платежа через его id и через cid (опционально).getLastRecurringForCid(int contractId, int recurringParentId) Последний рекуррентный платёж.getPaymentList(int contractId, Date from, Date until, List<String> statusList) Платежи за период для договора с указанным статусом.protected voidqueryStatus(StringBuilder query, String status) registerOrder(int contractId, BigDecimal sum, Map<String, Object> dataMap, boolean autopaymentTransaction, boolean requestBindingId) voidsearchTransaction(SearchResult<Transaction> searchResult, int contractId, String contractTitle, String status) Поиск платежей по нескольким условиямprotected voidsetContractData(Transaction transaction, ResultSet rs) protected voidupdateImpl(Transaction transaction) Methods inherited from class ru.bitel.bgbilling.server.bean.AbstractTransactionManager
doConnection, doConnection, getLogger, getParameter, getParamString, getParamString, getParamString, psStatus, searchTransaction, setConnectionTimeout, setParameterMethods inherited from class ru.bitel.common.dao.AbstractIdDao
delete, executeUpdate, get, getAndDelete, getAndUpdate, optMethods inherited from class ru.bitel.common.dao.AbstractDao
close, delete, deleteImpl, eq, get, getById, getListFromRS, getPeriod, getQueryById, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, processException, setStatementParam, updateMethods inherited from class ru.bitel.common.dao.AbstarctDaoConstant
getSQLOrderMethods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, logError, logError, warn
-
Field Details
-
DEFAULT_PAYMENT_COMMENT
-
-
Constructor Details
-
TransactionManager
-
-
Method Details
-
addPayment
public Transaction addPayment(int contractId, BigDecimal sum, int recurringParentId) throws ru.bitel.bgbilling.common.BGException Добавляем первоначальную строку платежа, когда юзер только пытается провести платёж - заносим сюда цид, дату и сумму. Для того, чтобы ИД этой записи отдать в качестве уникального номера заказа процессинговому центру. Пока статус - "непроведённый".- Parameters:
contractId- цидsumm- суммаrecurringParentId- если > 0 - добавляет рекуррентный (а не обычный платёж), должно быть номер orderId родительског платежа (это у нас сущность id нашей этой же таблицы assist_payment, хранится в настрйоках assist_payment_recurring)- Returns:
- ид новой записи (ид_платежа/номер_заказа)
- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
searchTransaction
public void searchTransaction(SearchResult<Transaction> searchResult, int contractId, String contractTitle, String status) throws ru.bitel.bgbilling.common.BGException Поиск платежей по нескольким условиям- Parameters:
period- дата начала (может не быть) и конца (может не быть) периода. учитывается с точностью до дня (!) и включительно. то есть чтобы вывести например за один день концы промежутка должны быть равны: 01.01.1999-01.01.1999statusList- статусов маска (комбинация из OK/FAIL/NEW статусов), должна быть указанаf_groups- список групп договоров (если ничего нет, то будет маска договоров стало быть ноль и при поиске будет игнорироваться, то есть если не указано ничего, то предполагаются что все)f_orderid- поиск по части номера ID (типа номер заказа) (может не быть)f_contract- поиск по части номера договора (может не быть)f_cardname- поиск по части имени держателя карты ИЛИ по части имени плательщика этой карты (может не быть)f_cardtext- поиск по части номера карты ИЛИ части типа карты ИЛИ по части субтипа карты (может не быть)f_billnumber- поиск по части номера платежа системы assist (может не быть)- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
queryStatus
- Overrides:
queryStatusin classAbstractTransactionManager<Transaction>
-
getPaymentList
public List<Transaction> getPaymentList(int contractId, Date from, Date until, List<String> statusList) throws ru.bitel.bgbilling.common.BGException Платежи за период для договора с указанным статусом. Также для веба используется - все платежи за указанный месяц, используется для вывода в вебе списка платежей. Там тогда возвращаются все статусы - NEW, OK, FAIL.- Parameters:
contractId- цидfrom- дата начала (включительно)until- дата конца (включительно)status- маска статусов которые надо выбрать- Returns:
- список пайментов
- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
registerOrder
public Transaction registerOrder(int contractId, BigDecimal sum, Map<String, Object> dataMap, boolean autopaymentTransaction, boolean requestBindingId) throws ru.bitel.bgbilling.common.BGException- Throws:
ru.bitel.bgbilling.common.BGException
-
doCheckRequest
public List<TransactionCheckResultDTO> doCheckRequest(int contractId, boolean autopaymentTransaction) throws Exception - Throws:
Exception
-
doCheckRequest
public TransactionCheckResultDTO doCheckRequest(Transaction transaction, int contractId, int orderId) throws Exception - Throws:
Exception
-
getImpl
Чтение одного платежа через его id и через cid (опционально). Также заполняется название договора.- Overrides:
getImplin classru.bitel.common.dao.AbstractDao<Transaction>- Parameters:
contractId- контрактИд, если надо специфицировать, или -1, если игнорировать этот параметр. Для пущей надёжности сделано, так что пренебрегать - чревато! Название договора заполняется независимо от этого параметра.id- идПлатежа (он же "номер заказа" в терминах всей платёжной цепочки)- Returns:
- объект Payment (или null если нужного не найдено)
- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
carryOutPayment
Проведение платежа. Проверяется, чтобы статус у переданного был OK. Используется в админке при редактировании платежа, при запросе статуса ручном и в экзекутере.- Throws:
ru.bitel.bgbilling.common.BGException
-
getFirstYear
public int getFirstYear(int contractId) throws ru.bitel.bgbilling.common.BGException Возвращает год, с которого были платежи для этого договора- Parameters:
contractId- контракт_ид- Returns:
- четырёхзначное число - год
- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
getLastRecurringForCid
public Transaction getLastRecurringForCid(int contractId, int recurringParentId) throws ru.bitel.bgbilling.common.BGException Последний рекуррентный платёж. Для указанного договора. Для заданного родителя этого платежа (чтобы различать пдатежи от разных подключенных автоплатежей). Учитываются только проведённые или пока висящие (со статусом FAIL не считаются, что наверно логично) Берётся только последний, если есть, если нету, то будет null.- Parameters:
contractId-recurringParentId-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
setContractData
protected void setContractData(Transaction transaction, ResultSet rs) throws SQLException, ru.bitel.bgbilling.common.BGException - Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
getFromRS
protected Transaction getFromRS(ResultSet rs) throws SQLException, ru.bitel.bgbilling.common.BGException - Specified by:
getFromRSin classru.bitel.common.dao.AbstractDao<Transaction>- Throws:
SQLExceptionru.bitel.bgbilling.common.BGException
-
updateImpl
protected void updateImpl(Transaction transaction) throws ru.bitel.bgbilling.common.BGException, SQLException - Specified by:
updateImplin classru.bitel.common.dao.AbstractDao<Transaction>- Throws:
ru.bitel.bgbilling.common.BGExceptionSQLException
-