Subversion Repositories SmartDukaan

Rev

Rev 1886 | Rev 1941 | 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
 
1886 ankur.sing 3
import in.shop2020.model.v1.order.LineItem;
4
import in.shop2020.model.v1.order.Order;
5
import in.shop2020.model.v1.order.OrderStatus;
6
import in.shop2020.model.v1.order.TransactionServiceException;
1597 ankur.sing 7
import in.shop2020.model.v1.user.UserType;
1630 ankur.sing 8
import in.shop2020.thrift.clients.PaymentServiceClient;
1597 ankur.sing 9
import in.shop2020.thrift.clients.TransactionServiceClient;
10
import in.shop2020.thrift.clients.UserContextServiceClient;
11
 
1891 ankur.sing 12
import java.text.DateFormat;
13
import java.text.SimpleDateFormat;
14
import java.util.Calendar;
1731 ankur.sing 15
import java.util.List;
16
 
1891 ankur.sing 17
import org.apache.struts2.convention.annotation.InterceptorRef;
18
import org.apache.struts2.convention.annotation.InterceptorRefs;
1886 ankur.sing 19
import org.apache.thrift.TException;
1597 ankur.sing 20
 
21
 
1891 ankur.sing 22
@InterceptorRefs({
23
    @InterceptorRef("myDefault"),
24
    @InterceptorRef("login")
25
})
1630 ankur.sing 26
 
1891 ankur.sing 27
 
28
//@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
29
public class StatisticsController extends ReportsController {
30
 
31
	private long noOfRegisterUsers;
32
	private long noOfOrders;
33
	private long noOfCustomers;
34
	private double maxOrderAmount;
35
	private double minOrderAmount;
36
	private double maxPaymentAmount;
37
	private double minPaymentAmount;
38
	private List<Double> paymentAmountRange;
39
	private List<Double> orderAmountRange;
40
	private List<Order> validOrders;
41
 
1886 ankur.sing 42
    private UserContextServiceClient usc;
43
    private in.shop2020.model.v1.user.UserContextService.Client uclient;
1891 ankur.sing 44
 
1886 ankur.sing 45
    private TransactionServiceClient tsc;
46
    private in.shop2020.model.v1.order.TransactionService.Client tClient;
1891 ankur.sing 47
 
1886 ankur.sing 48
    private PaymentServiceClient psc;
1891 ankur.sing 49
    private in.shop2020.payments.PaymentService.Client pClient;
50
 
51
    private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");
52
 
53
	public StatisticsController(){
54
	    try {
1886 ankur.sing 55
            usc = new UserContextServiceClient();
56
            uclient = usc.getClient();
1891 ankur.sing 57
 
1886 ankur.sing 58
            tsc = new TransactionServiceClient();
59
            tClient = tsc.getClient();
1891 ankur.sing 60
 
1886 ankur.sing 61
            psc = new PaymentServiceClient();
62
            pClient = psc.getClient();
63
        } catch (Exception e) {
64
            e.printStackTrace();
65
        }
1891 ankur.sing 66
	}
67
 
68
	public String index()	{
69
        if(!canAccessReport()) {
70
            return "exception";
1886 ankur.sing 71
        }
1891 ankur.sing 72
        getStats();
73
        return "authsuccess";
74
 
75
		/*if(getSessionUserName()==null) {
76
			return "authfail";
77
		}
78
		else {
79
		    if(!canAccessReport()) {
80
		        return "exception";
81
		    }
82
			getStats();
83
			return "authsuccess";
84
		}*/
85
	}
86
 
87
 
88
	private void getStats() {
89
		try {
1886 ankur.sing 90
            noOfRegisterUsers = uclient.getUserCount(UserType.USER);
1891 ankur.sing 91
 
1886 ankur.sing 92
            noOfOrders = tClient.getValidOrderCount();
93
            noOfCustomers = tClient.getNoOfCustomersWithSuccessfulTransaction();
94
            orderAmountRange = tClient.getValidOrdersAmountRange();
95
            minOrderAmount = orderAmountRange.get(0);
96
            maxOrderAmount = orderAmountRange.get(1);
1891 ankur.sing 97
 
1886 ankur.sing 98
            paymentAmountRange = pClient.getSuccessfulPaymentsAmountRange();
99
            minPaymentAmount = paymentAmountRange.get(0);
100
            maxPaymentAmount = paymentAmountRange.get(1);
1891 ankur.sing 101
 
1886 ankur.sing 102
            validOrders = tClient.getValidOrders(10);
103
        } catch (TException e) {
104
            e.printStackTrace();
105
        }
1891 ankur.sing 106
	}
107
 
108
	public long getNoOfRegisterUsers() {
109
		return noOfRegisterUsers;
110
	}
1886 ankur.sing 111
 
1891 ankur.sing 112
	public long getNoOfOrders() {
113
		return noOfOrders;
114
	}
115
 
116
	public long getNoOfCustomers() {
117
		return noOfCustomers;
118
	}
1886 ankur.sing 119
 
1891 ankur.sing 120
	public double getMaxOrderAmount() {
121
		return maxOrderAmount;
122
	}
1886 ankur.sing 123
 
1891 ankur.sing 124
	public double getMinOrderAmount() {
125
		return minOrderAmount;
126
	}
1886 ankur.sing 127
 
1891 ankur.sing 128
	public double getMaxPaymentAmount() {
129
		return maxPaymentAmount;
130
	}
1886 ankur.sing 131
 
1891 ankur.sing 132
	public double getMinPaymentAmount() {
133
		return minPaymentAmount;
134
	}
1886 ankur.sing 135
 
136
    public List<Order> getValidOrders() {
137
        return validOrders;
138
    }
1891 ankur.sing 139
 
140
    public LineItem getItem(Order order) throws TransactionServiceException, TException {
141
        LineItem lItem = order.getLineitems().get(0);
1886 ankur.sing 142
        return lItem;
143
    }
1891 ankur.sing 144
 
1886 ankur.sing 145
    public String getOrderStatusString(OrderStatus status) {
146
        return status.name();
147
    }
1891 ankur.sing 148
 
149
    public String getDateTime(long milliseconds) {
150
        Calendar cal = Calendar.getInstance();
151
        cal.setTimeInMillis(milliseconds);
152
        return formatter.format(cal.getTime());
153
    }
1597 ankur.sing 154
}
1891 ankur.sing 155