【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了TradeFormSaveAction.java相关资料,希望对各位网友有所帮助!
/*
* Created on 2005-7-27
*
*/
package banksystem.action;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.
sql.DataSource;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import banksystem.Constants;
import banksystem.PO.Customer;
import banksystem.PO.Trade;
import banksystem.VO.TradeActionForm;
import banksystem.VO.UserInfoActionForm;
import banksystem.business.BusinessDelegate;
import banksystem.business.SearchGene;
import banksystem.exception.AccountFreezedException;
import banksystem.exception.BalanceNotEnoughException;
import banksystem.exception.TranferAccountNotExistException;
/**
* @author 曲本盛
*
* TODO Struts 项目实践
*/
public class TradeFormSaveAction extends Action {
BusinessDelegate business = null;
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm,
HttpServletRequest request, HttpServletResponse response) throws Exception {
if(this.isCancelled(request)){
//点击取消返回主服务页面
return actionMapping.findForward("main");
}
// TODO Auto-generated method stub
HttpSession session = request.getSession(false);
ActionMessages errors = this.getErrors(request);
if(session==null||session.getAttribute(Constants.KEY_CUSTOMER_INFO)==null){
errors.add("failed",new ActionMessage(Constants.ERRORS_SESSION_INVALID));
this.saveErrors(request,errors);
return actionMapping.findForward("login");
}
//防止多次提交
if(!isTokenValid(request,true)){
this.resetToken(request);
this.saveToken(request);
errors.add("failed",new ActionMessage(Constants.ERRORS_SUBMIT_AGAIN));
this.saveErrors(request,errors);
return actionMapping.getInputForward();
}
this.resetToken(request);
this.saveToken(request);
//从session中提取客户信息
UserInfoActionForm userinfo = (UserInfoActionForm)session.getAttribute(Constants.KEY_CUSTOMER_INFO);
TradeActionForm tradeActionForm = (TradeActionForm)actionForm;
Trade trade = new Trade();
String action = tradeActionForm.getAction();
String tradePass = tradeActionForm.getTradePass();
String accountID = tradeActionForm.getAccountID();
String transferAccountID = tradeActionForm.getTransferAccountID()==null?accountID:tradeActionForm.getTransferAccountID();
Double money = tradeActionForm.getMoney();
String tradeType = null;
if("saving".equals(action)){
tradeType = "1";
}
if("fetch".equals(action)){
tradeType = "0";
}
if("transfer".equals(action)){
tradeType = "2";
}
//如果用户的操作不是存款则检查交易密码
if(!"saving".equals(action)){
if(!tradePass.equals(userinfo.getTradePass())){
errors.add("failed",new ActionMessage(Constants.ERRORS_TRADEPASS_INVALID));
this.saveErrors(request,errors);
return actionMapping.getInputForward();
}
}
trade.setAccountID(accountID);
trade.setMoney(money);
trade.setTransferAccountID(transferAccountID);
trade.setType(tradeType);
business = BusinessDelegate.getInstance();
try{
DataSource dataSource = this.getDataSource(request);
if("logout".equals(action)){
//使用
查询精灵代理生成更新语句,更新数据库.
//这样作可能不符合Struts的规范,要改进.
SearchGene gene = new SearchGene();
gene.setAccountID(accountID);
gene.setAction(action);
business.setAccountStatus(dataSource,gene);
//注销成功返回用户登录界面
errors.add("success",new ActionMessage("message.success.logout"));
this.saveErrors(request,errors);
return actionMapping.findForward("login");
}
else{
business.tradeBusiness(dataSource,trade);
}
//刷新用户信息************************************************
UserInfoActionForm newuserinfo = new UserInfoActionForm();
Customer customer = business.getCustomer(dataSource,accountID);
BeanUtils.copyP