Rev 8488 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.logistics.PickupStore;import in.shop2020.model.v1.order.LineItem;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.OrderStatus;import in.shop2020.model.v1.order.TransactionServiceException;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.LogisticsClient;import in.shop2020.thrift.clients.TransactionClient;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})})public class PickupStoreStatisticsController implements ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(PickupStoreStatisticsController.class);private static Map<Long, String> stores = null;private HttpServletRequest request;private HttpSession session;private ServletContext context;private List<Order> validOrders;private TransactionClient tsc;private in.shop2020.model.v1.order.TransactionService.Client tClient;private LogisticsClient lsc;private in.shop2020.logistics.LogisticsService.Client lClient;private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");public PickupStoreStatisticsController(){try {tsc = new TransactionClient();tClient = tsc.getClient();if(stores == null){lsc = new LogisticsClient();lClient = lsc.getClient();stores = new HashMap<Long, String>();for(PickupStore store: lClient.getAllPickupStores()){stores.put(store.getId(), store.getName());}}} catch (Exception e) {logger.error("Error connecting to one of the user, order or payment service", e);}}public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {return "authfail";}getStats();return "authsuccess";}private void getStats() {try {validOrders = tClient.getValidOrders(0, true);} catch (Exception e){logger.error("Error while getting order statistics", e);}}public List<Order> getValidOrders() {return validOrders;}public LineItem getItem(Order order) throws TransactionServiceException, TException {LineItem lItem = order.getLineitems().get(0);return lItem;}public String getOrderStatusString(OrderStatus status) {return status.getDescription();}public String getDateTime(long milliseconds) {Calendar cal = Calendar.getInstance();cal.setTimeInMillis(milliseconds);return formatter.format(cal.getTime());}@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}public String getLastUpdateTime(Order order){long lastActionTime = 0;switch (order.getStatus().getValue()) {case 2:lastActionTime = order.getCreated_timestamp();break;case 3:lastActionTime = (order.getVerification_timestamp() == 0) ? order.getCreated_timestamp() : order.getVerification_timestamp();break;case 4:lastActionTime = order.getAccepted_timestamp();break;case 5:lastActionTime = order.getOutofstock_timestamp();break;case 7:lastActionTime = order.getBilling_timestamp();break;case 9:lastActionTime = order.getShipping_timestamp();break;case 10:lastActionTime = order.getPickup_timestamp();break;case 12:lastActionTime = order.getDelivery_timestamp();break;case 15:lastActionTime = order.getRefund_timestamp();break;case 18:lastActionTime = order.getRefund_timestamp();break;case 31:lastActionTime = order.getRefund_timestamp();break;case 34:lastActionTime = order.getRefund_timestamp();break;case 80:lastActionTime = order.getDelivery_timestamp();break;case 81:lastActionTime = order.getDelivery_timestamp();break;case 63:lastActionTime = order.getDoa_auth_timestamp();break;case 60:lastActionTime = order.getDoa_auth_timestamp();break;default:lastActionTime = Calendar.getInstance().getTimeInMillis();break;}return getDateTime(lastActionTime);}public String getServletContextPath() {return context.getContextPath();}public String getStoreName(long storeId){return stores.get(storeId);}}