package com.chinacreator.videoalliance.query.action; import java.net.URLEncoder; import java.text.ParseException; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.time.DateFormatUtils; 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 com.chinacreator.common.pipe.DataOutPipe; import com.chinacreator.common.util.DESUtil; import com.chinacreator.common.util.URLUtil; import com.chinacreator.videoalliance.common.annotation.DataOut; import com.chinacreator.videoalliance.order.bean.EcbProductInfo; import com.chinacreator.videoalliance.order.service.EcbService; import com.chinacreator.videoalliance.order.util.JsonUtil; import com.chinacreator.videoalliance.query.bean.EcbProductXmlBean; @Controller public class CsOrderXMLAction { private static Logger log = Logger.getLogger(CsOrderXMLAction.class); @Autowired private EcbService ecbService; @RequestMapping("/orderproductinfoxml.do") @DataOut(callback = "orderproductinfoxml") public DataOutPipe doOrder(HttpServletRequest request, EcbProductXmlBean ecbProductXmlBean, String type) throws Exception { DataOutPipe pipe = new DataOutPipe(); String ecbstr = ""; log.info(JsonUtil.objectToJson(ecbProductXmlBean)); EcbProductInfo info = new EcbProductInfo(); info.setDiscntCode(ecbProductXmlBean.getDiscntCode()); if(!type.equals("2")){ if(StringUtils.isEmpty(ecbProductXmlBean.getDiscntStartDate()) || NumberUtils.toLong(ecbProductXmlBean.getDiscntStartDate()) < NumberUtils.toLong(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"))){ info.setDiscntStartDate(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")); }else{ info.setDiscntStartDate(ecbProductXmlBean.getDiscntStartDate()); } if(StringUtils.isNotEmpty(type) && type.equals("1")){ info.setDiscntEndDate(getLastDay(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss"))); }else{ info.setDiscntEndDate(ecbProductXmlBean.getDiscntEndDate()); } }else{ type = "0"; info.setDiscntStartDate(ecbProductXmlBean.getDiscntStartDate()); info.setDiscntEndDate(DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")); } info.setPackageCode(ecbProductXmlBean.getPackageCode()); info.setProductId(ecbProductXmlBean.getProductId()); String resultecb = ecbService.ecbxml(info, type, ecbProductXmlBean.getUserid(), ecbProductXmlBean.getCpid(), ecbProductXmlBean.getSpid()); log.info("resultecb="+resultecb); EcbProductXmlBean returnEcbProductXmlBean = (EcbProductXmlBean) JsonUtil.jsonToBean(resultecb, EcbProductXmlBean.class); try{ if(!StringUtils.isEmpty(returnEcbProductXmlBean.getTransIdo())){ Map map = new HashMap(); map.put("phoneNo", ecbProductXmlBean.getUserid()); map.put("requestno", returnEcbProductXmlBean.getTransIdo()); map.put("dateTime", DateFormatUtils.format(new Date(), "yyyyMMddHHmmss")); ecbstr = URLUtil.post("http://172.16.2.169:9999/ecb/test", JsonUtil.objectToJson(map)); } }catch(Exception e){ log.error(e.getMessage(),e); } pipe.add("requeststr", returnEcbProductXmlBean.getRequeststr()); pipe.add("responsestr", returnEcbProductXmlBean.getResponsestr()); pipe.add("transido", returnEcbProductXmlBean.getTransIdo()); pipe.add("ecbstr", ecbstr); pipe.add("code", returnEcbProductXmlBean.getCode()); pipe.add("errorInfo", returnEcbProductXmlBean.getErrorInfo()); log.info("pipe=:"+JsonUtil.objectToJson(pipe)); return pipe; } public static String getLastDay(String timeStr) throws ParseException{ Calendar calendar = Calendar.getInstance(); if(!StringUtils.isEmpty(timeStr)){ calendar.setTime(DateUtils.parseDate(timeStr, new String[]{"yyyyMMddHHmmss"})); } calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE)); return DateFormatUtils.format(calendar, "yyyyMMdd")+"235959"; } public static void main(String[] args) throws Exception { String url = "http://114.255.201.228:86/videoif/queryproductinfo.do?"; String userid = DESUtil.encode("18667191697", "chsh5a1d"); userid = URLEncoder.encode(userid, "UTF-8"); String result = URLUtil.get(url + "cpid=changshi&userid=" + userid + "&apptype=2"); System.out.println(result); } }