Subversion Repositories SmartDukaan

Rev

Rev 6397 | Rev 6443 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6397 Rev 6433
Line 6... Line 6...
6
import in.shop2020.model.v1.order.RechargeOrder;
6
import in.shop2020.model.v1.order.RechargeOrder;
7
import in.shop2020.model.v1.order.RechargeOrderStatus;
7
import in.shop2020.model.v1.order.RechargeOrderStatus;
8
import in.shop2020.model.v1.order.RechargePlan;
8
import in.shop2020.model.v1.order.RechargePlan;
9
import in.shop2020.model.v1.order.RechargeType;
9
import in.shop2020.model.v1.order.RechargeType;
10
import in.shop2020.model.v1.order.UserWallet;
10
import in.shop2020.model.v1.order.UserWallet;
-
 
11
import in.shop2020.model.v1.user.PromotionException;
11
import in.shop2020.model.v1.user.User;
12
import in.shop2020.model.v1.user.User;
12
import in.shop2020.model.v1.user.UserContextException;
13
import in.shop2020.model.v1.user.UserContextException;
13
import in.shop2020.serving.utils.DesEncrypter;
14
import in.shop2020.serving.utils.DesEncrypter;
14
import in.shop2020.serving.utils.Utils;
15
import in.shop2020.serving.utils.Utils;
15
import in.shop2020.thrift.clients.HelperClient;
16
import in.shop2020.thrift.clients.HelperClient;
-
 
17
import in.shop2020.thrift.clients.PromotionClient;
16
import in.shop2020.thrift.clients.TransactionClient;
18
import in.shop2020.thrift.clients.TransactionClient;
17
import in.shop2020.thrift.clients.UserClient;
19
import in.shop2020.thrift.clients.UserClient;
18
import in.shop2020.utils.DataLogger;
20
import in.shop2020.utils.DataLogger;
19
import in.shop2020.utils.Mail;
21
import in.shop2020.utils.Mail;
20
 
22
 
21
import java.util.ArrayList;
23
import java.util.ArrayList;
-
 
24
import java.util.HashMap;
22
import java.util.List;
25
import java.util.List;
-
 
26
import java.util.Map;
23
import java.util.Random;
27
import java.util.Random;
24
 
28
 
25
import nl.captcha.Captcha;
29
import nl.captcha.Captcha;
26
 
30
 
27
import org.apache.log4j.Logger;
31
import org.apache.log4j.Logger;
Line 56... Line 60...
56
    private String message = "";
60
    private String message = "";
57
    private String errorMessage = "";
61
    private String errorMessage = "";
58
    private String totalAmount = "";
62
    private String totalAmount = "";
59
    private String plan = "";
63
    private String plan = "";
60
    private String circleCode;
64
    private String circleCode;
-
 
65
    private String couponCode = "";
-
 
66
    private String couponMessage = "";
-
 
67
    private long couponAmount = 0;
61
    private static final String chars = "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
68
    private static final String chars = "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
62
    private static final Random random = new Random();
69
    private static final Random random = new Random();
63
    private static final int LENGTH = 10;
70
    private static final int LENGTH = 10;
64
    private static Logger log = Logger.getLogger(Class.class);
71
    private static Logger log = Logger.getLogger(Class.class);
65
    
72
    
Line 72... Line 79...
72
    	if(!errorMessage.equals("SUCCESS")){
79
    	if(!errorMessage.equals("SUCCESS")){
73
    		DataLogger.logData(EventType.PROVIDER_FETCH_FAILURE, getSessionId(), userinfo.getUserId(), userinfo.getEmail(),
80
    		DataLogger.logData(EventType.PROVIDER_FETCH_FAILURE, getSessionId(), userinfo.getUserId(), userinfo.getEmail(),
74
    				rechargeType.toString(), number, operator);
81
    				rechargeType.toString(), number, operator);
75
    		return "recharge-redirect";
82
    		return "recharge-redirect";
76
    	}
83
    	}
-
 
84
    	
77
    	setErrorMessage("");
