500f8bebd3589cd48662f6da38c25fc36bd06b8c.svn-base 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package com.chinacreator.videoalliance.order.action;
  2. import com.chinacreator.common.exception.BusinessException;
  3. import com.chinacreator.common.pipe.DataOutPipe;
  4. import com.chinacreator.common.util.RequestUtil;
  5. import com.chinacreator.common.util.URLUtil;
  6. import com.chinacreator.videoalliance.common.annotation.DataOut;
  7. import com.chinacreator.videoalliance.common.dao.DictionaryDao;
  8. import com.chinacreator.videoalliance.common.util.ConfigUtil;
  9. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  10. import com.chinacreator.videoalliance.order.service.VacQryService;
  11. import com.chinacreator.videoalliance.order.util.JsonUtil;
  12. import com.google.gson.GsonBuilder;
  13. import org.apache.commons.lang.StringUtils;
  14. import org.apache.log4j.Logger;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import javax.servlet.http.HttpServletRequest;
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22. import java.util.Map;
  23. @Controller
  24. public class VacQryAction {
  25. private static Logger logger = Logger.getLogger("vacqry");
  26. private static Logger logger_sys = Logger.getLogger("VacQryAction");
  27. @Autowired
  28. private VacQryService vacQryService;
  29. @Autowired
  30. private DictionaryDao dictionaryDao;
  31. private static List<String> RIGHTS_IPS = new ArrayList<String>();
  32. /**
  33. * 允许访问vac鉴权ip地址类表
  34. */
  35. static {
  36. RIGHTS_IPS.add("10.199.99.148");
  37. RIGHTS_IPS.add("10.199.99.146");
  38. RIGHTS_IPS.add("10.199.99.134");
  39. RIGHTS_IPS.add("10.199.99.20");
  40. RIGHTS_IPS.add("10.199.99.19");
  41. RIGHTS_IPS.add("10.199.99.18");
  42. RIGHTS_IPS.add("10.199.99.142");
  43. RIGHTS_IPS.add("10.199.99.140");
  44. RIGHTS_IPS.add("10.199.99.141");
  45. RIGHTS_IPS.add("10.199.99.160");
  46. RIGHTS_IPS.add("10.199.99.161");
  47. RIGHTS_IPS.add("10.199.99.170");
  48. RIGHTS_IPS.add("10.199.99.171");
  49. RIGHTS_IPS.add("10.199.99.172");
  50. RIGHTS_IPS.add("10.199.99.173");
  51. RIGHTS_IPS.add("10.199.99.174");
  52. RIGHTS_IPS.add("10.199.99.175");
  53. RIGHTS_IPS.add("10.199.99.176");
  54. RIGHTS_IPS.add("10.199.99.177");
  55. RIGHTS_IPS.add("10.199.99.136");
  56. RIGHTS_IPS.add("10.199.99.56");
  57. RIGHTS_IPS.add("10.199.99.53");
  58. RIGHTS_IPS.add("127.0.0.1");
  59. RIGHTS_IPS.add("10.199.99.52");
  60. RIGHTS_IPS.add("172.16.2.102");
  61. RIGHTS_IPS.add("172.16.2.101");
  62. RIGHTS_IPS.add("172.16.2.98");
  63. RIGHTS_IPS.add("172.16.2.97");
  64. RIGHTS_IPS.add("172.16.123.13");
  65. RIGHTS_IPS.add("172.16.123.14");
  66. RIGHTS_IPS.add("172.16.123.15");
  67. RIGHTS_IPS.add("172.16.123.16");
  68. RIGHTS_IPS.add("172.16.123.21");
  69. RIGHTS_IPS.add("172.16.123.22");
  70. RIGHTS_IPS.add("172.16.123.23");
  71. RIGHTS_IPS.add("172.16.123.24");
  72. RIGHTS_IPS.add("172.16.33.16");
  73. RIGHTS_IPS.add("222.240.205.10");
  74. RIGHTS_IPS.add("10.199.99.156");
  75. RIGHTS_IPS.add("10.199.99.163");
  76. }
  77. @RequestMapping({"/vacqry.do"})
  78. @DataOut(callback="vacqry")
  79. public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel)
  80. throws Exception{
  81. DataOutPipe pipe = new DataOutPipe();
  82. Map log = new HashMap();
  83. try {
  84. orderInfo.setTimes(System.currentTimeMillis()+"");
  85. String userid = orderInfo.getUserid();
  86. if (StringUtils.isNotEmpty(userid)) {
  87. orderInfo.setUserid(ConfigUtil.decrypt(userid, orderInfo.getCpid()));
  88. if ((orderInfo.getUserid() != null) && (orderInfo.getUserid().length() > 11)) {
  89. orderInfo.setUserid(ConfigUtil.getUserid(orderInfo.getUserid(), orderInfo.getCpid()));
  90. }
  91. }
  92. orderInfo.setApptype(RequestUtil.getMobType(request));
  93. orderInfo.setStatus(0);
  94. orderInfo.setOrderchannel("localQry");
  95. orderInfo.setOrderstatus(3); //设置营业厅订购
  96. String ip = request.getRemoteAddr();
  97. ip = getIpAddr(request);
  98. log.put("userid",orderInfo.getUserid());
  99. log.put("cpid", orderInfo.getCpid());
  100. log.put("spid", orderInfo.getSpid());
  101. log.put("ip", ip);
  102. log.put("mqResult","-1");
  103. log.put("qryResult","-1");
  104. if(!RIGHTS_IPS.contains(ip)){
  105. //throw new BusinessException("9012", "IP无权限调用:"+ip, new String[0]);
  106. }
  107. //查询VAC订购状态
  108. String qryResult = this.vacQryService.qryVacOrder(orderInfo);
  109. logger.info("查询VAC订购状态========="+qryResult);
  110. log.put("qryResult",qryResult);
  111. pipe.setResultCode(qryResult);
  112. //pipe.add("qryResult",qryResult);
  113. pipe.add("userid", orderInfo.getUserid());
  114. pipe.add("cpid", orderInfo.getCpid());
  115. pipe.add("channel", channel);
  116. pipe.add("spid", orderInfo.getSpid());
  117. if("0".equals(qryResult)){
  118. String mqResult = insertOrderMq(orderInfo);
  119. log.put("mqResult",mqResult);
  120. }
  121. log.put("userid",orderInfo.getUserid());
  122. } catch (Exception e) {
  123. log.put("errorInfo",e.getMessage());
  124. log.put("errorCode", "9999");
  125. if ((e instanceof BusinessException)) {
  126. log.put("errorCode", ((BusinessException) e).getCode());
  127. String errorInfo = ((BusinessException) e).getMessage();
  128. if(errorInfo.length()>200){
  129. errorInfo = errorInfo.substring(0, 200);
  130. }
  131. log.put("errorInfo",errorInfo);
  132. }
  133. throw e;
  134. } finally {
  135. String json = new GsonBuilder().disableHtmlEscaping().serializeNulls().create().toJson(log);
  136. logger.info(json);
  137. }
  138. return pipe;
  139. }
  140. /**
  141. * 推送订购信息到队列,生成会员赠送信息
  142. * @param orderInfo
  143. */
  144. public String insertOrderMq(OrderInfo orderInfo) {
  145. String mqResult = "-1"; //是否出现异常
  146. try{
  147. Map<String,String> map = new HashMap<String, String>();
  148. map.put("userid", orderInfo.getUserid());
  149. map.put("cpid",orderInfo.getCpid());
  150. map.put("spid", orderInfo.getSpid());
  151. map.put("province", orderInfo.getProvince());
  152. map.put("area", orderInfo.getArea());
  153. map.put("ordertime", orderInfo.getOrdertime());
  154. map.put("canceltime", "");
  155. map.put("status", "0");
  156. map.put("orderchannel", orderInfo.getOrderchannel());
  157. map.put("cancelchannel", "");
  158. map.put("videoid", orderInfo.getVideoid());
  159. map.put("type","order");
  160. //map.put("cpid","fhtest");
  161. //map.put("spid","20190313");
  162. logger_sys.info("+++++++++++++++添加队列数据:"+JsonUtil.objectToJson(map));
  163. //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
  164. URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map));
  165. //测试环境
  166. //URLUtil.post("http://10.199.99.177:8030/mq-service/recive.do", JsonUtil.objectToJson(map));
  167. //开发环境
  168. //URLUtil.post("http://172.16.33.16:8082/mq-service/recive.do", JsonUtil.objectToJson(map));
  169. mqResult = "0";
  170. }catch(Exception e){
  171. e.printStackTrace();
  172. }
  173. return mqResult;
  174. }
  175. public String getRemortIP(HttpServletRequest request) {
  176. if (request.getHeader("x-forwarded-for") == null) {
  177. return request.getRemoteAddr();
  178. }
  179. return request.getHeader("x-forwarded-for");
  180. }
  181. public static String getIpAddr(HttpServletRequest request) {
  182. String ip = request.getHeader("X-Real-IP");
  183. if (inValidateIpAddr(ip)) {
  184. ip = request.getHeader("X-Forwarded-For");
  185. }
  186. if (inValidateIpAddr(ip)) {
  187. ip = request.getHeader("Proxy-Client-IP");
  188. }
  189. if (inValidateIpAddr(ip)) {
  190. ip = request.getHeader("WL-Proxy-Client-IP");
  191. }
  192. if (inValidateIpAddr(ip)) {
  193. ip = request.getHeader("clientip");
  194. }
  195. if (inValidateIpAddr(ip)) {
  196. ip = request.getRemoteAddr();
  197. }
  198. if (inValidateIpAddr(ip)) {
  199. ip = "null";
  200. } else {
  201. int index = ip.indexOf(",");
  202. if (index != -1) {
  203. ip = ip.substring(0, index);
  204. }
  205. }
  206. return ip;
  207. }
  208. private static boolean inValidateIpAddr(String ip) {
  209. return (ip == null) ||
  210. (ip.length() == 0) ||
  211. ("unknown".equalsIgnoreCase(ip)) ||
  212. (ip.startsWith("127."));
  213. }
  214. }