package com.chinacreator.videoalliance.net.handler; import java.net.URLEncoder; import java.util.UUID; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.math.NumberUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.util.RequestUtil; import com.chinacreator.common.util.URLUtil; import com.chinacreator.videoalliance.common.dao.DictionaryDao; import com.chinacreator.videoalliance.common.dao.IPNumberDao; import com.chinacreator.videoalliance.common.util.AreaUtil; import com.chinacreator.videoalliance.net.util.WebUtil; @Component public class AcademeNet implements INetHandler { @Autowired private IPNumberDao ipNumberDao; @Autowired private DictionaryDao dictionaryDao; private static Logger logger = Logger.getLogger("AcademeNet"); public String execute(HttpServletRequest request, HttpServletResponse response, int sequence) throws Exception { String unikey = request.getParameter("unikey"); String apptype = request.getParameter("apptype"); String backurl = request.getParameter("backurl"); String cpid = request.getParameter("cpid"); String responseStr = request.getParameter("response"); String timestamp = request.getParameter("timestamp"); String userip = RequestUtil.getIpAddr(request); if(backurl != null) { backurl = URLEncoder.encode(backurl, "UTF-8"); } if(!ipNumberDao.allowNet(AreaUtil.ip2num(userip))) { throw new BusinessException("8005", "该省已停止研究院取号"); } if(unikey == null || "null".equals(unikey)) { unikey = UUID.randomUUID().toString().replaceAll("-", ""); String url = WebUtil.getBasePath(request) + "/netNumber.do?cpid=" + cpid + "×tamp=" + timestamp + "&response=" + responseStr + "&unikey=" + unikey + "&backurl=" +backurl + "&apptype=" + apptype + "&net=academe&sequence=" + sequence; System.out.println(" WebUtil.getBasePath(request)==="+ url); response.sendRedirect(url); return "302"; } String netNumber = dictionaryDao.getValue("netNumber"); if(!netNumber.endsWith("/")) { netNumber += "/"; } String netTimeout = dictionaryDao.getValue("netTimeout"); String numberGetUrl = netNumber + unikey + "," + RequestUtil.getIpAddr(request); logger.info("numberGetUrl ===> " + numberGetUrl); String resultStr = URLUtil.get(numberGetUrl, NumberUtils.toInt(netTimeout, 0)); if("0".equals(resultStr)) { resultStr = null; } System.out.println("resultStr========="+resultStr); return resultStr; } }