Subversion Repositories SmartDukaan

Rev

Rev 4142 | Rev 4241 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2674 vikas 1
package in.shop2020.serving.controllers;
2
 
3578 mandeep.dh 3
import in.shop2020.crm.SearchFilter;
4
import in.shop2020.crm.Ticket;
5
import in.shop2020.crm.TicketCategory;
6
import in.shop2020.crm.TicketStatus;
2674 vikas 7
import in.shop2020.model.v1.order.LineItem;
8
import in.shop2020.model.v1.order.Order;
3578 mandeep.dh 9
import in.shop2020.model.v1.order.OrderStatus;
4142 mandeep.dh 10
import in.shop2020.model.v1.user.Address;
2728 vikas 11
import in.shop2020.payments.Attribute;
12
import in.shop2020.payments.Constants;
2674 vikas 13
import in.shop2020.payments.Payment;
2728 vikas 14
import in.shop2020.payments.PaymentException;
4142 mandeep.dh 15
import in.shop2020.payments.PaymentService.Client;
3090 mandeep.dh 16
import in.shop2020.serving.model.ShipmentUpdate;
17
import in.shop2020.serving.services.BlueDartTrackingService;
3578 mandeep.dh 18
import in.shop2020.thrift.clients.CRMClient;
3128 rajveer 19
import in.shop2020.thrift.clients.PaymentClient;
20
import in.shop2020.thrift.clients.TransactionClient;
4142 mandeep.dh 21
import in.shop2020.thrift.clients.UserClient;
3546 mandeep.dh 22
import in.shop2020.utils.ModelUtils;
2674 vikas 23
 
24
import java.util.ArrayList;
25
import java.util.List;
26
 
27
import org.apache.log4j.Logger;
2728 vikas 28
import org.apache.thrift.TException;
4142 mandeep.dh 29
import org.apache.thrift.transport.TTransportException;
2674 vikas 30
 
31
/**
32
 * @author vikas
3578 mandeep.dh 33
 * 
2674 vikas 34
 */
35
@SuppressWarnings("serial")
36
public class UserOrderInfoController extends BaseController {
3578 mandeep.dh 37
    private static Logger                  log                     = Logger.getLogger(Class.class);
3090 mandeep.dh 38
    private static BlueDartTrackingService blueDartTrackingService = new BlueDartTrackingService();
39
 
4142 mandeep.dh 40
    private long                 orderId;
41
    private Order                order;
42
    private List<Payment>        payments;
43
    private List<ShipmentUpdate> shipmentUpdates;
44
    private Long                 codTicketId;
45
    private List<Address>        addresses;
2674 vikas 46
 
3578 mandeep.dh 47
    public UserOrderInfoController() {
2674 vikas 48
        super();
49
    }
50
 
51
    public String index() throws Exception {
3128 rajveer 52
        PaymentClient paymentServiceClient = new PaymentClient();
53
        TransactionClient transactionServiceClient = new TransactionClient();
3090 mandeep.dh 54
 
2674 vikas 55
        try {
3499 mandeep.dh 56
            order = transactionServiceClient.getClient().getOrder(orderId);
3578 mandeep.dh 57
        } catch (Exception e) {
2674 vikas 58
            addActionError("Invalid order id or no order selected.");
59
            return "index";
60
        }
61
 
4142 mandeep.dh 62
        payments = paymentServiceClient.getClient()
3578 mandeep.dh 63
                .getPaymentForTxnId(order.getTransactionId());
3090 mandeep.dh 64
 
3578 mandeep.dh 65
        shipmentUpdates = blueDartTrackingService.getUpdates(order
66
                .getAirwaybill_no());
67
 
68
        if (order.isCod() && OrderStatus.INIT.equals(order.getStatus())) {
69
            populateCODTicketId(order.getCustomer_id());
70
        }
71
 
4142 mandeep.dh 72
        if (canEditOrderAddress()) {
73
            userContextServiceClient = new UserClient().getClient();
74
            addresses = userContextServiceClient.getAllAddressesForUser(order.getCustomer_id());
75
        }
76
 
77
        return INDEX;
2674 vikas 78
    }
79
 
4142 mandeep.dh 80
    private boolean canEditOrderAddress() {
81
        return false;
82
    }
83
 
3578 mandeep.dh 84
    private void populateCODTicketId(long customerId) {
85
        try {
86
            SearchFilter searchFilter = new SearchFilter();
87
            searchFilter.setTicketCategory(TicketCategory.COD_VERIFICATION);
88
            searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
89
            searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
90
            searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
91
            searchFilter.setCustomerId(customerId);
92
            crmServiceClient = new CRMClient().getClient();
93
            List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);
94
            if (tickets != null && !tickets.isEmpty()) {
95
                codTicketId = tickets.get(0).getId();
96
            }
97
        } catch (TException e) {
98
            log.error("Error fetching tickets for customerId: " + customerId, e);
99
        }
100
    }
