Subversion Repositories SmartDukaan

Rev

Rev 7272 | Rev 7323 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
7263 anupam.sin 1
/**
2
 * 
3
 */
4
package in.shop2020.serving.controllers;
5
 
7272 amit.gupta 6
import in.shop2020.logistics.DeliveryType;
7
import in.shop2020.logistics.LogisticsInfo;
8
import in.shop2020.logistics.LogisticsService.Client;
9
import in.shop2020.model.v1.catalog.StorePricing;
10
import in.shop2020.thrift.clients.CatalogClient;
11
import in.shop2020.thrift.clients.LogisticsClient;
12
 
7263 anupam.sin 13
import java.text.SimpleDateFormat;
14
import java.util.Date;
15
import java.util.HashMap;
16
import java.util.Map;
17
import java.util.StringTokenizer;
18
 
19
import org.apache.log4j.Logger;
20
 
21
import com.google.gson.Gson;
22
 
23
/**
24
 * @author rajveer
25
 *
26
 */
27
public class EstimateController extends BaseController {
28
 
29
    private static final long serialVersionUID = 8023801600023970837L;
30
 
31
    private static Logger log = Logger.getLogger(Class.class);  
32
    private String id;
33
    private long itemId;
34
    private long product_id;
35
    private String pin;
36
    private long date = -1;
37
    private boolean isCODAvailable;
38
    private boolean isOTGAvailable;
39
    private double sellingPrice;
7293 anupam.sin 40
    private long minAdvanceAmount;
7263 anupam.sin 41
    private Map<String, String> response = new HashMap<String, String>();
7293 anupam.sin 42
 
43
    private double maxSellingPrice;
44
 
45
    private double minSellingPrice;
7263 anupam.sin 46
 
47
    public EstimateController() {
48
        super();
49
    }
50
 
51
    // GET /logout
7268 anupam.sin 52
    public String create(){
7263 anupam.sin 53
        LogisticsClient logisticsServiceClient = null;
54
        CatalogClient catalogServiceClient = null;
55
        try {
56
            logisticsServiceClient = new LogisticsClient();
57
            Client logisticsClient = logisticsServiceClient.getClient();
58
            LogisticsInfo logistincInfo = logisticsClient.getLogisticsEstimationForStore(itemId, pin, DeliveryType.COD);
59
            date = logistincInfo.getDeliveryTime();
60
            isCODAvailable = logistincInfo.isCodAllowed();
61
            isOTGAvailable = logistincInfo.isOtgAvailable();
62
            catalogServiceClient = new CatalogClient();
63
            StorePricing sp = catalogServiceClient.getClient().getStorePricing(itemId);
64
            sellingPrice = sp.getRecommendedPrice();
7293 anupam.sin 65
            minAdvanceAmount = logistincInfo.getProviderId();
66
            maxSellingPrice = sp.getMaxPrice();
67
            minSellingPrice = sp.getMinPrice();
7263 anupam.sin 68
 
7268 anupam.sin 69
        } catch (Exception e)   {
7263 anupam.sin 70
            date = -1;
71
            isCODAvailable = false;
72
            log.error("Unable to get estimate/COD availability for " + itemId, e);
73
        }
7293 anupam.sin 74
        SimpleDateFormat dateformat = new SimpleDateFormat("dd MMMM yyyy");
7263 anupam.sin 75
 
76
        response.put("delivery_estimate", dateformat.format(new Date(date)));
77
        response.put("is_cod_available_for_location", Boolean.toString(isCODAvailable));
78
        response.put("on_time_guarantee", Boolean.toString(isOTGAvailable));
79
        response.put("selling_price", Double.toString(sellingPrice));
7293 anupam.sin 80
        response.put("min_advance_amount", Long.toString(minAdvanceAmount));
81
        response.put("min_selling_price", Double.toString(minSellingPrice));
82
        response.put("max_selling_price", Double.toString(maxSellingPrice));
7268 anupam.sin 83
        return "index";
7263 anupam.sin 84
    }
7272 amit.gupta 85
 
86
    public String show(){
87
        StringTokenizer tokenizer = new StringTokenizer(this.id, "_");
88
        this.pin = tokenizer.nextToken();
89
        this.itemId = Long.parseLong(tokenizer.nextToken());
90
    	return create();
91
    }
7263 anupam.sin 92
 
93
    public String getResponseJSONString() {
94
        Gson gson = new Gson();
95
        return gson.toJson(response);
96
    }
97
 
98
    public void setProduct_id(long product_id) {
99
        this.itemId = product_id;
100
    }
101
 
102
    public long getProduct_id() {
103
        return product_id;
104
    }
7268 anupam.sin 105
 
106
    public String getPin() {
107
        return pin;
108
    }
109
 
110
    public void setPin(String pin) {
111
        this.pin = pin;
112
    }
7272 amit.gupta 113
 
114
    public void setId(String id){
115
    	this.id = id;
116
    }
7263 anupam.sin 117
}