Class DefaultRecommendationBufferService
- java.lang.Object
-
- com.hybris.ymkt.recommendationbuffer.service.impl.DefaultRecommendationBufferService
-
- All Implemented Interfaces:
RecommendationBufferService
public class DefaultRecommendationBufferService extends java.lang.Object implements RecommendationBufferService
Buffer service for reading and saving recommendation related entities.- See Also:
RecommendationBufferService
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanenableRecommendationBufferprotected intexpiryOffsetprotected ModelServicemodelServiceprotected RecommendationBufferDaorecommendationBufferDao
-
Constructor Summary
Constructors Constructor Description DefaultRecommendationBufferService()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.StringcutTo255(java.lang.String csvString)Takes a csv string and cuts it to fit in 255 characters.java.util.List<SAPRecoImpressionAggrModel>getAggregatedImpressions(int batchSize)Read aListofSAPRecoImpressionAggrModel.java.util.List<SAPRecoClickthroughModel>getClickthroughs(int readBatchSize)ReadListofSAPRecoClickthroughModel.SAPRecommendationBufferModelgetGenericRecommendation(java.lang.String scenarioId, java.lang.String leadingItems)Get recommendations with scope Gprotected java.lang.StringgetHashIdsForType(java.lang.String scenarioId, java.lang.String recoType)java.lang.StringgetHashIdsForUser(java.lang.String userId, java.lang.String scenarioId)Get all hash ids for userjava.util.List<SAPRecoImpressionModel>getImpressions(int readBatchSize)ReadListofSAPRecoImpressionModel.java.util.List<SAPOfferInteractionModel>getOfferInteractions(int batchSize)ReadListofSAPOfferInteractionModel.SAPRecommendationBufferModelgetPersonalizedRecommendation(java.lang.String userId, java.lang.String scenarioId, java.lang.String leadingItems)Get a recommendation.SAPRecommendationBufferModelgetRestrictedRecommendation(java.lang.String scenarioId, java.lang.String leadingItems)Get recommendations with scope RbooleanisRecommendationExpired(SAPRecommendationBufferModel recommendation)Check if a recommendation is expired.protected voidremoveExpiredAny(java.util.function.Function<java.util.Date,java.util.List<? extends ItemModel>> serviceMethod)voidremoveExpiredMappings()Remove expired mappings based on the expiry offset.voidremoveExpiredRecommendations()Remove expired recommendations based on the expiry offset.voidremoveExpiredTypeMappings()Remove expired mappings based on the expiry offset.voidsaveRecommendation(java.lang.String userId, java.lang.String scenarioId, java.lang.String hashId, java.lang.String leadingItems, java.lang.String recoList, java.lang.String recoType, java.util.Date expiresOn)Add a new recommendation entry.protected voidsaveRecommendationBuffer(java.lang.String scenarioId, java.lang.String hashId, java.lang.String leadingItems, java.lang.String recoList, java.util.Date expiresOn)protected voidsaveRecommendationMapping(java.lang.String userId, java.lang.String scenarioId, java.lang.String hashId, java.util.Date expiresOn)protected voidsaveRecommendationTypeMapping(java.lang.String scenarioId, java.lang.String hashId, java.lang.String recoType, java.util.Date expiresOn)voidsetEnableRecommendationBuffer(boolean enableRecommendationBuffer)voidsetExpiryOffset(int expiryOffset)voidsetModelService(ModelService modelService)voidsetRecommendationBufferDao(RecommendationBufferDao recommendationBufferDao)
-
-
-
Field Detail
-
enableRecommendationBuffer
protected boolean enableRecommendationBuffer
-
expiryOffset
protected int expiryOffset
-
modelService
protected ModelService modelService
-
recommendationBufferDao
protected RecommendationBufferDao recommendationBufferDao
-
-
Method Detail
-
getAggregatedImpressions
public java.util.List<SAPRecoImpressionAggrModel> getAggregatedImpressions(int batchSize)
Description copied from interface:RecommendationBufferServiceRead aListofSAPRecoImpressionAggrModel.- Specified by:
getAggregatedImpressionsin interfaceRecommendationBufferService- Parameters:
batchSize- Batch size.- Returns:
ListofSAPRecoImpressionAggrModel.
-
getClickthroughs
public java.util.List<SAPRecoClickthroughModel> getClickthroughs(int readBatchSize)
Description copied from interface:RecommendationBufferServiceReadListofSAPRecoClickthroughModel.- Specified by:
getClickthroughsin interfaceRecommendationBufferService- Parameters:
readBatchSize- Batch size.- Returns:
ListofSAPRecoClickthroughModel
-
getGenericRecommendation
public SAPRecommendationBufferModel getGenericRecommendation(java.lang.String scenarioId, java.lang.String leadingItems)
Description copied from interface:RecommendationBufferServiceGet recommendations with scope G- Specified by:
getGenericRecommendationin interfaceRecommendationBufferService- Parameters:
scenarioId- Scenario ID.leadingItems- Leading items.- Returns:
SAPRecommendationBufferModel.
-
getRestrictedRecommendation
public SAPRecommendationBufferModel getRestrictedRecommendation(java.lang.String scenarioId, java.lang.String leadingItems)
Description copied from interface:RecommendationBufferServiceGet recommendations with scope R- Specified by:
getRestrictedRecommendationin interfaceRecommendationBufferService- Parameters:
scenarioId- Scenario ID.leadingItems- Leading items.- Returns:
SAPRecommendationBufferModel.
-
getOfferInteractions
public java.util.List<SAPOfferInteractionModel> getOfferInteractions(int batchSize)
Description copied from interface:RecommendationBufferServiceReadListofSAPOfferInteractionModel.- Specified by:
getOfferInteractionsin interfaceRecommendationBufferService- Parameters:
batchSize- Batch size.- Returns:
ListofSAPOfferInteractionModel.
-
getHashIdsForType
protected java.lang.String getHashIdsForType(java.lang.String scenarioId, java.lang.String recoType)
-
getHashIdsForUser
public java.lang.String getHashIdsForUser(java.lang.String userId, java.lang.String scenarioId)Description copied from interface:RecommendationBufferServiceGet all hash ids for user- Specified by:
getHashIdsForUserin interfaceRecommendationBufferService- Parameters:
userId- User IDscenarioId- Scenario ID- Returns:
- Comma separated list string of hash ids
-
getImpressions
public java.util.List<SAPRecoImpressionModel> getImpressions(int readBatchSize)
Description copied from interface:RecommendationBufferServiceReadListofSAPRecoImpressionModel.- Specified by:
getImpressionsin interfaceRecommendationBufferService- Parameters:
readBatchSize- Batch size.- Returns:
ListofSAPRecoImpressionModel
-
getPersonalizedRecommendation
public SAPRecommendationBufferModel getPersonalizedRecommendation(java.lang.String userId, java.lang.String scenarioId, java.lang.String leadingItems)
Description copied from interface:RecommendationBufferServiceGet a recommendation.- Specified by:
getPersonalizedRecommendationin interfaceRecommendationBufferService- Parameters:
userId- User ID.scenarioId- Scenario ID.leadingItems- Leading items.- Returns:
SAPRecommendationBufferModel.
-
isRecommendationExpired
public boolean isRecommendationExpired(SAPRecommendationBufferModel recommendation)
Description copied from interface:RecommendationBufferServiceCheck if a recommendation is expired.- Specified by:
isRecommendationExpiredin interfaceRecommendationBufferService- Parameters:
recommendation-SAPRecommendationBufferModel.- Returns:
- true if expired, false otherwise.
-
removeExpiredAny
protected void removeExpiredAny(java.util.function.Function<java.util.Date,java.util.List<? extends ItemModel>> serviceMethod)
-
removeExpiredMappings
public void removeExpiredMappings()
Description copied from interface:RecommendationBufferServiceRemove expired mappings based on the expiry offset.- Specified by:
removeExpiredMappingsin interfaceRecommendationBufferService
-
removeExpiredRecommendations
public void removeExpiredRecommendations()
Description copied from interface:RecommendationBufferServiceRemove expired recommendations based on the expiry offset.- Specified by:
removeExpiredRecommendationsin interfaceRecommendationBufferService
-
removeExpiredTypeMappings
public void removeExpiredTypeMappings()
Description copied from interface:RecommendationBufferServiceRemove expired mappings based on the expiry offset.- Specified by:
removeExpiredTypeMappingsin interfaceRecommendationBufferService
-
saveRecommendation
public void saveRecommendation(java.lang.String userId, java.lang.String scenarioId, java.lang.String hashId, java.lang.String leadingItems, java.lang.String recoList, java.lang.String recoType, java.util.Date expiresOn)Description copied from interface:RecommendationBufferServiceAdd a new recommendation entry.- Specified by:
saveRecommendationin interfaceRecommendationBufferService- Parameters:
userId- User ID.scenarioId- Scenario ID.hashId- Hash ID.leadingItems- Leading items.recoList- Recommendation List.recoType- Recommendation Type.expiresOn- Expire date.
-
cutTo255
protected java.lang.String cutTo255(java.lang.String csvString)
Takes a csv string and cuts it to fit in 255 characters. Required to make the recommended product list fit in the column. This makes the number of products that can be buffered dependent on the product id length and the number of products returned by the SAP Marketing recommendation model.- Parameters:
csvString- List of product IDs separated by comma.- Returns:
- List of product IDs separated by comma with maximum size 255.
-
saveRecommendationBuffer
protected void saveRecommendationBuffer(java.lang.String scenarioId, java.lang.String hashId, java.lang.String leadingItems, java.lang.String recoList, java.util.Date expiresOn)
-
saveRecommendationMapping
protected void saveRecommendationMapping(java.lang.String userId, java.lang.String scenarioId, java.lang.String hashId, java.util.Date expiresOn)
-
saveRecommendationTypeMapping
protected void saveRecommendationTypeMapping(java.lang.String scenarioId, java.lang.String hashId, java.lang.String recoType, java.util.Date expiresOn)
-
setEnableRecommendationBuffer
public void setEnableRecommendationBuffer(boolean enableRecommendationBuffer)
-
setExpiryOffset
public void setExpiryOffset(int expiryOffset)
-
setModelService
public void setModelService(ModelService modelService)
-
setRecommendationBufferDao
public void setRecommendationBufferDao(RecommendationBufferDao recommendationBufferDao)
-
-