Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
6050 anupam.sin 1
package in.shop2020.serving.controllers;
2
 
6091 anupam.sin 3
import in.shop2020.datalogger.EventType;
6050 anupam.sin 4
import in.shop2020.model.v1.order.OrderType;
5
import in.shop2020.model.v1.order.RechargeCoupon;
6
import in.shop2020.model.v1.order.RechargeOrder;
7
import in.shop2020.model.v1.order.RechargeOrderStatus;
6397 anupam.sin 8
import in.shop2020.model.v1.order.RechargePlan;
6050 anupam.sin 9
import in.shop2020.model.v1.order.RechargeType;
6057 anupam.sin 10
import in.shop2020.model.v1.order.UserWallet;
6050 anupam.sin 11
import in.shop2020.model.v1.user.User;
12
import in.shop2020.model.v1.user.UserContextException;
13
import in.shop2020.serving.utils.DesEncrypter;
14
import in.shop2020.serving.utils.Utils;
15
import in.shop2020.thrift.clients.HelperClient;
6433 anupam.sin 16
import in.shop2020.thrift.clients.PromotionClient;
6050 anupam.sin 17
import in.shop2020.thrift.clients.TransactionClient;
18
import in.shop2020.thrift.clients.UserClient;
6228 anupam.sin 19
import in.shop2020.utils.DataLogger;
6091 anupam.sin 20
import in.shop2020.utils.Mail;
6050 anupam.sin 21
 
6495 anupam.sin 22
import java.math.BigInteger;
6050 anupam.sin 23
import java.util.ArrayList;
6433 anupam.sin 24
import java.util.HashMap;
6050 anupam.sin 25
import java.util.List;
6433 anupam.sin 26
import java.util.Map;
6091 anupam.sin 27
import java.util.Random;
6050 anupam.sin 28
 
6495 anupam.sin 29
import javax.mail.internet.AddressException;
30
import javax.mail.internet.InternetAddress;
6601 anupam.sin 31
import javax.servlet.http.HttpServletRequest;
6495 anupam.sin 32
 
6249 anupam.sin 33
import nl.captcha.Captcha;
34
 
6050 anupam.sin 35
import org.apache.log4j.Logger;
36
import org.apache.struts2.convention.annotation.Result;
37
import org.apache.struts2.convention.annotation.Results;
38
import org.apache.thrift.TException;
39
import org.apache.thrift.transport.TTransportException;
40
 
41
@Results({
6228 anupam.sin 42
    @Result(name="recharge-pay-options-redirect", type="redirectAction", params = {"actionName" , "recharge-pay-options", "rechargeOrderId", "${rechargeOrderId}"}),
6103 amit.gupta 43
    @Result(name="create-recharge-redirect", type="redirectAction", params = {"actionName" , "wallet-only-payment", "rechargeOrderId", "${rechargeOrderId}"}),
6730 anupam.sin 44
    @Result(name="recharge-redirect", type="redirectAction", params = {"actionName" , "recharge", "error", "${errorMessage}"}),
45
    @Result(name="login-redirect", type="redirectAction", params = {"actionName", "login", "redirectUrl", "recharge"})
6050 anupam.sin 46
})
47
 
