Subversion Repositories SmartDukaan

Rev

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