123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- 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<String,Object> outmap = new HashMap<String, Object>();
- 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<String, String> requestmap = gson.fromJson(content, new TypeToken<HashMap<String, String>>(){}.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"));
- }
- }
|