6e04113c0b2801e2facf7af05215639fa6cf7c9a.svn-base 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.chinacreator.videoalliance.order.action;
  2. import com.chinacreator.common.exception.BusinessException;
  3. import com.chinacreator.common.util.DESUtil;
  4. import com.chinacreator.common.util.URLUtil;
  5. import com.chinacreator.videoalliance.order.bean.EmeiBean;
  6. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  7. import com.chinacreator.videoalliance.order.service.ExperienceOrderService;
  8. import com.chinacreator.videoalliance.query.dao.ImeiDao;
  9. import com.google.gson.Gson;
  10. import com.google.gson.GsonBuilder;
  11. import com.google.gson.reflect.TypeToken;
  12. import org.apache.commons.lang.StringUtils;
  13. import org.apache.commons.lang.time.DateFormatUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Controller;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.ResponseBody;
  18. import javax.servlet.http.HttpServletRequest;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.text.ParseException;
  21. import java.util.Calendar;
  22. import java.util.HashMap;
  23. import java.util.Map;
  24. @Controller
  25. public class EmeiOrderAction {
  26. @Autowired
  27. private ImeiDao imeiDao;
  28. @Autowired
  29. private ExperienceOrderService experienceOrderService;
  30. @RequestMapping("/imeiOrder.do")
  31. @ResponseBody
  32. public Object query(HttpServletRequest request,HttpServletResponse response) throws Exception {
  33. Map<String,Object> outmap = new HashMap<String, Object>();
  34. String ordertime = "";
  35. String endtime = "";
  36. String content = null;
  37. String resultcode = "0";
  38. String resultinfo = "";
  39. try{
  40. content = URLUtil.readInputStream(request.getInputStream());
  41. content = DESUtil.decode(content, "7dda13d5");
  42. Gson gson = new GsonBuilder().disableHtmlEscaping().serializeNulls().create();
  43. HashMap<String, String> requestmap = gson.fromJson(content, new TypeToken<HashMap<String, String>>(){}.getType());
  44. String cpid = requestmap.get("cpid");
  45. String spid = requestmap.get("spid");
  46. String imeiNum = requestmap.get("imeiNum");
  47. String userid = requestmap.get("userid");
  48. String orderchannel = requestmap.get("channelcode");
  49. if(StringUtils.isEmpty(cpid)){
  50. throw new BusinessException("8002", "参数[{0}]无效","cpid");
  51. }
  52. if(StringUtils.isEmpty(spid)){
  53. throw new BusinessException("8002", "参数[{0}]无效","spid");
  54. }
  55. if(StringUtils.isEmpty(imeiNum)){
  56. throw new BusinessException("8002", "参数[{0}]无效","imeiNum");
  57. }
  58. if(StringUtils.isEmpty(userid)){
  59. throw new BusinessException("8002", "参数[{0}]无效","userid");
  60. }
  61. EmeiBean bean = imeiDao.queryListBean(imeiNum);
  62. if(bean == null){
  63. throw new BusinessException("8003", "IMEI号[{0}]不存在",imeiNum);
  64. }
  65. if(bean.getStatus().equals("1")){
  66. throw new BusinessException("8003", "IMEI号[{0}]已激活",imeiNum);
  67. }
  68. OrderInfo orderInfo = new OrderInfo();
  69. orderInfo.setCpid(cpid);
  70. orderInfo.setSpid(spid);
  71. orderInfo.setUserid(userid);
  72. orderInfo.setOrderchannel(orderchannel);
  73. orderInfo.setStatus(0);
  74. choseEndTime(orderInfo,Integer.parseInt(bean.getTimeslot()));
  75. experienceOrderService.checkOrder(orderInfo);
  76. experienceOrderService.order(orderInfo);
  77. imeiDao.updateImeiInfo(imeiNum, userid);
  78. ordertime = orderInfo.getOrdertime();
  79. endtime = orderInfo.getEndtime();
  80. }catch(Exception e){
  81. if(e instanceof BusinessException){
  82. resultcode = ((BusinessException) e).getCode();
  83. resultinfo = e.getMessage();
  84. if(((BusinessException) e).getParams().length != 0){
  85. resultinfo = resultinfo.replace("[{0}]",((BusinessException) e).getParams()[0]);
  86. }
  87. }else{
  88. resultcode = "8000";
  89. resultinfo = "系统忙,请稍后再试!";
  90. }
  91. }
  92. outmap.put("resultcode", resultcode);
  93. outmap.put("resultinfo", resultinfo);
  94. outmap.put("ordertime", ordertime);
  95. outmap.put("endtime", endtime);
  96. return outmap;
  97. }
  98. public void choseEndTime(OrderInfo orderInfo,int timestr) throws ParseException{
  99. Calendar calendar = Calendar.getInstance();
  100. calendar.add(Calendar.MONTH,timestr);
  101. calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
  102. calendar.set(Calendar.HOUR_OF_DAY, 23);
  103. calendar.set(Calendar.MINUTE, 59);
  104. calendar.set(Calendar.SECOND, 59);
  105. System.out.println(DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss"));
  106. orderInfo.setEndtime(DateFormatUtils.format(calendar.getTime(), "yyyyMMddHHmmss"));
  107. }
  108. }