Subversion Repositories SmartDukaan

Rev

Rev 6201 | Rev 6270 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

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

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 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");
            }
        if(error.equals("ServiceDown")){
                error = "Oops! There seems to be a problem. Please try after some time";
        }else{
                error = "";
        }
        return "index";
    }
    
    public String create() {
        if(form.equals("serviceSelect")) {
            return index();
        }
        return "hello";
    }
    
    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();
                return tcl.getClient().getServiceProviderForDevice(RechargeType.findByValue(Integer.parseInt(this.serviceType)), deviceNumber) + "";
        } catch (Exception e) {
                log.error("Unable to get service provider for Device number " + deviceNumber + " and rechargeType : " +  serviceType, e);
        }
        return 0 + "";
    }
    
    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);
    }
}