package com.chinacreator.videoalliance.order.action; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.pipe.DataOutPipe; import com.chinacreator.common.util.Base64; import com.chinacreator.common.util.DESUtil; import com.chinacreator.common.util.RequestUtil; import com.chinacreator.videoalliance.common.annotation.DataOut; import com.chinacreator.videoalliance.common.dao.DictionaryDao; import com.chinacreator.videoalliance.common.dao.SysDao; import com.chinacreator.videoalliance.common.util.ConfigUtil; import com.chinacreator.videoalliance.common.util.SmsUtil; import com.chinacreator.videoalliance.order.bean.CustomSpInfo; import com.chinacreator.videoalliance.order.bean.MemberlogBean; import com.chinacreator.videoalliance.order.bean.OrderInfo; import com.chinacreator.videoalliance.order.dao.CustomDao; import com.chinacreator.videoalliance.order.service.OrderService; import com.chinacreator.videoalliance.order.service.VIPOrderServise; import com.chinacreator.videoalliance.order.util.IpAddrUtil; import org.apache.commons.lang.StringUtils; 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; @Controller public class NumberOrderAction { @Autowired private OrderService orderService; @Autowired private VIPOrderServise vipServise; @Autowired private SysDao sysDao; @Autowired private DictionaryDao dictionaryDao; @Autowired private CustomDao customDao; @RequestMapping({ "/numOrder.do" }) @DataOut(callback = "numOrder") public DataOutPipe doOrder(HttpServletRequest request, OrderInfo orderInfo, String channel, String numcode) throws Exception { DataOutPipe pipe = new DataOutPipe(); MemberlogBean logBean = new MemberlogBean(); String resultcode = "0"; String errorinfo = ""; if (StringUtils.isEmpty(numcode)) { throw new BusinessException("9001", "参数错误"); } String userid = orderInfo.getUserid(); pipe.add("userid", URLEncoder.encode(userid, "utf-8")); CustomSpInfo customSpInfo = customDao.findByCP(orderInfo.getCpid(),orderInfo.getSpid()); try{ getLogBean(orderInfo, numcode, logBean); 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())); } } logBean.setUserid(orderInfo.getUserid()); orderInfo.setApptype(RequestUtil.getMobType(request)); orderInfo.setStatus(0); orderInfo.setOrderchannel(channel); orderInfo.setOrderstatus(2); vipServise.checkVip(numcode,orderInfo); orderService.checkOrder(orderInfo); vipServise.checkOrder(orderInfo); vipServise.getFlowOrder(orderInfo); vipServise.giveVIP(orderInfo, numcode,IpAddrUtil.getIpAddr(request),logBean,customSpInfo); }catch(Exception e){ resultcode = "8000"; errorinfo = "系统忙"; e.printStackTrace(); if(e instanceof BusinessException){ resultcode = ((BusinessException) e).getCode(); errorinfo = ((BusinessException) e).getMessage(); } logBean.setResultcode(resultcode); logBean.setErrorinfo(errorinfo); }finally{ pipe.add("numcode", numcode); pipe.add("ordertime", orderInfo.getOrdertime() == null ? "" : orderInfo.getOrdertime()); if(orderInfo.getOrdertime() == null ){ orderInfo.setEndtime(""); } pipe.add("endtime", orderInfo.getEndtime() == null ? "" : orderInfo.getEndtime()); if(StringUtils.isEmpty( logBean.getPwd())){ pipe.add("pwd",""); }else{ pipe.add("pwd", URLEncoder.encode(DESUtil.encode(logBean.getPwd(), "eb0b1e2b"), "UTF-8")); } pipe.add("ordertype", "1"); pipe.add("membertime", logBean.getMembertime() == null ? "" : logBean.getMembertime()); pipe.setResultCode(resultcode); pipe.setErrorInfo(errorinfo); pipe.add("errorcode", logBean.getErrorinfo() == null ? "" : URLEncoder.encode(Base64.encodeBase64String(logBean.getErrorinfo().getBytes()),"UTF-8")); vipServise.saveVIPLog(logBean); if(customSpInfo.getIssms().equals("1")){ String content = ""; try{ if(resultcode.equals("9043") ){ content = dictionaryDao.getValue("mgtvsmserr"); }else if(resultcode.equals("0")){ content = dictionaryDao.getValue("mgtvsmssucc").replace("{ordertime}", orderInfo.getOrdertime()); content = content.replace("{endtime}", orderInfo.getEndtime()); content = content.replace("{membertime}",logBean.getMembertime()) ; content = content.replace("{userid}",orderInfo.getUserid()) ; content = content.replace("{pwd}",logBean.getPwd()) ; }else if(resultcode.equals("9010") ){ content = dictionaryDao.getValue("mgtvsmscf"); } System.out.println(orderInfo.getUserid()+":"+content); SmsUtil.sendSms(orderInfo.getUserid(), content); }catch(Exception e){ e.printStackTrace(); } } } return pipe; } public void getLogBean(OrderInfo orderInfo,String numcode,MemberlogBean logBean) throws SQLException{ logBean.setCpid(orderInfo.getCpid()); logBean.setSpid(orderInfo.getSpid()); logBean.setNumcode(numcode); logBean.setId(sysDao.getID()); //logBean.setUserid(orderInfo.getUserid()); } public static void main(String[] args) throws UnsupportedEncodingException, Exception { System.out.println(URLEncoder.encode(DESUtil.encode("18574414678", "eb0b1e2b"), "utf-8")); } }