48
public class ConfirmController extends BaseController{
49
 
50
    /**
51
     * 
52
     */
53
    private static final long serialVersionUID = 1L;
6057 anupam.sin 54
    private long rechargeOrderId = 0;
6050 anupam.sin 55
    private String amount = "";
6086 anupam.sin 56
    private String walletAmountUsed = "0";
6050 anupam.sin 57
    private String operator = "";
58
    private String number = "";
59
    private String email = "";
60
    private String rechargeType = "";
61
    private DesEncrypter desEncrypter = new DesEncrypter("saholic");
62
    private List<String> couponIds = null;
63
    private List<RechargeCoupon> coupons = null;
6058 anupam.sin 64
    private String userId;
6057 anupam.sin 65
    private String message = "";
6249 anupam.sin 66
    private String errorMessage = "";
6070 anupam.sin 67
    private String totalAmount = "";
6178 anupam.sin 68
    private String plan = "";
6307 anupam.sin 69
    private String circleCode;
6433 anupam.sin 70
    private String couponCode = "";
71
    private String couponMessage = "";
6495 anupam.sin 72
    private String hiddenUserId = "";
6433 anupam.sin 73
    private long couponAmount = 0;
6091 anupam.sin 74
    private static final String chars = "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
6495 anupam.sin 75
    private static final BigInteger key = new BigInteger("0333910847013829827302347601486730417451");
6504 anupam.sin 76
    private static final String COUPON_APPLIED_SUCCESSFULLY = "Coupon Applied";
6495 anupam.sin 77
 
6091 anupam.sin 78
    private static final Random random = new Random();
79
    private static final int LENGTH = 10;
6601 anupam.sin 80
    private static final String HEADER_X_FORWARDED_FOR = "X-FORWARDED-FOR";
6050 anupam.sin 81
    private static Logger log = Logger.getLogger(Class.class);
82
 
83
    public String index() {
84
        return "index";
85
    }
86
 
87
    public String create() {
6270 rajveer 88
    	errorMessage = validateRecharge();
89
    	if(!errorMessage.equals("SUCCESS")){
6108 amar.kumar 90
    		DataLogger.logData(EventType.PROVIDER_FETCH_FAILURE, getSessionId(), userinfo.getUserId(), userinfo.getEmail(),
91
    				rechargeType.toString(), number, operator);
6103 amit.gupta 92
    		return "recharge-redirect";
93
    	}
6433 anupam.sin 94
 
6294 rajveer 95
    	setErrorMessage("");
6086 anupam.sin 96
        setTotalAmount(amount);
6433 anupam.sin 97
 
6057 anupam.sin 98
        if(userinfo.isLoggedIn()) {
6124 anupam.sin 99
            setUserId("" + userinfo.getUserId());
6433 anupam.sin 100
            calculateAmounts();
6124 anupam.sin 101
        } else {
102
            long tempUserId = createUserAndSendMail(email);
103
            if(tempUserId == -1)
104
            {
6270 rajveer 105
            	errorMessage = "Oops! There seems to be a problem. Please try after some time";
6124 anupam.sin 106
                return "recharge-redirect";
107
            } else {
108
                setUserId("" + tempUserId);
109
            }
6057 anupam.sin 110
        }
6495 anupam.sin 111
 
112
        setHash(encrypt(getUserId()));
6050 anupam.sin 113
        return index();
114
    }
6996 anupam.sin 115
 
116
    public String rechargeAgain() {
117
        try {
118
        TransactionClient tcl = new TransactionClient();
119
        RechargeOrder rechargeOrder = tcl.getClient().getRechargeOrder(rechargeOrderId);
120
        rechargeType = rechargeOrder.getRechargeType().getValue() + "";
121
        setNumber(rechargeOrder.getDeviceNumber());
122
        setOperator(rechargeOrder.getOperatorId() + "");
123
        setPlan(rechargeOrder.getPlan());
124
        setAmount(rechargeOrder.getTotalAmount() + "");
125
        setEmail(rechargeOrder.getUserEmailId());
126
        } catch(Exception e) {
127
            log.error("Unable to get the old recharge order : " + rechargeOrderId, e);
128
            errorMessage = "Oops! There seems to be a problem. Please enter the details";
129
            return "recharge-redirect";
130
        }
131
        return create();
132
    }
6433 anupam.sin 133
 
6723 anupam.sin 134
    private String calculateAmounts() {
6433 anupam.sin 135
 
136
        try {
137
            TransactionClient tc = new TransactionClient();
138
            UserWallet wallet = tc.getClient().getUserWallet(userinfo.getUserId());
139
            long amountA = 0;
140
            if(wallet.getAmount() == 0){
141
                setAmount("" + (Long.parseLong(totalAmount) - couponAmount));
142
                setMessage("");
143
            } else if ((amountA = wallet.getAmount() - (Long.parseLong(totalAmount) - couponAmount)) >= 0) {
144
                setAmount("0");
145
                setWalletAmountUsed("" + (wallet.getAmount() - amountA));
146
                setMessage("Amount used from RechargeWallet : Rs. " + walletAmountUsed
147
                        + "<br>Amount left in your RechargeWallet : Rs. " + amountA);
148
 
149
            } else {
150
                setAmount("" + (0-amountA));
151
                setWalletAmountUsed("" + wallet.getAmount());
152
                setMessage("Amount used from RechargeWallet : Rs. " + walletAmountUsed
153
                        + "<br>Amount left in your RechargeWallet : Rs.0");
154
            }
6723 anupam.sin 155
 
156
            //Adding a dummy return statement
157
            return "calculated successfully";
6433 anupam.sin 158
        } catch (Exception e) {
159
            log.error("Unable to get user wallet", e);
6723 anupam.sin 160
            errorMessage = "Oops! There seems to be a problem. Please try after some time";
161
            return "recharge-redirect";
6433 anupam.sin 162
        }
163
    }
6050 anupam.sin 164
 
6270 rajveer 165
    public String validateRecharge(){
6103 amit.gupta 166
    	TransactionClient tcl;
167
    	try {
168
    		tcl = new TransactionClient();
6601 anupam.sin 169
    		return tcl.getClient().validateRecharge(RechargeType.findByValue(Integer.parseInt(this.rechargeType)), number, Long.parseLong(operator), remoteAddr(request));
6103 amit.gupta 170
    	} catch (Exception e) {
171
    		log.error("Unable to get service provider for Device number " + number + " and rechargeType : " +  rechargeType, e);
172
    	}
6270 rajveer 173
    	return "Oops! There seems to be a problem. Please try after some time";
6103 amit.gupta 174
 
175
    }
6495 anupam.sin 176
 
177
    private String validateFields() {
178
        if(amount == null || amount == "") {
179
            log.warn("Amount received is empty or null");
180
            return "Amount cannot be empty";
181
        }
182
 
183
        if(rechargeType == null || rechargeType == "") {
184
            log.warn("rechargeType received is empty or null");
185
            return "Oops! There seems to be a problem. Please try after some time";
186
        }
187
 
188
        if(email == null || email == "") {
189
            log.warn("Email received is empty or null");
190
            return "Email address cannot be empty";
191
        }
192
 
193
        try {
194
            InternetAddress emailAdd = new InternetAddress(email);
195
            emailAdd.validate();
196
        } catch (AddressException e1) {
197
            log.warn("Invalid email address : " + email, e1);
198
            return "ERROR : Invalid email address.";
199
        }
200
 
201
        if (RechargeType.findByValue(Integer.parseInt(this.rechargeType)) == RechargeType.DTH) {
6800 anupam.sin 202
            if (Long.parseLong(totalAmount) < 250 || Long.parseLong(totalAmount) > 2000) {
203
                if(operator.equals("1")) {
204
                    return "DishTv recharge amount should be between Rs.250 and Rs.2000";
205
                }
206
 
207
                if (!(Long.parseLong(totalAmount) >= 200 && Long.parseLong(totalAmount) < 250)) {
208
                    return "DTH recharge amount should be between Rs.200 and Rs.2000";
209
                }
6495 anupam.sin 210
            }
211
 
212
        } else if (RechargeType.findByValue(Integer.parseInt(this.rechargeType)) == RechargeType.MOBILE) {
213
            if (Long.parseLong(totalAmount) < 10 || Long.parseLong(totalAmount) > 1000) {
214
                return "Recharge amount should be between Rs.10 and Rs.1000";
215
            }
216
            if (number.length() != 10) {
217
                return "Number should be of 10 digits";
218
            }
219
 
220
        } else {
221
            log.warn("Invalid rechargeType : " + rechargeType);
222
            return "Oops! There seems to be a problem. Please try after some time";
223
        }
224
 
225
        if (operator == null || operator == "") {
226
            log.warn("Invalid operator : " + operator);
227
            return "Oops! There seems to be a problem. Please try after some time";
228
        }
229
        return "SUCCESS";
230
    }
6103 amit.gupta 231
 
6307 anupam.sin 232
    public boolean shouldPromptForWallet(){
233
        if(!isLoggedIn()) {
234
            try {
235
                TransactionClient tc = new TransactionClient();
236
                UserWallet wallet = tc.getClient().getUserWallet(Long.parseLong(userId));
237
                if(wallet.getAmount() != 0) {
238
                    return true;
239
                }
240
            } catch (Exception e) {
241
                log.error("Unable to get wallet for userId : " + userId, e);
242
            }
243
        }
244
        return false;
245
    }
246
 
6433 anupam.sin 247
    public String applyRechargeCoupon() {
248
        Map<Long, String> couponResult = null;
249
        try {
250
            PromotionClient pc = new PromotionClient();
251
            couponResult = pc.getClient().applyRechargeCoupon(couponCode, Long.parseLong(totalAmount), Long.parseLong(userId));
252
            if (couponResult != null) {
253
                for (long couponAmount : couponResult.keySet()) {
254
                    setCouponMessage(couponResult.get(couponAmount));
255
                    this.couponAmount = couponAmount;
256
                }
6730 anupam.sin 257
 
258
                if (getCouponMessage().equals("login")) {
259
                    if (userinfo.isLoggedIn()) {
260
                        setCouponMessage("Coupon Applied");
261
                    } else {
262
                        couponAmount = 0;
263
                        setCouponMessage("Please <a href='login?redirectUrl=recharge' style='color:black;font-weight:bold;'>click here</a> to login and use this coupon");
264
                    }
265
                }
6433 anupam.sin 266
            }
6443 anupam.sin 267
 
268
            if(couponAmount == 0) {
6495 anupam.sin 269
                couponCode = "";
6443 anupam.sin 270
            }
271
 
6433 anupam.sin 272
            if(userinfo.isLoggedIn()) {
273
                calculateAmounts();
274
            } else {
275
                setAmount("" + (Long.parseLong(amount) - couponAmount));
276
            }
277
            return index();
278
        } catch (Exception e) {
279
            log.error("Unable to apply recharge coupon : " + couponCode, e);
280
            setCouponMessage("Currently this coupon is unavailable");
281
        }
282
        return index();
283
    }
284
 
6050 anupam.sin 285
    public String createRecharge(){
6249 anupam.sin 286
        if (amount.equals("0")) {
287
            if (!verifyCaptcha()) {
288
                setErrorMessage("Invalid captcha. Try Again.");
289
                log.info("Invalid captcha error msg has been added");
290
                return index();
291
            }
292
        }
6495 anupam.sin 293
 
294
        String decryptedUserId = decrypt(hiddenUserId);
295
        if(!userId.equals(decryptedUserId)) {
296
            log.warn("userId and hash do not match");
297
            errorMessage = "Oops! There seems to be a problem. Please try after some time";
298
            return "recharge-redirect";
299
        }
300
 
301
        errorMessage = validateFields();
302
        if (!errorMessage.equals("SUCCESS")) {
303
            return "recharge-redirect";
304
        }
305
 
6050 anupam.sin 306
        try {
6058 anupam.sin 307
            TransactionClient tc = new TransactionClient();
6397 anupam.sin 308
            List<RechargePlan> plans = tc.getClient().getPlansForOperator(Long.parseLong(operator));
309
            List<String> planNameList = new ArrayList<String>();
310
            if (plans == null || plans.isEmpty()) {
311
                setPlan("");
312
            } else {
313
                for (RechargePlan tempPlan : plans) {
314
                    planNameList.add(tempPlan.getName());
315
                }
316
                if (!planNameList.contains(plan)) {
317
                    errorMessage = "Oops! There seems to be a problem. Please try after some time";
318
                    log.warn("OperatorId : " + operator + " and plan : " + plan + " do not match");
319
                    return "recharge-redirect";
320
                }
321
            }
322
 
6433 anupam.sin 323
            if(userinfo.isLoggedIn()) {
324
                UserWallet wallet = tc.getClient().getUserWallet(userinfo.getUserId());
325
                if(wallet.getAmount() < Long.parseLong(walletAmountUsed)) {
326
                    errorMessage = "Oops! There seems to be a problem. Please try after some time";
327
                    log.warn("WalletAmount used : " + walletAmountUsed + " is greater than wallet Balance  : " + wallet.getAmount());
328
                    return "recharge-redirect";
329
                }
330
 
331
                if (userinfo.getUserId() != Long.parseLong(userId)) {
332
                    errorMessage = "Oops! There seems to be a problem. Please try after some time";
333
                    log.warn("Logged in user : " + userinfo.getUserId() + " does not match with userId sent by user  : " +  userId);
334
                    return "recharge-redirect";
335
                }
336
            }
337
 
338
            PromotionClient pc = new PromotionClient();
339
            Map<Long, String> couponResult = null;
340
            couponResult = pc.getClient().applyRechargeCoupon(couponCode, Long.parseLong(totalAmount), Long.parseLong(userId));
341
            if(couponResult != null) {
6754 anupam.sin 342
                for (long couponAmount : couponResult.keySet()) {
343
                    setCouponMessage(couponResult.get(couponAmount));
344
                    this.couponAmount = couponAmount;
6495 anupam.sin 345
                }
6754 anupam.sin 346
 
347
                if (getCouponMessage().equals("login")) {
348
                    setCouponMessage("Coupon Applied");
349
                }
350
 
6495 anupam.sin 351
            } else {
352
                couponCode = "";
353
                couponAmount = 0;
6433 anupam.sin 354
            }
355
 
356
            if (Long.parseLong(totalAmount) != Long.parseLong(amount) + Long.parseLong(walletAmountUsed) + couponAmount){
357
                errorMessage = "Oops! There seems to be a problem. Please try after some time";
358
                log.warn("WalletAmount : " + walletAmountUsed + " plus couponAmount : " + couponAmount + " plus amount to be paid : " +
359
                        amount + "do not match with rechargeAmount : " + totalAmount);
360
                return "recharge-redirect";
361
            }
362
 
363
 
6050 anupam.sin 364
            RechargeOrder rechargeOrder = new RechargeOrder();
6249 anupam.sin 365
            rechargeOrder.setTotalAmount(Long.parseLong(totalAmount));
6050 anupam.sin 366
            rechargeOrder.setUserEmailId(email);
6058 anupam.sin 367
            rechargeOrder.setUserId(Long.parseLong(userId));
6723 anupam.sin 368
            rechargeOrder.setDeviceNumber(number.trim());
6178 anupam.sin 369
            rechargeOrder.setPlan(plan);
6050 anupam.sin 370
            rechargeOrder.setOperatorId(Long.parseLong(operator));
6057 anupam.sin 371
            rechargeOrder.setRechargeType(RechargeType.findByValue(Integer.parseInt(rechargeType)));
6050 anupam.sin 372
            rechargeOrder.setStatus(RechargeOrderStatus.PAYMENT_PENDING);
373
            rechargeOrder.setOrderType(OrderType.B2C);
6070 anupam.sin 374
            rechargeOrder.setWalletAmount(Long.parseLong(getWalletAmountUsed()));
6433 anupam.sin 375
            rechargeOrder.setCouponAmount(couponAmount);
376
            rechargeOrder.setCouponCode(couponCode);
6601 anupam.sin 377
            rechargeOrder.setIpAddress(remoteAddr(request));
6397 anupam.sin 378
            TransactionClient tc1 = new TransactionClient();
379
            rechargeOrder = tc1.getClient().createRechargeOrder(rechargeOrder);
6057 anupam.sin 380
            setRechargeOrderId(rechargeOrder.getId());
6050 anupam.sin 381
 
6178 anupam.sin 382
        } catch (Exception e) {
383
            log.error("Unable to create recharge order", e);
6270 rajveer 384
            errorMessage = "Oops! There seems to be a problem. Please try after some time";
6178 anupam.sin 385
            return "recharge-redirect";
6050 anupam.sin 386
        }
387
        if(amount.equals("0")) {
388
            return "create-recharge-redirect";
389
        } else {
390
            return "recharge-pay-options-redirect";
391
        }
392
    }
393
 
6249 anupam.sin 394
    private boolean verifyCaptcha() {
395
        String cookieCaptchaAnswer = getCookie(Captcha.NAME, true, "saholic");
396
        String captchaReceived = (String) request.getParameter("captcha_response_field");
397
 
398
        if (captchaReceived.equalsIgnoreCase(cookieCaptchaAnswer)) {
399
            try {
400
                DataLogger.logData(EventType.CAPTCHA_SUCCESS, getSessionId(), userinfo.getUserId(), userinfo.getEmail());
401
            } catch (Exception e1) {
402
                log.warn("Unable to log orders through the datalogger", e1);
403
            }
404
            return true;
405
        } 
406
        else {
407
            try {
408
                DataLogger.logData(EventType.CAPTCHA_FAILED, getSessionId(), userinfo.getUserId(), userinfo.getEmail());
409
            } catch (Exception e1) {
410
                log.warn("Unable to log orders through the datalogger", e1);
411
            }
412
            return false;
413
        }
414
    }
415
 
6091 anupam.sin 416
    private static String generateNewPassword() {
417
        char[] buf = new char[LENGTH];
418
        for (int i = 0; i < buf.length; i++) {
419
            buf[i] = chars.charAt(random.nextInt(chars.length()));
420
        }
421
        return new String(buf);
422
    }
423
 
424
    private long createUserAndSendMail(String email) {
425
        User user = null;
426
        String password = null;
427
        try{
428
        UserClient ucl = new UserClient();
429
        user = ucl.getClient().getUserByEmail(email);
6124 anupam.sin 430
        if(user.getUserId() == -1) {
6091 anupam.sin 431
            user.setEmail(email);
432
            password = generateNewPassword();
433
            String encryptedPassword = desEncrypter.encrypt(password);
434
            user.setPassword(encryptedPassword);
435
            user.setCommunicationEmail(email);
436
            UserClient userContextServiceClient = new UserClient();
437
            in.shop2020.model.v1.user.UserContextService.Client userClient = userContextServiceClient.getClient();
438
            user = userClient.createUser(user);
6124 anupam.sin 439
 
440
            List<String> toList = new ArrayList<String>();
441
            toList.add(email);
442
            HelperClient helperServiceClient = null;
443
                helperServiceClient = new HelperClient();
444
                in.shop2020.utils.HelperService.Client client = helperServiceClient.getClient();
445
                Mail mail = new Mail();
6131 anupam.sin 446
                mail.setSubject("Saholic Registration successful");
6124 anupam.sin 447
                mail.setTo(toList);
448
                mail.setData("Your have successfully registered with Saholic.com. Your user name is: " + email + " and your password is: " +  password);
449
                client.sendMail(mail);
6091 anupam.sin 450
            }
451
        }catch (UserContextException ux){
452
            return -1;               
453
        } catch (TTransportException e) {
454
            return -1;
455
        } catch (TException e) {
456
            return -1;
6124 anupam.sin 457
        } catch (Exception e) {
458
            log.error("Unexpected error while mailing the new password");
459
            return -1;
6091 anupam.sin 460
        }
461
        return user.getUserId();
462
    }
463
 
6057 anupam.sin 464
    public String getOperatorName() {
6206 rajveer 465
    	String operatorName = null;
466
    	if(rechargeType.equals("1")){
467
    		operatorName = Utils.getMobileProvidersMap().get(Long.parseLong(operator));	
468
    	}
469
    	if(rechargeType.equals("2")){
470
    		operatorName = Utils.getDthProvidersMap().get(Long.parseLong(operator));	
471
    	}
472
    	if(operatorName == null){
473
    		operatorName = "N/A";	
474
    	}
475
    	return operatorName;
6057 anupam.sin 476
    }
477
 
6495 anupam.sin 478
    public String encrypt(String strToEncrypt) {
479
        BigInteger strBigInt = new BigInteger(strToEncrypt.getBytes());
480
        System.out.println(strBigInt);
481
        BigInteger hashedPasswd = key.xor(strBigInt);
482
        System.out.println(hashedPasswd);
483
        return (hashedPasswd.toString(16));
484
    }
485
 
486
    public String decrypt(String encrypted) {
487
        try
488
        {
489
            BigInteger encryptedBigInt = new BigInteger(encrypted, 16);
490
            System.out.println(encryptedBigInt);
491
            BigInteger strBigInt = encryptedBigInt.xor(key);
492
            System.out.println(strBigInt);
493
            String decrypted = new String(strBigInt.toByteArray());
494
            return decrypted;
495
        } catch (Exception e) {
496
            System.out.println("oops");
497
            return "";
498
        }
499
    }
500
 
6601 anupam.sin 501
    public String remoteAddr(HttpServletRequest request) {
502
        String remoteAddr = "";
503
        String x;
6605 anupam.sin 504
        x = request.getHeader(HEADER_X_FORWARDED_FOR);
505
        if (x != null && !x.isEmpty()) {
6601 anupam.sin 506
            remoteAddr = x;
507
            int idx = remoteAddr.lastIndexOf(',');
508
            if (idx > -1) {
509
                remoteAddr = remoteAddr.substring(idx + 1).trim();
510
            }
6605 anupam.sin 511
        } else {
512
            remoteAddr = request.getRemoteAddr();
6601 anupam.sin 513
        }
514
        return remoteAddr;
515
    }
516
 
6050 anupam.sin 517
    public String getAmount() {
518
        return amount;
519
    }
520
    public void setAmount(String amount) {
521
        this.amount = amount;
522
    }
6073 amit.gupta 523
 
524
    public void setDthamount(String amount) {
525
    	this.amount = amount;
526
    }
6050 anupam.sin 527
    public String getOperator() {
528
        return operator;
529
    }
530
    public void setOperator(String operator) {
531
        this.operator = operator;
532
    }
533
    public String getNumber() {
534
        return number;
535
    }
536
    public void setNumber(String number) {
537
        this.number = number;
538
    }
6073 amit.gupta 539
 
540
    public void setDthnumber(String dthnumber) {
541
    	this.number = dthnumber;
542
    }
543
 
544
 
6050 anupam.sin 545
    public String getEmail() {
546
        return email;
547
    }
548
    public void setEmail(String email) {
549
        this.email = email;
550
    }
551
 
552
    public void setCouponIds(List<String> couponIds) {
553
        this.couponIds = couponIds;
554
    }
555
 
556
    public List<String> getCouponIds() {
557
        return couponIds;
558
    }
559
 
560
    public void setCoupons(List<RechargeCoupon> coupons) {
561
        this.coupons = coupons;
562
    }
563
 
564
    public List<RechargeCoupon> getCoupons() {
565
        return coupons;
566
    }
567
 
568
    public String getRechargeType() {
569
        return rechargeType;
570
    }
571
 
572
    public void setRechargeType(String rechargeType) {
573
        this.rechargeType = rechargeType;
574
    }
575
 
6058 anupam.sin 576
    public String getUserId() {
6050 anupam.sin 577
        return userId;
578
    }
579
 
6058 anupam.sin 580
    public void setUserId(String userId) {
581
        this.userId = userId;
6050 anupam.sin 582
    }
583
 
6057 anupam.sin 584
    public boolean isLoggedIn() {
585
        return userinfo.isLoggedIn();
586
    }
587
 
588
    public void setMessage(String message) {
589
        this.message = message;
590
    }
591
 
592
    public String getMessage() {
593
        return message;
594
    }
595
 
596
    public long getRechargeOrderId() {
597
        return rechargeOrderId;
598
    }
599
 
600
    public void setRechargeOrderId(long l) {
601
        this.rechargeOrderId = l;
602
    }
6070 anupam.sin 603
 
604
    public String getTotalAmount() {
605
        return totalAmount;
606
    }
6249 anupam.sin 607
 
608
    public void setTotalAmount(String amount) {
609
        this.totalAmount  = amount;
610
 
611
    }
6070 anupam.sin 612
 
613
    public String getWalletAmountUsed() {
614
        return walletAmountUsed;
615
    }
616
 
617
    public void setWalletAmountUsed(String walletAmountUsed) {
618
        this.walletAmountUsed = walletAmountUsed;
619
    }
6178 anupam.sin 620
 
621
    public String getPlan() {
622
        return plan;
623
    }
624
 
625
    public void setPlan(String plan) {
626
        this.plan = plan;
627
    }
6249 anupam.sin 628
 
629
    public String getErrorMessage() {
630
        return errorMessage;
631
    }
632
 
633
    public void setErrorMessage(String errorMessage) {
634
        this.errorMessage = errorMessage;
635
    }
6307 anupam.sin 636
 
637
    public String getCircleCode() {
638
        return circleCode;
639
    }
640
 
641
    public void setCircleCode(String circleCode) {
642
        this.circleCode = circleCode;
643
    }
6433 anupam.sin 644
 
645
    public void setDiscountCode(String discountCode) {
646
        this.couponCode = discountCode;
647
    }
6057 anupam.sin 648
 
6433 anupam.sin 649
    public String getCouponCode() {
650
        return couponCode;
651
    }
652
 
653
    public void setCouponCode(String couponCode) {
654
        this.couponCode = couponCode;
655
    }
656
 
657
    public void setCouponAmount(long couponAmount) {
658
        this.couponAmount = couponAmount;
659
    }
660
 
661
    public long getCouponAmount() {
662
        return couponAmount;
663
    }
664
 
665
    public void setCouponMessage(String couponMessage) {
666
        this.couponMessage = couponMessage;
667
    }
668
 
669
    public String getCouponMessage() {
670
        return couponMessage;
671
    }
672
 
6495 anupam.sin 673
    public void setHash(String hash) {
674
        this.hiddenUserId = hash;
675
    }
676
 
677
    public String getHiddenUserId() {
678
        return hiddenUserId;
679
    }
6050 anupam.sin 680
}