Class JpaCustomizedMarketingMessageRepository<D extends JpaMarketingMessage>
- java.lang.Object
-
- com.broadleafcommerce.promotion.offer.provider.jpa.repository.JpaCustomizedMarketingMessageRepository<D>
-
- All Implemented Interfaces:
CustomizedMarketingMessageRepository<D>,org.springframework.beans.factory.InitializingBean
public class JpaCustomizedMarketingMessageRepository<D extends JpaMarketingMessage> extends Object implements CustomizedMarketingMessageRepository<D>, org.springframework.beans.factory.InitializingBean
- Author:
- Nathan Moore (nathanmoore).
-
-
Field Summary
Fields Modifier and Type Field Description protected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelperjpaNarrowingHelperprotected List<com.broadleafcommerce.data.tracking.core.service.RsqlQueryTransformer>rsqlQueryTransformers
-
Constructor Summary
Constructors Constructor Description JpaCustomizedMarketingMessageRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil trackableBehaviorUtil, List<com.broadleafcommerce.data.tracking.core.service.RsqlQueryTransformer> rsqlQueryTransformers, cz.jirutka.rsql.parser.ast.RSQLVisitor<javax.persistence.criteria.Predicate,Class<?>> rsqlVisitor, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddCartSubtotalCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, MarketingMessageRequest request)protected voidaddLocaleCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, ItemMarketingMessageRequest request)Adds the locale criteria to the Criteria.protected voidaddOfferAppliedCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, MarketingMessageRequest request)protected voidaddQualifierOfferIdsCriteria(Collection<String> qualifierOfferIds, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> narrowingParams, List<javax.persistence.criteria.Predicate> offerPredicates)protected voidaddTargetOfferIdsCriteria(Collection<String> targetOfferIds, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> narrowingParams, List<javax.persistence.criteria.Predicate> offerPredicates)voidafterPropertiesSet()List<D>findAllActiveByQualifierAndTargetOffers(Collection<String> qualifierOfferIds, Collection<String> targetOfferIds, MarketingMessageRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Finds all active marketing messages for the given qualifier offer ids, target offer ids, andMarketingMessageRequest.List<D>findAllActiveByQualifierAndTargetOffersAndRequest(Collection<String> qualifierOfferIds, Collection<String> targetOfferIds, ItemMarketingMessageRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Finds all active marketing messages for the given qualifier offer ids, target offer ids, andItemMarketingMessageRequest.org.springframework.data.domain.Page<D>findAllByOfferContextIdIn(Collection<String> offerContextIds, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageInfo, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Finds all of the persistentMarketingMessagesfor the givenOffer IDs.
-
-
-
Field Detail
-
jpaNarrowingHelper
protected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelper jpaNarrowingHelper
-
rsqlQueryTransformers
protected final List<com.broadleafcommerce.data.tracking.core.service.RsqlQueryTransformer> rsqlQueryTransformers
-
-
Constructor Detail
-
JpaCustomizedMarketingMessageRepository
public JpaCustomizedMarketingMessageRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil trackableBehaviorUtil, List<com.broadleafcommerce.data.tracking.core.service.RsqlQueryTransformer> rsqlQueryTransformers, cz.jirutka.rsql.parser.ast.RSQLVisitor<javax.persistence.criteria.Predicate,Class<?>> rsqlVisitor, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder)
-
-
Method Detail
-
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-
findAllActiveByQualifierAndTargetOffersAndRequest
public List<D> findAllActiveByQualifierAndTargetOffersAndRequest(Collection<String> qualifierOfferIds, Collection<String> targetOfferIds, ItemMarketingMessageRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CustomizedMarketingMessageRepositoryFinds all active marketing messages for the given qualifier offer ids, target offer ids, andItemMarketingMessageRequest. "Active" means that theMarketingMessage.getActiveStartDate()is before now and theMarketingMessage.getActiveEndDate()is after now.- Specified by:
findAllActiveByQualifierAndTargetOffersAndRequestin interfaceCustomizedMarketingMessageRepository<D extends JpaMarketingMessage>- Parameters:
qualifierOfferIds- the ids of offers where the messages should be associated with the items that qualify.targetOfferIds- the ids of offers where the messages should be associated with the items that are targeted by the offer.request- anItemMarketingMessageRequestcontaining the parameters by which the results will be filteredcontextInfo- the context around sandboxing and multitenant state- Returns:
- the marketing messages matching the given request and offers
-
findAllActiveByQualifierAndTargetOffers
public List<D> findAllActiveByQualifierAndTargetOffers(Collection<String> qualifierOfferIds, Collection<String> targetOfferIds, MarketingMessageRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CustomizedMarketingMessageRepositoryFinds all active marketing messages for the given qualifier offer ids, target offer ids, andMarketingMessageRequest. "Active" means that theMarketingMessage.getActiveStartDate()is before now and theMarketingMessage.getActiveEndDate()is after now.- Specified by:
findAllActiveByQualifierAndTargetOffersin interfaceCustomizedMarketingMessageRepository<D extends JpaMarketingMessage>- Parameters:
qualifierOfferIds- the ids of offers where the messages should be associated with the items that qualify.targetOfferIds- the ids of offers where the messages should be associated with the items that are targeted by the offer.request- anMarketingMessageRequestcontaining parameters by which the results will be filteredcontextInfo- the context around sandboxing and multitenant state- Returns:
- the marketing messages matching the given request and offers
-
addTargetOfferIdsCriteria
protected void addTargetOfferIdsCriteria(Collection<String> targetOfferIds, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> narrowingParams, List<javax.persistence.criteria.Predicate> offerPredicates)
-
addQualifierOfferIdsCriteria
protected void addQualifierOfferIdsCriteria(Collection<String> qualifierOfferIds, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> narrowingParams, List<javax.persistence.criteria.Predicate> offerPredicates)
-
addCartSubtotalCriteria
protected void addCartSubtotalCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, MarketingMessageRequest request)
-
addOfferAppliedCriteria
protected void addOfferAppliedCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, MarketingMessageRequest request)
-
findAllByOfferContextIdIn
public org.springframework.data.domain.Page<D> findAllByOfferContextIdIn(Collection<String> offerContextIds, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable pageInfo, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:CustomizedMarketingMessageRepositoryFinds all of the persistentMarketingMessagesfor the givenOffer IDs.- Specified by:
findAllByOfferContextIdInin interfaceCustomizedMarketingMessageRepository<D extends JpaMarketingMessage>- Parameters:
offerContextIds-Offer IDsof the parent offers.filters- additional filters to apply in the query. Should beEmptyNodeif no additional filters should be applied.pageInfo- Pagination informationcontextInfo- the context around sandboxing and multitenant state- Returns:
- Paged result set of all marketing messages for the given offer IDs.
-
addLocaleCriteria
protected void addLocaleCriteria(List<javax.persistence.criteria.Predicate> predicates, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.Root<JpaMarketingMessage> root, Map<String,Object> params, ItemMarketingMessageRequest request)
Adds the locale criteria to the Criteria. By default this will addItemMarketingMessageRequest.getLocale()as well as the de-regionalized version of that locale. Thus, if MarketingMessage's locale is 'en' and the request's locale is 'en-US', then the criteria will be{ "locale": { "$in": [ 'en-US', 'en' ] } }so that region-inspecific MarketingMessages can still be used in specific regions.- Parameters:
predicates- list of query filtering expressionsbuilder- JPA CriteriaBuilder for this queryroot- The selection root for this queryparams- The actual values to filter by, keyed by the query parameter namerequest-ItemMarketingMessageRequestcontaining the parameters by which the results will be filtered
-
-