Rev 7080 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.recharge.controllers;import in.shop2020.model.v1.order.RechargeOrderStatus;import in.shop2020.model.v1.order.RechargePlan;import in.shop2020.model.v1.order.RechargeTransaction;import in.shop2020.model.v1.order.RechargeType;import in.shop2020.thrift.clients.TransactionClient;import java.math.BigInteger;import java.util.ArrayList;import java.util.List;import java.util.Random;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;@Results({@Result(name="recharge-redirect", type="redirectAction", params = {"actionName" , "/", "error", "${errorMessage}"})})public class ConfirmController extends BaseController{/****/private static final long serialVersionUID = 1L;private long rechargeOrderId = 0;private String amount = "";private String operator = "";private String number = "";private String email = "";private String rechargeType = "";private String deviceType = "";private String storeId = "";private String cafNum = "";private String simNum = "";private String name = "";private String plan = "";private String circleCode;private String message = "";private String errorMessage = "";private String totalAmount = "";private String couponCode = "";private String couponMessage = "";private String hiddenUserId = "";private long couponAmount = 0;private static final BigInteger key = new BigInteger("0333910847013829827302347601486730417451");private static final Random random = new Random();private static final int LENGTH = 10;private static final String HEADER_X_FORWARDED_FOR = "X-FORWARDED-FOR";private static Logger log = Logger.getLogger(Class.class);public String index() {return "index";}public String create() {return index();}public String createRecharge(){try {TransactionClient tc = new TransactionClient();List<RechargePlan> plans = tc.getClient().getPlansForOperator(Long.parseLong(operator));List<String> planNameList = new ArrayList<String>();if (plans == null || plans.isEmpty()) {setPlan("");} else {for (RechargePlan tempPlan : plans) {planNameList.add(tempPlan.getName());}if (!planNameList.contains(plan)) {errorMessage = "OperatorId : " + operator + " and plan : " + plan + " do not match";log.warn("OperatorId : " + operator + " and plan : " + plan + " do not match");return "recharge-redirect";}}RechargeTransaction rechargeOrder = new RechargeTransaction();rechargeOrder.setAmount(Long.parseLong(totalAmount));rechargeOrder.setEmail(email);rechargeOrder.setDeviceNum(number.trim());rechargeOrder.setPlan(plan);rechargeOrder.setOperatorId(Long.parseLong(operator));rechargeOrder.setIsFrc(Long.parseLong(rechargeType) == 1 ? false : true);rechargeOrder.setStatus(RechargeOrderStatus.INIT);/***************************************************** rechargeOrder.setDiscount(discount); TODO *****************************************************/rechargeOrder.setIpAddress(remoteAddr(request));TransactionClient tc1 = new TransactionClient();rechargeOrder = tc1.getClient().createRechargeTransaction(rechargeOrder);setRechargeOrderId(rechargeOrder.getId());} catch (Exception e) {log.error("Unable to create recharge order", e);errorMessage = "Oops! There seems to be a problem. Please try after some time";return "recharge-redirect";}return index();}public String getOperatorName() {String operatorName = null;if(rechargeType.equals("1")){operatorName = HomeController.getMobileProvidersMap().get(Long.parseLong(operator));}if(rechargeType.equals("2")){operatorName = HomeController.getDthProvidersMap().get(Long.parseLong(operator));}if(operatorName == null){operatorName = "N/A";}return operatorName;}public String remoteAddr(HttpServletRequest request) {String remoteAddr = "";String x;x = request.getHeader(HEADER_X_FORWARDED_FOR);if (x != null && !x.isEmpty()) {remoteAddr = x;int idx = remoteAddr.lastIndexOf(',');if (idx > -1) {remoteAddr = remoteAddr.substring(idx + 1).trim();}} else {remoteAddr = request.getRemoteAddr();}return remoteAddr;}private String validateFields() {if(amount == null || amount == "") {log.warn("Amount received is empty or null");return "Amount cannot be empty";}if(rechargeType == null || rechargeType == "") {log.warn("rechargeType received is empty or null");return "Oops! There seems to be a problem. Please try after some time";}if(email == null || email == "") {log.warn("Email received is empty or null");return "Email address cannot be empty";}try {InternetAddress emailAdd = new InternetAddress(email);emailAdd.validate();} catch (AddressException e1) {log.warn("Invalid email address : " + email, e1);return "ERROR : Invalid email address.";}if (RechargeType.findByValue(Integer.parseInt(this.rechargeType)) == RechargeType.DTH) {if (Long.parseLong(totalAmount) < 250 || Long.parseLong(totalAmount) > 2000) {if(operator.equals("1")) {return "DishTv recharge amount should be between Rs.250 and Rs.2000";}if (!(Long.parseLong(totalAmount) >= 200 && Long.parseLong(totalAmount) < 250)) {return "DTH recharge amount should be between Rs.200 and Rs.2000";}}} else if (RechargeType.findByValue(Integer.parseInt(this.rechargeType)) == RechargeType.MOBILE) {if (Long.parseLong(totalAmount) < 10 || Long.parseLong(totalAmount) > 1000) {return "Recharge amount should be between Rs.10 and Rs.1000";}if (number.length() != 10) {return "Number should be of 10 digits";}} else {log.warn("Invalid rechargeType : " + rechargeType);return "Oops! There seems to be a problem. Please try after some time";}if (operator == null || operator == "") {log.warn("Invalid operator : " + operator);return "Oops! There seems to be a problem. Please try after some time";}return "SUCCESS";}public String getAmount() {return amount;}public void setAmount(String amount) {this.amount = amount;}public void setDthamount(String amount) {this.amount = amount;}public String getOperator() {return operator;}public void setOperator(String operator) {this.operator = operator;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}public void setDthnumber(String dthnumber) {this.number = dthnumber;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getRechargeType() {return rechargeType;}public void setRechargeType(String rechargeType) {this.rechargeType = rechargeType;}public void setMessage(String message) {this.message = message;}public String getMessage() {return message;}public long getRechargeOrderId() {return rechargeOrderId;}public void setRechargeOrderId(long l) {this.rechargeOrderId = l;}public String getTotalAmount() {return totalAmount;}public void setTotalAmount(String amount) {this.totalAmount = amount;}public String getPlan() {return plan;}public void setPlan(String plan) {this.plan = plan;}public String getErrorMessage() {return errorMessage;}public void setErrorMessage(String errorMessage) {this.errorMessage = errorMessage;}public String getCircleCode() {return circleCode;}public void setCircleCode(String circleCode) {this.circleCode = circleCode;}public void setDiscountCode(String discountCode) {this.couponCode = discountCode;}public String getCouponCode() {return couponCode;}public void setCouponCode(String couponCode) {this.couponCode = couponCode;}public void setCouponAmount(long couponAmount) {this.couponAmount = couponAmount;}public long getCouponAmount() {return couponAmount;}public void setCouponMessage(String couponMessage) {this.couponMessage = couponMessage;}public String getCouponMessage() {return couponMessage;}public void setHash(String hash) {this.hiddenUserId = hash;}public String getHiddenUserId() {return hiddenUserId;}public String getDeviceType() {return deviceType;}public void setDeviceType(String deviceType) {this.deviceType = deviceType;}public String getStoreId() {return storeId;}public void setStoreId(String storeId) {this.storeId = storeId;}public String getCafNum() {return cafNum;}public void setCafNum(String cafNum) {this.cafNum = cafNum;}public String getSimNum() {return simNum;}public void setSimNum(String simNum) {this.simNum = simNum;}public String getName() {return name;}public void setName(String name) {this.name = name;}}