package com.chinacreator.videoalliance.order.action; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; 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 org.springframework.web.bind.annotation.ResponseBody; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.support.util.SpringContextUtil; import com.chinacreator.common.util.AESUtil; import com.chinacreator.videoalliance.order.bean.ExperienceOrderLog; import com.chinacreator.videoalliance.order.bean.ExperienceProductBean; import com.chinacreator.videoalliance.order.dao.ExperienceChannelOrderDao; import com.chinacreator.videoalliance.order.process.AbstractExperienceOrder; @Controller public class ExperienceChannelOrderAction { @Autowired private ExperienceChannelOrderDao experienceChannelOrderDao; @RequestMapping("/experienceChannelOrder.do") @ResponseBody public Object order(HttpServletRequest request) throws Exception{ ExperienceOrderLog log = new ExperienceOrderLog(); Map outmap = new HashMap(); String userid = request.getParameter("userid"); String orderNum = request.getParameter("orderNum"); String effecttime = request.getParameter("effecttime");//tlj add String productid = request.getParameter("productid"); String channel = request.getParameter("channel"); log.setOrderNum(orderNum); log.setProductid(productid); log.setChannel(channel); String resultcode = "0"; String errorinfo = ""; try{ ExperienceProductBean bean = experienceChannelOrderDao.queryproduct(channel, productid); if(bean == null){ throw new BusinessException("9001", "渠道或者产品错误"); } try{ userid = AESUtil.decrypt(userid, bean.getKey()); }catch(Exception e){ throw new BusinessException("9002", "手机号码解密失败"); } log.setUserid(userid); if(!StringUtils.isNumeric(orderNum) && orderNum.equals("")){ throw new BusinessException("9003", "体验时间戳不正确"); } bean.setOrderNum(Integer.parseInt(orderNum)); AbstractExperienceOrder abstractExperienceOrder = (AbstractExperienceOrder) SpringContextUtil.getBean(bean.getProcess()); outmap = abstractExperienceOrder.order(bean,userid,orderNum,effecttime,log); //tlj add (orderTime,) }catch(Exception e){ if (e instanceof BusinessException) { resultcode = ((BusinessException) e).getCode(); errorinfo = ((BusinessException) e).getMessage(); }else{ e.printStackTrace(); resultcode = "8000"; errorinfo = "系统忙,请稍后再试!"; } outmap.put("resultcode", resultcode); outmap.put("errorinfo", errorinfo); } log.setResultcode(outmap.get("resultcode")); log.setErrorinfo(outmap.get("errorinfo")); experienceChannelOrderDao.insertlog(log); return outmap; } public static void main(String[] args) throws UnsupportedEncodingException, BusinessException { //System.out.println(URLEncoder.encode(AESUtil.encrypt("18673197465", "048871ca4c8644er"),"utf-8")); System.out.println(AESUtil.decrypt("98dd0183603937342fa8ff2ccb8c511b", "048888ca4c8644bd")); // URLUtil.post("http://127.0.0.1:8080/videoalliance/experienceChannelOrder.do/order/pay.do", data, 2000); } public String addParam(String url, String key, String value) { if (value == null) return url; if (url.indexOf("?") == -1) { url += "?"; } else { url += "&"; } return url + key + "=" + value; } }