Rev 2724 | Rev 3096 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.OrderStatus;import in.shop2020.model.v1.user.Cart;import in.shop2020.model.v1.user.Line;import in.shop2020.model.v1.user.User;import in.shop2020.thrift.clients.TransactionServiceClient;import in.shop2020.thrift.clients.UserContextServiceClient;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;import java.util.List;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Action;/*** @author vikas**/@SuppressWarnings("serial")public class HomeController extends BaseController {private static Logger log = Logger.getLogger(Class.class);private String email;private long orderId;private User user;private long orderCount;private long completedOrderCount;private long openOrderCount;private long failedOrderCount;private long userCommunicationCount;private String lastLogin;private double cartItems;private String couponCode = "";public HomeController(){super();}@Action("/")public String index() throws Exception {if (email == null) {return "input";}UserContextServiceClient userContextServiceClient = new UserContextServiceClient();in.shop2020.model.v1.user.UserContextService.Client userClient = userContextServiceClient.getClient();TransactionServiceClient transactionServiceClient = new TransactionServiceClient();if (email == null || email.isEmpty()) {if (orderId != 0) {try {Order order = transactionServiceClient.getClient().getOrder(orderId);user = userClient.getUserById(order.getCustomer_id());}catch (Exception e) {addActionError("Invalid Input");return "input";}}}else {try {user = userClient.getUserByEmail(email);} catch (Exception e) {log.warn("Unable to get user service client", e);return "input";}}if (user == null || user.getUserId() <= 0) {addActionError("Invalid Input");return "input";}userCommunicationCount = userClient.getUserCommunicationByUser(user.getUserId()).size();List<Order> allOrders = transactionServiceClient.getClient().getOrdersForCustomer(user.getUserId(), 0, (new Date()).getTime(), null);orderCount = allOrders.size();List<OrderStatus> failedStatusList = Arrays.asList(new OrderStatus[] {OrderStatus.SALES_RET_RESHIPPED,OrderStatus.SALES_RET_REFUNDED,OrderStatus.DOA_INVALID_REFUNDED,OrderStatus.DOA_INVALID_RESHIPPED,OrderStatus.DOA_VALID_REFUNDED,OrderStatus.DOA_RESHIPPED,OrderStatus.REFUNDED,OrderStatus.REJECTED,OrderStatus.FAILED});for (Order o : allOrders) {if (o.getStatus() == OrderStatus.DELIVERY_SUCCESS) {completedOrderCount++;}else if (failedStatusList.contains(o.getStatus())) {failedOrderCount++;}else {openOrderCount++;}}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");lastLogin = sdf.format(new Date(userClient.getUserState(user.getUserId()).getLastLogin()));try {Cart cart = userClient.getCurrentCart(user.getUserId());if (cart.getCouponCode() != null) {couponCode = cart.getCouponCode();}for (Line line : cart.getLines()) {cartItems += line.getQuantity();}} catch (Exception e) {log.warn("No cart assigned for this user", e);}return "index";}public void setEmail(String email) {this.email = email;}public String getEmail() {return email;}public void setOrderId(String orderId) {try {this.orderId = Long.parseLong(orderId);}catch (NumberFormatException e) {log.error(e);}}public Long getOrderId() {return orderId;}public User getUser() {return user;}public long getOrderCount() {return orderCount;}public long getCompletedOrderCount() {return completedOrderCount;}public long getOpenOrderCount() {return openOrderCount;}public long getFailedOrderCount() {return failedOrderCount;}public double getCartItems() {return cartItems;}public String getLastLogin() {return lastLogin;}public String getCouponCode() {return couponCode;}public long getUserCommunicationCount() {return userCommunicationCount;}}