Rev 3100 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%@page import="java.util.Map"%><%@page import="java.util.HashMap"%><%@page import="java.util.Calendar"%><%@page import="java.util.Date"%><%@page import="java.util.TimeZone"%><%@page import="java.text.SimpleDateFormat"%><%@page import="com.google.appengine.api.datastore.Query.SortDirection"%><%@page import="java.util.Map.Entry"%><%@ page import="java.util.List" %><%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %><%@ page import="com.google.appengine.api.datastore.DatastoreService" %><%@ page import="com.google.appengine.api.datastore.Query" %><%@ page import="com.google.appengine.api.datastore.Entity" %><%@ page import="com.google.appengine.api.datastore.PreparedQuery" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><link rel="stylesheet" href="/DataTables/media/css/demo_table.css" type="text/css" /><link rel="stylesheet" href="/DataTables/extras/TableTools/media/css/TableTools.css" type="text/css" /></head><body><%SimpleDateFormat iSdf = new SimpleDateFormat("yyyyMMdd");Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("IST"));String dateStr = request.getParameter("date");if (dateStr != null && !dateStr.isEmpty()) {cal.setTime(iSdf.parse(dateStr));}else {dateStr = iSdf.format(cal.getTime());}cal.add(Calendar.DAY_OF_MONTH, 1);Date toDate = iSdf.parse(iSdf.format(cal.getTime()));cal.add(Calendar.DAY_OF_MONTH, -1);Date fromDate = iSdf.parse(iSdf.format(cal.getTime()));String fromDateStr = request.getParameter("fromDate");if (fromDateStr == null || fromDateStr.isEmpty()) {fromDateStr = iSdf.format(fromDate);}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");sdf.setTimeZone(TimeZone.getTimeZone("IST"));DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();Query query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "PRODUCT_VIEW");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN, toDate);PreparedQuery pq = datastore.prepare(query);Map<String, Long> prodViewCountMap = new HashMap<String, Long>();for (Entity result : pq.asIterable()) {if (prodViewCountMap.containsKey((String)result.getProperty("productName"))) {Long count = prodViewCountMap.get((String)result.getProperty("productName"));prodViewCountMap.put((String)result.getProperty("productName"), ++count);}else {prodViewCountMap.put((String)result.getProperty("productName"), 1L);}}query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "ADD_TO_CART");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN, toDate);pq = datastore.prepare(query);Map<Long, Long> prodAddToCartCountMap = new HashMap<Long, Long>();for (Entity result : pq.asIterable()) {for (Long itemId : (List<Long>)result.getProperty("itemIds")) {if (prodAddToCartCountMap.containsKey(itemId)) {Long count = prodAddToCartCountMap.get(itemId);prodAddToCartCountMap.put(itemId, ++count);}else {prodAddToCartCountMap.put(itemId, 1L);}}}query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "DELETE_FROM_CART");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN, toDate);pq = datastore.prepare(query);Map<Long, Long> prodDeleteFromCartCountMap = new HashMap<Long, Long>();for (Entity result : pq.asIterable()) {for (Long itemId : (List<Long>)result.getProperty("itemIds")) {if (prodDeleteFromCartCountMap.containsKey(itemId)) {Long count = prodDeleteFromCartCountMap.get(itemId);prodDeleteFromCartCountMap.put(itemId, ++count);}else {prodDeleteFromCartCountMap.put(itemId, 1L);}}}query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "RESEARCH_ADD");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN, toDate);pq = datastore.prepare(query);Map<Long, Long> prodResearchAddCountMap = new HashMap<Long, Long>();for (Entity result : pq.asIterable()) {for (Long itemId : (List<Long>)result.getProperty("itemIds")) {if (prodResearchAddCountMap.containsKey(itemId)) {Long count = prodResearchAddCountMap.get(itemId);prodResearchAddCountMap.put(itemId, ++count);}else {prodResearchAddCountMap.put(itemId, 1l);}}}query = new Query("DataLog");query.addFilter("eventType", Query.FilterOperator.EQUAL, "RESEARCH_DELETE");query.addFilter("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, fromDate);query.addFilter("date", Query.FilterOperator.LESS_THAN, toDate);pq = datastore.prepare(query);Map<Long, Long> prodResearchDeleteCountMap = new HashMap<Long, Long>();for (Entity result : pq.asIterable()) {for (Long itemId : (List<Long>)result.getProperty("itemIds")) {if (prodResearchDeleteCountMap.containsKey(itemId)) {Long count = prodResearchDeleteCountMap.get(itemId);prodResearchDeleteCountMap.put(itemId, ++count);}else {prodResearchDeleteCountMap.put(itemId, 1L);}}}%><form id="frmProductActivity" name="frmProductActivity" method="post" action="/jsp/product-activity.jsp"><label>Date(YYYYMMDD) : </label> <input type="text" name="date" id="date" value="<%= dateStr %>"/><input type="submit" name="submit" id="submit" value="Submit"/><br/></form><table cellpadding="0" cellspacing="0" border="0" class="display" id="parent"><tr><td colspan="2"><table cellpadding="0" cellspacing="0" border="0" class="display"id="prodView"><thead><tr><th>Product</th><th>ViewCount</th></tr></thead><tbody><%for (Entry entry : prodViewCountMap.entrySet()) {%><tr><td><%= entry.getKey()%></td><td><%=entry.getValue()%></td></tr><%}%></tbody></table></td><td><table cellpadding="0" cellspacing="0" border="0" class="display"id="prodCartAdd"><thead><tr><th>Product</th><th>Cart Add</th></tr></thead><tbody><%for (Entry entry : prodAddToCartCountMap.entrySet()) {%><tr><td><%= entry.getKey()%></td><td><%=entry.getValue()%></td></tr><%}%></tbody></table></td></tr><tr><td><table cellpadding="0" cellspacing="0" border="0" class="display"id="prodDeletedFromCart"><thead><tr><th>Product</th><th>Cart Delete</th></tr></thead><tbody><%for (Entry entry : prodDeleteFromCartCountMap.entrySet()) {%><tr><td><%= entry.getKey()%></td><td><%=entry.getValue()%></td></tr><%}%></tbody></table></td><td><table cellpadding="0" cellspacing="0" border="0" class="display"id="prodResearchAdd"><thead><tr><th>Product</th><th>Research Add</th></tr></thead><tbody><%for (Entry entry : prodResearchAddCountMap.entrySet()) {%><tr><td><%= entry.getKey()%></td><td><%=entry.getValue()%></td></tr><%}%></tbody></table></td><td><table cellpadding="0" cellspacing="0" border="0" class="display"id="prodResearchDelete"><thead><tr><th>Product</th><th>Research Delete</th></tr></thead><tbody><%for (Entry entry : prodResearchDeleteCountMap.entrySet()) {%><tr><td><%= entry.getKey()%></td><td><%=entry.getValue()%></td></tr><%}%></tbody></table></td></tr></table><script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.js"></script><script type="text/javascript" language="javascript" src="/DataTables/media/js/jquery.dataTables.min.js"></script><script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/ZeroClipboard.js"></script><script type="text/javascript" charset="utf-8" src="/DataTables/extras/TableTools/media/js/TableTools.js"></script><script type="text/javascript" charset="utf-8">$(document).ready(function() {$('#prodView').dataTable({"iDisplayLength": 10,"bProcessing": true,"aaSorting": [[1,'desc']],"aLengthMenu": [[5, 10, 25,-1], [5, 10, 25, "All"]]});} );$(document).ready(function() {$('#prodCartAdd').dataTable({"iDisplayLength": 10,"bProcessing": true,"aaSorting": [[1,'desc']],"aLengthMenu": [[5, 10, 25,-1], [5, 10, 25, "All"]]});} );$(document).ready(function() {$('#prodDeletedFromCart').dataTable({"iDisplayLength": 10,"bProcessing": true,"aaSorting": [[1,'desc']],"aLengthMenu": [[5, 10, 25,-1], [5, 10, 25, "All"]]});} );$(document).ready(function() {$('#prodResearchAdd').dataTable({"iDisplayLength": 10,"bProcessing": true,"aaSorting": [[1,'desc']],"aLengthMenu": [[5, 10, 25,-1], [5, 10, 25, "All"]]});} );$(document).ready(function() {$('#prodResearchDelete').dataTable({"iDisplayLength": 10,"bProcessing": true,"aaSorting": [[1,'desc']],"aLengthMenu": [[5, 10, 25,-1], [5, 10, 25, "All"]]});} );</script></body></html>