Subversion Repositories SmartDukaan

Rev

Rev 3397 | Rev 3499 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3397 Rev 3422
Line 30... Line 30...
30
import org.apache.struts2.convention.annotation.Action;
30
import org.apache.struts2.convention.annotation.Action;
31
import org.apache.thrift.TException;
31
import org.apache.thrift.TException;
32
 
32
 
33
/**
33
/**
34
 * @author vikas
34
 * @author vikas
35
 *
35
 * 
36
 */
36
 */
37
@SuppressWarnings("serial")
37
@SuppressWarnings("serial")
38
public class HomeController extends BaseController {
38
public class HomeController extends BaseController {
39
    private static final Logger log = Logger.getLogger(HomeController.class);
39
    private static final Logger log        = Logger.getLogger(HomeController.class);
40
 
40
 
41
    private String email;
41
    private String              email;
42
    private String orderId;
42
    private String              orderId;
43
    private String mobileNumber;
43
    private String              mobileNumber;
44
    private User user;
44
    private User                user;
45
    private long orderCount;
45
    private long                orderCount;
46
    private long completedOrderCount;
46
    private long                completedOrderCount;
47
    private long openOrderCount;
47
    private long                openOrderCount;
48
    private long failedOrderCount;
48
    private long                failedOrderCount;
49
    private long userCommunicationCount;
49
    private long                userCommunicationCount;
50
    private long ticketCount;
50
    private long                ticketCount;
51
    private long openTicketCount;
51
    private long                openTicketCount;
52
    private long closedTicketCount;
52
    private long                closedTicketCount;
53
    private String ticketId;
53
    private String              ticketId;
54
    private String lastLogin;
54
    private String              lastLogin;
55
    private double cartItems;
55
    private double              cartItems;
56
    private String couponCode = "";
56
    private String              couponCode = "";
57
    private long agentTicketCount;
-
 
58
    private long agentOpenTicketCount;
57
    private long                agentOpenTicketCount;
59
    private long unassignedTicketCount;
58
    private long                unassignedTicketCount;
60
    private long allTicketCount;
-
 
61
    private long allOpenTicketCount;
-
 
62
    private long activityCount;
59
    private long                activityCount;
63
    private long customerActivityCount;
60
    private long                customerActivityCount;
64
 
61
 
65
    @Action("/")
62
    @Action("/")
66
    public String index() throws Exception {
63
    public String index() throws Exception {
67
        String returnValue = INPUT;
64
        String returnValue = INPUT;
68
 
65
 
Line 74... Line 71...
74
            }
71
            }
75
 
72
 
76
            userContextServiceClient = new UserClient().getClient();
73
            userContextServiceClient = new UserClient().getClient();
77
            if (email != null && !email.isEmpty()) {
74
            if (email != null && !email.isEmpty()) {
78
                user = userContextServiceClient.getUserByEmail(email);
75
                user = userContextServiceClient.getUserByEmail(email);
79
            }
-
 
80
            else if (mobileNumber != null && !mobileNumber.isEmpty()) {
76
            } else if (mobileNumber != null && !mobileNumber.isEmpty()) {
81
                user = userContextServiceClient.getUserByMobileNumber(Long.parseLong(mobileNumber));
77
                user = userContextServiceClient.getUserByMobileNumber(Long
82
            }
78
                        .parseLong(mobileNumber));
83
            else if (orderId != null && !orderId.isEmpty()) {
79
            } else if (orderId != null && !orderId.isEmpty()) {
84
                transactionServiceClient = new TransactionClient().getClient();
80
                transactionServiceClient = new TransactionClient().getClient();
85
                Order order = transactionServiceClient.getOrder(Long.parseLong(orderId));
81
                Order order = transactionServiceClient.getOrder(Long
-
 
82
                        .parseLong(orderId));
86
                user = userContextServiceClient.getUserById(order.getCustomer_id());
83
                user = userContextServiceClient.getUserById(order
87
            }
84
                        .getCustomer_id());
88
            else if (ticketId != null && !ticketId.isEmpty()) {
85
            } else if (ticketId != null && !ticketId.isEmpty()) {
89
                SearchFilter searchFilter = new SearchFilter();
86
                SearchFilter searchFilter = new SearchFilter();
90
                searchFilter.setTicketId(Long.parseLong(ticketId));
87
                searchFilter.setTicketId(Long.parseLong(ticketId));
91
                crmServiceClient         = new CRMClient().getClient();
88
                crmServiceClient = new CRMClient().getClient();
92
                List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
89
                List<Ticket> tickets = crmServiceClient
-
 
90
                        .getTickets(searchFilter);
93
                if (!tickets.isEmpty()) {
91
                if (!tickets.isEmpty()) {
94
                    Ticket ticket = tickets.get(0);
92
                    Ticket ticket = tickets.get(0);
95
                    if (ticket.isSetCustomerId()) {
93
                    if (ticket.isSetCustomerId()) {
96
                        user = userContextServiceClient.getUserById(ticket.getCustomerId());
94
                        user = userContextServiceClient.getUserById(ticket.getCustomerId());
97
                    }
95
                    }
-
 
96
                }
98
                    else {
97
                else {
99
                        // TODO support unregistered users!
98
                    // resetting in case on invalid ticket Id
100
                    }
99
                    ticketId = null;
101
                }
100
                }
102
            }
101
            }
103
 
102
 
104
            if (user == null || user.getUserId() <= 0) {
103
            if (user == null || user.getUserId() <= 0) {
-
 
104
                if (ticketId == null || ticketId.isEmpty()) {
105
                addActionError("Invalid Input");
105
                    addActionError("Invalid input");
106
            }
106
                }
107
            else {
107
            } else {
108
                loadUserCommunicationDetails();
108
                loadUserCommunicationDetails();
109
                loadOrderDetails();
109
                loadOrderDetails();
110
                loadCartDetails();
110
                loadCartDetails();
111
                loadTicketDetails();
111
                loadTicketDetails();
112
                loadActivityDetails();
112
                loadActivityDetails();
113
                returnValue = INDEX;
113
                returnValue = INDEX;
114
            }
114
            }
115
        }
-
 
116
        catch (Exception e) {
115
        } catch (Exception e) {
117
            addActionError("Invalid input");
116
            addActionError("Invalid input");
118
            log.error("Error occurred", e);
117
            log.error("Error occurred", e);
119
        }
118
        }
