Subversion Repositories SmartDukaan

Rev

Rev 11122 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
11110 kshitij.so 1
package in.shop2020.support.controllers;
2
 
3
import java.io.BufferedReader;
4
import java.io.IOException;
5
import java.io.InputStreamReader;
6
import java.util.List;
7
 
8
import javax.servlet.ServletContext;
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletResponse;
11
import javax.servlet.http.HttpSession;
12
 
13
import org.apache.commons.httpclient.HttpClient;
14
import org.apache.commons.lang.xwork.StringUtils;
15
import org.apache.http.client.ClientProtocolException;
16
import org.apache.http.client.methods.HttpGet;
17
import org.apache.http.impl.client.DefaultHttpClient;
18
import org.apache.struts2.convention.annotation.InterceptorRef;
19
import org.apache.struts2.convention.annotation.InterceptorRefs;
20
import org.apache.struts2.interceptor.ServletRequestAware;
21
import org.apache.struts2.interceptor.ServletResponseAware;
22
import org.apache.struts2.util.ServletContextAware;
23
import org.apache.thrift.TException;
24
import org.json.JSONArray;
25
import org.json.JSONException;
26
import org.json.JSONObject;
27
import org.slf4j.Logger;
28
import org.slf4j.LoggerFactory;
29
 
30
import in.shop2020.model.v1.catalog.CatalogService.Client;
31
import in.shop2020.model.v1.catalog.FlipkartItem;
32
import in.shop2020.model.v1.catalog.MarketplaceHistory;
33
import in.shop2020.thrift.clients.CatalogClient;
34
 
35
import com.google.api.client.http.HttpResponse;
36
import com.google.gson.Gson;    
37
import com.opensymphony.xwork2.ValidationAwareSupport;
38
 
39
@SuppressWarnings({"unused"})
40
 
41
@InterceptorRefs({
42
    @InterceptorRef("defaultStack"),
43
    @InterceptorRef("login")
44
})
45
 
46
public class SnapdealScraperController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{
47
 
48
    /**
49
     * 
50
     */
51
    private static final long serialVersionUID = 105919058664635958L;
52
 
53
    private static Logger logger = LoggerFactory.getLogger(SnapdealScraperController.class);
54
 
55
    private HttpServletRequest request;
56
    private HttpServletResponse response;
57
    private HttpSession session;
58
    private ServletContext context;
59
    private String supc;
60
    private JSONObject scrapingObj;
61
    //    private String saholicSp;
62
    //    private String saholicOfferPrice;
63
    //    private String saholicTp;
64
    //    private String saholicRank;
65
    //    private String competitor;
66
    //    private String competitorSp;
67
    //    private String competitorOfferPrice;
68
    //    private String competitorTp;
69
    //    private String competitorInventory;
70
    //    private String ourInventory;
71
    //    private String subsidyDiff;
72
 
73
    public String index() throws ClientProtocolException, IOException, JSONException{
74
        DefaultHttpClient client = new DefaultHttpClient();
75
        HttpGet request = new HttpGet("http://www.snapdeal.com/acors/json/gvbps?supc="+supc+"&catId=91");
76
        org.apache.http.HttpResponse response = client.execute(request);
77
 
78
        // Get the response
79
        BufferedReader rd = new BufferedReader
80
        (new InputStreamReader(response.getEntity().getContent()));
81
 
82
        String line = "";
83
        StringBuilder sb = new StringBuilder();
84
        double ourOfferPrice = 0 , ourSp = 0 , secondLowestSellerSp= 0,lowestOfferPrice= 0 ,  secondLowestSellerOfferPrice=0, lowestSp=0;
85
        int otherInventory = 0 ,ourInventory = 0, rank=0, secondLowestSellerInventory=0;
86
        String lowestSellerName ="", lowestSellerCode="", secondLowestSellerName="", secondLowestSellerCode="";
87
        while ((line = rd.readLine()) != null) {
88
            sb.append(line);
89
        }
90
        JSONArray jsonArray = new JSONArray(sb.toString());
91
        int totalSeller = jsonArray.length();
92
        for (int i = 0, size = jsonArray.length(); i < size; i++){
93
            JSONObject x = jsonArray.getJSONObject(i);
94
            if (i==0){
95
                lowestSellerName = x.getString("vendorDisplayName");
96
                lowestSellerCode = x.getString("vendorCode");
97
                try{
98
                    lowestSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));
99
                }
100
                catch(Exception e){
101
                    lowestSp = Double.valueOf(x.getString("sellingPrice"));
102
                }
103
                lowestOfferPrice = Double.valueOf(x.getString("sellingPrice"));
104
            }
105
            if (i==1){
106
                secondLowestSellerName = x.getString("vendorDisplayName");
107
                secondLowestSellerCode = x.getString("vendorCode");
108
                try{
109
                    secondLowestSellerSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));
110
                }
