Class DefaultCreditExpirationService
java.lang.Object
com.broadleafcommerce.creditaccount.service.expiration.DefaultCreditExpirationService
- All Implemented Interfaces:
CreditExpirationService
- Author:
- Dima Myroniuk (dmyroniuk)
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultCreditExpirationService
(TransactionService<Transaction> transactionService, CreditAccountService<CreditAccount> creditAccountService, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected com.broadleafcommerce.data.tracking.core.context.ContextInfo
buildContextInfoForCreditAccount
(@NonNull CreditAccount creditAccount, @NonNull com.broadleafcommerce.data.tracking.core.type.OperationType operationType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aContextInfo
for provided credit account.protected RelatedTransactionDetail
buildRelatedTransactionDetail
(@NonNull Transaction expirationTransaction) protected Transaction
createExpirationTransaction
(@NonNull CreditAccount creditAccount, @NonNull Transaction expiredTransaction, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected String
getApplicationId
(@NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) protected CreditAccountService<CreditAccount>
protected String
getTenantId
(@NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) protected TransactionService<Transaction>
protected com.broadleafcommerce.common.extension.TypeFactory
processExpiredTransactions
(@NonNull CreditAccount creditAccount, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Creates the debit transaction with theDefaultTransactionSubType.EXPIRATION
sub-type, addsTransaction.getRelatedTransactionDetails()
to the expiring credit transaction, sets theTransaction.getAmountRemaining()
of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.protected CreditAccount
processExpiredTransactions
(@NonNull CreditAccount creditAccount, @NonNull List<Transaction> expiredTransactions, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) void
processExpiredTransactions
(@NonNull List<Transaction> expiredTransactions, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Creates the debit transaction with theDefaultTransactionSubType.EXPIRATION
sub-type, addsTransaction.getRelatedTransactionDetails()
to the expiring credit transaction, sets theTransaction.getAmountRemaining()
of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.protected com.broadleafcommerce.data.tracking.core.context.ContextInfo
withOperationType
(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, com.broadleafcommerce.data.tracking.core.type.OperationType operationType)
-
Constructor Details
-
DefaultCreditExpirationService
public DefaultCreditExpirationService(TransactionService<Transaction> transactionService, CreditAccountService<CreditAccount> creditAccountService, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
processExpiredTransactions
@Transactional("creditAccountTransactionManager") public void processExpiredTransactions(@NonNull @NonNull List<Transaction> expiredTransactions, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CreditExpirationService
Creates the debit transaction with theDefaultTransactionSubType.EXPIRATION
sub-type, addsTransaction.getRelatedTransactionDetails()
to the expiring credit transaction, sets theTransaction.getAmountRemaining()
of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.- Specified by:
processExpiredTransactions
in interfaceCreditExpirationService
- Parameters:
expiredTransactions
- the expired transactionsexpirationSourceInfo
- Information about the reason for the expirationcontextInfo
- Context information related to multitenancy
-
processExpiredTransactions
@Transactional("creditAccountTransactionManager") public CreditAccount processExpiredTransactions(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CreditExpirationService
Creates the debit transaction with theDefaultTransactionSubType.EXPIRATION
sub-type, addsTransaction.getRelatedTransactionDetails()
to the expiring credit transaction, sets theTransaction.getAmountRemaining()
of the expired transaction to zero, and subtracts the amount remaining from the credit account balance.- Specified by:
processExpiredTransactions
in interfaceCreditExpirationService
- Parameters:
creditAccount
- the credit accountexpirationSourceInfo
- Information about the reason for the expirationcontextInfo
- Context information related to multitenancy- Returns:
- The updated
CreditAccount
-
processExpiredTransactions
protected CreditAccount processExpiredTransactions(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull List<Transaction> expiredTransactions, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
createExpirationTransaction
protected Transaction createExpirationTransaction(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull Transaction expiredTransaction, @NonNull @NonNull ExpirationSourceInfo expirationSourceInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
buildRelatedTransactionDetail
protected RelatedTransactionDetail buildRelatedTransactionDetail(@NonNull @NonNull Transaction expirationTransaction) -
buildContextInfoForCreditAccount
@Nullable protected com.broadleafcommerce.data.tracking.core.context.ContextInfo buildContextInfoForCreditAccount(@NonNull @NonNull CreditAccount creditAccount, @NonNull @NonNull com.broadleafcommerce.data.tracking.core.type.OperationType operationType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aContextInfo
for provided credit account.This is useful to make requests for
CreditAccount
in the correct context, since scheduled job itself doesn't have application context. This method makes it easier to achieve that rather than creating new endpoints for each operation to ignore application context.- Parameters:
creditAccount
- theCreditAccount
to build the context info fromoperationType
- the operation type- Returns:
- a
ContextInfo
withOperationType.UPDATE
from the givenCreditAccount
-
getTenantId
@Nullable protected String getTenantId(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) -
getApplicationId
@Nullable protected String getApplicationId(@NonNull @NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) -
withOperationType
protected com.broadleafcommerce.data.tracking.core.context.ContextInfo withOperationType(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo, com.broadleafcommerce.data.tracking.core.type.OperationType operationType) -
getTransactionService
-
getCreditAccountService
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-