package org.onehippo.forge.konakart.site.service.impl; import com.konakart.al.KKAppEng; import com.konakart.app.CustomerEvent; import com.konakart.app.KKException; import com.konakart.appif.CustomerEventIf; import com.konakart.appif.CustomerIf; import com.konakart.bl.ConfigConstants; import org.onehippo.forge.konakart.site.service.KKEventService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.annotation.Nonnull; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; public class KKEventServiceImpl extends KKBaseServiceImpl implements KKEventService { public static final Logger log = LoggerFactory.getLogger(KKEventServiceImpl.class); /* * Event actions */ public static final int ACTION_NEW_CUSTOMER_VISIT = 1; public static final int ACTION_CUSTOMER_LOGIN = 2; public static final int ACTION_ENTER_CHECKOUT = 3; public static final int ACTION_CONFIRM_ORDER = 4; public static final int ACTION_PAYMENT_METHOD_SELECTED = 5; public static final int ACTION_REMOVE_FROM_CART = 6; public static final int ACTION_PRODUCT_VIEWED = 7; @Override public CustomerEventIf getCustomerEvent(@Nonnull HttpServletRequest request, int action) { KKAppEng kkAppEng = getKKAppEng(request); String enabled = kkAppEng.getConfig(ConfigConstants.ENABLE_CUSTOMER_EVENTS); if (enabled != null && enabled.equalsIgnoreCase("true")) { CustomerEventIf event = new CustomerEvent(); event.setAction(action); CustomerIf currentCust = kkAppEng.getCustomerMgr().getCurrentCustomer(); if (currentCust != null) { event.setCustomerId(currentCust.getId()); } return event; } return null; } @Override public void insertCustomerEvent(@Nonnull HttpServletRequest request, int action, String str1, String str2, int int1, int int2, BigDecimal dec1, BigDecimal dec2) { CustomerEventIf event = getCustomerEvent(request, action); if (event != null) { event.setData1Str(str1); event.setData2Str(str2); event.setData1Int(int1); event.setData2Int(int2); event.setData1Dec(dec1); event.setData2Dec(dec2); try { getKKAppEng(request).getEng().insertCustomerEvent(event); } catch (KKException e) { // unable to insert the event log.error("Failed to insert the event", e); } } } @Override public void insertCustomerEvent(@Nonnull HttpServletRequest request, int action) { insertCustomerEvent(request, action, null, null, 0, 0, null, null); } @Override public void insertCustomerEvent(@Nonnull HttpServletRequest request, int action, int int1) { insertCustomerEvent(request, action, null, null, int1, 0, null, null); } @Override public void insertCustomerEvent(@Nonnull HttpServletRequest request, int action, String str1) { insertCustomerEvent(request, action, str1, null, 0, 0, null, null); } @Override public void insertCustomerEvent(@Nonnull HttpServletRequest request, int action, BigDecimal dec1) { insertCustomerEvent(request, action, null, null, 0, 0, dec1, null); } }