/*
* Powered By zhangyunhua
* Web Site: http://www.hehenian.com
* Since 2008 - 2014
*/
package com.hehenian.web.view.activity;
import java.net.URLDecoder;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.hehenian.biz.common.account.dataobject.AccountUserDo;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.SessionAware;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import com.hehenian.biz.common.activity.IActivityAuthService;
import com.hehenian.biz.common.base.result.IResult;
import com.hehenian.biz.common.trade.IParameterLogService;
import com.hehenian.biz.common.trade.dataobject.ParameterLogDo.ParameterType;
import com.hehenian.web.common.contant.WebConstants;
import com.hehenian.web.common.util.CalculateUtils;
import com.hehenian.web.common.util.ServletUtils;
import com.opensymphony.xwork2.ActionSupport;
import com.sp2p.entity.User;
@Scope("prototype")
@Component("activityAuthAction")
public class ActivityAuthAction extends ActionSupport implements ServletRequestAware, SessionAware {
private static final long serialVersionUID = 1L;
@Autowired
private IActivityAuthService activityAuthService;
@Autowired
private IParameterLogService parameterLogService;
private HttpServletRequest request;
private Map<String, Object> session;
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setSession(Map<String, Object> session) {
this.session = session;
}
/**
* 授权转账
*
* @return
* @author: liuzgmf
* @date: 2014年10月13日下午5:06:00
*/
public String transferAuth() {
String ordId = request.getParameter("ordId");
if (StringUtils.isBlank(ordId)) {
request.setAttribute(WebConstants.MESSAGE_KEY, "参数有误!");
return ERROR;
}
AccountUserDo user = (AccountUserDo) session.get(WebConstants.SESSION_USER);
IResult<?> result = activityAuthService.transferAuth(Long.parseLong(ordId), user.getId());
if (result != null && result.isSuccess()) {
String htmlText = (String) result.getModel();
ServletUtils.write(htmlText);
return null;
} else {
request.setAttribute(WebConstants.MESSAGE_KEY, result.getErrorMessage());
return ERROR;
}
}
/**
* 授权转账回调
*
* @return
* @author: liuzgmf
* @date: 2014年10月13日下午5:06:04
*/
public String transferAuthCb() throws Exception {
ServletUtils.logRequestParameters();// 打印参数日志
parameterLogService.addParameterLog(ServletUtils.getRequestParameters(), ParameterType.RESP);
String respCode = request.getParameter("RespCode");
if (!WebConstants.RESP_CODE_SUCCESS.equals(respCode)) {
request.setAttribute(WebConstants.MESSAGE_KEY, URLDecoder.decode(request.getParameter("RespDesc"), "UTF-8")
+ ",请联系客服!");
return ERROR;
}
String usrCustId = request.getParameter("UsrCustId");
String inUsrCustId = request.getParameter("InUsrCustId");
String authAmt = request.getParameter("AuthAmt");
if (StringUtils.isBlank(usrCustId) || StringUtils.isBlank(inUsrCustId) || StringUtils.isBlank(authAmt)) {
request.setAttribute(WebConstants.MESSAGE_KEY, "参数有误!");
return ERROR;
}
if (CalculateUtils.le(Double.parseDouble(authAmt), 0.00)) {
request.setAttribute(WebConstants.MESSAGE_KEY, "授权金额有误!");
return ERROR;
}
IResult<?> result = activityAuthService.transferAuthCb(Long.parseLong(usrCustId), Long.parseLong(inUsrCustId),
Double.parseDouble(authAmt));
if (result != null && result.isSuccess()) {
request.setAttribute(WebConstants.MESSAGE_KEY, "定向转账授权成功!");
return SUCCESS;
} else {
request.setAttribute(WebConstants.MESSAGE_KEY, result.getErrorMessage());
return ERROR;
}
}
}