package com.chinacreator.videoalliance.order.action; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.util.DESUtil; import com.chinacreator.common.util.URLUtil; import com.chinacreator.videoalliance.order.bean.EmeiBean; import com.chinacreator.videoalliance.order.bean.OrderInfo; import com.chinacreator.videoalliance.order.service.ExperienceOrderService; import com.chinacreator.videoalliance.query.dao.ImeiDao; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; 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 javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.util.Calendar; import java.util.HashMap; import java.util.Map; @Controller public class EmeiOrderAction { @Autowired private ImeiDao imeiDao; @Autowired private ExperienceOrderService experienceOrderService; @RequestMapping("/imeiOrder.do") @ResponseBody public Object query(HttpServletRequest request,HttpServletResponse response) throws Exception { Map outmap = new HashMap(); String ordertime = ""; String endtime = ""; String content = null; String resultcode = "0"; String resultinfo = ""; try{ content = URLUtil.readInputStream(request.getInputStream()); content = DESUtil.decode(content, "7dda13d5"); Gson gson = new GsonBuilder().disableHtmlEscaping().serializeNulls().create(); HashMap requestmap = gson.fromJson(content, new TypeToken>(){}.getType()); String cpid = requestmap.get("cpid"); String spid = requestmap.get("spid"); String imeiNum = requestmap.get("imeiNum"); String userid = requestmap.get("userid"); String orderchannel = requestmap.get("channelcode"); if(StringUtils.isEmpty(cpid)){ throw new BusinessException("8002", "参数[{0}]无效","cpid"); } if(StringUtils.isEmpty(spid)){ throw new BusinessException("8002", "参数[{0}]无效","spid"); } if(StringUtils.isEmpty(imeiNum)){ throw new BusinessException("8002", "参数[{0}]无效","imeiNum"); } if(StringUtils.isEmpty(userid)){ throw new BusinessException("8002", "参数[{0}]无效","userid"); } EmeiBean bean = imeiDao.queryListBean(imeiNum); if(bean == null){ throw new BusinessException("8003", "IMEI号[{0}]不存在",imeiNum); } if(bean.getStatus().equals("1")){ throw new BusinessException("8003", "IMEI号[{0}]已激活",imeiNum); } OrderInfo orderInfo = new OrderInfo(); orderInfo.setCpid(cpid); orderInfo.setSpid(spid); orderInfo.setUserid(userid); orderInfo.setOrderchannel(orderchannel); orderInfo.setStatus(0); choseEndTime(orderInfo,Integer.parseInt(bean.getTimeslot())); experienceOrderService.checkOrder(orderInfo); experienceOrderService.order(orderInfo); imeiDao.updateImeiInfo(imeiNum, userid); ordertime = orderInfo.getOrdertime(); endtime = orderInfo.getEndtime(); }catch(Exception e){ if(e instanceof BusinessException){ resultcode = ((BusinessException) e).getCode(); resultinfo = e.getMessage(); if(((BusinessException) e).getParams().length != 0){ resultinfo = resultinfo.replace("[{0}]",((BusinessException) e).getParams()[0]); } }else{ resultcode = "8000"; resultinfo = "系统忙,请稍后再试!"; } } outmap.put("resultcode", resultcode); outmap.put("resultinfo", resultinfo); outmap.put("ordertime", ordertime); outmap.put("endtime", endtime); return outmap; } public void choseEndTime(OrderInfo orderInfo,int timestr) throws ParseException{ Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MONTH,timestr); calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE)); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); System.out.println(DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss")); orderInfo.setEndtime(DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss")); } }