
protected static final String CUSTOMER_QUERY = "SELECT {item.PK} FROM {Customer AS item} WHERE {item.customerid} LIKE '00%'";
//Get all the customers
final FlexibleSearchQuery query = new FlexibleSearchQuery(CUSTOMER_QUERY);
final List<CustomerModel> allCustomersList = flexibleSearchService.<CustomerModel> search(query).getResult();
LOG.info("Total Customer Count: " + allCustomersList.size());
for (final CustomerModel customer : allCustomersList)
{
final ItemChangeDTO changeCustomer = getChangeDetectionService().getChangeForExistingItem(customer,
"c4cCustomerStream");
LOG.info("changeCustomer " + changeCustomer);
final List<ItemChangeDTO> changeCustomerList = new ArrayList<ItemChangeDTO>();
}
if (changeCustomer.getItemPK() != null && (changeCustomer.getChangeType() == ChangeType.MODIFIED)
|| (changeCustomer.getChangeType() == ChangeType.NEW))
{
isChanged = Boolean.TRUE;
//Make Item version marker as up-to-date for the changes detected
changeCustomerList.add(changeCustomer);
changeDetectionService.consumeChanges(changeCustomerList);
LOG.info("Change Customer PK:" + changeCustomer.getItemPK());
}
else
{
isChanged = Boolean.FALSE;
}
package com.cronjob;
import de.hybris.deltadetection.ChangeDetectionService;
import de.hybris.deltadetection.ItemChangeDTO;
import de.hybris.deltadetection.enums.ChangeType;
import de.hybris.platform.core.model.c2l.CountryModel;
import de.hybris.platform.core.model.c2l.RegionModel;
import de.hybris.platform.core.model.user.AddressModel;
import de.hybris.platform.core.model.user.CustomerModel;
import de.hybris.platform.cronjob.enums.CronJobResult;
import de.hybris.platform.cronjob.enums.CronJobStatus;
import de.hybris.platform.cronjob.model.CronJobModel;
import de.hybris.platform.servicelayer.cronjob.AbstractJobPerformable;
import de.hybris.platform.servicelayer.cronjob.PerformResult;
import de.hybris.platform.servicelayer.model.ModelService;
import de.hybris.platform.servicelayer.search.FlexibleSearchQuery;
import de.hybris.platform.servicelayer.user.AddressService;
import de.hybris.platform.util.Config;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.zip.GZIPInputStream;
import javax.annotation.Resource;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.apache.commons.lang.StringEscapeUtils;
/**
* @author brahma
*
*/
public class c4ccustomer extends AbstractJobPerformable<CronJobModel>
{
@Autowired
private ModelService modelService;
@Resource
private AddressService addressService;
private ChangeDetectionService changeDetectionService;
protected static final String PRIMARY_KEY_PARAM_NAME = "PK";
protected static final String CUSTOMER_QUERY = "SELECT {item.PK} FROM {Customer AS item} WHERE {item.customerid} LIKE '00%'";
private static final Logger LOG = Logger.getLogger(createC4CCustomer.class);
@Override
public PerformResult perform(final CronJobModel cronJob)
{
//Get all the customers
final FlexibleSearchQuery query = new FlexibleSearchQuery(CUSTOMER_QUERY);
final List<CustomerModel> allCustomersList = flexibleSearchService.<CustomerModel> search(query).getResult();
LOG.info("Total Customer Count: " + allCustomersList.size());
try
{
for (final CustomerModel customer : allCustomersList)
{
final ItemChangeDTO changeCustomer = getChangeDetectionService().getChangeForExistingItem(customer,
"c4cCustomerStreamID");
LOG.info("changeCustomer " + changeCustomer);
final List<ItemChangeDTO> changeCustomerList = new ArrayList<ItemChangeDTO>();
try
{
LOG.info("change customer " +changeCustomer.getChangeType() + "get itm pk " +changeCustomer.getItemPK() );
if (changeCustomer.getItemPK() != null && (changeCustomer.getChangeType() == ChangeType.MODIFIED)
|| (changeCustomer.getChangeType() == ChangeType.NEW))
{
isChanged = Boolean.TRUE;
//Make Item version marker as up-to-date for the changes detected
changeDetectionService.consumeChanges(changeCustomerList);
LOG.info("Change changeCustomerList length" + changeCustomerList.size());
changeCustomerList.add(changeCustomer);
//changeDetectionService.consumeChanges(changeCustomerList);
LOG.info("Change Customer PK:" + changeCustomer.getItemPK());
}
else
{
isChanged = Boolean.FALSE;
}
}
catch (final NullPointerException NPE)
{
LOG.info("No Change detected for customer: " + customer.getUid());
}
}
}
catch (final Exception e)
{
connection.disconnect();
e.printStackTrace();
}
@Required
public void setChangeDetectionService(final ChangeDetectionService changeDetectionService)
{
this.changeDetectionService = changeDetectionService;
}
/**
* @return change detection service.
*/
protected ChangeDetectionService getChangeDetectionService()
{
return changeDetectionService;
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.