111
                catch(Exception e){
112
                    secondLowestSellerSp = Double.valueOf(x.getString("sellingPrice"));
113
                }
114
                secondLowestSellerOfferPrice = Double.valueOf(x.getString("sellingPrice"));
115
                secondLowestSellerInventory = Integer.valueOf(x.getString("buyableInventory"));
116
            }
117
            if(StringUtils.equals("MobilesnMore", x.getString("vendorDisplayName"))){
118
                ourInventory = Integer.valueOf(x.getString("buyableInventory"));
119
                try{
120
                    ourSp = Double.valueOf(x.getString("sellingPriceBefIntCashBack"));
121
                }
122
                catch(Exception e){
123
                    ourSp = Double.valueOf(x.getString("sellingPrice"));
124
                }
125
                ourOfferPrice = Double.valueOf(x.getString("sellingPrice"));
126
                rank = i +1;
127
            }
128
            else{
129
                if (rank==0){
130
                    otherInventory = otherInventory +Integer.valueOf(x.getString("buyableInventory"));
131
                }
132
            }
133
 
134
            scrapingObj = new JSONObject();
135
            scrapingObj.put("saholicSp",ourSp);
136
            scrapingObj.put("saholicOfferPrice",ourOfferPrice);
137
            scrapingObj.put("saholicInventory",ourInventory);
138
            scrapingObj.put("saholicRank",rank);
139
            if(rank==1 && totalSeller>1){
140
                scrapingObj.put("competitorSp",secondLowestSellerSp);
141
                scrapingObj.put("competitorOfferPrice",secondLowestSellerOfferPrice);
142
                scrapingObj.put("competitorInventory",secondLowestSellerInventory);
143
            }
144
            else if (rank==1 && totalSeller==1){
145
                scrapingObj.put("competitorSp","");
146
                scrapingObj.put("competitorOfferPrice","");
147
                scrapingObj.put("competitorInventory","");
148
            }
149
            else if (rank!=1 && totalSeller>0){
150
                scrapingObj.put("competitorSp",lowestSp);
151
                scrapingObj.put("competitorOfferPrice",lowestOfferPrice);
152
                scrapingObj.put("competitorInventory",otherInventory);
153
            }
154
            scrapingObj.put("totalSeller", totalSeller);
155
        }
156
        return "item-details-json";
157
    }
158
 
159
 
160
    public void setSupc(String supc) {
161
        this.supc = supc;
162
    }
163
    //
164
    //
165
    //    public String getSaholicSp() {
166
    //        return saholicSp;
167
    //    }
168
    //
169
    //
170
    //    public void setSaholicOfferPrice(String saholicOfferPrice) {
171
    //        this.saholicOfferPrice = saholicOfferPrice;
172
    //    }
173
    //
174
    //
175
    //    public String getSaholicOfferPrice() {
176
    //        return saholicOfferPrice;
177
    //    }
178
    //
179
    //
