123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package com.chinacreator.videoalliance.order.action;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- 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 com.chinacreator.common.support.util.SpringContextUtil;
- import com.chinacreator.common.util.AESUtil;
- import com.chinacreator.common.util.URLUtil;
- import com.chinacreator.videoalliance.order.bean.SchoolChannel;
- import com.chinacreator.videoalliance.order.bean.SchoolChannelSp;
- import com.chinacreator.videoalliance.order.bean.SchoolOrderLog;
- import com.chinacreator.videoalliance.order.dao.SchoolOrderDao;
- import com.chinacreator.videoalliance.order.process.AbstractOrder;
- import com.chinacreator.videoalliance.order.service.ActivityService;
- import com.google.gson.Gson;
- import com.google.gson.GsonBuilder;
- import com.google.gson.reflect.TypeToken;
- @Controller
- public class SchoolOrderAction {
-
- @Autowired
- SchoolOrderDao schoolOrderDao;
-
- @Autowired
- ActivityService activityService;
- @RequestMapping("/schoolorder.do")
- @ResponseBody
- public Object order(HttpServletRequest request) throws Exception{
- String content = null;
- Map<String,String> resultMap = new HashMap<String,String>();
- SchoolOrderLog orderlog = new SchoolOrderLog();
- Date starttime = new Date();
- orderlog.setStarttime(DateFormatUtils.format(starttime, "yyyyMMddHHmmss"));
- SchoolChannel schoolChannel = null;
- try {
- content = URLUtil.readInputStream(request.getInputStream());
- orderlog.setRequeststr(content);
- Gson gson = new GsonBuilder().disableHtmlEscaping().serializeNulls().create();
- HashMap<String, String> requestmap = gson.fromJson(content, new TypeToken<HashMap<String, String>>(){}.getType());
- String channelcode = requestmap.get("channelcode");
- orderlog.setChannelcode(channelcode);
- String order = requestmap.get("order");
- schoolChannel = schoolOrderDao.querySchoolChannel(channelcode);
- if(schoolChannel!=null){
- String paramStr = AESUtil.decrypt(order, schoolChannel.getAeskey());
- HashMap<String, String> paramMap = gson.fromJson(paramStr, new TypeToken<HashMap<String, String>>(){}.getType());
- String productid = paramMap.get("productid");
- String userid = paramMap.get("userid");
- SchoolChannelSp schoolChannelSp = schoolOrderDao.querySchoolChannelSp(channelcode, productid);
- if(schoolChannelSp==null){
- Date endtime = new Date();
- orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
- orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
- orderlog.setResultcode("1");
- orderlog.setResultinfo("schoolChannelSp==null");
- schoolOrderDao.addSchoolOrderLog(orderlog);
- return "";
- }else{
- AbstractOrder schoolOrder = (AbstractOrder)SpringContextUtil.getBean(schoolChannelSp.getProcess());
- boolean isEffective = false;
- orderlog.setUserid(userid);
- orderlog.setProductid(productid);
- switch (activityService.canJonActivity(userid, channelcode)) {
- case 1://活动未开始或者结束
- resultMap = schoolOrder.order(schoolChannel,schoolChannelSp,userid);
- break;
- case 2://活动期间未领取流量
- resultMap = schoolOrder.order(schoolChannel,schoolChannelSp,userid);
- isEffective = true;
- break;
- case 3://活动期间已领取流量
- resultMap.put("resultcode", "9022");
- resultMap.put("errorinfo", "已参加过活动");
- break;
- case 4:
- resultMap.put("resultcode", "9026");
- resultMap.put("errorinfo", "活动暂未开始");
- break;
- }
- String aeskey = schoolChannel.getAeskey();
- if(isEffective){
- activityService.activityHandle(resultMap, userid, channelcode);
- }
- String resultcode = resultMap.get("resultcode");
- String resultinfo = resultMap.get("errorinfo");
- resultMap.clear();
- resultMap.put("resultcode", resultcode);
- resultMap.put("resultinfo", resultinfo);
- String result = gson.toJson(resultMap);
- result = schoolOrder.encodeAES(result,aeskey);
- orderlog.setResultcode(resultcode);
- orderlog.setResultinfo(resultinfo);
- orderlog.setResponsestr(result);
- Date endtime = new Date();
- orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
- orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
- schoolOrderDao.addSchoolOrderLog(orderlog);
- return result;
- }
- }else{
- Date endtime = new Date();
- orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
- orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
- orderlog.setResultcode("1");
- orderlog.setResultinfo("schoolChannel==null");
- schoolOrderDao.addSchoolOrderLog(orderlog);
- return "";
- }
- } catch (Exception e) {
- Date endtime = new Date();
- orderlog.setEndtime(DateFormatUtils.format(endtime, "yyyyMMddHHmmss"));
- orderlog.setTimes((endtime.getTime()-starttime.getTime())+"");
- e.printStackTrace();
- orderlog.setResultcode("1");
- orderlog.setResultinfo(e.getMessage());
- schoolOrderDao.addSchoolOrderLog(orderlog);
- if(schoolChannel!=null){
- String result = "{'resultcode':'1','resultinfo':'系统忙'}";
- return AESUtil.encrypt(result, schoolChannel.getAeskey());
- }
- }
- return "";
- }
- }
|