120
 
119
 
121
        if (INPUT.equals(returnValue)) {
120
        if (INPUT.equals(returnValue)) {
122
            loadTicketCounts();
121
            loadTicketCounts();
-
 
122
            loadCustomerActivities();
123
        }
123
        }
124
 
124
 
125
        return returnValue;
125
        return returnValue;
126
    }
126
    }
127
 
127
 
128
    private void loadCustomerActivities() throws TException {
128
    private void loadCustomerActivities() throws TException {
129
        SearchFilter searchFilter = new SearchFilter();
129
        SearchFilter searchFilter = new SearchFilter();
-
 
130
        searchFilter.setActivityCreatorIds(Collections
130
        searchFilter.setActivityCreatorIds(Collections.singletonList(CRMConstants.ADMIN_AGENT_ID));
131
                .singletonList(CRMConstants.ADMIN_AGENT_ID));
131
        searchFilter.setIsActivityRead(false);
132
        searchFilter.setIsActivityRead(false);
132
 
133
 
133
        crmServiceClient         = new CRMClient().getClient();
134
        crmServiceClient = new CRMClient().getClient();
134
        List<Activity> activities = crmServiceClient.getActivities(searchFilter);
135
        List<Activity> activities = crmServiceClient
-
 
136
                .getActivities(searchFilter);
135
        if (activities != null) {
137
        if (activities != null) {
136
            customerActivityCount = activities.size();
138
            customerActivityCount = activities.size();
137
        }
139
        }
138
    }
140
    }
139
 
141
 
140
    private void loadActivityDetails() throws TException {
142
    private void loadActivityDetails() throws TException {
141
        SearchFilter searchFilter = new SearchFilter();
143
        SearchFilter searchFilter = new SearchFilter();
142
        searchFilter.setCustomerId(user.getUserId());
144
        searchFilter.setCustomerId(user.getUserId());
143
 
145
 
144
        crmServiceClient         = new CRMClient().getClient();
146
        crmServiceClient = new CRMClient().getClient();
145
        List<Activity> activities = crmServiceClient.getActivities(searchFilter);
147
        List<Activity> activities = crmServiceClient
-
 
148
                .getActivities(searchFilter);
146
        if (activities != null) {
149
        if (activities != null) {
147
            activityCount = activities.size();
150
            activityCount = activities.size();
148
        }
151
        }
149
    }
152
    }
150
 
153
 