101
 
4142 mandeep.dh 102
    public String getPaymentGateway(Payment payment) {
103
        String gatewayName = "";
3578 mandeep.dh 104
 
4142 mandeep.dh 105
        try {
106
            Client paymentServiceClient = new PaymentClient().getClient();
107
            gatewayName = paymentServiceClient.getPaymentGateway(payment.getGatewayId()).getName();
108
        } catch (TTransportException e) {
109
        } catch (PaymentException e) {
110
        } catch (TException e) {
2674 vikas 111
        }
4142 mandeep.dh 112
 
113
        return gatewayName;
2674 vikas 114
    }
115
 
4142 mandeep.dh 116
    public String getProductName(LineItem lineItem) {
117
        String name = ModelUtils.extractProductNameFromLineItem(lineItem);
118
 
4146 mandeep.dh 119
        if (lineItem.getColor() != null && !lineItem.getColor().isEmpty()) {
4142 mandeep.dh 120
            name += "(" + lineItem.getColor() + ")";
2674 vikas 121
        }
4142 mandeep.dh 122
 
123
        return name;
2674 vikas 124
    }
125
 
4142 mandeep.dh 126
    public int convertDouble(double value) {
127
        return (int)value;
2674 vikas 128
    }
3578 mandeep.dh 129
 
4142 mandeep.dh 130
    public String getAddress(Order order) {
131
        return ModelUtils.extractAddressFromOrder(order);
132
    }
133
 
2728 vikas 134
    public String getPaymentMethod(List<Attribute> paymentAttributes) {
135
        String paymentMethod = null;
3578 mandeep.dh 136
        if (paymentAttributes == null || paymentAttributes.isEmpty()) {
2728 vikas 137
            return "N/A";
138
        }
3578 mandeep.dh 139
        for (Attribute a : paymentAttributes) {
140
            if ("payMethod".equals(a.getName())) {
2728 vikas 141
                paymentMethod = Constants.PAYMENT_METHOD.get(a.getValue());
142
                break;
143
            }
144
        }
145
        return paymentMethod != null ? paymentMethod : "N/A";
146
    }
2674 vikas 147
 
148
    public void setOrderId(String orderId) {
149
        try {
150
            this.orderId = Long.parseLong(orderId);
3578 mandeep.dh 151
        } catch (NumberFormatException e) {
2674 vikas 152
            log.error(e);
153
        }
154
    }
155
 
4142 mandeep.dh 156
    public List<Payment> getPayments() {
157
        return payments;
2674 vikas 158
    }
159
 
3090 mandeep.dh 160
    public List<ShipmentUpdate> getShipmentUpdates() {
161
        return shipmentUpdates;
162
    }
163
 
164
    public void setShipmentUpdates(List<ShipmentUpdate> shipmentUpdates) {
165
        this.shipmentUpdates = shipmentUpdates;
166
    }
3499 mandeep.dh 167
 
168
    public Order getOrder() {
169
        return order;
170
    }
171
 
172
    public void setOrder(Order order) {
173
        this.order = order;
174
    }
3578 mandeep.dh 175
 
176
    public Long getCodTicketId() {
177
        return codTicketId;
178
    }
179
 
180
    public void setCodTicketId(Long codTicketId) {
181
        this.codTicketId = codTicketId;
182
    }
4142 mandeep.dh 183
 
184
    public List<Address> getAddresses() {
185
        return addresses;
186
    }
187
 
188
    public void setAddresses(List<Address> addresses) {
189
        this.addresses = addresses;
190
    }
2674 vikas 191
}