Subversion Repositories SmartDukaan

Rev

Rev 3014 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * 
 */
package in.shop2020.serving.controllers;

import in.shop2020.logistics.Provider;
import in.shop2020.model.v1.order.Order;
import in.shop2020.model.v1.order.OrderStatus;
import in.shop2020.serving.utils.FormattingUtils;
import in.shop2020.thrift.clients.LogisticsClient;
import in.shop2020.thrift.clients.TransactionClient;

import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

/**
 * @author rajveer
 *
 */

@SuppressWarnings("serial")
@InterceptorRefs({
    @InterceptorRef("myDefault"),
    @InterceptorRef("login")
})

@Results({
    @Result(name="redirect", type="redirectAction", 
                params = {"actionName" , "login"})
})
public class CompletedOrdersController extends BaseController {

        private static Logger log = Logger.getLogger(Class.class);
        private static final List<OrderStatus> statuses = Arrays.asList(new OrderStatus[] {OrderStatus.DELIVERY_SUCCESS});
        
    private FormattingUtils formattingUtils = new FormattingUtils();
    private List<Order> orders = null;
    private List<String> orderDate = new ArrayList<String>();
    private Map<Long, String> providerNames = new HashMap<Long, String>();      
        
        public CompletedOrdersController() {
                super();
        }
        
    // GET /completed-orders
    public String index() throws UnsupportedEncodingException {
        log.info("this.request=" + this.request);
        
        TransactionClient transactionServiceClient = null;
        in.shop2020.model.v1.order.TransactionService.Client orderClient = null;
        
        try{
            transactionServiceClient = new TransactionClient();
            orderClient = transactionServiceClient.getClient();
            orders = orderClient.getOrdersForCustomer(userinfo.getUserId(), 0, (new Date()).getTime(), statuses);
            Collections.reverse(orders);
            LogisticsClient logisticsServiceClient = new LogisticsClient();
            in.shop2020.logistics.LogisticsService.Client logisticsClient = logisticsServiceClient.getClient();
            List<Provider> providers = logisticsClient.getAllProviders();
            for(Provider provider: providers)
                providerNames.put(provider.getId(), provider.getName());

            SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");
            
            if(orders != null && !orders.isEmpty()){
                for(Order order: orders){
                    Date orderedOn = new Date(order.getCreated_timestamp());
                    orderDate.add(dateformat.format(orderedOn));
                }
            }
        } catch (Exception e)   {
            
        }
                return "index";
    }
    
    public List<Order> getOrders()   {
                return this.orders;
        }
        
        public List<String> getOrderDate() {
            return this.orderDate;
        }
    
        public Map<Long, String> getProviderNames()   {
            return this.providerNames;
        }

    public String formatPrice(double price)    {
        return formattingUtils.formatPrice(price);
    }
}