Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
2620 vikas 1
package in.shop2020.web;
2
 
3
import java.io.IOException;
2669 rajveer 4
import java.util.HashMap;
5
import java.util.List;
6
import java.util.Map;
2620 vikas 7
 
8
import javax.servlet.http.HttpServlet;
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletResponse;
11
 
2669 rajveer 12
import org.json.JSONObject;
13
 
2620 vikas 14
import com.google.appengine.api.datastore.DatastoreService;
15
import com.google.appengine.api.datastore.DatastoreServiceFactory;
16
import com.google.appengine.api.datastore.Entity;
17
import com.google.appengine.api.datastore.PreparedQuery;
18
import com.google.appengine.api.datastore.Query;
19
 
20
public class ShowCompareProducts extends HttpServlet {
21
    private static final long serialVersionUID = -8236918415987438049L;
22
 
23
    public void doPost(HttpServletRequest req, HttpServletResponse resp) {
2669 rajveer 24
        resp.setContentType("application/json");
2620 vikas 25
 
26
        DatastoreService datastore = DatastoreServiceFactory
27
                .getDatastoreService();
28
 
29
        Query q = new Query("DataLog");
30
        q.addFilter("eventType", Query.FilterOperator.EQUAL, "PRODUCT_COMPARE");
31
 
32
        PreparedQuery pq = datastore.prepare(q);
2669 rajveer 33
 
34
        Map<Long, Map<Long, Long>> comparisonStats = new HashMap<Long, Map<Long, Long>>();
35
 
2620 vikas 36
        try {
37
            for (Entity result : pq.asIterable()) {
2669 rajveer 38
                List<Long> itemIds =  (List<Long>) result.getProperty("itemIds");
39
                if(itemIds != null && !itemIds.isEmpty()){
40
                	for(int i=0; i<itemIds.size(); i++){
41
                		for(int j=0; j<i; j++){
42
                			Long itemOne = itemIds.get(i);
43
                			Long itemTwo = itemIds.get(j);
44
                			Map<Long, Long> comparedItems;
45
                			comparedItems = comparisonStats.get(itemOne);
46
                			if(comparedItems==null){
47
                				comparedItems = new HashMap<Long, Long>();
48
                				comparisonStats.put(itemOne, comparedItems);
49
                			}
50
                			if(comparedItems.containsKey(itemTwo)){
51
                				comparedItems.put(itemTwo, comparedItems.get(itemTwo)+1);
52
                			}else{
53
                				comparedItems.put(itemTwo, 1L);
54
                			}
55
 
56
                			comparedItems = comparisonStats.get(itemTwo);;
57
                			if(comparedItems==null){
58
                				comparedItems = new HashMap<Long, Long>();
59
                				comparisonStats.put(itemTwo, comparedItems);
60
                			}
61
                			if(comparedItems.containsKey(itemOne)){
62
                				comparedItems.put(itemOne, comparedItems.get(itemOne)+1);
63
                			}else{
64
                				comparedItems.put(itemOne, 1L);
65
                			}
66
                		}
67
                	}
68
                }
69
                //resp.getWriter().println(comparisonStats);
2620 vikas 70
            }
2669 rajveer 71
 
72
            JSONObject comparisonStatsJson = new JSONObject(comparisonStats);
73
            resp.getWriter().println(comparisonStatsJson);
74
 
2620 vikas 75
        } catch (IOException e) {
76
            e.printStackTrace();
77
        }
78
    }
79
 
80
    public void doGet(HttpServletRequest req, HttpServletResponse resp) {
81
        doPost(req, resp);
82
    }
83
}