93c85dd52b83332543f56dab011848c068e6bc21.svn-base 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.chinacreator.videoalliance.order.action;
  2. import java.util.Date;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.apache.commons.lang.time.DateFormatUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import com.chinacreator.common.support.util.SpringContextUtil;
  12. import com.chinacreator.common.util.AESUtil;
  13. import com.chinacreator.common.util.URLUtil;
  14. import com.chinacreator.videoalliance.order.bean.SchoolChannel;
  15. import com.chinacreator.videoalliance.order.bean.SchoolChannelSp;
  16. import com.chinacreator.videoalliance.order.bean.SchoolOrderLog;
  17. import com.chinacreator.videoalliance.order.dao.SchoolOrderDao;
  18. import com.chinacreator.videoalliance.order.process.AbstractOrder;
  19. import com.chinacreator.videoalliance.order.service.ActivityService;
  20. import com.google.gson.Gson;
  21. import com.google.gson.GsonBuilder;
  22. import com.google.gson.reflect.TypeToken;
  23. @Controller
  24. public class SchoolOrderAction {
  25. @Autowired
  26. SchoolOrderDao schoolOrderDao;
  27. @Autowired
  28. ActivityService activityService;
  29. @RequestMapping("/schoolorder.do")
  30. @ResponseBody
  31. public Object order(HttpServletRequest request) throws Exception{
  32. String content = null;
  33. Map<String,String> resultMap = new HashMap<String,String>();
  34. SchoolOrderLog orderlog = new SchoolOrderLog();
  35. Date starttime = new Date();
  36. orderlog.setStarttime(DateFormatUtils.format(starttime, "yyyyMMddHHmmss"));
  37. SchoolChannel schoolChannel = null;
  38. try {
  39. content = URLUtil.readInputStream(request.getInputStream());
  40. orderlog.setRequeststr(content);
  41. Gson gson = new GsonBuilder().disableHtmlEscaping().serializeNulls().create();
  42. HashMap<String, String> requestmap = gson.fromJson(content, new TypeToken<HashMap<String, String>>(){}.getType());
  43. String channelcode = requestmap.get("channelcode");
  44. orderlog.setChannelcode(channelcode);
  45. String order = requestmap.get("order");
  46. schoolChannel = schoolOrderDao.querySchoolChannel(channelcode);
  47. if(schoolChannel!=null){
  48. String paramStr = AESUtil.decrypt(order, schoolChannel.getAeskey());
  49. HashMap<String, String> paramMap = gson.fromJson(paramStr, new TypeToken<HashMap<String, String>>(){}.getType());
  50. String productid = paramMap.get("productid");
  51. String userid = paramMap.get("userid");
  52. SchoolChannelSp schoolChannelSp = schoolOrderDao.querySchoolChannelSp(channelcode, productid);
  53. if(schoolChannelSp==null){
  54. Date endtime = new Date();
  55. orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
  56. orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
  57. orderlog.setResultcode("1");
  58. orderlog.setResultinfo("schoolChannelSp==null");
  59. schoolOrderDao.addSchoolOrderLog(orderlog);
  60. return "";
  61. }else{
  62. AbstractOrder schoolOrder = (AbstractOrder)SpringContextUtil.getBean(schoolChannelSp.getProcess());
  63. boolean isEffective = false;
  64. orderlog.setUserid(userid);
  65. orderlog.setProductid(productid);
  66. switch (activityService.canJonActivity(userid, channelcode)) {
  67. case 1://活动未开始或者结束
  68. resultMap = schoolOrder.order(schoolChannel,schoolChannelSp,userid);
  69. break;
  70. case 2://活动期间未领取流量
  71. resultMap = schoolOrder.order(schoolChannel,schoolChannelSp,userid);
  72. isEffective = true;
  73. break;
  74. case 3://活动期间已领取流量
  75. resultMap.put("resultcode", "9022");
  76. resultMap.put("errorinfo", "已参加过活动");
  77. break;
  78. case 4:
  79. resultMap.put("resultcode", "9026");
  80. resultMap.put("errorinfo", "活动暂未开始");
  81. break;
  82. }
  83. String aeskey = schoolChannel.getAeskey();
  84. if(isEffective){
  85. activityService.activityHandle(resultMap, userid, channelcode);
  86. }
  87. String resultcode = resultMap.get("resultcode");
  88. String resultinfo = resultMap.get("errorinfo");
  89. resultMap.clear();
  90. resultMap.put("resultcode", resultcode);
  91. resultMap.put("resultinfo", resultinfo);
  92. String result = gson.toJson(resultMap);
  93. result = schoolOrder.encodeAES(result,aeskey);
  94. orderlog.setResultcode(resultcode);
  95. orderlog.setResultinfo(resultinfo);
  96. orderlog.setResponsestr(result);
  97. Date endtime = new Date();
  98. orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
  99. orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
  100. schoolOrderDao.addSchoolOrderLog(orderlog);
  101. return result;
  102. }
  103. }else{
  104. Date endtime = new Date();
  105. orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
  106. orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
  107. orderlog.setResultcode("1");
  108. orderlog.setResultinfo("schoolChannel==null");
  109. schoolOrderDao.addSchoolOrderLog(orderlog);
  110. return "";
  111. }
  112. } catch (Exception e) {
  113. Date endtime = new Date();
  114. orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
  115. orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
  116. e.printStackTrace();
  117. orderlog.setResultcode("1");
  118. orderlog.setResultinfo(e.getMessage());
  119. schoolOrderDao.addSchoolOrderLog(orderlog);
  120. if(schoolChannel!=null){
  121. String result = "{'resultcode':'1','resultinfo':'系统忙'}";
  122. return AESUtil.encrypt(result, schoolChannel.getAeskey());
  123. }
  124. }
  125. return "";
  126. }
  127. }