package com.hehenian.sevlet.activity; import java.io.IOException; import java.net.MalformedURLException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.caucho.hessian.client.HessianProxyFactory; import com.hehenian.biz.common.activity.IActivityOrderService; import com.hehenian.biz.common.activity.dataobject.ActivityConfig; import com.hehenian.biz.common.activity.dataobject.ActivityOrderDo; import com.hehenian.biz.common.util.JsonUtil; import com.hehenian.biz.common.util.Md5Utils; import com.hehenian.web.common.util.ServletUtils; public class ActivityOrderServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 4072908254026181354L; private Logger logger = Logger.getLogger(this.getClass()); private IActivityOrderService activityOrderService; private ActivityConfig activityConfig; @Override public void init(ServletConfig config) throws ServletException { super.init(config); super.init(config); ServletContext servletContext = config.getServletContext(); WebApplicationContext webApplicationContext = WebApplicationContextUtils .getWebApplicationContext(servletContext); AutowireCapableBeanFactory autowireCapableBeanFactory = webApplicationContext .getAutowireCapableBeanFactory(); activityConfig = (ActivityConfig) autowireCapableBeanFactory.getBean("activityConfig"); HessianProxyFactory factory = new HessianProxyFactory(); try { activityOrderService = (IActivityOrderService) factory.create(IActivityOrderService.class, activityConfig.getHehenianServiceURL()+"/activityOrderService"); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } /** * 总收益查询接口: 接口参数: userId bigInt 非空 20 彩之云用户账号 * * 返回: userId bigInt 非空 20 彩之云用户账号 totalInvestAmount 保留两位小数Decimal(18,2) 非空 * 累计投资金额 totalInterestAmount 保留两位小数Decimal(18,2) 非空 累计利息 withdrawalAmount * 保留两位小数Decimal(18,2) 非空 可提取金额 * * @return json 字符 * @author: zhangyunhmf * @date: 2014年10月30日下午2:55:31 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userId = req.getParameter("userId"); String orderSN = req.getParameter("orderSN"); String reqTime = req.getParameter("reqTime"); String sign = req.getParameter("sign"); // 参数验证 Map<String,String> status = new HashMap<String,String>(); String jsonStr = ""; int retval = checkUserId(userId); if( 0 == retval){ status.put("statusCode", "001"); status.put("statusDesc", "无效参数"); jsonStr = JsonUtil.toString(status); ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); } if(StringUtils.isBlank(orderSN)){ logger.error("orderSN 无效参数"); status.put("statusCode", "001"); status.put("statusDesc", "无效参数"); jsonStr = JsonUtil.toString(status); ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); } // md5 校验 StringBuffer signSb = new StringBuffer(); signSb.append("userId").append(userId).append("orderSN") .append(orderSN).append("reqTime").append(reqTime); boolean signOk = Md5Utils.checkMD5(sign, activityConfig.getHehenianKey(), signSb.toString()); if (!signOk) { logger.error("md5验证失败"); status.put("statusCode", "002"); status.put("statusDesc", "md5验证失败"); jsonStr = JsonUtil.toString(status); ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); } // 查询数据 ActivityOrderDo activityDo = activityOrderService.queryOrderDetail(userId, orderSN,"0"); if(null == activityDo){ status.put("statusCode", "003"); status.put("status", "没有找到"); jsonStr = JsonUtil.toString(status); }else{ jsonStr = JsonUtil.toString(activityDo); } // 用户ID转换成彩色的ID activityDo.setUserId(Long.valueOf(userId)); ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); } private int checkUserId(String userId) { if (StringUtils.isBlank(userId)) { logger.error("userId 无效参数"); return 0; } try { Long.parseLong(userId); } catch (Exception e) { logger.error("userId 无效参数"); return 0; } return 1; } }