package web.actions;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import dao.impl.BankDaoImpl;
import biz.CardBiz;
import biz.TransBiz;
import web.forms.TransForm;
import entity.Bank;
import entity.CardInfo;
import entity.TransInfo;
public class TransAction extends DispatchAction
{
private TransBiz transbiz;
private CardBiz cardbiz;
public void setCardbiz(CardBiz cardbiz) {
this.cardbiz = cardbiz;
}
public void setTransbiz(TransBiz transbiz) {
this.transbiz = transbiz;
}
/**
* 查询交易记录
*/
public ActionForward searchTransInfo(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
String cardId=request.getParameter("cardID");
TransForm transForm=(TransForm)form;
int startY=Integer.parseInt(transForm.getStartY());
int startM=Integer.parseInt(transForm.getStartM());
int startD=Integer.parseInt(transForm.getStartD());
int endY=Integer.parseInt(transForm.getEndY());
int endM=Integer.parseInt(transForm.getEndM());
int endD=Integer.parseInt(transForm.getEndD());
Date startDate;
Date endDate;
if(startY==0 && startM==0 && startD==0 && endY==0 && endM==0 && endD==0)
{
startDate=null;
endDate=null;
}
else
{
startDate=new Date(startY-1900,startM-1,startD);
endDate=new Date(endY-1900,endM-1,endD,23,59,59);
}
int pageSize=10;//每页要显示的记录数
if(cardId!=null && ""!=cardId)
{
int page=transbiz.doGetTotalCount(cardId, pageSize, request);//总页数
int p=1;//第一次进入页面
if(request.getParameter("p")!=null)
{
p=Integer.parseInt(request.getParameter("p"));
}
int nextPage=p+1;//下一页
if(nextPage>page)
{
nextPage=page;
}
int backPage=p-1;//上一页
if(backPage<1)
{
backPage=1;
}
List<TransInfo> listTrans=transbiz.doSearchTransInfo(cardId,startDate,endDate,p,pageSize,request);
if(listTrans!=null && listTrans.size()!=0)
{
request.setAttribute("p", p);//当前页数
request.setAttribute("page", page);//总页数
request.setAttribute("backPage", backPage);//上一页
request.setAttribute("nextPage", nextPage);//下一页
request.setAttribute("startDate", startDate);
request.setAttribute("endDate", endDate);
request.setAttribute("listTrans", listTrans);
return mapping.findForward("toTransInfo");//显示历史交易记录
}
}
return mapping.findForward("error");//业务操作异常,跳转到异常页面
}
/**
* 进行交易
*/
public ActionForward operateMoney(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
try
{
if(request.getSession().getAttribute("userCard")==null)
{
return mapping.getInputForward();
}
//获取操作类型
String btnValue=request.getParameter("btn");
//获取内容
TransForm transForm=(TransForm)form;
//交易金额
Double money=transForm.getTrans().getTransMoney();
//获取当前用户的卡号
CardInfo card=(CardInfo) request.getSession().getAttribute("userCard");
String cardID=card.getCardId();
//当前日期
//SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//String transDate=f.format(new Date());
Date transDate=new Date();
//交易说明
String remark="";
//交易类型
String transType="";
//操作结果信息
String opeMsg="";
//获取最新的当前用户的信息
CardInfo currentCard=cardbiz.doSearchInfo(cardID, request);
//转账的目标账户
String toCardID="";
CardInfo cardToInfo=new CardInfo();
/*=============随机获取银行===============*/
Bank bank=new Bank();
List<Bank> listBank=new BankDaoImpl().doSearchAllBank();
Random random=new Random();
int a=random.nextInt(listBank.size());
System.out.print(a);
if(listBank!=null && listBank.size()!=0)
{
for(int i=0;i<a;i++)
{
bank=listBank.get(a-1);
break;
}
}
System.out.print(bank.getBankName());
System.out.print(bank.getBankId());
//判断交易类型
if(btnValue.equals("存款"))
{
remark="现金存入";
transType="存款";
currentCard.setBalance(currentCard.getBalance()+money);
opeMsg="操作成功!您已经成功存入"+money+"元!";
}
else if(btnValue.equals("取款"))
{
if(!(money.intValue()%50==0 || money.intValue()%100==0))
{
opeMsg="对不起,本行只提供面值50元和100元金额!";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToFetch");
}
//账户余额已空
if(currentCard.getBalance()==0)
{
opeMsg="尊敬的客户您好,您的账户已空,为了保证您的账号正常流通,请及时到本行或当地支行进行存款业务,谢谢~";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToFetch");
}
//账户余额不足
if(currentCard.getBalance()<money)
{
opeMsg="对不起,您的余额不足!";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToFetch");
}
remark="领取现金";
transType="取款";
currentCard.setBalance(currentCard.getBalance()-money);
opeMsg="您已成功取出"+money+"元!";
}
else if(btnValue.equals("转账"))
{
toCardID=request.getParameter("trans.cardToInfo.cardId");
//判断是否和当前账户相同
if(toCardID.equals(cardID))
{
opeMsg="您不能对自己进行转账!";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToTrans");
}
//查询目标账户的信息
cardToInfo=cardbiz.doSearchInfo(toCardID, request);
if(cardToInfo==null || cardToInfo.getCardState().equals("注销"))
{
opeMsg="目标帐户不存在";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToTrans");
}
else if(cardToInfo.getCardState().equals("冻结"))
{
opeMsg="目标帐户已冻结";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToTrans");
}
//账户余额不足
if(currentCard.getBalance()<money)
{
opeMsg="对不起,您的余额不足!";
request.setAttribute("opeMsg", opeMsg);
return mapping.findForward("failToTrans");
}
remark="存折转账";
transType="转出";
//当前用户账户金额 减少 交易金额
currentCard.setBalance(currentCard.getBalance()-money);
//目标账户金额 增加 交易金额
cardToInfo.setBalance(cardToInfo.getBalance()+money);
opeMsg="您已成功转出"+money+"元!";
}
//封装交易信息
TransInfo transInfo=new TransInfo(transDate,transType,money,remark,currentCard,null,bank,currentCard.getBalance().toString());
/*=======================调用业务开始交易============================*/
//操作交易成功
//更改当前用户的账户信息
if(cardbiz.doUpdate(currentCard, request))
{
//记录当前用户的交易信息
if(transbiz.doAddTransInfoB(transInfo,request))
{
//如果是转账
if(btnValue.equals("转账"))
{
//目标账户的交易信息
transInfo.setCardToInfo(cardToInfo);
transType="转入";
TransInfo trans=new TransInfo(transDate,transType,money,remark,cardToInfo,null,currentCard,bank,cardToInfo.getBalance().toString());
//更改目标账户的账户信息
if(cardbiz.doUpdate(cardToInfo, request))
{
//向目标账户插入信息
transbiz.doAddTransInfoB(trans, request);
}
}
//查询最新的用户信息
CardInfo cardEnd=cardbiz.doSearchInfo(cardID, request);
没有合适的资源?快使用搜索试试~ 我知道了~
SSH框架银行系统(sql 数据库)
共138个文件
class:29个
java:26个
jar:25个
5星 · 超过95%的资源 需积分: 14 166 下载量 24 浏览量
2010-01-09
13:02:42
上传
评论 2
收藏 9.72MB RAR 举报
温馨提示
实现存款,取款,转帐等功能....Java Struts+Spring+Hibernate 三大框架 sql数据库
资源推荐
资源详情
资源评论
收起资源包目录
SSH框架银行系统(sql 数据库) (138个子文件)
TransAction.class 8KB
UserAction.class 5KB
TransInfo.class 4KB
CardInfo.class 3KB
CardBizImpl.class 3KB
UserInfo.class 2KB
HibernateSessionFactory.class 2KB
TransBizImpl.class 2KB
TransDaoImpl$2.class 2KB
Bank.class 2KB
TransDaoImpl.class 2KB
HibernateBaseDao.class 2KB
BankDaoImpl.class 2KB
TokenAction.class 2KB
TransForm.class 2KB
CardDaoImpl$1.class 2KB
TransDaoImpl$1.class 1KB
UserForm.class 1KB
CardDaoImpl.class 1KB
BankBizImpl.class 1KB
ProcessorFilter.class 1019B
TransBiz.class 572B
CardBiz.class 503B
TransDao.class 471B
UserDaoImpl.class 295B
CardDao.class 283B
BankBiz.class 277B
BankDao.class 251B
UserDao.class 99B
.classpath 2KB
styles.css 3KB
Thumbs.db 5KB
top.gif 35KB
foot.gif 11KB
spring.jar 2.45MB
hibernate3.jar 2.1MB
aspectjweaver.jar 1.81MB
struts.jar 537KB
dwr.jar 478KB
antlr-2.7.6.jar 433KB
log4j-1.2.11.jar 342KB
dom4j-1.6.1.jar 307KB
cglib-2.1.3.jar 276KB
sqljdbc.jar 247KB
ehcache-1.2.3.jar 203KB
commons-beanutils.jar 184KB
commons-collections-2.1.1.jar 171KB
commons-digester.jar 164KB
junit-4.2.jar 125KB
aspectjrt.jar 112KB
commons-dbcp.jar 105KB
commons-validator.jar 82KB
jakarta-oro-2.0.8.jar 64KB
commons-pool.jar 61KB
commons-logging-1.0.4.jar 37KB
commons-fileupload.jar 31KB
asm.jar 26KB
asm-attrs.jar 16KB
jta.jar 9KB
TransAction.java 8KB
UserAction.java 5KB
TransInfo.java 4KB
HibernateSessionFactory.java 3KB
CardInfo.java 3KB
CardBizImpl.java 2KB
TransDaoImpl.java 2KB
UserInfo.java 2KB
TransForm.java 2KB
HibernateBaseDao.java 2KB
TransBizImpl.java 2KB
CardDaoImpl.java 2KB
Bank.java 1KB
UserForm.java 1KB
BankDaoImpl.java 1KB
TokenAction.java 917B
CardBiz.java 868B
ProcessorFilter.java 694B
TransBiz.java 669B
BankBizImpl.java 651B
TransDao.java 609B
CardDao.java 534B
BankDao.java 357B
BankBiz.java 274B
UserDaoImpl.java 157B
UserDao.java 141B
login.js 2KB
transfer.js 2KB
changePwd.js 1KB
fetch.js 847B
saving.js 705B
date.js 2B
login.jsp 4KB
search.jsp 4KB
showTrans.jsp 4KB
transfer.jsp 3KB
changePwd.jsp 3KB
main.jsp 2KB
image.jsp 2KB
info.jsp 2KB
fetch.jsp 2KB
共 138 条
- 1
- 2
阿宸
- 粉丝: 3
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HM2305B-VB一款P-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于52单片机、ADC0832、LCD1602、两个74HC393和一个74HC08的频率测量计 不能用,请私我
- HM2302-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- python实战项目-学生成绩管理系统(基础版)
- 微信小程序源码 实现查公交 滴滴公交 app 源码下载
- HM2302E-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
- 基于C#图片相似度比较,感知哈希算法
- VR开发的概要介绍与分析
- 自动驾驶定位系列教程七:点云畸变补偿.pdf
- HM2302D-VB一款N-Channel沟道SOT23的MOSFET晶体管参数介绍与应用说明
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页