Rev 7268 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import java.text.SimpleDateFormat;import java.util.Date;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.model.v1.catalog.StorePricing;import in.shop2020.thrift.clients.CatalogClient;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 long product_id;private String pin;private long date = -1;private boolean isCODAvailable;private boolean isOTGAvailable;private double sellingPrice;private double minAdvanceAmount;private Map<String, String> response = new HashMap<String, String>();public EstimateController() {super();}// GET /logoutpublic HttpHeaders create(){LogisticsClient logisticsServiceClient = null;CatalogClient catalogServiceClient = null;try {logisticsServiceClient = new LogisticsClient();Client logisticsClient = logisticsServiceClient.getClient();LogisticsInfo logistincInfo = logisticsClient.getLogisticsEstimationForStore(itemId, pin, DeliveryType.COD);date = logistincInfo.getDeliveryTime();isCODAvailable = logistincInfo.isCodAllowed();isOTGAvailable = logistincInfo.isOtgAvailable();catalogServiceClient = new CatalogClient();StorePricing sp = catalogServiceClient.getClient().getStorePricing(itemId);sellingPrice = sp.getRecommendedPrice();minAdvanceAmount = sp.getMinAdvancePrice();} catch (LogisticsServiceException e) {date = -1;isCODAvailable = false;log.error("Unable to get estimate/COD availability for " + itemId, e);} catch(TException e) {} catch (Exception e) {}SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");response.put("delivery_estimate", dateformat.format(new Date(date)));response.put("is_cod_available_for_location", Boolean.toString(isCODAvailable));response.put("on_time_guarantee", Boolean.toString(isOTGAvailable));response.put("selling_price", Double.toString(sellingPrice));response.put("min_advance_amount", Double.toString(minAdvanceAmount));return new DefaultHttpHeaders("index");}public String getResponseJSONString() {Gson gson = new Gson();return gson.toJson(response);}public void setProduct_id(long product_id) {this.itemId = product_id;}public long getProduct_id() {return product_id;}}