Subversion Repositories SmartDukaan

Rev

Rev 13410 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.model.v1.order.DenominationType;
import in.shop2020.model.v1.order.DeviceNumberInfo;
import in.shop2020.model.v1.order.RechargeDenomination;
import in.shop2020.model.v1.order.RechargeType;
import in.shop2020.serving.utils.Utils;
import in.shop2020.thrift.clients.TransactionClient;

import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.google.gson.Gson;

public class RechargeController extends BaseController {
    
    /**
     * 
     */
    private String serviceType = null; //Default is Mobile , 2 is for DTH
    private String deviceNumber = "";
    private String form = "";
    private Map<Long, String> providers;
    private String error = "";
    private String uri;
    private String operatorId;
    private String operatorName;
    private String serviceName;
    private String denominationType;
    private String circleCode;
    private List<RechargeDenomination> rechargeDenominations = null;
    private static final long serialVersionUID = 2079308723099307749L;

    private static Logger log = Logger.getLogger(Class.class);
    
    
    public String index() {
        uri = request.getRequestURI();
                uri = uri.replace("/", "");
            log.info("Uri: " + uri);
            Map<String, String> valueMap = Utils.getOperatorByUri(uri);
            operatorId  = valueMap.get("Id");
        operatorName = valueMap.get("Name"); 
        serviceName  = valueMap.get("ServiceName");
            if(serviceType == null){
                serviceType  = valueMap.get("ServiceType");
            }
            return "index";
    }
    
    public String create() {
        if(form.equals("serviceSelect")) {
            return index();
        }
        return index();
    }
    
    public Map<Long, String> getProviderMap() {
        if(serviceType.equals("1"))
            providers = Utils.getMobileProvidersMap();
        else
            providers = Utils.getDthProvidersMap();
        return providers;
    }
    
    public String getServiceProvider() {
        return "service-provider";
    }
    
    public String getProvider(){
        TransactionClient tcl;
        try {
                tcl = new TransactionClient();
                DeviceNumberInfo deviceInfo =  tcl.getClient().getServiceProviderForDevice(RechargeType.findByValue(Integer.parseInt(this.serviceType)), deviceNumber);
                return deviceInfo.getOperatorId() + ":" + deviceInfo.getCircleCode();
        } catch (Exception e) {
                log.error("Unable to get service provider for Device number " + deviceNumber + " and rechargeType : " +  serviceType, e);
            return ":";
        }
    }
    
    public String getAllDenominations() {
        TransactionClient tcl;
        try {
            tcl = new TransactionClient();
            rechargeDenominations =  tcl.getClient().getRechargeDenominations(Long.parseLong(operatorId), circleCode, DenominationType.findByValue(Integer.parseInt(denominationType)));
            if(rechargeDenominations == null || rechargeDenominations.isEmpty()) {
                setError("This information is unavailable for now.<br>You can recharge with the amount you normally use or you can try later.");
            }
        } catch (Exception e) {
            log.error("Unable to get rechargeDenominations for operatorId " + operatorId + " and circleCode : " +  circleCode + " and DenominationType : " + denominationType, e);
            setError("This information is unavailable for now.<br>You can recharge with the amount you normally use or you can try later.");
        }
        return "recharge-denomination";
    }
    
    public String getPlanMapInJson() {
        Gson gson = new Gson();
            return (gson.toJson(Utils.getOperatorPlanMap()));
    }

    public void setServiceType(String incomingServiceType) {
        serviceType = incomingServiceType;
    }
    
    public void setDeviceNumber(String deviceNumber){
        this.deviceNumber = deviceNumber;
    }

    public String getServiceType() {
        return serviceType;
    }

    public String getForm() {
        return form;
    }

    public void setForm(String form) {
        this.form = form;
    }

        public String getError() {
                return error;
        }

        public void setError(String error) {
                this.error = error;
        }
    
        public String getPageName() {
        return operatorName  + " online recharge";
    }
        
        public String getPageTitle() {
                return operatorName  + " online recharge";
    }
        
    public String getPageMetaDesc() {
        return "Recharge your " + this.operatorName +  " " + this.serviceName +  " online for all cities using Credit/Debit card & net banking. Fast, Secure and Hassle Free Recharge";
    }
    
    public String getPageMetaKeywords() {
        return "mobile, recharge";
    }
    
    public long getOperatorId(){
        return Long.parseLong(this.operatorId);
    }

    public String getDenominationType() {
        return denominationType;
    }

    public void setDenominationType(String denominationType) {
        this.denominationType = denominationType;
    }

    public String getCircleCode() {
        return circleCode;
    }

    public void setCircleCode(String circleCode) {
        this.circleCode = circleCode;
    }

    public List<RechargeDenomination> getRechargeDenominations() {
        return rechargeDenominations;
    }

    public void setRechargeDenominations(
            List<RechargeDenomination> rechargeDenominations) {
        this.rechargeDenominations = rechargeDenominations;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }
}