180
    //    public void setSaholicRank(String saholicRank) {
181
    //        this.saholicRank = saholicRank;
182
    //    }
183
    //
184
    //
185
    //    public String getSaholicRank() {
186
    //        return saholicRank;
187
    //    }
188
    //
189
    //
190
    //    public void setSaholicTp(String saholicTp) {
191
    //        this.saholicTp = saholicTp;
192
    //    }
193
    //
194
    //
195
    //    public String getSaholicTp() {
196
    //        return saholicTp;
197
    //    }
198
    //
199
    //
200
    //    public void setCompetitorSp(String competitorSp) {
201
    //        this.competitorSp = competitorSp;
202
    //    }
203
    //
204
    //
205
    //    public String getCompetitorSp() {
206
    //        return competitorSp;
207
    //    }
208
    //
209
    //
210
    //    public void setCompetitor(String competitor) {
211
    //        this.competitor = competitor;
212
    //    }
213
    //
214
    //
215
    //    public String getCompetitor() {
216
    //        return competitor;
217
    //    }
218
 
219
 
220
    public String getItemDetails(){
221
        return scrapingObj.toString();
222
    }
223
 
224
 
225
    @Override
226
    public void setServletContext(ServletContext arg0) {
227
        // TODO Auto-generated method stub
228
 
229
    }
230
 
231
    public HttpServletRequest getRequest() {
232
        logger.info("set request"+request.toString());
233
        return request;
234
    }
235
 
236
    public void setRequest(HttpServletRequest request) {
237
        this.request = request;
238
    }
239
 
240
    public HttpServletResponse getResponse() {
241
        return response;
242
    }
243
 
244
    public void setResponse(HttpServletResponse response) {
245
        this.response = response;
246
    }
247
 
248
    public HttpSession getSession() {
249
        return session;
250
    }
251
 
252
    public void setSession(HttpSession session) {
253
        this.session = session;
254
    }
255
 
256
    public ServletContext getContext() {
257
        return context;
258
    }
259
 
260
    public void setContext(ServletContext context) {
261
        this.context = context;
262
    }
263
 
264
 
265
    @Override
266
    public void setServletResponse(HttpServletResponse arg0) {
267
        // TODO Auto-generated method stub
268
 
269
    }
270
 
271
 
272
    @Override
273
    public void setServletRequest(HttpServletRequest arg0) {
274
        // TODO Auto-generated method stub
275
 
276
    }
277
 
278
 
279
    //    public void setCompetitorOfferPrice(String competitorOfferPrice) {
280
    //        this.competitorOfferPrice = competitorOfferPrice;
281
    //    }
282
    //
283
    //
284
    //    public String getCompetitorOfferPrice() {
285
    //        return competitorOfferPrice;
286
    //    }
287
    //
288
    //
289
    //    public void setCompetitorTp(String competitorTp) {
290
    //        this.competitorTp = competitorTp;
291
    //    }
292
    //
293
    //
294
    //    public String getCompetitorTp() {
295
    //        return competitorTp;
296
    //    }
297
    //
298
    //
299
    //    public void setCompetitorInventory(String competitorInventory) {
300
    //        this.competitorInventory = competitorInventory;
301
    //    }
302
    //
303
    //
304
    //    public String getCompetitorInventory() {
305
    //        return competitorInventory;
306
    //    }
307
    //
308
    //
309
    //    public void setOurInventory(String ourInventory) {
310
    //        this.ourInventory = ourInventory;
311
    //    }
312
    //
313
    //
314
    //    public String getOurInventory() {
315
    //        return ourInventory;
316
    //    }
317
    //
318
    //
319
    //    public void setSubsidyDiff(String subsidyDiff) {
320
    //        this.subsidyDiff = subsidyDiff;
321
    //    }
322
    //
323
    //
324
    //    public String getSubsidyDiff() {
325
    //        return subsidyDiff;
326
    //    }
327
}