Rev 6244 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.order.RechargeOrderStatus;import in.shop2020.model.v1.order.RechargePlan;import in.shop2020.model.v1.order.RechargeStatistics;import in.shop2020.model.v1.order.RechargeType;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.TransactionClient;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import org.slf4j.Logger;import org.slf4j.LoggerFactory;@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})})public class RechargeOrdersController implements ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(RechargeOrdersController.class);private HttpServletRequest request;private HttpSession session;private ServletContext context;private RechargeStatistics stats;private static Map<Long, String> providers;static Map<String, String> planMap = new HashMap<String, String>();private TransactionClient tsc;private in.shop2020.model.v1.order.TransactionService.Client tClient;private final DateFormat formatter = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm a");public RechargeOrdersController(){try {tsc = new TransactionClient();tClient = tsc.getClient();} catch (Exception e) {logger.error("Error connecting to one of the user, order or payment service", e);}}static{TransactionClient tc;try {tc = new TransactionClient();providers = tc.getClient().getServiceProviders(RechargeType.MOBILE, false);for (Long operatorId : providers.keySet()) {List<RechargePlan> plans = tc.getClient().getPlansForOperator(operatorId);if (!plans.isEmpty()) {for(RechargePlan plan: plans){planMap.put(plan.getName(), plan.getDisplayName());}}}for(Entry<Long, String> providerEntry: tc.getClient().getServiceProviders(RechargeType.DTH, false).entrySet()){providers.put(providerEntry.getKey(), providerEntry.getValue());}} catch (Exception e) {logger.error("Cannot get providers", e);}}public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath())) {return "authfail";}try {stats = tClient.getRechargeStatistics();} catch (Exception e){logger.error("Error while getting order statistics", e);}return "authsuccess";}public RechargeStatistics getStats() {return stats;}public String getOperator(long operatorId) {return providers.get(operatorId);}public String getPlanString(String plan) {return planMap.get(plan);}public String getStatusDescription(long status) {return RechargeOrderStatus.findByValue((int)status).toString();}public String getDateTime(long milliseconds) {Calendar cal = Calendar.getInstance();cal.setTimeInMillis(milliseconds);return formatter.format(cal.getTime());}@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;this.session = req.getSession();}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}public String getServletContextPath() {return context.getContextPath();}public static Map<Long, String> getProviderMap() {return providers;}}