Rev 6433 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import java.util.Map;import in.shop2020.model.v1.order.RechargeOrder;import in.shop2020.model.v1.order.RechargeType;import in.shop2020.model.v1.user.Address;import in.shop2020.thrift.clients.PromotionClient;import in.shop2020.thrift.clients.TransactionClient;import in.shop2020.thrift.clients.UserClient;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" , "recharge", "error", "${errorMsg}"})})public class RechargePayOptionsController extends BaseController {//private static final ResourceBundle resource = ResourceBundle.getBundle(ProceedToPayController.class.getName());//private static final boolean SHOW_EBS_TEST_GATEWAY = Boolean.parseBoolean(resource.getString("show_ebs_test_gateway"));private RechargeOrder rechargeOrder = null;private String rechargeOrderId = "";private String errorMsg = "";public final static String ADDRESS = "address";public final static String PHONE = "phone";public final static String NOTHING = "nothing";private Long amount = null;private String phone = "";private static final long serialVersionUID = 2079308723099307749L;private static Logger log = Logger.getLogger(Class.class);public String index() {try {TransactionClient tcl = new TransactionClient();rechargeOrder = tcl.getClient().getRechargeOrder(Long.parseLong(rechargeOrderId));setAmount(rechargeOrder.getTotalAmount() - rechargeOrder.getWalletAmount() - rechargeOrder.getCouponAmount());if (rechargeOrder.getCouponAmount() > 0) {PromotionClient pc = new PromotionClient();Map<Long, String> couponResult = null;couponResult = pc.getClient().applyRechargeCoupon(rechargeOrder.getCouponCode(), rechargeOrder.getTotalAmount(), rechargeOrder.getUserId());if(couponResult != null) {if(!couponResult.containsKey(rechargeOrder.getCouponAmount())) {errorMsg = "The coupon you applied is not valid anymore";return "recharge-redirect";}} else {errorMsg = "The coupon you applied is not valid anymore";return "recharge-redirect";}}} catch (Exception e) {log.error("Unable to get recharge Order for id : " + rechargeOrderId);errorMsg = "Some error occured. Please try again. Sorry for the inconvenience.";return "recharge-redirect";}return "index";}private void setAmount(long amount) {this.amount = amount;}public String getAmount() {return amount.toString();}public String create() {return index();}/*public boolean shouldShowEbsTestGateway() {//return SHOW_EBS_TEST_GATEWAY;return true;}*/public String fieldsToShow() {Address address = null;UserClient ucl;long addressId = 0;long amount = rechargeOrder.getTotalAmount() - rechargeOrder.getWalletAmount() - rechargeOrder.getCouponAmount();if (rechargeOrder.getRechargeType().equals(RechargeType.DTH)) {try {ucl = new UserClient();addressId = ucl.getClient().getDefaultAddressId(rechargeOrder.getUserId());if (addressId != 0) {address = ucl.getClient().getAddressById(addressId);}} catch (Exception e) {log.error("Unable to connect to user service", e);//We don't know if we need customer's address or phone. Let us ask.if (amount > 1000)return ADDRESS;elsereturn PHONE;}if (amount > 1000) {if (address == null) {return ADDRESS;} else {return NOTHING;}} else {if (address == null || address.getPhone() == null || address.getPhone().isEmpty()) {return PHONE;} else {setPhone(address.getPhone());//We have his phone number.return PHONE;}}//For Mobile Recharges} else {setPhone(rechargeOrder.getDeviceNumber());//We have his phone number.return PHONE;}}public void setRechargeOrder(RechargeOrder rechargeOrder) {this.rechargeOrder = rechargeOrder;}public RechargeOrder getRechargeOrder() {return rechargeOrder;}public void setRechargeOrderId(String rechargeOrderId) {this.rechargeOrderId = rechargeOrderId;}public String getRechargeOrderId() {return rechargeOrderId;}public String getErrorMsg() {return errorMsg;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}