Rev 1630 | Rev 1884 | 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.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 javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;public class StatisticsController implements ServletResponseAware,ServletRequestAware, ServletContextAware{private ServletContext context;private HttpServletRequest request;private HttpServletResponse response;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;public StatisticsController(){}@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}@Overridepublic void setServletResponse(HttpServletResponse res) {this.response = res;}public String index() {if(getSessionUserName()==null) {return "authfail";}else {getStats();return "authsuccess";}}private void getStats() {UserContextServiceClient usc;TransactionServiceClient tsc;PaymentServiceClient psc;try {usc = new UserContextServiceClient();in.shop2020.model.v1.user.UserContextService.Client uclient = usc.getClient();noOfRegisterUsers = uclient.getUserCount(UserType.USER);tsc = new TransactionServiceClient();in.shop2020.model.v1.order.TransactionService.Client tClient = tsc.getClient();noOfOrders = tClient.getValidOrderCount();noOfCustomers = tClient.getNoOfCustomersWithSuccessfulTransaction();maxOrderAmount = tClient.getMaxValidOrderAmount();minOrderAmount = tClient.getMinValidOrderAmount();psc = new PaymentServiceClient();in.shop2020.payments.PaymentService.Client pClient = psc.getClient();maxPaymentAmount = pClient.getMaxPaymentAmount();minPaymentAmount = pClient.getMinPaymentAmount();} catch (Exception e) {e.printStackTrace();}}// Handler for POST /statisticspublic String create(){String username = request.getParameter("username");String password = request.getParameter("password");try{HelperServiceClient helperServiceClient = new HelperServiceClient();in.shop2020.utils.HelperService.Client client = helperServiceClient.getClient();StatisticsUser user = client.authenticateStatisticsUser(username, password);session.setAttribute("username", user.getUsername());}catch(Exception e){e.printStackTrace();return "authfail";}getStats();return "authsuccess";}public String show(){return null;}// Handles the POST request (Form Submission)public String getErrorMsg() {return errorMsg;}public long getNoOfRegisterUsers() {return noOfRegisterUsers;}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 String getServletContextPath(){return context.getContextPath();}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}}