Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
1597 ankur.sing 1
package in.shop2020.support.controllers;
2
 
3
import in.shop2020.model.v1.user.UserType;
1611 ankur.sing 4
import in.shop2020.thrift.clients.HelperServiceClient;
1630 ankur.sing 5
import in.shop2020.thrift.clients.PaymentServiceClient;
1597 ankur.sing 6
import in.shop2020.thrift.clients.TransactionServiceClient;
7
import in.shop2020.thrift.clients.UserContextServiceClient;
1611 ankur.sing 8
import in.shop2020.utils.StatisticsUser;
1597 ankur.sing 9
 
1611 ankur.sing 10
import javax.servlet.ServletContext;
1597 ankur.sing 11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
1611 ankur.sing 13
import javax.servlet.http.HttpSession;
1597 ankur.sing 14
 
15
import org.apache.struts2.interceptor.ServletRequestAware;
16
import org.apache.struts2.interceptor.ServletResponseAware;
1611 ankur.sing 17
import org.apache.struts2.util.ServletContextAware;
1597 ankur.sing 18
 
1611 ankur.sing 19
public class StatisticsController implements ServletResponseAware, 
20
		ServletRequestAware, ServletContextAware{
1597 ankur.sing 21
 
1611 ankur.sing 22
	private ServletContext context;
1597 ankur.sing 23
	private HttpServletRequest request;
24
	private HttpServletResponse response;
1611 ankur.sing 25
	private HttpSession session;
1597 ankur.sing 26
 
27
	private String errorMsg = "";
28
	private long noOfRegisterUsers;
29
	private long noOfOrders;
1630 ankur.sing 30
	private long noOfCustomers;
31
	private double maxOrderAmount;
32
	private double minOrderAmount;
33
	private double maxPaymentAmount;
34
	private double minPaymentAmount;
35
 
1597 ankur.sing 36
	public StatisticsController(){
37
 
38
	}
39
 
40
	@Override
41
	public void setServletRequest(HttpServletRequest req) {
42
		this.request = req;
1611 ankur.sing 43
		this.session = req.getSession();
1597 ankur.sing 44
	}
45
 
46
	@Override
47
	public void setServletResponse(HttpServletResponse res) {
48
		this.response = res;
49
	}
50
 
51
	public String index()	{
1611 ankur.sing 52
		if(getSessionUserName()==null) {
53
			return "authfail";
54
		}
55
		else {
56
			getStats();
57
			return "authsuccess";
58
		}
59
	}
60
 
61
 
62
	private void getStats() {
1597 ankur.sing 63
		UserContextServiceClient usc;
64
		TransactionServiceClient tsc;
1630 ankur.sing 65
		PaymentServiceClient psc;
1597 ankur.sing 66
		try {
67
			usc = new UserContextServiceClient();
68
			in.shop2020.model.v1.user.UserContextService.Client uclient = usc.getClient();
69
			noOfRegisterUsers = uclient.getUserCount(UserType.USER);
70
 
71
			tsc = new TransactionServiceClient();
72
			in.shop2020.model.v1.order.TransactionService.Client tClient = tsc.getClient();
73
			noOfOrders = tClient.getValidOrderCount();
1630 ankur.sing 74
			noOfCustomers = tClient.getNoOfCustomersWithSuccessfulTransaction();
75
			maxOrderAmount = tClient.getMaxValidOrderAmount();
76
			minOrderAmount = tClient.getMinValidOrderAmount();
77
 
78
			psc = new PaymentServiceClient();
79
			in.shop2020.payments.PaymentService.Client pClient = psc.getClient();
80
			maxPaymentAmount = pClient.getMaxPaymentAmount();
81
			minPaymentAmount = pClient.getMinPaymentAmount();
1597 ankur.sing 82
		} catch (Exception e) {
83
			e.printStackTrace();
84
		}
85
	}
86
 
1611 ankur.sing 87
	// Handler for POST /statistics
88
	public String create(){
89
		String username = request.getParameter("username");
90
		String password = request.getParameter("password");
91
		try{
92
			HelperServiceClient helperServiceClient = new HelperServiceClient();
93
			in.shop2020.utils.HelperService.Client client = helperServiceClient.getClient();
94
			StatisticsUser user = client.authenticateStatisticsUser(username, password);
95
			session.setAttribute("username", user.getUsername());
96
		}catch(Exception e){
97
			e.printStackTrace();
98
			return "authfail";
99
		}
100
		getStats();
101
		return "authsuccess";
102
	}
103
 
104
 
1597 ankur.sing 105
	public String show(){
106
		return null;
107
	}
108
 
109
	// Handles the POST request (Form Submission)
110
 
111
	public String getErrorMsg() {
112
		return errorMsg;
113
	}
114
 
115
	public long getNoOfRegisterUsers() {
116
		return noOfRegisterUsers;
117
	}
118
 
119
	public long getNoOfOrders() {
120
		return noOfOrders;
121
	}
122
 
1630 ankur.sing 123
	public long getNoOfCustomers() {
124
		return noOfCustomers;
125
	}
126
 
127
	public double getMaxOrderAmount() {
128
		return maxOrderAmount;
129
	}
130
 
131
	public double getMinOrderAmount() {
132
		return minOrderAmount;
133
	}
134
 
135
	public double getMaxPaymentAmount() {
136
		return maxPaymentAmount;
137
	}
138
 
139
	public double getMinPaymentAmount() {
140
		return minPaymentAmount;
141
	}
142
 
1611 ankur.sing 143
	public String getSessionUserName(){
144
		return (String) session.getAttribute("username");
145
	}
146
 
147
	public String getServletContextPath(){
148
		return context.getContextPath();
149
	}
150
 
1597 ankur.sing 151
	public static void main(String[] args) {
152
		StatisticsController sc = new StatisticsController();
153
		sc.index();
154
	}
1611 ankur.sing 155
 
156
	@Override
157
	public void setServletContext(ServletContext context) {
158
		this.context = context;
159
 
160
	}
1597 ankur.sing 161
}
162