Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
6111 anupam.sin 1
package in.shop2020.serving.controllers;
2
 
3
import java.text.SimpleDateFormat;
4
import java.util.ArrayList;
5
import java.util.Arrays;
6
import java.util.Collections;
7
import java.util.Date;
8
import java.util.HashMap;
9
import java.util.List;
10
import java.util.Map;
11
 
12
import in.shop2020.logistics.Provider;
13
import in.shop2020.model.v1.order.Order;
14
import in.shop2020.model.v1.order.OrderStatus;
15
import in.shop2020.model.v1.order.OrderStatusGroups;
16
import in.shop2020.model.v1.order.RechargeOrder;
6603 anupam.sin 17
import in.shop2020.model.v1.order.RechargeOrderStatus;
6220 rajveer 18
import in.shop2020.model.v1.order.RechargeType;
6603 anupam.sin 19
import in.shop2020.model.v1.order.UserWallet;
6111 anupam.sin 20
import in.shop2020.serving.utils.FormattingUtils;
6135 anupam.sin 21
import in.shop2020.serving.utils.Utils;
6111 anupam.sin 22
import in.shop2020.thrift.clients.LogisticsClient;
23
import in.shop2020.thrift.clients.TransactionClient;
24
 
25
import org.apache.log4j.Logger;
26
import org.apache.struts2.convention.annotation.InterceptorRef;
27
import org.apache.struts2.convention.annotation.InterceptorRefs;
28
import org.apache.struts2.convention.annotation.Result;
29
import org.apache.struts2.convention.annotation.Results;
6603 anupam.sin 30
import org.apache.thrift.TException;
6111 anupam.sin 31
 
32
/**
33
 * @author rajveer
34
 *
35
 */
36
 
37
@SuppressWarnings("serial")
38
@InterceptorRefs({
39
    @InterceptorRef("myDefault"),
40
    @InterceptorRef("login")
41
})
42
 
