Subversion Repositories SmartDukaan

Rev

Rev 12169 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;

import java.text.DecimalFormat;
import java.util.List;

import in.shop2020.model.v1.catalog.CatalogService.Client;
import in.shop2020.model.v1.catalog.PdPriceComp;
import in.shop2020.thrift.clients.CatalogClient;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

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.apache.thrift.transport.TTransportException;

import com.opensymphony.xwork2.ValidationAwareSupport;

public class PrivateDealsComparisonController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{

    /**
     * 
     */
    private static final long serialVersionUID = 4278491749496095875L;
    
    private HttpServletRequest request;
    private HttpSession session;
    private ServletContext context;
    private HttpServletResponse response;
    private List<PdPriceComp> pdData;
    private String lastProcessedTimestamp;
    
    
    public String index() throws TException{
        return "index";
    }
    
    public String getCompData() throws TException{
        Client catalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
        setPdData(catalogClient.getAllPrivateDealsComparison());
        for (PdPriceComp data : pdData){
            if (data.getSdPrice()==0 && data.getFkPrice()==0 && data.getAmazonPrice()==0){
                data.setDiff(roundDecimals(data.getDealPrice()-0.0));
                continue;
            }
            if (data.getSdPrice()==0.0){
                data.setSdPrice(999999);
            }
            if (data.getFkPrice()==0.0){
                data.setFkPrice(999999);
            }
            if (data.getAmazonPrice()==0.0){
                data.setAmazonPrice(999999);
            }
            double cheapest = (data.getSdPrice()<data.getFkPrice())?((data.getSdPrice()<data.getAmazonPrice())?data.getSdPrice():data.getAmazonPrice()):((data.getFkPrice()<data.getAmazonPrice())?data.getFkPrice():data.getAmazonPrice());
            data.setDiff(roundDecimals(data.getDealPrice()-cheapest));
            if (data.getSdPrice()==999999){
                data.setSdPrice(0.0);
            }
            if (data.getFkPrice()==999999){
                data.setFkPrice(0.0);
            }
            if (data.getAmazonPrice()==999999){
                data.setAmazonPrice(0.0);
            }
        }
        setLastProcessedTimestamp(new java.util.Date(pdData.get(0).getLastProcessedTimestamp()).toLocaleString());
        return "private-deals-comp-data";
    }
    
    double roundDecimals(double d) {
        DecimalFormat twoPlaces = new DecimalFormat("#.#");
        return Double.valueOf(twoPlaces.format(d));
    }

    public void setRequest(HttpServletRequest request) {
        this.request = request;
    }

    public HttpServletRequest getRequest() {
        return request;
    }

    public void setSession(HttpSession session) {
        this.session = session;
    }

    public HttpSession getSession() {
        return session;
    }

    public void setContext(ServletContext context) {
        this.context = context;
    }

    public ServletContext getContext() {
        return context;
    }

    public void setResponse(HttpServletResponse response) {
        this.response = response;
    }

    public HttpServletResponse getResponse() {
        return response;
    }

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

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

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

    public void setPdData(List<PdPriceComp> pdData) {
        this.pdData = pdData;
    }

    public List<PdPriceComp> getPdData() {
        return pdData;
    }

    public String getLastProcessedTimestamp() {
        return lastProcessedTimestamp;
    }

    public void setLastProcessedTimestamp(String lastProcessedTimestamp) {
        this.lastProcessedTimestamp = lastProcessedTimestamp;
    }
        
}