Class TransactionManager
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.common.dao.AbstarctDaoConstant
ru.bitel.bgbilling.common.dao.AbstractDao<B>
ru.bitel.bgbilling.common.dao.AbstractIdDao<B>
ru.bitel.bgbilling.server.bean.AbstractTransactionManager<Transaction>
ru.bitel.bgbilling.modules.assist.server.bean.TransactionManager
Менеджер платежей ассист, записи о платежах/транзакциях в БД биллинга.
-
Field Summary
Fields inherited from class ru.bitel.bgbilling.server.bean.AbstractTransactionManager
moduleSetup
Fields inherited from class ru.bitel.bgbilling.common.dao.AbstractDao
con, moduleId, orderByPattern, tableName
Fields inherited from class ru.bitel.bgbilling.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
-
Method Summary
Modifier and TypeMethodDescriptionaddPayment
(int contractId, BigDecimal sum, int recurringParentId) Добавляем первоначальную строку платежа, когда юзер только пытается провести платёж - заносим сюда цид, дату и сумму.void
carryOutPayment
(Transaction transaction) Проведение платежа.doCheckRequest
(int contractId, boolean autopaymentTransaction) doCheckRequest
(Transaction transaction, int contractId, int orderId) int
getFirstYear
(int contractId) Возвращает год, с которого были платежи для этого договораprotected Transaction
protected Transaction
getImpl
(int id) Чтение одного платежа через его id и через cid (опционально).getLastRecurringForCid
(int contractId, int recurringParentId) Последний рекуррентный платёж.getPaymentList
(int contractId, Date from, Date until, List<String> statusList) Платежи за период для договора с указанным статусом.protected String
protected void
queryStatus
(StringBuilder query, String status) registerOrder
(int contractId, BigDecimal sum, Map<String, Object> dataMap, boolean autopaymentTransaction, boolean requestBindingId) void
searchTransaction
(SearchResult<Transaction> searchResult, int contractId, String contractTitle, String status) Поиск платежей по нескольким условиямprotected void
updateImpl
(Transaction transaction) Methods inherited from class ru.bitel.bgbilling.server.bean.AbstractTransactionManager
doConnection, doConnection, getParameter, getParamString, getParamString, getParamString, psStatus, searchTransaction, setConnectionTimeout, setParameter
Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractIdDao
delete, executeUpdate, get, getAndDelete, getAndUpdate, opt, sqlCommand, sqlCommandAndTable, sqlQuery, sqlWhereId
Methods inherited from class ru.bitel.bgbilling.common.dao.AbstractDao
delete, deleteImpl, eq, get, getById, getListFromRS, getPeriod, getSQLOrder, getTableName, list, list, listImpl, listImpl, listImplPS, listImplPS, ormFromResultSet, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, ormUpdateImpl, setStatementParam, update
Methods inherited from class ru.bitel.bgbilling.common.dao.AbstarctDaoConstant
getSQLOrder
Methods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError
-
Field Details
-
DEFAULT_PAYMENT_COMMENT
-
-
Constructor Details
-
TransactionManager
-
-
Method Details
-
addPayment
public Transaction addPayment(int contractId, BigDecimal sum, int recurringParentId) throws Exception Добавляем первоначальную строку платежа, когда юзер только пытается провести платёж - заносим сюда цид, дату и сумму. Для того, чтобы ИД этой записи отдать в качестве уникального номера заказа процессинговому центру. Пока статус - "непроведённый".- Parameters:
contractId
- цидsumm
- суммаrecurringParentId
- если > 0 - добавляет рекуррентный (а не обычный платёж), должно быть номер orderId родительског платежа (это у нас сущность id нашей этой же таблицы assist_payment, хранится в настрйоках assist_payment_recurring)- Returns:
- ид новой записи (ид_платежа/номер_заказа)
- Throws:
SQLException
Exception
-
searchTransaction
public void searchTransaction(SearchResult<Transaction> searchResult, int contractId, String contractTitle, String status) throws Exception Поиск платежей по нескольким условиям- 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:
SQLException
Exception
-
queryStatus
- Overrides:
queryStatus
in classAbstractTransactionManager<Transaction>
-
getPaymentList
public List<Transaction> getPaymentList(int contractId, Date from, Date until, List<String> statusList) throws Exception Платежи за период для договора с указанным статусом. Также для веба используется - все платежи за указанный месяц, используется для вывода в вебе списка платежей. Там тогда возвращаются все статусы - NEW, OK, FAIL.- Parameters:
contractId
- цидfrom
- дата начала (включительно)until
- дата конца (включительно)status
- маска статусов которые надо выбрать- Returns:
- список пайментов
- Throws:
SQLException
Exception
-
registerOrder
public Transaction registerOrder(int contractId, BigDecimal sum, Map<String, Object> dataMap, boolean autopaymentTransaction, boolean requestBindingId) throws Exception- Throws:
Exception
-
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:
getImpl
in classru.bitel.bgbilling.common.dao.AbstractDao<Transaction>
- Parameters:
contractId
- контрактИд, если надо специфицировать, или -1, если игнорировать этот параметр. Для пущей надёжности сделано, так что пренебрегать - чревато! Название договора заполняется независимо от этого параметра.id
- идПлатежа (он же "номер заказа" в терминах всей платёжной цепочки)- Returns:
- объект Payment (или null если нужного не найдено)
- Throws:
SQLException
-
getQueryById
- Overrides:
getQueryById
in classru.bitel.bgbilling.common.dao.AbstractDao<Transaction>
-
carryOutPayment
Проведение платежа. Проверяется, чтобы статус у переданного был OK. Используется в админке при редактировании платежа, при запросе статуса ручном и в экзекутере.- Throws:
Exception
-
getFirstYear
Возвращает год, с которого были платежи для этого договора- Parameters:
contractId
- контракт_ид- Returns:
- четырёхзначное число - год
- Throws:
SQLException
-
getLastRecurringForCid
public Transaction getLastRecurringForCid(int contractId, int recurringParentId) throws SQLException Последний рекуррентный платёж. Для указанного договора. Для заданного родителя этого платежа (чтобы различать пдатежи от разных подключенных автоплатежей). Учитываются только проведённые или пока висящие (со статусом FAIL не считаются, что наверно логично) Берётся только последний, если есть, если нету, то будет null.- Parameters:
contractId
-recurringParentId
-- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
SQLException
-
getFromRS
- Specified by:
getFromRS
in classru.bitel.bgbilling.common.dao.AbstractDao<Transaction>
- Throws:
SQLException
-
updateImpl
- Specified by:
updateImpl
in classru.bitel.bgbilling.common.dao.AbstractDao<Transaction>
- Throws:
SQLException
-