151
    private void loadTicketCounts() throws TException {
154
    private void loadTicketCounts() throws TException {
152
        SearchFilter searchFilter = new SearchFilter();
155
        SearchFilter searchFilter = new SearchFilter();
-
 
156
        searchFilter.setTicketAssigneeIds(Collections
-
 
157
                .singletonList(CRMAuthorizingRealm
153
        searchFilter.setTicketAssigneeIds(Collections.singletonList(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId()));
158
                        .getAgent(currentAgentEmailId).getId()));
154
 
159
 
155
        crmServiceClient         = new CRMClient().getClient();
160
        crmServiceClient = new CRMClient().getClient();
156
        List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
161
        List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
157
        agentTicketCount = tickets.size();
-
 
158
        for (Ticket ticket : tickets) {
162
        for (Ticket ticket : tickets) {
159
            if (TicketStatus.OPEN.equals(ticket.getStatus())) {
163
            if (TicketStatus.OPEN.equals(ticket.getStatus())) {
160
                agentOpenTicketCount++;
164
                agentOpenTicketCount++;
161
            }
165
            }
162
        }
166
        }
163
 
167
 
164
        List<Ticket> unassignedTickets = crmServiceClient.getUnassignedTickets();
168
        List<Ticket> unassignedTickets = crmServiceClient
-
 
169
                .getUnassignedTickets();
165
        unassignedTicketCount = unassignedTickets.size();
170
        unassignedTicketCount = unassignedTickets.size();
166
        
-
 
167
        List<Ticket> allTickets = tickets;
-
 
168
        allTicketCount = allTickets.size();
-
 
169
        for (Ticket ticket : allTickets) {
-
 
170
            if (TicketStatus.OPEN.equals(ticket.getStatus())) {
-
 
171
                allOpenTicketCount++;
-
 
172
            }
-
 
173
        }
-
 
174
    }
171
    }
175
 
172
 
176
    private void loadUserCommunicationDetails()
173
    private void loadUserCommunicationDetails()
177
            throws UserCommunicationException, TException {
174
            throws UserCommunicationException, TException {
178
        userContextServiceClient = new UserClient().getClient();
175
        userContextServiceClient = new UserClient().getClient();
179
        List<UserCommunication> userCommunication = userContextServiceClient.getUserCommunicationByUser(user.getUserId());
176
        List<UserCommunication> userCommunication = userContextServiceClient
-
 
177
                .getUserCommunicationByUser(user.getUserId());
180
        userCommunicationCount = userCommunication.size();
178
        userCommunicationCount = userCommunication.size();
181
    }
179
    }
182
 
180
 
183
    private void loadOrderDetails()
181
    private void loadOrderDetails() throws TransactionServiceException,
184
            throws TransactionServiceException, TException {
182
            TException {
185
        transactionServiceClient = new TransactionClient().getClient();
183
        transactionServiceClient = new TransactionClient().getClient();
186
        List<Order> allOrders = transactionServiceClient.getOrdersForCustomer(user.getUserId(), 0, (new Date()).getTime(), null);
184
        List<Order> allOrders = transactionServiceClient.getOrdersForCustomer(
-
 
185
                user.getUserId(), 0, (new Date()).getTime(), null);
187
        orderCount = allOrders.size();
186
        orderCount = allOrders.size();
188
 
187
 
189
        for (Order o : allOrders) {
188
        for (Order o : allOrders) {
190
            if (o.getStatus() == OrderStatus.DELIVERY_SUCCESS) {
189
            if (o.getStatus() == OrderStatus.DELIVERY_SUCCESS) {
191
                completedOrderCount++;
190
                completedOrderCount++;
192
            }
-
 
193
            else if (CRMConstants.failedStatusList.contains(o.getStatus())) {
191
            } else if (CRMConstants.failedStatusList.contains(o.getStatus())) {
194
                failedOrderCount++;
192
                failedOrderCount++;
195
            }
-
 
196
            else {
193
            } else {
197
                openOrderCount++;
194
                openOrderCount++;
198
            }
195
            }
199
        }
196
        }
200
    }
197
    }
201
 
198
 
202
    private void loadCartDetails()
-
 
