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.ContextInfobuildContextInfoForCreditAccount(@NonNull CreditAccount creditAccount, @NonNull com.broadleafcommerce.data.tracking.core.type.OperationType operationType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aContextInfofor provided credit account.protected RelatedTransactionDetailbuildRelatedTransactionDetail(@NonNull Transaction expirationTransaction) protected TransactioncreateExpirationTransaction(@NonNull CreditAccount creditAccount, @NonNull Transaction expiredTransaction, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected StringgetApplicationId(@NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) protected CreditAccountService<CreditAccount>protected StringgetTenantId(@NonNull com.broadleafcommerce.data.tracking.core.filtering.business.domain.ContextState creditAccountContext) protected TransactionService<Transaction>protected com.broadleafcommerce.common.extension.TypeFactoryprocessExpiredTransactions(@NonNull CreditAccount creditAccount, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Creates the debit transaction with theDefaultTransactionSubType.EXPIRATIONsub-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 CreditAccountprocessExpiredTransactions(@NonNull CreditAccount creditAccount, @NonNull List<Transaction> expiredTransactions, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) voidprocessExpiredTransactions(@NonNull List<Transaction> expiredTransactions, @NonNull ExpirationSourceInfo expirationSourceInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Creates the debit transaction with theDefaultTransactionSubType.EXPIRATIONsub-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.ContextInfowithOperationType(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:CreditExpirationServiceCreates the debit transaction with theDefaultTransactionSubType.EXPIRATIONsub-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:
processExpiredTransactionsin 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:CreditExpirationServiceCreates the debit transaction with theDefaultTransactionSubType.EXPIRATIONsub-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:
processExpiredTransactionsin 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 aContextInfofor provided credit account.This is useful to make requests for
CreditAccountin 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- theCreditAccountto build the context info fromoperationType- the operation type- Returns:
- a
ContextInfowithOperationType.UPDATEfrom 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()
-