Subversion Repositories SmartDukaan

Rev

Rev 11122 | 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=175"+"&sort=sellingPrice");
        org.apache.http.HttpResponse response = client.execute(request);

        // Get the response
        BufferedReader 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();
    }


    @Override
    public 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;
    }


    @Override
    public void setServletResponse(HttpServletResponse arg0) {
        // TODO Auto-generated method stub
        
    }


    @Override
    public 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;
    //    }
}