package com.hehenian.sevlet.activity;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Date;
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.userhome.IUserIncomeService;
import com.hehenian.biz.common.userhome.dataobject.UserIncomeDo;
import com.hehenian.biz.common.util.JsonUtil;
import com.hehenian.biz.common.util.Md5Utils;
import com.hehenian.web.common.util.ServletUtils;
public class ActivityUserIncomeServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 7612853710958773883L;
private Logger logger = Logger.getLogger(this.getClass());
private IUserIncomeService userIncomeService;
private IActivityOrderService activityOrderService;
private ActivityConfig activityConfig;
@Override
public void init(ServletConfig config) throws ServletException {
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 {
userIncomeService = (IUserIncomeService) factory.create(IUserIncomeService.class,
activityConfig.getHehenianServiceURL() + "/userIncomeService");
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 ordSubType = req.getParameter("orderModel");
String sign = req.getParameter("sign");
String reqTime = req.getParameter("reqTime");
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);
return;
}
// md5 校验
StringBuffer signSb = new StringBuffer();
signSb.append("userId").append(userId).append("reqTime").append(reqTime).append("orderModel")
.append(ordSubType);
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);
}
// 查询数据
// UserIncomeDo uDo = userIncomeService.queryUserIncome(userId,
// UserType.COLOR_LIFE.name());
UserIncomeDo uDo = activityOrderService.getAllOrderIncomeByOrderSubType(Long.valueOf(userId), new Date(),
ordSubType);
if (null == uDo) {
status.put("statusCode", "002");
status.put("status", "没有找到");
jsonStr = JsonUtil.toString(status);
} else {
jsonStr = JsonUtil.toString(uDo);
}
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;
}
}