Subversion Repositories SmartDukaan

Rev

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

package in.shop2020.recharge.controllers;

import in.shop2020.model.v1.order.DeviceNumberInfo;
import in.shop2020.model.v1.order.FRC;
import in.shop2020.model.v1.order.HotspotStore;
import in.shop2020.model.v1.order.RechargeDenomination;
import in.shop2020.model.v1.order.RechargePlan;
import in.shop2020.model.v1.order.RechargeType;
import in.shop2020.thrift.clients.TransactionClient;

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

import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.google.gson.Gson;

@Results({
    @Result(name = "redirect", location = "${redirectUrl}", type = "redirect")
})

public class HomeController extends BaseController {
    
    /**
     * 
     */
    private String deviceType = null; //Default is Mobile , 2 is for DTH
    private String deviceNumber = "";
    private String form = "";
    private String error = "";
    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);

    private String errorMsg = "";
    private String redirectUrl;
    
    public String getPlanMapInJson() {
        Gson gson = new Gson();
            return (gson.toJson(operatorPlanMap));
    }
    
    public String index() {
        
        String loginStatus = (String) request.getSession().getAttribute("LOGGED_IN");
        if(loginStatus != null && loginStatus.equals("TRUE")){
                storeId = Long.parseLong((String) request.getSession().getAttribute("STORE_ID"));
                if(!hotspotStores.containsKey(storeId)){
                        try{
                                HotspotStore hotSpotStore = (new TransactionClient()).getClient().getHotspotStore(storeId, "");
                                hotspotStores.put(storeId, hotSpotStore);
                        } catch (Exception e) {
                    log.error("Unable to get store", e);
                }
                }
            return "index";
        }
        return "authfail";
    }
    
    public String create() {
        return index();
    }
    
//    public Map<Long, String> getProviderMap() {
//        if(deviceType.equals("1"))
//            providers = Utils.getMobileProvidersMap();
//        else
//            providers = Utils.getDthProvidersMap();
//        return providers;
//    }
//    
    public String getServiceProvider() {
        return "service-provider";
    }

    public String getFRC() {
        return "frc-result";
    }
    
    public String getFRCJSONString(){
        long circleId = Long.parseLong((String)(request.getSession().getAttribute("CIRCLE_ID")));
        TransactionClient tcl;
        try {
            tcl = new TransactionClient();
            List<FRC> frcList =  tcl.getClient().getFRCs(circleId, Long.parseLong(operatorId));
            return new Gson().toJson(frcList);
        } catch (Exception e) {
            log.error("Unable to get service provider for Device number " + deviceNumber + " and rechargeType : " +  deviceType, e);
            return "";
        }
    }
    
    public String getProvider(){
        TransactionClient tcl;
        try {
            tcl = new TransactionClient();
            DeviceNumberInfo deviceInfo =  tcl.getClient().getServiceProviderForDevice(RechargeType.findByValue(Integer.parseInt(this.deviceType)), deviceNumber);
            return deviceInfo.getOperatorId() + ":" + deviceInfo.getCircleCode();
        } catch (Exception e) {
            log.error("Unable to get service provider for Device number " + deviceNumber + " and rechargeType : " +  deviceType, e);
            return ":";
        }
    }
    
    public void setDeviceType(String incomingdeviceType) {
        deviceType = incomingdeviceType;
    }
    
    public void setDeviceNumber(String deviceNumber){
        this.deviceNumber = deviceNumber;
    }

    public String getDeviceType() {
        return deviceType;
    }

    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;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public String getStoreCircleCode() {
        return (String)(request.getSession().getAttribute("STORE_CIRCLE_CODE"));
    }

    public String getRedirectUrl() {
        return redirectUrl;
    }

    public void setRedirectUrl(String redirectUrl) {
        this.redirectUrl = redirectUrl;
    }
}