43
@Results({
44
    @Result(name="redirect", type="redirectAction", 
45
    		params = {"actionName" , "login"})
46
})
47
public class MyRechargesController extends BaseController {
48
 
49
	private static Logger logger = Logger.getLogger(Class.class);
50
 
51
    private FormattingUtils formattingUtils = new FormattingUtils();
52
 
53
    Map<Long, String> providerNames = new HashMap<Long, String>();
54
    List<RechargeOrder> rechargeOrders = null;
55
    List<String> orderDate = new ArrayList<String>();
6603 anupam.sin 56
    private long orderId = 0;
6135 anupam.sin 57
 
6603 anupam.sin 58
    private Map<Long, String> rechargeProviderMap = new HashMap<Long, String>() ;
6996 anupam.sin 59
    private UserWallet wallet = null;
6603 anupam.sin 60
 
61
    private String errorMessage = "";
6111 anupam.sin 62
 
63
	public MyRechargesController() {
64
		super();
65
	}
66
 
67
	public String index(){
68
    	logger.info("this.request=" + this.request);
69
 
70
        try {
71
            TransactionClient transactionServiceClient = new TransactionClient();
72
            in.shop2020.model.v1.order.TransactionService.Client orderClient = transactionServiceClient.getClient();
73
            rechargeOrders = orderClient.getRechargeOrders(userinfo.getUserId());
74
            //Reverse the list of order. Last come first displayed 
75
            Collections.reverse(rechargeOrders);
76
            //LogisticsClient logisticsServiceClient = new LogisticsClient();
77
            //in.shop2020.logistics.LogisticsService.Client logisticsClient = logisticsServiceClient.getClient();
78
            //List<Provider> providers = logisticsClient.getAllProviders();
79
 
80
            //for(Provider provider: providers)
81
              //  providerNames.put(provider.getId(), provider.getName());
82
 
83
        } catch (Exception e)   {
84
            logger.error("Error while getting the recharge orders for the user", e);
85
        }
86
        if(rechargeOrders != null && !rechargeOrders.isEmpty()){
6135 anupam.sin 87
            for(RechargeOrder rechargeOrder: rechargeOrders) {
6220 rajveer 88
            	if(rechargeOrder.getRechargeType() == RechargeType.MOBILE){
89
            		rechargeProviderMap.put(rechargeOrder.getId(), Utils.getMobileProvidersMap().get(rechargeOrder.getOperatorId()));
90
            	}
91
            	if(rechargeOrder.getRechargeType() == RechargeType.DTH){
92
            		rechargeProviderMap.put(rechargeOrder.getId(), Utils.getDthProvidersMap().get(rechargeOrder.getOperatorId()));
93
            	}
6111 anupam.sin 94
            }
95
        }
96
		return "index";
97
    }
98
 
99
	public String formatDate(long timestamp){
100
        Date date = new Date(timestamp);
101
        SimpleDateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss aa");
102
        return dateformat.format(date);
103
    }
104
 
6996 anupam.sin 105
	public boolean shouldShowExtraColumn() {
6603 anupam.sin 106
	    try {
107
    	    TransactionClient transactionServiceClient = new TransactionClient();
108
            in.shop2020.model.v1.order.TransactionService.Client orderClient = transactionServiceClient.getClient();
6996 anupam.sin 109
            wallet = orderClient.getUserWallet(userinfo.getUserId());
6603 anupam.sin 110
            if (wallet.getAmount() > 0) {
111
                for(RechargeOrder rechargeOrder : rechargeOrders) {
112
                    if (Utils.refundableRechargeStatusList.contains(rechargeOrder.getStatus()) && 
113
                            (rechargeOrder.getWalletAmount() != (rechargeOrder.getTotalAmount() - rechargeOrder.getCouponAmount()))) {
114
                        return true;
115
                    }
116
                }
6996 anupam.sin 117
            } else {
118
                for(RechargeOrder rechargeOrder : rechargeOrders) {
119
                    if (rechargeOrder.getStatus() == RechargeOrderStatus.RECHARGE_SUCCESSFUL) {
120
                        return true;
121
                    }    
122
                }
123
            }
6603 anupam.sin 124
        } catch (Exception e) {
125
            logger.error("Unable to get Wallet", e);
126
        }
127
        return false;
128
	}
129
 
130
	public boolean isRefundPossible(RechargeOrder rechargeOrder) {
6996 anupam.sin 131
	    if (wallet.getAmount() > 0 && Utils.refundableRechargeStatusList.contains(rechargeOrder.getStatus()) && 
6603 anupam.sin 132
                (rechargeOrder.getWalletAmount() != (rechargeOrder.getTotalAmount() - rechargeOrder.getCouponAmount()))) {
133
            return true;
134
        }
135
	    return false;
136
	}
137
 
138
	public String create() {
139
	    try {
140
            TransactionClient transactionServiceClient = new TransactionClient();
141
            if(!transactionServiceClient.getClient().refundRechargeOrder(orderId)) {
142
                errorMessage = "Refund failed";
143
            }
144
        } catch (Exception e) {
145
            logger.error("Unable to refund rechargeOrder : " + orderId, e);
146
            errorMessage = "Refund failed";
147
        }
148
        return index();
149
	}
150
 
151
	public String getDisplayStatus(RechargeOrderStatus status) {
152
	    return Utils.statusMap.get(status);
153
	}
154
 
6111 anupam.sin 155
    public List<RechargeOrder> getRechargeOrders()  {
156
        return rechargeOrders;
157
    }
158
 
159
    public List<String> getOrderDate()  {
160
        return orderDate;
161
    }
6135 anupam.sin 162
 
163
    public String getProviderName(Long rechargeOrderId) {
164
        return rechargeProviderMap.get(rechargeOrderId);
165
    }
6603 anupam.sin 166
 
167
    public long getOrderId() {
168
        return orderId;
169
    }
170
 
171
    public void setOrderId(long orderId) {
172
        this.orderId = orderId;
173
    }
174
 
175
    public String getErrorMessage() {
176
        return errorMessage;
177
    }
178
 
179
    public void setErrorMessage(String errorMessage) {
180
        this.errorMessage = errorMessage;
181
    }
6111 anupam.sin 182
}