cb904f5ede7314208584107cd18e49da3f73341f.svn-base 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. package com.chinacreator.videoalliance.order.action;
  2. import com.alibaba.fastjson.JSON;
  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.dao.BussinessDao;
  11. import com.chinacreator.videoalliance.order.service.NextMonthEffectService;
  12. import com.chinacreator.videoalliance.order.service.OrderKsPreService;
  13. import com.chinacreator.videoalliance.order.service.OrderService;
  14. import com.chinacreator.videoalliance.order.service.OrderValiService;
  15. import com.chinacreator.videoalliance.order.service.WxcsHandleService;
  16. import com.chinacreator.videoalliance.order.util.JsonUtil;
  17. import org.apache.commons.lang.StringUtils;
  18. import org.apache.commons.lang.time.DateUtils;
  19. import org.apache.log4j.Logger;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import javax.servlet.http.HttpServletRequest;
  24. import java.text.ParseException;
  25. import java.text.SimpleDateFormat;
  26. import java.util.Calendar;
  27. import java.util.Date;
  28. import java.util.HashMap;
  29. import java.util.Map;
  30. @Controller
  31. public class CancelOrderAction {
  32. public static void main(String[] args) throws ParseException {
  33. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  34. Calendar cal = Calendar.getInstance();
  35. cal.set(Calendar.DATE,1);
  36. cal.roll(Calendar.DATE,-1);
  37. System.out.println(sdf.format(cal.getTime()));
  38. System.out.println(sdf.parse(sdf.format(DateUtils.addDays(cal.getTime(), -1))));
  39. System.out.println(sdf.format(new Date()));
  40. }
  41. private static Logger log = Logger.getLogger("orderError");
  42. @Autowired
  43. private OrderService orderService;
  44. @Autowired
  45. private WxcsHandleService wxcsHandleService;
  46. @Autowired
  47. private DictionaryDao dictionaryDao;
  48. @Autowired
  49. private OrderKsPreService orderKsPreService;
  50. @Autowired
  51. private BussinessDao bussinessDao;
  52. @Autowired
  53. private OrderValiService orderValiService;
  54. @Autowired
  55. private NextMonthEffectService nextMonthEffectService;
  56. @RequestMapping({ "/cancelOrder.do" })
  57. @DataOut(callback = "cancelOrder")
  58. public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel) throws Exception {
  59. DataOutPipe pipe = new DataOutPipe();
  60. orderInfo.setTimes(System.currentTimeMillis() + "");
  61. String userid = orderInfo.getUserid();
  62. if (StringUtils.isNotEmpty(userid)) {
  63. orderInfo.setUserid(ConfigUtil.decrypt(userid, orderInfo.getCpid()));
  64. if ((orderInfo.getUserid() != null) && (orderInfo.getUserid().length() > 11)) {
  65. orderInfo.setUserid(ConfigUtil.getUserid(orderInfo.getUserid(), orderInfo.getCpid()));
  66. }
  67. }
  68. if (StringUtils.isNotEmpty(channel)){
  69. if (channel.length()>20){
  70. if (channel.contains("bilibl")){
  71. channel="bilibl_app";
  72. }else {
  73. channel=channel.substring(0,10);
  74. }
  75. orderInfo.setChannel(channel);
  76. }
  77. }
  78. orderInfo.setApptype(RequestUtil.getMobType(request));
  79. orderInfo.setStatus(1);
  80. orderInfo.setOrderstatus(4);
  81. if (channel != null && channel.equals("kf")) {
  82. orderInfo.setOrderstatus(6);
  83. }
  84. orderInfo.setCancelchannel(channel);
  85. orderInfo.setInvokeface("cancelOrder");
  86. //办理验证
  87. orderValiService.vali(request, orderInfo);
  88. pipe.add("userid", userid);
  89. this.orderService.checkCancelOrder(orderInfo);
  90. //能力平台次月生效产品
  91. if(nextMonthEffectService.hasNextMonthBusi(orderInfo)){
  92. //业务处理
  93. nextMonthEffectService.process(orderInfo);
  94. }else if (orderInfo.getPaytype() == 1 && !orderInfo.getCpid().equals("changshi")) {
  95. if (StringUtils.isEmpty(channel)) {
  96. orderInfo.setCancelchannel(orderInfo.getCpid());
  97. }
  98. orderInfo.setCpid("changshi");
  99. orderInfo.setSpid("1150");
  100. wxcsHandleService.handleCancel(orderInfo, "1");
  101. } else {
  102. /* //快手8元、15元预退订处理.
  103. if (("1022".equals(orderInfo.getSpid()) || "1023".equals(orderInfo.getSpid())) && "kuaishou".equals(orderInfo.getCpid())){
  104. this.orderKsPreService.cancelOrder(orderInfo);
  105. }else{
  106. this.orderService.cancelOrder(orderInfo);
  107. }*/
  108. log.info(orderInfo.getUserid());
  109. /*if (channel.equals("kf")) {
  110. }else {
  111. log.info(orderInfo.getUserid()+"进入原有退订逻辑");
  112. this.orderService.cancelOrder(orderInfo);
  113. }*/
  114. log.info("参数报文:=================="+ JSON.toJSONString(orderInfo));
  115. if(orderInfo.getCpid().equals("kuaishou")||orderInfo.getCpid().equals("ali")
  116. ||orderInfo.getCpid().equals("yangshipin")){
  117. log.info(orderInfo.getUserid()+"进入快手阿里退订逻辑");
  118. this.orderService.cancelOrder(orderInfo,null,channel);
  119. }else {
  120. log.info(orderInfo.getUserid()+"进入原有退订逻辑");
  121. this.orderService.cancelOrder(orderInfo);
  122. }
  123. }
  124. pipe.add("endtime", orderInfo.getEndtime());
  125. insertOrderMq(orderInfo);
  126. inserSmstMq(orderInfo);
  127. return pipe;
  128. }
  129. public void insertOrderMq(OrderInfo orderInfo) {
  130. /****
  131. if (("changshi".equals(orderInfo.getCpid()) && (
  132. "99144185".equals(orderInfo.getSpid())
  133. || "99144186".equals(orderInfo.getSpid())
  134. || "99144187".equals(orderInfo.getSpid())
  135. || "99134262".equals(orderInfo.getSpid())
  136. || "1212".equals(orderInfo.getSpid())
  137. || "1213".equals(orderInfo.getSpid())
  138. || "1214".equals(orderInfo.getSpid())
  139. || "1215".equals(orderInfo.getSpid())
  140. || "1216".equals(orderInfo.getSpid())
  141. ))
  142. || (!orderInfo.getCpid().equals("changshi") && !orderInfo.getSpid().equals("1150"))) { ***/
  143. try {
  144. Map<String, String> map = new HashMap<String, String>();
  145. map.put("userid", orderInfo.getUserid());
  146. map.put("cpid", orderInfo.getCpid());
  147. map.put("spid", orderInfo.getSpid());
  148. map.put("province", orderInfo.getProvince());
  149. map.put("area", orderInfo.getArea());
  150. map.put("ordertime", orderInfo.getOrdertime());
  151. map.put("canceltime", orderInfo.getCanceltime());
  152. map.put("status", "1");
  153. map.put("orderchannel", orderInfo.getOrderchannel());
  154. map.put("cancelchannel", orderInfo.getCancelchannel());
  155. map.put("videoid", orderInfo.getVideoid());
  156. map.put("type", "order");
  157. //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
  158. // URLUtil.post("http://10.199.99.177:86/mq-service/recive.do", JsonUtil.objectToJson(map));
  159. //不是能力平台次月生效的退订,或者是,且是正式订购关系表的退订
  160. if(!nextMonthEffectService.hasNextMonthBusi(orderInfo)
  161. || (nextMonthEffectService.hasNextMonthBusi(orderInfo) && "5".equals(orderInfo.getSyncstatus()))){
  162. //添加数据到活动关系处理表
  163. bussinessDao.addBussHandleWait(map);
  164. }
  165. URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map));
  166. } catch (Exception e) {
  167. e.printStackTrace();
  168. }
  169. //}
  170. }
  171. //public static Map<String,String> cancelorderSmsMq = new HashMap<String, String>();
  172. //the spid(key) that need to send sms, sms style is value
  173. /**
  174. static {
  175. cancelorderSmsMq.put("1006","23");
  176. cancelorderSmsMq.put("954","21");
  177. cancelorderSmsMq.put("6","37");
  178. cancelorderSmsMq.put("952","38");
  179. cancelorderSmsMq.put("21156","39");
  180. cancelorderSmsMq.put("979","40");
  181. cancelorderSmsMq.put("1005","41");
  182. cancelorderSmsMq.put("11","42");
  183. cancelorderSmsMq.put("980","43");
  184. cancelorderSmsMq.put("1017","44");
  185. cancelorderSmsMq.put("1018","45");
  186. cancelorderSmsMq.put("10013","52");
  187. cancelorderSmsMq.put("10014","54");
  188. }
  189. **/
  190. public void inserSmstMq(OrderInfo orderInfo)
  191. {
  192. try
  193. {
  194. //if (cancelorderSmsMq.containsKey(orderInfo.getSpid()))
  195. //{
  196. Map<String, String> map = new HashMap<String, String>();
  197. map.put("userid", orderInfo.getUserid());
  198. map.put("cpid", orderInfo.getCpid());
  199. map.put("spid", orderInfo.getSpid());
  200. map.put("result", "0");
  201. map.put("channel", orderInfo.getCancelchannel());
  202. map.put("subchannel", (orderInfo.getSubchannel() == null ? "" : orderInfo.getSubchannel()));
  203. //map.put("style",cancelorderSmsMq.get(orderInfo.getSpid()));
  204. map.put("style","0000");
  205. map.put("times", "");
  206. map.put("orderType", "");
  207. map.put("type", "cssms");
  208. map.put("busiType", "cancel_succ");
  209. //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map));
  210. URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map));
  211. //}
  212. }
  213. catch (Exception e)
  214. {
  215. e.printStackTrace();
  216. }
  217. }
  218. }