123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- package com.chinacreator.videoalliance.order.action;
- import com.chinacreator.common.exception.BusinessException;
- import com.chinacreator.common.pipe.DataOutPipe;
- import com.chinacreator.common.util.RequestUtil;
- import com.chinacreator.common.util.URLUtil;
- import com.chinacreator.videoalliance.common.annotation.DataOut;
- import com.chinacreator.videoalliance.common.dao.DictionaryDao;
- import com.chinacreator.videoalliance.common.util.ConfigUtil;
- import com.chinacreator.videoalliance.order.bean.OrderInfo;
- import com.chinacreator.videoalliance.order.service.VacQryService;
- import com.chinacreator.videoalliance.order.util.JsonUtil;
- import com.google.gson.GsonBuilder;
- import org.apache.commons.lang.StringUtils;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import javax.servlet.http.HttpServletRequest;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- @Controller
- public class VacQryAction {
-
- private static Logger logger = Logger.getLogger("vacqry");
-
- private static Logger logger_sys = Logger.getLogger("VacQryAction");
- @Autowired
- private VacQryService vacQryService;
- @Autowired
- private DictionaryDao dictionaryDao;
-
- private static List<String> RIGHTS_IPS = new ArrayList<String>();
-
- /**
- * 允许访问vac鉴权ip地址类表
- */
-
- static {
- RIGHTS_IPS.add("10.199.99.148");
- RIGHTS_IPS.add("10.199.99.146");
- RIGHTS_IPS.add("10.199.99.134");
- RIGHTS_IPS.add("10.199.99.20");
- RIGHTS_IPS.add("10.199.99.19");
- RIGHTS_IPS.add("10.199.99.18");
- RIGHTS_IPS.add("10.199.99.142");
- RIGHTS_IPS.add("10.199.99.140");
- RIGHTS_IPS.add("10.199.99.141");
- RIGHTS_IPS.add("10.199.99.160");
- RIGHTS_IPS.add("10.199.99.161");
- RIGHTS_IPS.add("10.199.99.170");
- RIGHTS_IPS.add("10.199.99.171");
- RIGHTS_IPS.add("10.199.99.172");
- RIGHTS_IPS.add("10.199.99.173");
- RIGHTS_IPS.add("10.199.99.174");
- RIGHTS_IPS.add("10.199.99.175");
- RIGHTS_IPS.add("10.199.99.176");
- RIGHTS_IPS.add("10.199.99.177");
- RIGHTS_IPS.add("10.199.99.136");
- RIGHTS_IPS.add("10.199.99.56");
- RIGHTS_IPS.add("10.199.99.53");
- RIGHTS_IPS.add("127.0.0.1");
- RIGHTS_IPS.add("10.199.99.52");
- RIGHTS_IPS.add("172.16.2.102");
- RIGHTS_IPS.add("172.16.2.101");
- RIGHTS_IPS.add("172.16.2.98");
- RIGHTS_IPS.add("172.16.2.97");
- RIGHTS_IPS.add("172.16.123.13");
- RIGHTS_IPS.add("172.16.123.14");
- RIGHTS_IPS.add("172.16.123.15");
- RIGHTS_IPS.add("172.16.123.16");
- RIGHTS_IPS.add("172.16.123.21");
- RIGHTS_IPS.add("172.16.123.22");
- RIGHTS_IPS.add("172.16.123.23");
- RIGHTS_IPS.add("172.16.123.24");
- RIGHTS_IPS.add("172.16.33.16");
- RIGHTS_IPS.add("222.240.205.10");
- RIGHTS_IPS.add("10.199.99.156");
- RIGHTS_IPS.add("10.199.99.163");
- }
-
- @RequestMapping({"/vacqry.do"})
- @DataOut(callback="vacqry")
- public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel)
- throws Exception{
- DataOutPipe pipe = new DataOutPipe();
- Map log = new HashMap();
- try {
- orderInfo.setTimes(System.currentTimeMillis()+"");
- String userid = orderInfo.getUserid();
- if (StringUtils.isNotEmpty(userid)) {
- orderInfo.setUserid(ConfigUtil.decrypt(userid, orderInfo.getCpid()));
- if ((orderInfo.getUserid() != null) && (orderInfo.getUserid().length() > 11)) {
- orderInfo.setUserid(ConfigUtil.getUserid(orderInfo.getUserid(), orderInfo.getCpid()));
- }
- }
-
- orderInfo.setApptype(RequestUtil.getMobType(request));
- orderInfo.setStatus(0);
- orderInfo.setOrderchannel("localQry");
- orderInfo.setOrderstatus(3); //设置营业厅订购
-
- String ip = request.getRemoteAddr();
- ip = getIpAddr(request);
-
- log.put("userid",orderInfo.getUserid());
- log.put("cpid", orderInfo.getCpid());
- log.put("spid", orderInfo.getSpid());
- log.put("ip", ip);
- log.put("mqResult","-1");
- log.put("qryResult","-1");
-
- if(!RIGHTS_IPS.contains(ip)){
- //throw new BusinessException("9012", "IP无权限调用:"+ip, new String[0]);
- }
- //查询VAC订购状态
- String qryResult = this.vacQryService.qryVacOrder(orderInfo);
- logger.info("查询VAC订购状态========="+qryResult);
- log.put("qryResult",qryResult);
-
- pipe.setResultCode(qryResult);
- //pipe.add("qryResult",qryResult);
- pipe.add("userid", orderInfo.getUserid());
- pipe.add("cpid", orderInfo.getCpid());
- pipe.add("channel", channel);
- pipe.add("spid", orderInfo.getSpid());
-
- if("0".equals(qryResult)){
- String mqResult = insertOrderMq(orderInfo);
- log.put("mqResult",mqResult);
- }
- log.put("userid",orderInfo.getUserid());
- } catch (Exception e) {
- log.put("errorInfo",e.getMessage());
- log.put("errorCode", "9999");
- if ((e instanceof BusinessException)) {
- log.put("errorCode", ((BusinessException) e).getCode());
- String errorInfo = ((BusinessException) e).getMessage();
- if(errorInfo.length()>200){
- errorInfo = errorInfo.substring(0, 200);
- }
- log.put("errorInfo",errorInfo);
- }
- throw e;
- } finally {
- String json = new GsonBuilder().disableHtmlEscaping().serializeNulls().create().toJson(log);
- logger.info(json);
- }
- return pipe;
- }
-
- /**
- * 推送订购信息到队列,生成会员赠送信息
- * @param orderInfo
- */
- public String insertOrderMq(OrderInfo orderInfo) {
- String mqResult = "-1"; //是否出现异常
- try{
- Map<String,String> map = new HashMap<String, String>();
- map.put("userid", orderInfo.getUserid());
- map.put("cpid",orderInfo.getCpid());
- map.put("spid", orderInfo.getSpid());
- map.put("province", orderInfo.getProvince());
- map.put("area", orderInfo.getArea());
- map.put("ordertime", orderInfo.getOrdertime());
- map.put("canceltime", "");
- map.put("status", "0");
- map.put("orderchannel", orderInfo.getOrderchannel());
- map.put("cancelchannel", "");
- map.put("videoid", orderInfo.getVideoid());
- map.put("type","order");
-
-
- //map.put("cpid","fhtest");
- //map.put("spid","20190313");
- logger_sys.info("+++++++++++++++添加队列数据:"+JsonUtil.objectToJson(map));
- //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
- URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map));
- //测试环境
- //URLUtil.post("http://10.199.99.177:8030/mq-service/recive.do", JsonUtil.objectToJson(map));
- //开发环境
- //URLUtil.post("http://172.16.33.16:8082/mq-service/recive.do", JsonUtil.objectToJson(map));
- mqResult = "0";
- }catch(Exception e){
- e.printStackTrace();
- }
- return mqResult;
- }
-
- public String getRemortIP(HttpServletRequest request) {
- if (request.getHeader("x-forwarded-for") == null) {
- return request.getRemoteAddr();
- }
-
- return request.getHeader("x-forwarded-for");
- }
-
- public static String getIpAddr(HttpServletRequest request) {
- String ip = request.getHeader("X-Real-IP");
- if (inValidateIpAddr(ip)) {
- ip = request.getHeader("X-Forwarded-For");
- }
- if (inValidateIpAddr(ip)) {
- ip = request.getHeader("Proxy-Client-IP");
- }
- if (inValidateIpAddr(ip)) {
- ip = request.getHeader("WL-Proxy-Client-IP");
- }
- if (inValidateIpAddr(ip)) {
- ip = request.getHeader("clientip");
- }
- if (inValidateIpAddr(ip)) {
- ip = request.getRemoteAddr();
- }
- if (inValidateIpAddr(ip)) {
- ip = "null";
- } else {
- int index = ip.indexOf(",");
- if (index != -1) {
- ip = ip.substring(0, index);
- }
- }
- return ip;
- }
-
- private static boolean inValidateIpAddr(String ip) {
- return (ip == null) ||
- (ip.length() == 0) ||
- ("unknown".equalsIgnoreCase(ip)) ||
- (ip.startsWith("127."));
- }
- }
|