Blame | 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.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.Date;import java.util.List;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;/*** @author vikas**/@Results({@Result(name = "input", location = "/", type = "redirect")})@SuppressWarnings("serial")public class OrderCustomerInputController 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 String lastLogin;private double cartItems;public OrderCustomerInputController(){super();}public String create() throws Exception {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) {Order order = transactionServiceClient.getClient().getOrder(orderId);user = userClient.getUserById(order.getCustomer_id());}}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";}List<Order> allOrders = transactionServiceClient.getClient().getOrdersForCustomer(user.getUserId(), 0, (new Date()).getTime(), null);orderCount = allOrders.size();for (Order o : allOrders) {if (o.getStatus() == OrderStatus.COMPLETED) {completedOrderCount++;}else if (o.getStatus() == OrderStatus.FAILED) {failedOrderCount++;}else {openOrderCount++;}}SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");lastLogin = sdf.format(new Date(userClient.getUserState(user.getUserId()).getLastLogin()));try {for (Line line : userClient.getCurrentCart(user.getUserId()).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;}}