85
    	setErrorMessage("");
78
        setTotalAmount(amount);
86
        setTotalAmount(amount);
-
 
87
        
79
        if(userinfo.isLoggedIn()) {
88
        if(userinfo.isLoggedIn()) {
80
            setUserId("" + userinfo.getUserId());
89
            setUserId("" + userinfo.getUserId());
81
            try {
-
 
82
            TransactionClient tc = new TransactionClient();
-
 
83
            UserWallet wallet = tc.getClient().getUserWallet(userinfo.getUserId());
-
 
84
            long amountA = 0;
-
 
85
            if(wallet.getAmount() == 0){
-
 
86
                setMessage("Your RechargeWallet is empty.");
-
 
87
            } else if ((amountA = wallet.getAmount() - Long.parseLong(amount)) >= 0) {
-
 
88
                setAmount("0");
90
            calculateAmounts();
89
                setMessage("You now have Rs. " + amountA + " left in your RechargeWallet.");
-
 
90
                setWalletAmountUsed("" + (wallet.getAmount() - amountA));
-
 
91
            } else {
-
 
92
                setAmount("" + (0-amountA));
-
 
93
                setMessage("You have used all the amount in your RechargeWallet.");
-
 
94
                setWalletAmountUsed(("" + wallet.getAmount()));
-
 
95
            }
-
 
96
            
-
 
97
                
-
 
98
            } catch (Exception e) {
-
 
99
                log.error("Unable to get user wallet", e);
-
 
100
            }
-
 
101
        } else {
91
        } else {
102
            long tempUserId = createUserAndSendMail(email);
92
            long tempUserId = createUserAndSendMail(email);
103
            if(tempUserId == -1)
93
            if(tempUserId == -1)
104
            {
94
            {
105
            	errorMessage = "Oops! There seems to be a problem. Please try after some time";
95
            	errorMessage = "Oops! There seems to be a problem. Please try after some time";
Line 108... Line 98...
108
                setUserId("" + tempUserId);
98
                setUserId("" + tempUserId);
109
            }
99
            }
110
        }
100
        }
111
        return index();
101
        return index();
112
    }
102
    }
-
 
103
 
-
 
104
    private void calculateAmounts() {
-
 
105
        
-
 
106
        try {
-
 
107
            TransactionClient tc = new TransactionClient();
-
 
108
            UserWallet wallet = tc.getClient().getUserWallet(userinfo.getUserId());
-
 
109
            long amountA = 0;
-
 
110
            if(wallet.getAmount() == 0){
-
 
111
                setAmount("" + (Long.parseLong(totalAmount) - couponAmount));
-
 
112
                setMessage("");
-
 
113
            } else if ((amountA = wallet.getAmount() - (Long.parseLong(totalAmount) - couponAmount)) >= 0) {
-
 
114
                setAmount("0");
-
 
115
                setWalletAmountUsed("" + (wallet.getAmount() - amountA));
-
 
116
                setMessage("Amount used from RechargeWallet : Rs. " + walletAmountUsed
-
 
117
                        + "<br>Amount left in your RechargeWallet : Rs. " + amountA);
-
 
118
                
-
 
119
            } else {
-
 
120
                setAmount("" + (0-amountA));
-
 
121
                setWalletAmountUsed("" + wallet.getAmount());
-
 
122
                setMessage("Amount used from RechargeWallet : Rs. " + walletAmountUsed
-
 
123
                        + "<br>Amount left in your RechargeWallet : Rs.0");
-
 
124
            }
-
 
125
        } catch (Exception e) {
-
 
126
            log.error("Unable to get user wallet", e);
-
 
127
        }
-
 
128
    }
113
    
129
    
114
    public String validateRecharge(){
130
    public String validateRecharge(){
115
    	TransactionClient tcl;
131
    	TransactionClient tcl;
116
    	try {
132
    	try {
117
    		tcl = new TransactionClient();
133
    		tcl = new TransactionClient();
Line 136... Line 152...
136
            }
152
            }
137
        }
153
        }
