package com.chinacreator.videoalliance.order.action; 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.dao.BussinessDao; import com.chinacreator.videoalliance.order.service.NextMonthEffectService; import com.chinacreator.videoalliance.order.service.OrderKsPreService; import com.chinacreator.videoalliance.order.service.OrderService; import com.chinacreator.videoalliance.order.service.OrderValiService; import com.chinacreator.videoalliance.order.service.WxcsHandleService; import com.chinacreator.videoalliance.order.util.JsonUtil; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; 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.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; @Controller public class CancelOrderAction { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.set(Calendar.DATE,1); cal.roll(Calendar.DATE,-1); System.out.println(sdf.format(cal.getTime())); System.out.println(sdf.parse(sdf.format(DateUtils.addDays(cal.getTime(), -1)))); System.out.println(sdf.format(new Date())); } private static Logger log = Logger.getLogger("orderError"); @Autowired private OrderService orderService; @Autowired private WxcsHandleService wxcsHandleService; @Autowired private DictionaryDao dictionaryDao; @Autowired private OrderKsPreService orderKsPreService; @Autowired private BussinessDao bussinessDao; @Autowired private OrderValiService orderValiService; @Autowired private NextMonthEffectService nextMonthEffectService; @RequestMapping({ "/cancelOrder.do" }) @DataOut(callback = "cancelOrder") public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel) throws Exception { DataOutPipe pipe = new DataOutPipe(); 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())); } } if (StringUtils.isNotEmpty(channel)){ if (channel.length()>20){ if (channel.contains("bilibl")){ channel="bilibl_app"; }else { channel=channel.substring(0,10); } orderInfo.setChannel(channel); } } orderInfo.setApptype(RequestUtil.getMobType(request)); orderInfo.setStatus(1); orderInfo.setOrderstatus(4); if (channel != null && channel.equals("kf")) { orderInfo.setOrderstatus(6); } orderInfo.setCancelchannel(channel); orderInfo.setInvokeface("cancelOrder"); //办理验证 orderValiService.vali(request, orderInfo); pipe.add("userid", userid); this.orderService.checkCancelOrder(orderInfo); //能力平台次月生效产品 if(nextMonthEffectService.hasNextMonthBusi(orderInfo)){ //业务处理 nextMonthEffectService.process(orderInfo); }else if (orderInfo.getPaytype() == 1 && !orderInfo.getCpid().equals("changshi")) { if (StringUtils.isEmpty(channel)) { orderInfo.setCancelchannel(orderInfo.getCpid()); } orderInfo.setCpid("changshi"); orderInfo.setSpid("1150"); wxcsHandleService.handleCancel(orderInfo, "1"); } else { /* //快手8元、15元预退订处理. if (("1022".equals(orderInfo.getSpid()) || "1023".equals(orderInfo.getSpid())) && "kuaishou".equals(orderInfo.getCpid())){ this.orderKsPreService.cancelOrder(orderInfo); }else{ this.orderService.cancelOrder(orderInfo); }*/ log.info(orderInfo.getUserid()); /*if (channel.equals("kf")) { }else { log.info(orderInfo.getUserid()+"进入原有退订逻辑"); this.orderService.cancelOrder(orderInfo); }*/ log.info("参数报文:=================="+orderInfo.toString()); if(orderInfo.getCpid().equals("kuaishou")||orderInfo.getCpid().equals("ali") ||orderInfo.getCpid().equals("yangshipin")){ log.info(orderInfo.getUserid()+"进入快手阿里退订逻辑"); this.orderService.cancelOrder(orderInfo,null,channel); }else { log.info(orderInfo.getUserid()+"进入原有退订逻辑"); this.orderService.cancelOrder(orderInfo); } } pipe.add("endtime", orderInfo.getEndtime()); insertOrderMq(orderInfo); inserSmstMq(orderInfo); return pipe; } public void insertOrderMq(OrderInfo orderInfo) { /**** if (("changshi".equals(orderInfo.getCpid()) && ( "99144185".equals(orderInfo.getSpid()) || "99144186".equals(orderInfo.getSpid()) || "99144187".equals(orderInfo.getSpid()) || "99134262".equals(orderInfo.getSpid()) || "1212".equals(orderInfo.getSpid()) || "1213".equals(orderInfo.getSpid()) || "1214".equals(orderInfo.getSpid()) || "1215".equals(orderInfo.getSpid()) || "1216".equals(orderInfo.getSpid()) )) || (!orderInfo.getCpid().equals("changshi") && !orderInfo.getSpid().equals("1150"))) { ***/ try { Map map = new HashMap(); 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", orderInfo.getCanceltime()); map.put("status", "1"); map.put("orderchannel", orderInfo.getOrderchannel()); map.put("cancelchannel", orderInfo.getCancelchannel()); map.put("videoid", orderInfo.getVideoid()); map.put("type", "order"); //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map)); // URLUtil.post("http://10.199.99.177:86/mq-service/recive.do", JsonUtil.objectToJson(map)); //不是能力平台次月生效的退订,或者是,且是正式订购关系表的退订 if(!nextMonthEffectService.hasNextMonthBusi(orderInfo) || (nextMonthEffectService.hasNextMonthBusi(orderInfo) && "5".equals(orderInfo.getSyncstatus()))){ //添加数据到活动关系处理表 bussinessDao.addBussHandleWait(map); } URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map)); } catch (Exception e) { e.printStackTrace(); } //} } //public static Map cancelorderSmsMq = new HashMap(); //the spid(key) that need to send sms, sms style is value /** static { cancelorderSmsMq.put("1006","23"); cancelorderSmsMq.put("954","21"); cancelorderSmsMq.put("6","37"); cancelorderSmsMq.put("952","38"); cancelorderSmsMq.put("21156","39"); cancelorderSmsMq.put("979","40"); cancelorderSmsMq.put("1005","41"); cancelorderSmsMq.put("11","42"); cancelorderSmsMq.put("980","43"); cancelorderSmsMq.put("1017","44"); cancelorderSmsMq.put("1018","45"); cancelorderSmsMq.put("10013","52"); cancelorderSmsMq.put("10014","54"); } **/ public void inserSmstMq(OrderInfo orderInfo) { try { //if (cancelorderSmsMq.containsKey(orderInfo.getSpid())) //{ 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", orderInfo.getCancelchannel()); map.put("subchannel", (orderInfo.getSubchannel() == null ? "" : orderInfo.getSubchannel())); //map.put("style",cancelorderSmsMq.get(orderInfo.getSpid())); map.put("style","0000"); map.put("times", ""); map.put("orderType", ""); map.put("type", "cssms"); map.put("busiType", "cancel_succ"); //URLUtil.post("http://10.199.99.144:8090/mq-service/recive.do", JsonUtil.objectToJson(map)); URLUtil.post(dictionaryDao.getValue("mqReciveUrl"), JsonUtil.objectToJson(map)); //} } catch (Exception e) { e.printStackTrace(); } } }