Rev 1884 | Rev 1941 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;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.model.v1.user.UserType;import in.shop2020.thrift.clients.HelperServiceClient;import in.shop2020.thrift.clients.PaymentServiceClient;import in.shop2020.thrift.clients.TransactionServiceClient;import in.shop2020.thrift.clients.UserContextServiceClient;import in.shop2020.utils.StatisticsUser;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.thrift.TException;public class StatisticsController implements ServletRequestAware {private HttpServletRequest request;private HttpSession session;private String errorMsg = "";private long noOfRegisterUsers;private long noOfOrders;private long noOfCustomers;private double maxOrderAmount;private double minOrderAmount;private double maxPaymentAmount;private double minPaymentAmount;private List<Double> paymentAmountRange;private List<Double> orderAmountRange;private List<Order> validOrders;private HelperServiceClient hsc;private in.shop2020.utils.HelperService.Client hClient;private UserContextServiceClient usc;private in.shop2020.model.v1.user.UserContextService.Client uclient;private TransactionServiceClient tsc;private in.shop2020.model.v1.order.TransactionService.Client tClient;private PaymentServiceClient psc;in.shop2020.payments.PaymentService.Client pClient;public StatisticsController() {try {hsc = new HelperServiceClient();hClient = hsc.getClient();usc = new UserContextServiceClient();uclient = usc.getClient();tsc = new TransactionServiceClient();tClient = tsc.getClient();psc = new PaymentServiceClient();pClient = psc.getClient();} catch (Exception e) {e.printStackTrace();}}@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}public String index() {if (getSessionUserName() == null) {return "authfail";} else {getStats();return "authsuccess";}}private void getStats() {try {noOfRegisterUsers = uclient.getUserCount(UserType.USER);noOfOrders = tClient.getValidOrderCount();noOfCustomers = tClient.getNoOfCustomersWithSuccessfulTransaction();orderAmountRange = tClient.getValidOrdersAmountRange();minOrderAmount = orderAmountRange.get(0);maxOrderAmount = orderAmountRange.get(1);paymentAmountRange = pClient.getSuccessfulPaymentsAmountRange();minPaymentAmount = paymentAmountRange.get(0);maxPaymentAmount = paymentAmountRange.get(1);validOrders = tClient.getValidOrders(10);} catch (TException e) {e.printStackTrace();}}// Handler for POST /statisticspublic String create() {String username = request.getParameter("username");String password = request.getParameter("password");try {StatisticsUser user = hClient.authenticateStatisticsUser(username, password);session.setAttribute("username", user.getUsername());} catch (Exception e) {e.printStackTrace();return "authfail";}getStats();return "authsuccess";}public long getNoOfRegisterUsers() {return noOfRegisterUsers;}public String getErrorMsg() {return errorMsg;}public long getNoOfOrders() {return noOfOrders;}public long getNoOfCustomers() {return noOfCustomers;}public double getMaxOrderAmount() {return maxOrderAmount;}public double getMinOrderAmount() {return minOrderAmount;}public double getMaxPaymentAmount() {return maxPaymentAmount;}public double getMinPaymentAmount() {return minPaymentAmount;}public String getSessionUserName() {return (String) session.getAttribute("username");}public List<Order> getValidOrders() {return validOrders;}public LineItem getItem(long orderId) throws TransactionServiceException, TException {LineItem lItem = tClient.getLineItemsForOrder(orderId).get(0);return lItem;}public String getOrderStatusString(OrderStatus status) {return status.name();}}