Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
5874 rajveer 1
package in.shop2020.support.controllers;
2
 
5876 rajveer 3
import in.shop2020.logistics.PickupStore;
5874 rajveer 4
import in.shop2020.model.v1.order.LineItem;
5
import in.shop2020.model.v1.order.Order;
6
import in.shop2020.model.v1.order.OrderStatus;
7
import in.shop2020.model.v1.order.TransactionServiceException;
8
import in.shop2020.support.utils.ReportsUtils;
5876 rajveer 9
import in.shop2020.thrift.clients.LogisticsClient;
5874 rajveer 10
import in.shop2020.thrift.clients.TransactionClient;
11
 
12
import java.text.DateFormat;
13
import java.text.SimpleDateFormat;
14
import java.util.Calendar;
5878 rajveer 15
import java.util.HashMap;
5874 rajveer 16
import java.util.List;
5876 rajveer 17
import java.util.Map;
5874 rajveer 18
 
19
import javax.servlet.ServletContext;
20
import javax.servlet.http.HttpServletRequest;
21
import javax.servlet.http.HttpSession;
22
 
23
import org.apache.struts2.convention.annotation.InterceptorRef;
24
import org.apache.struts2.convention.annotation.InterceptorRefs;
25
import org.apache.struts2.convention.annotation.Result;
26
import org.apache.struts2.convention.annotation.Results;
27
import org.apache.struts2.interceptor.ServletRequestAware;
28
import org.apache.struts2.util.ServletContextAware;
29
import org.apache.thrift.TException;
30
import org.slf4j.Logger;
31
import org.slf4j.LoggerFactory;
32
 
33
 
34
@InterceptorRefs({
35
    @InterceptorRef("defaultStack"),
36
    @InterceptorRef("login")
37
})
38
 
39
@Results({
40
    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
41
})
42
public class PickupStoreStatisticsController implements ServletRequestAware, ServletContextAware {
43
 
44
    private static Logger logger = LoggerFactory.getLogger(PickupStoreStatisticsController.class);
45
 
5878 rajveer 46
    private static Map<Long, String> stores = null;
5874 rajveer 47
    private HttpServletRequest request;
48
    private HttpSession session;
49
    private ServletContext context;
50
 
51
	private List<Order> validOrders;
52
 
53
 
54
    private TransactionClient tsc;
55
    private in.shop2020.model.v1.order.TransactionService.Client tClient;
56
 
5876 rajveer 57
    private LogisticsClient lsc;
58
    private in.shop2020.logistics.LogisticsService.Client lClient;
59
 
5874 rajveer 60
    private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");
61
 
5876 rajveer 62
    public PickupStoreStatisticsController(){
5874 rajveer 63
	    try {
64
            tsc = new TransactionClient();
65
            tClient = tsc.getClient();
5878 rajveer 66
            if(stores == null){
67
            	lsc = new LogisticsClient();
68
            	lClient = lsc.getClient();
69
            	stores = new HashMap<Long, String>();
70
            	for(PickupStore store: lClient.getAllPickupStores()){
71
            		stores.put(store.getId(), store.getName());
72
            	}
73
            }
5874 rajveer 74
        } catch (Exception e) {
75
            logger.error("Error connecting to one of the user, order or payment service", e);
76
        }
77
	}
78
 
79
	public String index() {
80
        if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {
81
            return "authfail";
82
        }
83
        getStats();
84
        return "authsuccess";
85
 
86
	}
87
 
88
	private void getStats() {
89
		try {
5977 rajveer 90
            validOrders = tClient.getValidOrders(0, true);
5874 rajveer 91
		} catch (Exception e){
92
		    logger.error("Error while getting order statistics", e);
93
		}
94
	}
95
 
96
    public List<Order> getValidOrders() {
97
        return validOrders;
98
    }
99
 
100
    public LineItem getItem(Order order) throws TransactionServiceException, TException {
101
        LineItem lItem = order.getLineitems().get(0);
102
        return lItem;
103
    }
104
 
105
    public String getOrderStatusString(OrderStatus status) {
8488 amar.kumar 106
        return "";
107
    	//return status.getDescription();
5874 rajveer 108
    }
109
 
110
    public String getDateTime(long milliseconds) {
111
        Calendar cal = Calendar.getInstance();
112
        cal.setTimeInMillis(milliseconds);
113
        return formatter.format(cal.getTime());
114
    }
115
 
116
    @Override
117
    public void setServletRequest(HttpServletRequest req) {
118
        this.request = req;
119
        this.session = req.getSession();        
120
    }
121
 
122
    @Override
123
    public void setServletContext(ServletContext context) {
124
        this.context = context;
125
    }
126
 
6010 rajveer 127
    public String getLastUpdateTime(Order order){
128
    	long lastActionTime = 0;
129
    	switch (order.getStatus().getValue()) {
130
		case 2:
131
			lastActionTime = order.getCreated_timestamp();
132
			break;
133
		case 3:
134
			lastActionTime = (order.getVerification_timestamp() == 0) ? order.getCreated_timestamp() : order.getVerification_timestamp();
135
			break;
136
		case 4:
137
			lastActionTime = order.getAccepted_timestamp();
138
			break;
139
		case 5:
140
			lastActionTime = order.getOutofstock_timestamp();
141
			break;
142
		case 7:
143
			lastActionTime = order.getBilling_timestamp();
144
			break;
145
		case 9:
146
			lastActionTime = order.getShipping_timestamp();
147
			break;
148
		case 10:
149
			lastActionTime = order.getPickup_timestamp();
150
			break;
151
		case 12:
152
			lastActionTime = order.getDelivery_timestamp();
153
			break;
154
		case 15:
155
			lastActionTime = order.getRefund_timestamp();
156
			break;
157
		case 18:
158
			lastActionTime = order.getRefund_timestamp();
159
			break;
160
		case 31:
161
			lastActionTime = order.getRefund_timestamp();
162
			break;
163
		case 34:
164
			lastActionTime = order.getRefund_timestamp();
165
			break;
166
		case 80:
167
			lastActionTime = order.getDelivery_timestamp();
168
			break;
169
		case 81:
170
			lastActionTime = order.getDelivery_timestamp();
171
			break;
172
		case 63:
173
			lastActionTime = order.getDoa_auth_timestamp();
174
			break;
175
		case 60:
176
			lastActionTime = order.getDoa_auth_timestamp();
177
			break;
178
		default:
179
			lastActionTime = Calendar.getInstance().getTimeInMillis();
180
			break;
181
		}
182
    	return getDateTime(lastActionTime);
5876 rajveer 183
    }
184
 
5874 rajveer 185
    public String getServletContextPath() {
186
        return context.getContextPath();
187
    }
6010 rajveer 188
 
189
    public String getStoreName(long storeId){
190
    	return stores.get(storeId);
191
    }
5874 rajveer 192
}
193