Rev 11110 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.List;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.lang.xwork.StringUtils;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.HttpGet;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import in.shop2020.model.v1.catalog.CatalogService.Client;import in.shop2020.model.v1.catalog.FlipkartItem;import in.shop2020.model.v1.catalog.MarketplaceHistory;import in.shop2020.thrift.clients.CatalogClient;import com.google.api.client.http.HttpResponse;import com.google.gson.Gson;import com.opensymphony.xwork2.ValidationAwareSupport;@SuppressWarnings({"unused"})@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})public class SnapdealScraperController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{/****/private static final long serialVersionUID = 105919058664635958L;private static Logger logger = LoggerFactory.getLogger(SnapdealScraperController.class);private HttpServletRequest request;private HttpServletResponse response;private HttpSession session;private ServletContext context;private String supc;private JSONObject scrapingObj;// private String saholicSp;// private String saholicOfferPrice;// private String saholicTp;// private String saholicRank;// private String competitor;// private String competitorSp;// private String competitorOfferPrice;// private String competitorTp;// private String competitorInventory;// private String ourInventory;// private String subsidyDiff;public String index() throws ClientProtocolException, IOException, JSONException{DefaultHttpClient client = new DefaultHttpClient();HttpGet request = new HttpGet("http://www.snapdeal.com/acors/json/gvbps?supc="+supc+"&catId=91");org.apache.http.HttpResponse response = client.execute(request);// Get the responseBufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));String line = "";StringBuilder sb = new StringBuilder();double ourOfferPrice = 0 , ourSp = 0 , secondLowestSellerSp= 0,lowestOfferPrice= 0 , secondLowestSellerOfferPrice=0, lowestSp=0;int otherInventory = 0 ,ourInventory = 0, rank=0, secondLowestSellerInventory=0;String lowestSellerName ="", lowestSellerCode="", secondLowestSellerName="", secondLowestSellerCode="";while ((line = rd.readLine()) != null) {sb.append(line);}JSONArray jsonArray = new JSONArray(sb.toString());int totalSeller = jsonArray.length();for (int i = 0, size = jsonArray.length(); i < size; i++){JSONObject x = jsonArray.getJSONObject(i);if (i==0){lowestSellerName = x.getString("vendorDisplayName");lowestSellerCode = x.getString("vendorCode");try{lowestSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));}catch(Exception e){lowestSp = Double.valueOf(x.getString("sellingPrice"));}lowestOfferPrice = Double.valueOf(x.getString("sellingPrice"));}if (i==1){secondLowestSellerName = x.getString("vendorDisplayName");secondLowestSellerCode = x.getString("vendorCode");try{secondLowestSellerSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));}catch(Exception e){secondLowestSellerSp = Double.valueOf(x.getString("sellingPrice"));}secondLowestSellerOfferPrice = Double.valueOf(x.getString("sellingPrice"));secondLowestSellerInventory = Integer.valueOf(x.getString("buyableInventory"));}if(StringUtils.equals("MobilesnMore", x.getString("vendorDisplayName"))){ourInventory = Integer.valueOf(x.getString("buyableInventory"));try{ourSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));}catch(Exception e){ourSp = Double.valueOf(x.getString("sellingPrice"));}ourOfferPrice = Double.valueOf(x.getString("sellingPrice"));rank = i +1;}else{if (rank==0){otherInventory = otherInventory +Integer.valueOf(x.getString("buyableInventory"));}}scrapingObj = new JSONObject();scrapingObj.put("saholicSp",ourSp);scrapingObj.put("saholicOfferPrice",ourOfferPrice);scrapingObj.put("saholicInventory",ourInventory);scrapingObj.put("saholicRank",rank);if(rank==1 && totalSeller>1){scrapingObj.put("competitorSp",secondLowestSellerSp);scrapingObj.put("competitorOfferPrice",secondLowestSellerOfferPrice);scrapingObj.put("competitorInventory",secondLowestSellerInventory);scrapingObj.put("competitorName",secondLowestSellerName);scrapingObj.put("competitorType","Second Lowest Seller");}else if (rank==1 && totalSeller==1){scrapingObj.put("competitorSp","");scrapingObj.put("competitorOfferPrice","");scrapingObj.put("competitorInventory","");scrapingObj.put("competitorName","");scrapingObj.put("competitorType","");}else if (rank!=1 && totalSeller>0){scrapingObj.put("competitorSp",lowestSp);scrapingObj.put("competitorOfferPrice",lowestOfferPrice);scrapingObj.put("competitorInventory",otherInventory);scrapingObj.put("competitorName",lowestSellerName);scrapingObj.put("competitorType","Lowest Seller");}scrapingObj.put("totalSeller", totalSeller);}return "item-details-json";}public void setSupc(String supc) {this.supc = supc;}////// public String getSaholicSp() {// return saholicSp;// }////// public void setSaholicOfferPrice(String saholicOfferPrice) {// this.saholicOfferPrice = saholicOfferPrice;// }////// public String getSaholicOfferPrice() {// return saholicOfferPrice;// }////// public void setSaholicRank(String saholicRank) {// this.saholicRank = saholicRank;// }////// public String getSaholicRank() {// return saholicRank;// }////// public void setSaholicTp(String saholicTp) {// this.saholicTp = saholicTp;// }////// public String getSaholicTp() {// return saholicTp;// }////// public void setCompetitorSp(String competitorSp) {// this.competitorSp = competitorSp;// }////// public String getCompetitorSp() {// return competitorSp;// }////// public void setCompetitor(String competitor) {// this.competitor = competitor;// }////// public String getCompetitor() {// return competitor;// }public String getItemDetails(){return scrapingObj.toString();}@Overridepublic void setServletContext(ServletContext arg0) {// TODO Auto-generated method stub}public HttpServletRequest getRequest() {logger.info("set request"+request.toString());return request;}public void setRequest(HttpServletRequest request) {this.request = request;}public HttpServletResponse getResponse() {return response;}public void setResponse(HttpServletResponse response) {this.response = response;}public HttpSession getSession() {return session;}public void setSession(HttpSession session) {this.session = session;}public ServletContext getContext() {return context;}public void setContext(ServletContext context) {this.context = context;}@Overridepublic void setServletResponse(HttpServletResponse arg0) {// TODO Auto-generated method stub}@Overridepublic void setServletRequest(HttpServletRequest arg0) {// TODO Auto-generated method stub}// public void setCompetitorOfferPrice(String competitorOfferPrice) {// this.competitorOfferPrice = competitorOfferPrice;// }////// public String getCompetitorOfferPrice() {// return competitorOfferPrice;// }////// public void setCompetitorTp(String competitorTp) {// this.competitorTp = competitorTp;// }////// public String getCompetitorTp() {// return competitorTp;// }////// public void setCompetitorInventory(String competitorInventory) {// this.competitorInventory = competitorInventory;// }////// public String getCompetitorInventory() {// return competitorInventory;// }////// public void setOurInventory(String ourInventory) {// this.ourInventory = ourInventory;// }////// public String getOurInventory() {// return ourInventory;// }////// public void setSubsidyDiff(String subsidyDiff) {// this.subsidyDiff = subsidyDiff;// }////// public String getSubsidyDiff() {// return subsidyDiff;// }}