Rev 7207 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.recharge.controllers;import in.shop2020.model.v1.order.HotspotStore;import in.shop2020.model.v1.order.RechargePlan;import in.shop2020.model.v1.order.RechargeType;import in.shop2020.thrift.clients.TransactionClient;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.log4j.Logger;import org.apache.shiro.SecurityUtils;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.interceptor.SessionAware;import com.opensymphony.xwork2.ValidationAwareSupport;/*** Base class for all user action handlers i.e. controllers** @author Vikas*/public abstract class BaseController extends ValidationAwareSupport implementsServletResponseAware, ServletRequestAware, SessionAware{private static final long serialVersionUID = 3339523094497219816L;protected static Logger log = Logger.getLogger(BaseController.class);protected static final String INPUT = "input";protected static final String INDEX = "index";protected static final String EDIT_NEW = "editNew";protected static final String EDIT = "edit";protected static final String SHOW = "show";protected static final String EXCEPTION = "exception";public static Map<Long, HotspotStore> hotspotStores = new HashMap<Long, HotspotStore>();protected final SimpleDateFormat SDF = new SimpleDateFormat("dd MMM, yyyy hh:mm a");protected HttpServletResponse response;protected HttpServletRequest request;protected HttpSession session;protected Map<String, Object> sessionMap;protected Long storeId;public static final String HEADER_X_FORWARDED_FOR = "X-FORWARDED-FOR";public static Map<Long, String> mobileProvidersMap;public static Map<Long, String> dthProvidersMap;public static Map<Long, List<RechargePlan>> operatorPlanMap;public static Map<String, Long> operatorNametoValueMap = new HashMap<String, Long>();static {TransactionClient tcl;try {operatorPlanMap = new HashMap<Long, List<RechargePlan>>();tcl = new TransactionClient();mobileProvidersMap = tcl.getClient().getServiceProviders(RechargeType.MOBILE, true);dthProvidersMap = tcl.getClient().getServiceProviders(RechargeType.DTH, true);for (Long operatorId : mobileProvidersMap.keySet()) {List<RechargePlan> plans = tcl.getClient().getPlansForOperator(operatorId);if (!plans.isEmpty()) {operatorPlanMap.put(operatorId, plans);}}for (Entry<Long, String> entry : mobileProvidersMap.entrySet()) {operatorNametoValueMap.put(entry.getValue(), entry.getKey());}} catch(Exception e) {log.error("Could not get all plans", e);}}public void setServletResponse(HttpServletResponse response) {this.response = response;}public void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();}public void setSession(Map<String, Object> sessionMap) {this.sessionMap = sessionMap;}/*** Utility method to convert a date to a readable format*/public String convertDate(Long date) {if (date == null || date == 0) {return "N/A";}return SDF.format(new Date(date));}public String remoteAddr(HttpServletRequest request) {String remoteAddr = "";String x;x = request.getHeader(HEADER_X_FORWARDED_FOR);if (x != null && !x.isEmpty()) {remoteAddr = x;int idx = remoteAddr.lastIndexOf(',');if (idx > -1) {remoteAddr = remoteAddr.substring(idx + 1).trim();}} else {remoteAddr = request.getRemoteAddr();}return remoteAddr;}public String index() {return INDEX;}public String editNew() {return EDIT_NEW;}public String edit() {return EDIT;}public boolean isPermitted(String permission) {return SecurityUtils.getSubject().isPermitted(permission);}public String getStoreCode(){return hotspotStores.get(storeId).getHotspotId();}public String getCollectedAmount(){return hotspotStores.get(storeId).getCollectedAmount()+"";}public Long getStoreId() {return storeId;}public void setStoreId(Long storeId) {this.storeId = storeId;}public static void setDthProvidersMap(Map<Long, String> dthProvidersMap) {BaseController.dthProvidersMap = dthProvidersMap;}public static Map<Long, String> getDthProvidersMap() {return dthProvidersMap;}public static void setMobileProvidersMap(Map<Long, String> mobileProvidersMap) {BaseController.mobileProvidersMap = mobileProvidersMap;}public static Map<Long, String> getMobileProvidersMap() {return mobileProvidersMap;}}