009cb59f2dd7c3e942d8853dc63aa50d7a8be529.svn-base 8.8 KB

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