Subversion Repositories SmartDukaan

Rev

Rev 6433 | 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
 
6505 anupam.sin 3
import java.util.Map;
4
 
6050 anupam.sin 5
import in.shop2020.model.v1.order.RechargeOrder;
6228 anupam.sin 6
import in.shop2020.model.v1.order.RechargeType;
6215 anupam.sin 7
import in.shop2020.model.v1.user.Address;
6505 anupam.sin 8
import in.shop2020.thrift.clients.PromotionClient;
6228 anupam.sin 9
import in.shop2020.thrift.clients.TransactionClient;
6091 anupam.sin 10
import in.shop2020.thrift.clients.UserClient;
6050 anupam.sin 11
 
6228 anupam.sin 12
import org.apache.log4j.Logger;
6505 anupam.sin 13
import org.apache.struts2.convention.annotation.Result;
14
import org.apache.struts2.convention.annotation.Results;
6228 anupam.sin 15
 
6505 anupam.sin 16
@Results({
17
    @Result(name="recharge-redirect", type="redirectAction", params = {"actionName" , "recharge", "error", "${errorMsg}"})
18
})
19
 
6050 anupam.sin 20
public class RechargePayOptionsController extends BaseController {
21
 
6091 anupam.sin 22
    //private static final ResourceBundle resource = ResourceBundle.getBundle(ProceedToPayController.class.getName());
23
    //private static final boolean SHOW_EBS_TEST_GATEWAY = Boolean.parseBoolean(resource.getString("show_ebs_test_gateway"));
6050 anupam.sin 24
    private RechargeOrder rechargeOrder = null;
6057 anupam.sin 25
    private String rechargeOrderId = "";
26
    private String errorMsg = "";
6228 anupam.sin 27
    public final static String ADDRESS = "address";
28
    public final static String PHONE = "phone";
29
    public final static String NOTHING = "nothing";
6233 anupam.sin 30
    private Long amount = null;
6239 anupam.sin 31
    private String phone = "";
6050 anupam.sin 32
 
33
    private static final long serialVersionUID = 2079308723099307749L;
34
 
35
    private static Logger log = Logger.getLogger(Class.class);
36
 
37
    public String index() {
6228 anupam.sin 38
        try {
39
            TransactionClient tcl = new TransactionClient();
40
            rechargeOrder = tcl.getClient().getRechargeOrder(Long.parseLong(rechargeOrderId));
6433 anupam.sin 41
            setAmount(rechargeOrder.getTotalAmount() - rechargeOrder.getWalletAmount() - rechargeOrder.getCouponAmount());
6505 anupam.sin 42
 
43
            if (rechargeOrder.getCouponAmount() > 0) {
44
                PromotionClient pc = new PromotionClient();
45
                Map<Long, String> couponResult = null;
46
                couponResult = pc.getClient().applyRechargeCoupon(rechargeOrder.getCouponCode(), rechargeOrder.getTotalAmount(), rechargeOrder.getUserId());
47
                if(couponResult != null) {
48
                    if(!couponResult.containsKey(rechargeOrder.getCouponAmount())) {
49
                        errorMsg = "The coupon you applied is not valid anymore";
50
                        return "recharge-redirect";
51
                    }
52
                } else {
53
                    errorMsg = "The coupon you applied is not valid anymore";
54
                    return "recharge-redirect";
55
                }
56
            }
6228 anupam.sin 57
        } catch (Exception e) {
58
            log.error("Unable to get recharge Order for id : " + rechargeOrderId);
6505 anupam.sin 59
            errorMsg = "Some error occured. Please try again. Sorry for the inconvenience.";
6228 anupam.sin 60
            return "recharge-redirect";
61
        }
6050 anupam.sin 62
        return "index";
63
    }
64
 
6233 anupam.sin 65
    private void setAmount(long amount) {
66
        this.amount = amount;
67
    }
68
 
6234 anupam.sin 69
    public String getAmount() {
70
        return amount.toString();
6233 anupam.sin 71
    }
72
 
6050 anupam.sin 73
    public String create() {
74
        return index();
75
    }
76
 
6215 anupam.sin 77
    /*public boolean shouldShowEbsTestGateway() {
6091 anupam.sin 78
        //return SHOW_EBS_TEST_GATEWAY;
79
        return true;
6215 anupam.sin 80
    }*/
6091 anupam.sin 81
 
6228 anupam.sin 82
    public String fieldsToShow() {
83
        Address address = null;
6091 anupam.sin 84
        UserClient ucl;
85
        long addressId = 0;
6433 anupam.sin 86
        long amount = rechargeOrder.getTotalAmount() - rechargeOrder.getWalletAmount() - rechargeOrder.getCouponAmount();
6228 anupam.sin 87
        if (rechargeOrder.getRechargeType().equals(RechargeType.DTH)) {
6215 anupam.sin 88
            try {
89
                ucl = new UserClient();
6228 anupam.sin 90
                addressId = ucl.getClient().getDefaultAddressId(rechargeOrder.getUserId());
91
                if (addressId != 0) {
92
                    address = ucl.getClient().getAddressById(addressId);
6215 anupam.sin 93
                }
94
            } catch (Exception e) {
95
                log.error("Unable to connect to user service", e);
6239 anupam.sin 96
                //We don't know if we need customer's address or phone. Let us ask.
6228 anupam.sin 97
                if (amount > 1000)
98
                    return ADDRESS;
99
                else
100
                    return PHONE;
6215 anupam.sin 101
            }
6239 anupam.sin 102
 
6228 anupam.sin 103
            if (amount > 1000) {
104
                if (address == null) {
105
                    return ADDRESS;
6239 anupam.sin 106
                } else {
107
                    return NOTHING;
6228 anupam.sin 108
                }
109
            } else {
110
                if (address == null || address.getPhone() == null || address.getPhone().isEmpty()) {
111
                    return PHONE;
6239 anupam.sin 112
                } else {
113
                    setPhone(address.getPhone());//We have his phone number.
114
                    return PHONE;
6228 anupam.sin 115
                }
116
            }
6239 anupam.sin 117
 
118
 
119
        //For Mobile Recharges
120
        } else {
121
            setPhone(rechargeOrder.getDeviceNumber());//We have his phone number.
122
            return PHONE;
6215 anupam.sin 123
        }
124
    }
6091 anupam.sin 125
 
6050 anupam.sin 126
    public void setRechargeOrder(RechargeOrder rechargeOrder) {
127
        this.rechargeOrder = rechargeOrder;
128
    }
129
 
130
    public RechargeOrder getRechargeOrder() {
131
        return rechargeOrder;
132
    }
133
 
134
    public void setRechargeOrderId(String rechargeOrderId) {
6057 anupam.sin 135
        this.rechargeOrderId = rechargeOrderId;
6050 anupam.sin 136
    }
137
 
138
    public String getRechargeOrderId() {
6057 anupam.sin 139
        return rechargeOrderId;
6050 anupam.sin 140
    }
6057 anupam.sin 141
 
142
    public String getErrorMsg() {
143
        return errorMsg;
144
    }
6239 anupam.sin 145
 
146
    public String getPhone() {
147
        return phone;
148
    }
149
 
150
    public void setPhone(String phone) {
151
        this.phone = phone;
152
    }
6050 anupam.sin 153
}