138
        return false;
154
        return false;
139
    }
155
    }
140
    
156
    
-
 
157
    public String applyRechargeCoupon() {
-
 
158
        Map<Long, String> couponResult = null;
-
 
159
        try {
-
 
160
            PromotionClient pc = new PromotionClient();
-
 
161
            couponResult = pc.getClient().applyRechargeCoupon(couponCode, Long.parseLong(totalAmount), Long.parseLong(userId));
-
 
162
            if (couponResult != null) {
-
 
163
                for (long couponAmount : couponResult.keySet()) {
-
 
164
                    setCouponMessage(couponResult.get(couponAmount));
-
 
165
                    this.couponAmount = couponAmount;
-
 
166
                }
-
 
167
            }
-
 
168
            if(userinfo.isLoggedIn()) {
-
 
169
                calculateAmounts();
-
 
170
            } else {
-
 
171
                setAmount("" + (Long.parseLong(amount) - couponAmount));
-
 
172
            }
-
 
173
            return index();
-
 
174
        } catch (Exception e) {
-
 
175
            log.error("Unable to apply recharge coupon : " + couponCode, e);
-
 
176
            couponResult = new HashMap<Long, String>();
-
 
177
            setCouponMessage("Currently this coupon is unavailable");
-
 
178
        }
-
 
179
        return index();
-
 
180
    }
-
 
181
    
