5a363d536e01870aab73edf0371a7c4b2f8729f2.svn-base 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.chinacreator.videoalliance.net.handler;
  2. import java.net.URLEncoder;
  3. import java.util.UUID;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.apache.commons.lang.math.NumberUtils;
  7. import org.apache.log4j.Logger;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Component;
  10. import com.chinacreator.common.exception.BusinessException;
  11. import com.chinacreator.common.util.RequestUtil;
  12. import com.chinacreator.common.util.URLUtil;
  13. import com.chinacreator.videoalliance.common.dao.DictionaryDao;
  14. import com.chinacreator.videoalliance.common.dao.IPNumberDao;
  15. import com.chinacreator.videoalliance.common.util.AreaUtil;
  16. import com.chinacreator.videoalliance.net.util.WebUtil;
  17. @Component
  18. public class AcademeNet implements INetHandler {
  19. @Autowired
  20. private IPNumberDao ipNumberDao;
  21. @Autowired
  22. private DictionaryDao dictionaryDao;
  23. private static Logger logger = Logger.getLogger("AcademeNet");
  24. public String execute(HttpServletRequest request, HttpServletResponse response, int sequence)
  25. throws Exception {
  26. String unikey = request.getParameter("unikey");
  27. String apptype = request.getParameter("apptype");
  28. String backurl = request.getParameter("backurl");
  29. String cpid = request.getParameter("cpid");
  30. String responseStr = request.getParameter("response");
  31. String timestamp = request.getParameter("timestamp");
  32. String userip = RequestUtil.getIpAddr(request);
  33. if(backurl != null) {
  34. backurl = URLEncoder.encode(backurl, "UTF-8");
  35. }
  36. if(!ipNumberDao.allowNet(AreaUtil.ip2num(userip))) {
  37. throw new BusinessException("8005", "该省已停止研究院取号");
  38. }
  39. if(unikey == null || "null".equals(unikey)) {
  40. unikey = UUID.randomUUID().toString().replaceAll("-", "");
  41. String url = WebUtil.getBasePath(request) + "/netNumber.do?cpid=" + cpid + "&timestamp=" + timestamp + "&response=" + responseStr + "&unikey=" + unikey + "&backurl=" +backurl + "&apptype=" + apptype + "&net=academe&sequence=" + sequence;
  42. System.out.println(" WebUtil.getBasePath(request)==="+ url);
  43. response.sendRedirect(url);
  44. return "302";
  45. }
  46. String netNumber = dictionaryDao.getValue("netNumber");
  47. if(!netNumber.endsWith("/")) {
  48. netNumber += "/";
  49. }
  50. String netTimeout = dictionaryDao.getValue("netTimeout");
  51. String numberGetUrl = netNumber + unikey + "," + RequestUtil.getIpAddr(request);
  52. logger.info("numberGetUrl ===> " + numberGetUrl);
  53. String resultStr = URLUtil.get(numberGetUrl, NumberUtils.toInt(netTimeout, 0));
  54. if("0".equals(resultStr)) {
  55. resultStr = null;
  56. }
  57. System.out.println("resultStr========="+resultStr);
  58. return resultStr;
  59. }
  60. }