Rev 7695 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import in.shop2020.logistics.DeliveryType;import in.shop2020.logistics.LogisticsInfo;import in.shop2020.logistics.LogisticsService.Client;import in.shop2020.model.v1.catalog.Item;import in.shop2020.model.v1.catalog.ItemShippingInfo;import in.shop2020.model.v1.catalog.StorePricing;import in.shop2020.thrift.clients.CatalogClient;import in.shop2020.thrift.clients.LogisticsClient;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import java.util.StringTokenizer;import org.apache.log4j.Logger;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 long minAdvanceAmount;private Map<String, String> response = new HashMap<String, String>();private double maxSellingPrice;private double minSellingPrice;private boolean isActive;private boolean activeOnStore;public EstimateController() {super();}// GET /logoutpublic String create(){StorePricing sp = new StorePricing();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();//We are using providerId field of logistics info to get minAdvanceminAdvanceAmount = logistincInfo.getProviderId();} catch (Exception e) {date = -1;isCODAvailable = false;log.error("Unable to get estimate/COD availability for " + itemId, e);}try {catalogServiceClient = new CatalogClient();ItemShippingInfo info = catalogServiceClient.getClient().isActive(itemId);isActive = info.isIsActive();//activeOnStore = catalogServiceClient.getClient().getItem(itemId).isActiveOnStore();sp = catalogServiceClient.getClient().getStorePricing(itemId);sellingPrice = sp.getRecommendedPrice();maxSellingPrice = sp.getMaxPrice();minSellingPrice = sp.getMinPrice();} catch (Exception e) {log.error("Unable to get store pricing for " + itemId, e);}SimpleDateFormat dateformat = new SimpleDateFormat("dd MMMM 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", Long.toString(minAdvanceAmount));response.put("min_selling_price", Double.toString(minSellingPrice));response.put("max_selling_price", Double.toString(maxSellingPrice));response.put("best_deal_text", sp.getBestDealText() == null ? " " : sp.getBestDealText());response.put("freebie_item_id", Long.toString(sp.getFreebieItemId()));response.put("absolute_min_price", Double.toString(sp.getAbsoluteMinPrice()));response.put("is_active", Boolean.toString(isActive));response.put("active_on_store", "true");return "index";}public String show(){StringTokenizer tokenizer = new StringTokenizer(this.id, "_");this.pin = tokenizer.nextToken();this.itemId = Long.parseLong(tokenizer.nextToken());return create();}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;}public String getPin() {return pin;}public void setPin(String pin) {this.pin = pin;}public void setId(String id){this.id = id;}}