203
            throws UserContextException, TException {
199
    private void loadCartDetails() throws UserContextException, TException {
204
        userContextServiceClient = new UserClient().getClient();
200
        userContextServiceClient = new UserClient().getClient();
205
        UserState userState = userContextServiceClient.getUserState(user.getUserId());
201
        UserState userState = userContextServiceClient.getUserState(user
-
 
202
                .getUserId());
206
        lastLogin = SDF.format(new Date(userState.getLastLogin()));
203
        lastLogin = SDF.format(new Date(userState.getLastLogin()));
207
        Cart cart = null;
204
        Cart cart = null;
208
 
205
 
209
        try {
206
        try {
210
            cart = userContextServiceClient.getCurrentCart(user.getUserId());
207
            cart = userContextServiceClient.getCurrentCart(user.getUserId());
Line 223... Line 220...
223
        // Fetching tickets' info
220
        // Fetching tickets' info
224
        ticketCount = 0;
221
        ticketCount = 0;
225
        openTicketCount = 0;
222
        openTicketCount = 0;
226
        closedTicketCount = 0;
223
        closedTicketCount = 0;
227
 
224
 
228
        crmServiceClient         = new CRMClient().getClient();
225
        crmServiceClient = new CRMClient().getClient();
229
        SearchFilter searchFilter = new SearchFilter();
226
        SearchFilter searchFilter = new SearchFilter();
230
        searchFilter.setCustomerId(user.getUserId());
227
        searchFilter.setCustomerId(user.getUserId());
231
 
228
 
232
        List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
229
        List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
233
        if (tickets != null) 
230
        if (tickets != null) {
234
        {
-
 
235
            for (Ticket ticket : tickets) {
231
            for (Ticket ticket : tickets) {
236
                ticketCount++;
232
                ticketCount++;
237
                if (!ticket.getStatus().equals(TicketStatus.CLOSED)) {
233
                if (!ticket.getStatus().equals(TicketStatus.CLOSED)) {
238
                    openTicketCount++;
234
                    openTicketCount++;
239
                }
-
 
240
                else {
235
                } else {
241
                    closedTicketCount++;
236
                    closedTicketCount++;
242
                }
237
                }
243
            }
238
            }
244
        }
239
        }
245
    }
240
    }
Line 272... Line 267...
272
    }
267
    }
273
 
268
 
274
    public String getOrderId() {
269
    public String getOrderId() {
275
        return orderId;
270
        return orderId;
276
    }
271
    }
277
    
272
 
278
    public User getUser() {
273
    public User getUser() {
279
        return user;
274
        return user;
280
    }
275
    }
281
    
276
 
282
    public long getOrderCount() {
277
    public long getOrderCount() {
283
        return orderCount;
278
        return orderCount;
284
    }
279
    }
285
    
280
 
286
    public long getCompletedOrderCount() {
281
    public long getCompletedOrderCount() {
287
        return completedOrderCount;
282
        return completedOrderCount;
288
    }
283
    }
289
    
284
 
290
    public long getOpenOrderCount() {
285
    public long getOpenOrderCount() {
291
        return openOrderCount;
286
        return openOrderCount;
292
    }
287
    }
293
    
288
 
294
    public long getFailedOrderCount() {
289
    public long getFailedOrderCount() {
295
        return failedOrderCount;
290
        return failedOrderCount;
296
    }
291
    }
297
    
292
 
298
    public double getCartItems() {
293
    public double getCartItems() {
299
        return cartItems;
294
        return cartItems;
300
    }
295
    }
301
    
296
 
302
    public String getLastLogin() {
297
    public String getLastLogin() {
303
        return lastLogin;
298
        return lastLogin;
304
    }
299
    }
305
 
300
 
306
    public String getCouponCode() {
301
    public String getCouponCode() {
Line 333... Line 328...
333
 
328
 
334
    public void setTicketId(String ticketId) {
329
    public void setTicketId(String ticketId) {
335
        this.ticketId = ticketId;
330
        this.ticketId = ticketId;
336
    }
331
    }
337
 
332
 
338
    public long getAgentTicketCount() {
-
 
339
        return agentTicketCount;
-
 
340
    }
-
 
341
 
-
 
342
    public long getAgentOpenTicketCount() {
333
    public long getAgentOpenTicketCount() {
343
        return agentOpenTicketCount;
334
        return agentOpenTicketCount;
344
    }
335
    }
345
 
336
 
346
    public long getUnassignedTicketCount() {
337
    public long getUnassignedTicketCount() {
347
        return unassignedTicketCount;
338
        return unassignedTicketCount;
348
    }
339
    }
349
 
340
 
350
    public long getAllTicketCount() {
-
 
351
        return allTicketCount;
-
 
352
    }
-
 
353
 
-
 
354
    public long getAllOpenTicketCount() {
-
 
355
        return allOpenTicketCount;
-
 
356
    }
-
 
357
 
-
 
358
    public long getActivityCount() {
341
    public long getActivityCount() {
359
        return activityCount;
342
        return activityCount;
360
    }
343
    }
361
 
344
 
362
    public void setActivityCount(long activityCount) {
345
    public void setActivityCount(long activityCount) {