/* package com.chinacreator.videoalliance.order.action; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.pipe.DataOutPipe; import com.chinacreator.common.util.DESUtil; 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.HbTcPreOrderService; import com.chinacreator.videoalliance.order.service.TcPreOrderService; import com.chinacreator.videoalliance.order.util.IpAddrUtil; 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.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; */ /** * 湖北2元畅视超级包订购接口 * @author Administrator * *//* @Controller public class HbTcPreOrderAction { private static Logger busilog = Logger.getLogger("tcpreorder"); private static Logger logger = Logger.getLogger(HbTcPreOrderAction.class); @Autowired private HbTcPreOrderService service; @Autowired private DictionaryDao dictionaryDao; @RequestMapping({"/hbtcpreOrder.do"}) @DataOut(callback="order") 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 deuserid = orderInfo.getUserid(); //解密前的加密手机号码,用于签名验证 if (StringUtils.isNotEmpty(orderInfo.getUserid())) { orderInfo.setUserid(ConfigUtil.decrypt(orderInfo.getUserid(), orderInfo.getCpid())); if ((orderInfo.getUserid() != null) && (orderInfo.getUserid().length() > 11)) { orderInfo.setUserid(ConfigUtil.getUserid(orderInfo.getUserid(), orderInfo.getCpid())); } } orderInfo.setApptype(RequestUtil.getMobType(request)); orderInfo.setOrderchannel(channel); orderInfo.setCancelchannel(channel); orderInfo.setOrderstatus(3); String ip = this.getIpAddr(request); log.put("ip", ip); log.put("channel", channel); log.put("data", orderInfo); if(!valiIp(ip)){ throw new BusinessException("9008", "IP地址不合法"+ip); } this.service.checkOrder(orderInfo,deuserid); String result = ""; if(true){ throw new BusinessException("9031", "业务已下线"); } //只能办理畅视2元超级包 if ("changshi".equals(orderInfo.getCpid()) && "1172".equals(orderInfo.getSpid()) && orderInfo.getOrdertype() == 0) { result = service.orderBusi(orderInfo); } else { throw new BusinessException("9031", "不能办理非指定业务"); } log.put("data", orderInfo); pipe.add("userid", orderInfo.getUserid()); pipe.add("channel", channel == null ? "" : channel); pipe.add("endtime", orderInfo.getEndtime() == null ? "" : orderInfo.getEndtime()); pipe.setResultCode(result); inserSmstMq(orderInfo, result); log.put("returnCode",result); } 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); busilog.info(json); } return pipe; } private static List ips = new ArrayList(); static{ ips.add("127.0.0.1"); ips.add("172.16.33.16"); ips.add("10.199.99.147"); //生产环境 ips.add("10.199.99.177"); //测试环境 } private 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)); } public boolean valiIp(String ip)throws Exception{ boolean res = false; String ips = dictionaryDao.getValue("hbtcpreOrderip"); if(ips != null){ String [] iparray = ips.split(","); for(String tmp : iparray){ if("*".equals(tmp) || ip.equals(tmp)){ //if(ip.equals(tmp)){ res = true; break; } } } return res; } */ /** * 推送办理成功的短信到队列 * @param orderInfo *//* public void inserSmstMq(OrderInfo orderInfo, String result){ try{ if(orderInfo.getOrdertype() == 0 && "0".equals(result)){ //只发送订购成功短信 Map map = new HashMap(); map.put("userid", orderInfo.getUserid()); map.put("cpid", orderInfo.getCpid()); map.put("spid", orderInfo.getSpid()); map.put("result", "0"); map.put("channel", ""); map.put("style","0000"); map.put("times", ""); map.put("orderType", ""); map.put("type", "cssms"); map.put("busiType", "tran_succ_hb"); //开发环境 //URLUtil.post("http://172.16.33.16:8082/mq-service/recive.do", JsonUtil.objectToJson(map)); //测试环境 //URLUtil.post("http://10.199.99.177:86/mq-service/recive.do", JsonUtil.objectToJson(map)); //生产环境 //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map)); String mqReciveUrl = dictionaryDao.getValue("mqReciveUrl"); URLUtil.post(mqReciveUrl, JsonUtil.objectToJson(map)); } }catch (Exception e){ e.printStackTrace(); } } public static void main(String[] args) throws UnsupportedEncodingException, Exception { System.out.println( URLEncoder.encode(DESUtil.encode("18660177894", "ea044e50"), "utf-8")); } } */