fd3b5767b6ef44989b0375b75abacbe994dc719c.svn-base 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. /*
  2. package com.chinacreator.videoalliance.order.action;
  3. import com.chinacreator.common.exception.BusinessException;
  4. import com.chinacreator.common.pipe.DataOutPipe;
  5. import com.chinacreator.common.util.DESUtil;
  6. import com.chinacreator.common.util.RequestUtil;
  7. import com.chinacreator.common.util.URLUtil;
  8. import com.chinacreator.videoalliance.common.annotation.DataOut;
  9. import com.chinacreator.videoalliance.common.dao.DictionaryDao;
  10. import com.chinacreator.videoalliance.common.util.ConfigUtil;
  11. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  12. import com.chinacreator.videoalliance.order.service.HbTcPreOrderService;
  13. import com.chinacreator.videoalliance.order.service.TcPreOrderService;
  14. import com.chinacreator.videoalliance.order.util.IpAddrUtil;
  15. import com.chinacreator.videoalliance.order.util.JsonUtil;
  16. import com.google.gson.GsonBuilder;
  17. import org.apache.commons.lang.StringUtils;
  18. import org.apache.log4j.Logger;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.stereotype.Controller;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import javax.servlet.http.HttpServletRequest;
  23. import java.io.UnsupportedEncodingException;
  24. import java.net.URLEncoder;
  25. import java.sql.SQLException;
  26. import java.util.ArrayList;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. */
  31. /**
  32. * 湖北2元畅视超级包订购接口
  33. * @author Administrator
  34. *
  35. *//*
  36. @Controller
  37. public class HbTcPreOrderAction {
  38. private static Logger busilog = Logger.getLogger("tcpreorder");
  39. private static Logger logger = Logger.getLogger(HbTcPreOrderAction.class);
  40. @Autowired
  41. private HbTcPreOrderService service;
  42. @Autowired
  43. private DictionaryDao dictionaryDao;
  44. @RequestMapping({"/hbtcpreOrder.do"})
  45. @DataOut(callback="order")
  46. public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel)
  47. throws Exception{
  48. DataOutPipe pipe = new DataOutPipe();
  49. Map log = new HashMap();
  50. try {
  51. orderInfo.setTimes(System.currentTimeMillis()+"");
  52. String deuserid = orderInfo.getUserid(); //解密前的加密手机号码,用于签名验证
  53. if (StringUtils.isNotEmpty(orderInfo.getUserid())) {
  54. orderInfo.setUserid(ConfigUtil.decrypt(orderInfo.getUserid(), orderInfo.getCpid()));
  55. if ((orderInfo.getUserid() != null) && (orderInfo.getUserid().length() > 11)) {
  56. orderInfo.setUserid(ConfigUtil.getUserid(orderInfo.getUserid(), orderInfo.getCpid()));
  57. }
  58. }
  59. orderInfo.setApptype(RequestUtil.getMobType(request));
  60. orderInfo.setOrderchannel(channel);
  61. orderInfo.setCancelchannel(channel);
  62. orderInfo.setOrderstatus(3);
  63. String ip = this.getIpAddr(request);
  64. log.put("ip", ip);
  65. log.put("channel", channel);
  66. log.put("data", orderInfo);
  67. if(!valiIp(ip)){
  68. throw new BusinessException("9008", "IP地址不合法"+ip);
  69. }
  70. this.service.checkOrder(orderInfo,deuserid);
  71. String result = "";
  72. if(true){
  73. throw new BusinessException("9031", "业务已下线");
  74. }
  75. //只能办理畅视2元超级包
  76. if ("changshi".equals(orderInfo.getCpid()) && "1172".equals(orderInfo.getSpid()) && orderInfo.getOrdertype() == 0) {
  77. result = service.orderBusi(orderInfo);
  78. } else {
  79. throw new BusinessException("9031", "不能办理非指定业务");
  80. }
  81. log.put("data", orderInfo);
  82. pipe.add("userid", orderInfo.getUserid());
  83. pipe.add("channel", channel == null ? "" : channel);
  84. pipe.add("endtime", orderInfo.getEndtime() == null ? "" : orderInfo.getEndtime());
  85. pipe.setResultCode(result);
  86. inserSmstMq(orderInfo, result);
  87. log.put("returnCode",result);
  88. } catch (Exception e) {
  89. log.put("errorInfo",e.getMessage());
  90. log.put("errorCode", "9999");
  91. if ((e instanceof BusinessException)) {
  92. log.put("errorCode", ((BusinessException) e).getCode());
  93. String errorInfo = ((BusinessException) e).getMessage();
  94. if(errorInfo.length()>200){
  95. errorInfo = errorInfo.substring(0, 200);
  96. }
  97. log.put("errorInfo",errorInfo);
  98. }
  99. throw e;
  100. } finally {
  101. String json = new GsonBuilder().disableHtmlEscaping().serializeNulls().create().toJson(log);
  102. busilog.info(json);
  103. }
  104. return pipe;
  105. }
  106. private static List<String> ips = new ArrayList<String>();
  107. static{
  108. ips.add("127.0.0.1");
  109. ips.add("172.16.33.16");
  110. ips.add("10.199.99.147"); //生产环境
  111. ips.add("10.199.99.177"); //测试环境
  112. }
  113. private String getIpAddr(HttpServletRequest request) {
  114. String ip = request.getHeader("X-Real-IP");
  115. if (inValidateIpAddr(ip)) {
  116. ip = request.getHeader("X-Forwarded-For");
  117. }
  118. if (inValidateIpAddr(ip)) {
  119. ip = request.getHeader("Proxy-Client-IP");
  120. }
  121. if (inValidateIpAddr(ip)) {
  122. ip = request.getHeader("WL-Proxy-Client-IP");
  123. }
  124. if (inValidateIpAddr(ip)) {
  125. ip = request.getHeader("clientip");
  126. }
  127. if (inValidateIpAddr(ip)) {
  128. ip = request.getRemoteAddr();
  129. }
  130. if (inValidateIpAddr(ip)) {
  131. ip = "null";
  132. } else {
  133. int index = ip.indexOf(",");
  134. if (index != -1) {
  135. ip = ip.substring(0, index);
  136. }
  137. }
  138. return ip;
  139. }
  140. private static boolean inValidateIpAddr(String ip) {
  141. return (ip == null) || (ip.length() == 0) || ("unknown".equalsIgnoreCase(ip));
  142. }
  143. public boolean valiIp(String ip)throws Exception{
  144. boolean res = false;
  145. String ips = dictionaryDao.getValue("hbtcpreOrderip");
  146. if(ips != null){
  147. String [] iparray = ips.split(",");
  148. for(String tmp : iparray){
  149. if("*".equals(tmp) || ip.equals(tmp)){
  150. //if(ip.equals(tmp)){
  151. res = true;
  152. break;
  153. }
  154. }
  155. }
  156. return res;
  157. }
  158. */
  159. /**
  160. * 推送办理成功的短信到队列
  161. * @param orderInfo
  162. *//*
  163. public void inserSmstMq(OrderInfo orderInfo, String result){
  164. try{
  165. if(orderInfo.getOrdertype() == 0 && "0".equals(result)){ //只发送订购成功短信
  166. Map<String, String> map = new HashMap<String, String>();
  167. map.put("userid", orderInfo.getUserid());
  168. map.put("cpid", orderInfo.getCpid());
  169. map.put("spid", orderInfo.getSpid());
  170. map.put("result", "0");
  171. map.put("channel", "");
  172. map.put("style","0000");
  173. map.put("times", "");
  174. map.put("orderType", "");
  175. map.put("type", "cssms");
  176. map.put("busiType", "tran_succ_hb");
  177. //开发环境
  178. //URLUtil.post("http://172.16.33.16:8082/mq-service/recive.do", JsonUtil.objectToJson(map));
  179. //测试环境
  180. //URLUtil.post("http://10.199.99.177:86/mq-service/recive.do", JsonUtil.objectToJson(map));
  181. //生产环境
  182. //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
  183. String mqReciveUrl = dictionaryDao.getValue("mqReciveUrl");
  184. URLUtil.post(mqReciveUrl, JsonUtil.objectToJson(map));
  185. }
  186. }catch (Exception e){
  187. e.printStackTrace();
  188. }
  189. }
  190. public static void main(String[] args) throws UnsupportedEncodingException, Exception {
  191. System.out.println( URLEncoder.encode(DESUtil.encode("18660177894", "ea044e50"), "utf-8"));
  192. }
  193. }
  194. */