141
    public String createRecharge(){
182
    public String createRecharge(){
142
        if (amount.equals("0")) {
183
        if (amount.equals("0")) {
143
            if (!verifyCaptcha()) {
184
            if (!verifyCaptcha()) {
144
                setErrorMessage("Invalid captcha. Try Again.");
185
                setErrorMessage("Invalid captcha. Try Again.");
145
                log.info("Invalid captcha error msg has been added");
186
                log.info("Invalid captcha error msg has been added");
Line 161... Line 202...
161
                    log.warn("OperatorId : " + operator + " and plan : " + plan + " do not match");
202
                    log.warn("OperatorId : " + operator + " and plan : " + plan + " do not match");
162
                    return "recharge-redirect";
203
                    return "recharge-redirect";
163
                }
204
                }
164
            }
205
            }
165
            
206
            
-
 
207
            if(userinfo.isLoggedIn()) {
-
 
208
                UserWallet wallet = tc.getClient().getUserWallet(userinfo.getUserId());
-
 
209
                if(wallet.getAmount() < Long.parseLong(walletAmountUsed)) {
-
 
210
                    errorMessage = "Oops! There seems to be a problem. Please try after some time";
-
 
211
                    log.warn("WalletAmount used : " + walletAmountUsed + " is greater than wallet Balance  : " + wallet.getAmount());
-
 
212
                    return "recharge-redirect";
-
 
213
                }
-
 
214
                
-
 
215
                if (userinfo.getUserId() != Long.parseLong(userId)) {
-
 
216
                    errorMessage = "Oops! There seems to be a problem. Please try after some time";
-
 
217
                    log.warn("Logged in user : " + userinfo.getUserId() + " does not match with userId sent by user  : " +  userId);
-
 
218
                    return "recharge-redirect";
-
 
219
                }
-
 
220
            }
-
 
221
            
-
 
222
            PromotionClient pc = new PromotionClient();
-
 
223
            Map<Long, String> couponResult = null;
-
 
224
            couponResult = pc.getClient().applyRechargeCoupon(couponCode, Long.parseLong(totalAmount), Long.parseLong(userId));
-
 
225
            if(couponResult != null) {
-
 
226
                for (long couponAmount : couponResult.keySet()) {
-
 
227
                    setCouponMessage(couponResult.get(couponAmount));
-
 
228
                    this.couponAmount = couponAmount;
-
 
229
                }
-
 
230
            }
-
 
231
            
-
 
232
            if (Long.parseLong(totalAmount) != Long.parseLong(amount) + Long.parseLong(walletAmountUsed) + couponAmount){
-
 
233
                errorMessage = "Oops! There seems to be a problem. Please try after some time";
-
 
234
                log.warn("WalletAmount : " + walletAmountUsed + " plus couponAmount : " + couponAmount + " plus amount to be paid : " +
-
 
235
                        amount + "do not match with rechargeAmount : " + totalAmount);
-
 
236
                return "recharge-redirect";
-
 
237
            }
-
 
238
                
-
 
239
            
166
            RechargeOrder rechargeOrder = new RechargeOrder();
240
            RechargeOrder rechargeOrder = new RechargeOrder();
167
            rechargeOrder.setTotalAmount(Long.parseLong(totalAmount));
241
            rechargeOrder.setTotalAmount(Long.parseLong(totalAmount));
168
            rechargeOrder.setUserEmailId(email);
242
            rechargeOrder.setUserEmailId(email);
169
            rechargeOrder.setUserId(Long.parseLong(userId));
243
            rechargeOrder.setUserId(Long.parseLong(userId));
170
            rechargeOrder.setDeviceNumber(number);
244
            rechargeOrder.setDeviceNumber(number);
Line 172... Line 246...
172
            rechargeOrder.setOperatorId(Long.parseLong(operator));
246
            rechargeOrder.setOperatorId(Long.parseLong(operator));
173
            rechargeOrder.setRechargeType(RechargeType.findByValue(Integer.parseInt(rechargeType)));
247
            rechargeOrder.setRechargeType(RechargeType.findByValue(Integer.parseInt(rechargeType)));
174
            rechargeOrder.setStatus(RechargeOrderStatus.PAYMENT_PENDING);
248
            rechargeOrder.setStatus(RechargeOrderStatus.PAYMENT_PENDING);
175
            rechargeOrder.setOrderType(OrderType.B2C);
249
            rechargeOrder.setOrderType(OrderType.B2C);
176
            rechargeOrder.setWalletAmount(Long.parseLong(getWalletAmountUsed()));
250
            rechargeOrder.setWalletAmount(Long.parseLong(getWalletAmountUsed()));
-
 
251
            rechargeOrder.setCouponAmount(couponAmount);
177
            
252
            rechargeOrder.setCouponCode(couponCode);
178
            TransactionClient tc1 = new TransactionClient();
253
            TransactionClient tc1 = new TransactionClient();
179
            rechargeOrder = tc1.getClient().createRechargeOrder(rechargeOrder);
254
            rechargeOrder = tc1.getClient().createRechargeOrder(rechargeOrder);
180
            setRechargeOrderId(rechargeOrder.getId());
255
            setRechargeOrderId(rechargeOrder.getId());
181
            
256
            
182
        } catch (Exception e) {
257
        } catch (Exception e) {
Line 400... Line 475...
400
    }
475
    }
401
 
476
 
402
    public void setCircleCode(String circleCode) {
477
    public void setCircleCode(String circleCode) {
403
        this.circleCode = circleCode;
478
        this.circleCode = circleCode;
404
    }
479
    }
-
 
480
 
-
 
481
    public void setDiscountCode(String discountCode) {
-
 
482
        this.couponCode = discountCode;
-
 
483
    }
-
 
484
    
-
 
485
    public String getCouponCode() {
-
 
486
        return couponCode;
-
 
487
    }
-
 
488
 
-
 
489
    public void setCouponCode(String couponCode) {
-
 
490
        this.couponCode = couponCode;
-
 
491
    }
-
 
492
 
-
 
493
    public void setCouponAmount(long couponAmount) {
-
 
494
        this.couponAmount = couponAmount;
-
 
495
    }
-
 
496
 
-
 
497
    public long getCouponAmount() {
-
 
498
        return couponAmount;
-
 
499
    }
-
 
500
 
-
 
501
    public void setCouponMessage(String couponMessage) {
-
 
502
        this.couponMessage = couponMessage;
-
 
503
    }
-
 
504
 
-
 
505
    public String getCouponMessage() {
-
 
506
        return couponMessage;
-
 
507
    }
405
    
508
    
406
}
509
}