Subversion Repositories SmartDukaan

Rev

Rev 3853 | Rev 4146 | 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.thrift.clients.TransactionClient;
import in.shop2020.util.CRMConstants;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

import org.apache.log4j.Logger;

/**
 * @author vikas
 *
 */
@SuppressWarnings("serial")
public class UserOrdersController extends BaseController {
    private static Logger log = Logger.getLogger(Class.class);
    private long userId;
    private String id;
    private String status;
    private List<Map<String, String>> userOrders;

    public UserOrdersController(){
        super();
    }

    public String index() throws Exception {
        TransactionClient transactionServiceClient = new TransactionClient();

        List<Order> orders = transactionServiceClient.getClient().getOrdersForCustomer(userId, 0, (new Date().getTime()), null);
        userOrders = new ArrayList<Map<String,String>>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setTimeZone(TimeZone.getTimeZone("IST"));
        
        for (Order order : orders) {
            Map<String, String> orderMap = new HashMap<String, String>();
            orderMap.put("id", Long.toString(order.getId()));
            orderMap.put("created", sdf.format(new Date(order.getCreated_timestamp())));
            
            if (order.getStatus() == OrderStatus.DELIVERY_SUCCESS) {
                orderMap.put("status", "Completed");
            }
            else if (CRMConstants.failedStatusList.contains(order.getStatus())) {
                orderMap.put("status", "Failed");
            }
            else {
                orderMap.put("status", order.getStatus().getDescription());
            }
            
            StringBuilder address = new StringBuilder();
            if (order.getCustomer_address1() != null) {
                address.append(order.getCustomer_address1() + ", ");
            }
            if (order.getCustomer_address2() != null) {
                address.append(order.getCustomer_address2() + ", ");
            }
            if (order.getCustomer_city() != null) {
                address.append(order.getCustomer_city() + ", ");
            }
            if (order.getCustomer_state() != null) {
                address.append(order.getCustomer_state() + "-");
            }
            if (order.getCustomer_pincode() != null) {
                address.append(order.getCustomer_pincode());
            }
            orderMap.put("shipping", address.toString());
            orderMap.put("city", order.getCustomer_city());
            orderMap.put("mobileNumber", order.getCustomer_mobilenumber());
            orderMap.put("amount", Double.toString(order.getTotal_amount()));
            userOrders.add(orderMap);
        }
        return "index";
    }

    public void setUserId(String userId) {
        try {
            this.userId = Long.parseLong(userId);
        }
        catch (NumberFormatException e) {
            log.error(e);
        }
    }

    public Long getUserId() {
        return userId;
    }

    public List<Map<String, String>> getUserOrders() {
        return userOrders;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
}