Rev 5340 | Rev 7798 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import java.util.HashMap;import java.util.Map;import java.util.StringTokenizer;import in.shop2020.datalogger.EventType;import in.shop2020.logistics.LogisticsInfo;import in.shop2020.logistics.LogisticsService.Client;import in.shop2020.logistics.DeliveryType;import in.shop2020.logistics.LogisticsServiceException;import in.shop2020.thrift.clients.LogisticsClient;import in.shop2020.utils.DataLogger;import org.apache.log4j.Logger;import org.apache.struts2.rest.DefaultHttpHeaders;import org.apache.struts2.rest.HttpHeaders;import org.apache.thrift.TException;import com.google.gson.Gson;/*** @author rajveer**/public class EstimateController extends BaseController {private static final long serialVersionUID = 8023801600023970837L;private static Logger log = Logger.getLogger(Class.class);private String id;private long itemId;private String pincode;private long days = -1;private boolean isCODAvailable;private boolean isOTGAvailable;private Map<String, String> response = new HashMap<String, String>();public EstimateController() {super();}// GET /logoutpublic HttpHeaders show(){LogisticsClient logisticsServiceClient = null;try {logisticsServiceClient = new LogisticsClient();Client logisticsClient = logisticsServiceClient.getClient();LogisticsInfo logistincInfo = logisticsClient.getLogisticsEstimation(itemId, pincode, DeliveryType.PREPAID);days = logistincInfo.getDeliveryTime();isCODAvailable = logistincInfo.isCodAllowed();isOTGAvailable = logistincInfo.isOtgAvailable();} catch (LogisticsServiceException e) {days = -1;isCODAvailable = false;log.error("Unable to get estimate/COD availability for " + itemId, e);} catch(TException e) {} catch (Exception e) {}response.put("delivery_estimate", Long.toString(days));response.put("is_cod_available_for_location", Boolean.toString(isCODAvailable));response.put("on_time_guarantee", Boolean.toString(isOTGAvailable));try{if(pincode.length() == 6 && !pincode.equals("110001")){String requestOrigin = request.getHeader("referer").contains("cart")?"Cart":"Product";DataLogger.logData(EventType.DELIVERY_ESTIMATE, getSessionId(), userinfo.getUserId(), userinfo.getEmail(),pincode, (new Long(days)).toString(), (new Long(itemId)).toString(), (new Boolean(isCODAvailable)).toString(),requestOrigin);}}catch(Exception e){log.warn(e.getMessage()+"pincode : "+ pincode + " Actual referer : " + request.getHeader("referer") + e.getStackTrace());}return new DefaultHttpHeaders("index");}/**** @param id*/public void setId(String id) {this.id = id;StringTokenizer tokenizer = new StringTokenizer(this.id, "_");this.pincode = tokenizer.nextToken();this.itemId = Long.parseLong(tokenizer.nextToken());}public String getResponseJSONString() {Gson gson = new Gson();return gson.toJson(response);}}