第一篇:在银行柜台和ATM取款机取款时有哪些注意事项
安徽银行招聘网:http://ah.jinrongren.net/
在银行柜台和ATM取款机取款时有哪些注意事项
不要轻易的给来历不明的人转账汇款
您要注意保管好存折、卡等凭证及密码,不要将密码告诉别人,也不要轻易相信陌生电话和短信,不要轻易给来历不明的人转账。如有疑问请拨打邮储银行客户服务电话:95580。
在银行柜台和ATM取款机取款时有哪些注意事项? 您在银行柜台取款等待时应与取款人保持一定距离或听从大堂经理的安排,在取款时请注意保护好您的密码。在ATM取款机无法使用时,要与银行的自助电话联系,一般电话号码是9开头的五位,不会是手机或座机号码。
遗忘借记卡密码怎么办? 客户遗忘密码后,可在我行办理密码挂失业务,办理业务时您需提供账户对应的实名证件,有代理人经办的还需提供代理人实名证件。正式挂失有效期为七天,七天后需您本人持有效实名证件到原挂失受理网点进行密码重置。
存折、卡等银行凭证遗失了怎么办? 如您遗失了存单、存折等凭证,您可以向我行提出挂失申请,我行根据您的挂失请求,在一定时间内对您的账户进行止付处理,确保您的资金安全。对于紧急情况不便于第一时间到邮储银行网点申请挂失的,您可通过我行95580电话银行进行账户临时挂失,临时挂失有效期为5天,5天后您必须到邮储银行网点办理正式挂失,确保您的资金安全。
如果您的存折或卡消磁该如何处理? 您可凭账户对应的有效实名证件,到邮储银行网点办理补写磁业务或更换存折、卡业务。按扯汇款取款通知单丢失该怎么办? 如您不慎将取款通知单丢失,应在我行办理挂失手续。取款通知单挂失满7天后,我行将重新为您补发新的“中国邮政储蓄银行汇兑取款通知单”并可用新的取款通知单在任意联网网点办理取款手续。
办理汇款后如果发现收款人地址写错该怎么办? 您办理汇款后,如发现收款人姓名或地址写错, 可凭汇款收据和有效身份证件在我行申请办理改汇业务,更改收款人姓名或收款人地址。改汇按规定收取一定金额的手续费。
密码汇款遗忘取款密码该如何处理? 如果您遗忘了取款密码,凭汇款收据和本人有效身份证件在原收汇网点办理密码挂失。待密码挂失7天后办理密码重置,密码重置必须本人办理。
第二篇:银行ATM自动取款机需求分析报告
“银行ATM机自动取款系统”需求分析报告
一、引言 1.1 整体描述
本系统的名称为“银行ATM机自动取款系统”。系统的功能主要有:能够读取和存储客户的存款和取款信息,方便客户自由交易;在客户选定交易类型后,直接与客户进行现金交易,方便快捷。将客户最新的存取信息上传到银行的总存储系统,并自动更新系统中的客户信息,方便银行系统管理员对客户信息的管理。
1.2 各个事件流
1.取款
客户将银行卡插到卡槽中后,进入个人账户登录界面,客户输入密码后,点击“确认”,进入个人账户界面,点击“取款”,进入取款界面,选择取款金额,点击选中的数字按钮,进入等待界面,取出取款口的现金后,进入“是否打印凭条”界面,点击“是”,凭条从凭条口吐出,取出后,点击“退出”,取出银行卡;在进入“是否打印凭条”界面,点击“否”,直接进入退出界面,点击“退出”,取出银行卡。
2.账户与信息查询
银行系统管理员进入系统后,点击“查询客户账户信息”按钮;客户登录个人账号,将银行卡插到卡槽中后,进入登录界面,输入密码后,点击“确认”,进入个人账户界面,点击“查询”按钮。3.口令管理
客户将银行卡插入ATM机卡槽中,进入个人账户登录界面,输入密码,点击“确认”,进入个人账户界面,点击“修改密码”按钮,在口令修改页面输入新的密码,点击“确认”。
二、需求概述
2.1 市场需求
由于的各方面发展速度的大幅提高,几乎所有的银行都配备了不用繁琐的人工操作的ATM自动取款机。人们可以随时随地进行交易,不再受银行的服务时间的约束,取款时也为人们节省了很多时间,方便快捷。对于配有ATM自动取款机的银行,客户较多,系统需操作方便,信息读取与存储及时快速,方便客户进行自由交易和系统管理员对信息的管理。
2.2功能需求 本系统相应的需求有以下方面:
(1)能够读取和存储客户账户中的存取款信息,并方便有效地进行客户选择的交易操作。这主要包括以下内容:
① 自动调用银行总系统中客户原有信息
② 信息录入与修改。输入并保存客户的信息,每个客户是一条记录。
a 编号
b 客户姓名 c.支取密码 d.客户地址 e.客户电话 f.账户总金额;
③在存取款文件中,每次存取款是一条记录。
a.编号 b.日期 c.类别 d.存取数目 e.经办人。④类别
a定期1年存款 b.活期存款 c.取款
⑤并提供信息修改、删除的功能。
⑥存取款模拟:根据存取款信息生成存款与取款单,并修改客户的账户总金额。⑦查询与统计:根据客户信息查询指定时间段的资金明细、根据日期查存取款信息、统计某年的存取款信息。
(2)提供客户信息访问的权限和管理。其中包括: ①
客户访问普通信息的权限
② 银行系统管理员对客户信息的录入、更改和删除
本例中,我们通过一定的调研和分析得到“银行ATM机自动取款系统”的用例图,如下图所示:
2.3 安全性需求
由于银行ATM机自动取款系统的客户量很大,所以在对客户账户信息的导入和交易操作要保证速度。在客户进行交易操作的过程中又要保证事务的完整性。在整个系统中,需要完整的权限控制,以防止某些人恶意地攻击系统,修改系统中的原始记录。同时对于数据库中的数据需要定时备份,防止系统数据丢失。此外,系统要求用户在登录时需要密码验证。
三、故障处理
在正常情况下,应该不出现错误,一旦发生意外,比如:不识别银行卡、输入取款金额后现金吐不出来、取款后ATM自动取款机为将信息上传到总系统中等等,也应保证客户账户信息不受损坏。
第三篇:看着银行ATM自助取款机的屏幕上
错把自己的钱存到别人卡里怎么办
看着银行ATM自助取款机的屏幕上,显示着有一笔5000元的现金入账。租住在金花路某小区的冯国光长长地舒了一口气,这件事总算解决了,7个月来,我也终于可以睡个踏实觉了。他高兴地说:
这件事还要从今年5月份的一天说起:那天下午冯国光来到某银行金花路支行的柜台前,准备将自己打工存下的5000元现金存起来。存钱的过程很顺利,冯国光从包里掏出一张银行储蓄卡和现金一起递给柜台工作人员。可是等银行工作人员拿出存款凭单,让冯国光签字确认的时候他发现了个大问题,凭条上显示的账户名称,不是我的名字,而是一个叫刘强的人。冯国光说当时他一下子就懵了。因为这个刘强他根本就不认识他,咋把钱存到了别人的卡上?在银行工作人员的询问下,冯国光才慢慢回忆起来这张银行卡是他从自己租住屋的床底下捡来的。因为他也有一张这个银行的借记卡所以还以为是自己不小心掉到床底下去的就直接把卡放到了自己的钱包里。
冯国光这下总算明白了自己把钱存到了别人卡上我该怎么办?冯国光顿时手足无措,只能一再要求银行的工作人员将这笔钱转存到自己卡上,银行工作人员了解到误存的事情经过后,表示按规定必须输入正确的密码才能取钱,或者找到银行卡的户主来取这笔钱,否则存入他人卡上的款项银行也无权处置
我不知道密码,最后只能先申请银行把这笔业务冻结之后,冯国光多次找这家银行和刘强,希望能把钱追回来,可一直没有解决,钱也不知所踪。无奈之下冯国光只好将这家银行和刘强起诉至新城区法院要求银行和刘强返还这笔存款。法院审理认为冯国光误持刘强的储蓄卡办理存款,属于民事法律行为中的重大误解,冯国光要求返还这笔存款符合法律规定,最终法院判决由刘强向冯国强返还5000元现金,银行协助办理。这就发生了文中开头的那一幕。
新城区法院民事审判庭王法官提醒说,市民在捡到别人丢失或者废弃的银行卡时,应该及时交到发卡银行尤其要注意在存款的过程中应仔细核对账号名称,账号数字以及存入金额等信息,避免此类事件的发生。他说如果误将钱款存入他人账户要注意收集相关证据。如打印交易凭条,同时向银行反映情况并申请财产保全保证钱款安全。
中国农业银行一位姓席的工作人员表示,万一在银行柜台或者通过ATM机存款和转账时发生失误,将钱存到他人账户时,市民应该在第一时间告知银行,可以找银行的工作人员协助处理,也可以拨打银行客服电话寻求帮助,同时必须向公安机关报案,由警方处理。如果对方拒不还款就必须通过司法程序解决,同时他提醒说持卡人可以在银行卡背面的签名栏里签上自己的名字,这样既可以提醒并避免拿错卡,另一方面也方便银行工作人员进行核对。
第四篇:银行ATM防护舱十点安装注意事项
银行ATM防护舱十点安装注意事项
银行安保工作是银行的命脉,是银行一切工作的基础,ATM机的安装操作安全性也越来越受重视。银行ATM机的便捷在于24小时可以自主操作应用,春夏秋冬四季天气皆宜。那么在安装ATM银亭防护舱、银行atm机防护罩时,我们应该注意哪些安全问题呢?青岛红福麟自动化科技有限公司邀请专家向您浅析如下:
1、防护舱安装时的定位要避开银行的走线,以免开洞时打断线缆。定位时,要保证防护舱到ATM机边框有13cm距离安装IP对讲;
2、Atm银亭内恒流源与开关电源间隔要在15cm以上,副控距离恒流源10cm以上,人体感应电路板(超声波控制板或红外对射控制板)距离恒流源20cm以上为宜;
3、电路板固定方式以悬挂为主,以免芯片焊脚与钣金接触;
4、各模块之间的接线不能过长,以最短距离+3cm为宜。如:开关电源12V到副控的直线距离为15cm,电源线长度以18cm为宜;
5、强电、弱电分两边走线。12V的线、紧急按钮和电磁铁、摄像头线等用扎带结扎好以后,固定在一侧,网线也从这一侧走。220V线,如:灯箱电源线、恒流源电源线,要从另一侧走线;
6、自助银亭控制器接应急开关的一头必须是正极,如果是负极,容易引起副控死机;
7、防护舱安装完成后,除非银行相关负责人要求不要上电,否则,要保证防护舱处于通电的正常工作状态;
8、漏电保护器进线在银亭内部的安装。要先用电笔测出接电插座的火线、零线以及地线,记住三芯线颜色所对应的电极。三芯电线进漏电保护器时,火线接漏电保护器进线处L,零线接N;
9、插头及网线端必须要贴上公司标签,以区分银行不同运行线路;
10、亭内走线用PVC管套住。防护罩内凡能走暗线、走吊顶内的、走静电地板下的就不能走明线
ATM机防护舱既给取款人提供了安全可靠的独立空间、充分保护取款人的隐私、防止不法之徒对取款人的窥视、防范不良意图,降低自助银行犯罪事件发生。性能优良的银亭ATM防护设备,既有利于银行业务的稳健运行,同时提高了其在市民心中的整体形象。
第五篇:银行账户结算管理系统毕业设计——柜台操作和ATM服务论文
目 录
第一章 引言.........................................1
1.1 课题的背景及意义.........................................................................................1 1.2 完成的内容与设计结果.................................................................................2
1.2.1 设计目标..............................................................................................2 1.2.2 设计内容..............................................................................................2 1.3 实施步骤.........................................................................................................3
第二章 相关技术介绍.................................5
2.1开发模式:B/S模式.........................................................................................5 2.2 Spring MVC.....................................................................................................5 2.3 Bootstrap.......................................................................................................6 2.4 Jquery.............................................................................................................6
第三章 概要设计.....................................8
3.1 系统结构.........................................................................................................8 3.2 系统主要功能.................................................................................................8
第四章 数据库设计..................................10
4.1 系统类图.......................................................................................................10 4.2 系统E-R图...................................................................................................11 4.3系统数据库设计............................................................................................11
第五章 详细设计....................................13
5.1 系统用例图...................................................................................................13 5.2 柜台操作模块...............................................................................................13
5.2.1柜台操作模块功能介绍.....................................................................13
5.2.2柜台操作模块用例图.........................................................................14 5.2.3柜台操作模块时序图.........................................................................15 5.3 ATM服务模块................................................................................................22
5.3.1 ATM服务模块功能介绍.....................................................................22 5.3.2 ATM服务模块用例图.........................................................................23 5.3.3 ATM服务模块时序图.........................................................................24
第六章 程序实现....................................29
6.1 柜台操作模块截图.......................................................................................29 6.2 ATM服务模块截图........................................................................................32 6.3 重点代码.......................................................................................................33
第七章 总结........................................42
第一章 引言
1.1 课题的背景及意义
自1580年第一家银行在意大利威尼斯诞生至今,随着商品交换、货币流通的迅速扩大,以及国际贸易的迅速发展,银行业获得了空前飞速的发展,其地位、作用日益加强,银行的工作效率和货币流通能力更是成为整个经济发展速度的决定性因素之一。而随着电子信息技术的崛起,银行的业务处理能力与日俱增,作为银行支付结算工作的前提和基础,银行结算账户的管理成为了银行管理流程中的至关重要的部分。
银行结算账户是指存款人在经办银行开立的办理资金收付结算的人民币活期存款账户,是集中反映整个社会经济活动中资金流动的基础。银行结算账户管理需经过国务院行政许可授权,是各大银行支付结算管理工作中的一向重要内容,有效的银行结算账户管理可以为经济、金融秩序运行提供强有力的基础支持,营造公平竞争、合规有序的良好氛围,对于促进我国金融业健康、平稳发展有着重要意义。
银行账户管理制度的确立,账户管理系统的设计直接影响着银行在结算管理中的效率,有效的账户管理工作就相当与一面“防火墙”,可以从源头上控制非法金融活动,稳定金融秩序,同时在反洗钱,反贪污中也能发挥关键性作用。以法律形式明确规定存款人在账户开立、使用中应承担的责任、义务,赋予人民银行和商业银行相应的限制权利和措施,提高行政执法效率,进一步规范结算账户的开立和使用,对于完善我国的账户管理制度,提高对账户的管理效率,促进人民银行履行职能具有重要的意义。
由于受到计算机技术的限制,我国银行电子化起步较晚,各方面技术也不太完善。以中国人民银行为例,其银行账户管理系统先后经历了单机版、集中式处理、双层的C/S模式,最终发展到多层的B/S模式。B/S模式也是现今主流的管理系统开发模式。
2004年6月至2005年2月,中国人民银行首次采用面向对象的方法组织开发了全国
统一人民币结算账户管理系统(简称:结算账户管理系统)软件,2005年6月此系统推广到全国,实现了结算账户的全国统一管理。系统投入使用后,能够在全国范围内严格控制核准类账户的开立,监控存款人在全国开立的所有结算账户。结算账户管理系统成为人民银行实施结算账户管理、金融监控业务的一个重要支撑系统,同时也为发现金融犯罪提供了决策依据。
相比中国,美国的银行电子化比中国早了十几年,而同在亚洲的日本银行的电子化管理也早于中国。当今世界,银行账户系统的网络化成了一个流行趋势,所有的信息处理都要求极高的效率,同时还要有极高的安全性,B/S模式在系统开发中越来越重要,而如何实时高效地处理成千上万的数据对系统设计的要求也愈来愈高。
1.2 完成的内容与设计结果
1.2.1 设计目标
本次设计的主要目标是透过银行账户结算管理系统的设计,重点分析银行账户的结算和管理两个过程,对各个业务流程有更好的了解,如:
1、模拟开户时用户提交信息与后台模块的信息数据库中的信息进行比对,来确定是否授予开户准许,通过这一过程来分析了解银行账户开户的审核过程。
2、了解银行计息方式,账户分类,账户的业务状态等来模拟银行账户管理中的不同的业务流程。如银行常用的账户状态处于激活,挂失,销户等不同状态下所对应的操作;不同的存款方式可使用不同的计息方式等。
3、模拟账户管理中操作权限的管理,从而分析银行在账户数据操作中的安全保障措施。
1.2.2 设计内容
该系统主要完成ATM服务模块和柜台操作模块的功能。
1、ATM服务模块功能有:
(1)存款(2)取款(3)查询余额
(4)转账(本地/异地/本行/跨行)(5)修改密码
2、柜台操作模块功能有:(1)开户(2)存款
(3)取款
(4)转账(本地/异地/本行/跨行)(5)挂失(6)销户
(7)用户信息查询(8)修改账户信息
1.3 实施步骤
银行账户结算管理系统,先后经历系统调研、需求分析、系统设计、编码、系统调试、系统再修改等阶段。
1、查阅文献资料,进行系统调研
完成前期需求分析工作,初步确定系统详细开发周期。
2、系统设计
针对前期确定的需求分析得出一个可行的设计方案。概要系统所需的界面和数据表,大致确定系统框架结构与各功能模块的分工。
3、编码
根据系统设计确定的方案编码,具体实现系统。主要是实现系统的框架结构设计、界面布局设计、功能模块设计。
4、对系统的设计进行更完善的修改,并对系统进行分析和可行性实验,在短时间内建立系统应用原型。
主要是大致完成柜台操作模块和ATM服务模块两大功能模块的具体功能。
5、系统调试。
调试系统各模块的功能与健壮性。
6、系统再修改。
根据系统调试出现的问题修改系统,改进相关编码和设计。
第二章 相关技术介绍
2.1开发模式:B/S模式
B/S模式管理信息系统基本上克服了C/S 模式管理信息系统的不足,其主要表现在: 系统开发、维护和升级的经济性,对于大型的管理信息系统,软件开发、维护与升级的费用是非常高的,B/S模式所具有的框架结构可以大大节省这些费用,同时,B/S模式对前台客户机的要求并不高,可以避免盲目进行硬件升级造成的巨大浪费。B/S模式提供了一致的用户界面,B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。B/S模式具有很强的开放性,在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。B/S模式的结构易于扩展,由于Web的平台无关性,BS模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。B/S模式具有更强的信息系统集成性,在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
2.2 Spring MVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和POI。Spring MVC 框架并不知道使用的
视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(模块,业务)分开构成了MVC,这边不去讨论项目中是否应用MVC,也不针对MVC的实现原理进行讲解,而是探讨实践中如何从应用SSH, 到Spring MVC + Spring+Hibernate的演化过程。
2.3 Bootstrap Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。Bootstrap是基于jQuery框架开发的,它在jQuery框架的基础上进行了更为个性化和人性化的完善,形成一套自己独有的网站风格,并兼容大部分jQuery插件。Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。其中包括以下组件:下拉菜单、按钮组、按钮下拉菜单、导航、导航条、面包屑、分页、排版、缩略图、警告对话框、进度条、媒体对象等。
2.4 Jquery Jquery是继prototype之后又一个优秀的Javascript框架。它是轻量级的js库,它兼容CSS3,还兼容各种浏览器。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的
javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签。
Uploadify是一款优秀jQuery插件,主要功能是批量上传文件,此插件在项目中已被广泛使用。
第三章 概要设计
3.1 系统结构
银行账户结算管理系统的分为ATM服务模块,柜台操作模块和后台管理模块。我主要完成的是ATM服务模块和柜台操作模块功能的实现。系统结构如图3.1所示
图3.1系统结构图 Fig 3.1 System Structure
3.2 系统主要功能
银行账户结算管理系统的分为ATM服务模块和柜台操作模块。其中,有三个角色,分别是:用户、操作员、管理员。具体功能设计如下:
1、柜台操作模块主要功能要求
(1)开户:用户可以向操作员申请开户,申请成功后经管理员批准则开户成功。(2)存款:用户登录成功后可以选择已绑定的某张银行卡进行存款。
(3)取款:用户登录成功后可以选择已绑定的某张银行卡进行取款。(4)转账(本地/异地/本行/跨行):用户登录成功后可以选择已绑定的某张银行卡进行转账,支持多种方式。
(5)挂失:用户登录成功后可以选择已绑定的某张银行卡进行挂失。(6)销户:操作员可以对用户进行注销。
(7)用户信息查询: 用户登录成功后可以查看自己的用户信息,操作员和管理员可以查看所有用户的用户信息。
(8)修改账户信息: 用于对已有信息进行更改,对于一些错误的数据可以进行及时的修改。用户登录成功后可以修改自己的账户信息,操作员和管理员可以修改所有用户的账户信息。
2、ATM服务模块主要功能要求
(1)存款: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行存款。(2)取款: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行取款。(3)查询余额: 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行余额的查询。
(4)转账(本地/异地/本行/跨行): 用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行转账,支持多种方式。
(5)修改密码: 用户登录成功后可以修改自己的密码。
第四章 数据库设计
4.1 系统类图
系统类图如图4.1所示:
图4.1 系统类图 Fig 4.1 System Class Diagram
用户表、权限表、用户权限表是相互关联的关系,用户表和用户权限表是一对多,权限表和用户权限表是一对多;一个用户表可以有多个账户表。
4.2 系统E-R图
系统E-R图如图4.2所示:
图4.2 系统E-R图 Fig 4.2 System E-R Diagram
4.3系统数据库设计
系统数据库利用MySQL创建,数据库是一个信息系统的重要组成部分。所以在做系统需求分析时就必须设计好数据库。本系统涉及的数据表主要有:
1、用户表 t_user:(附表.1)
存储用户信息,包括有用户名和密码等具体信息。
2、账户表 t_account:(附表.2)
存储每个用户的账户信息,每个用户可以有多个账户信息。
3、权限表 t_app:(附表.3)
存储权限信息。
4、用户权限表 t_user_app:(附表.4)
对不同用户不同的权限分配进行管理。
第五章 详细设计
5.1 系统用例图
图5.1 系统用例图 Fig 5.1 System Use Case Diagram
5.2 柜台操作模块
5.2.1柜台操作模块功能介绍
用户可以向操作员申请开户,申请成功后经管理员批准则开户成功;用户登录成功后可以选择已绑定的某张银行卡进行存款、取款、转账和挂失;操作员可以对用户进行注销;用户登录成功后可以查看或修改自己的用户信息,操作员和管理员可以查看或修改所有用户的用户信息。
5.2.2柜台操作模块用例图
图5.2.2 柜台操作模块用例图
Fig 5.2.2 Counter Operation Module Use Case Diagram
5.2.3柜台操作模块时序图
5.2.3.1 开户
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击开户进入开户页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台开户页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.1 开户时序图 Fig 5.2.3.1 Opening Sequence Diagram
5.2.3.2 存款
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击存款进入存款页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台存款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.2 存款时序图 Fig 5.2.3.2 Deposit Sequence Diagram
5.2.3.3 取款
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击取款进入取款页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台取款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.3 取款时序图
Fig 5.2.3.3 Withdrawals Sequence Diagram
5.2.3.4 转账
柜台管理列表页面普通用户登录系统后点击菜单栏中柜台管理模块点击转账进入转账页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台转账页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.4 转账时序图 Fig 5.2.3.4 Transfer Sequence Diagram
5.2.3.5 挂失
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击挂失按钮,调用Controller调用柜台挂失Service调用柜台挂失DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.5 挂失时序图
Fig 5.2.3.5 Loss Report Sequence Diagram
5.2.3.6 销户
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击销户按钮,调用Controller调用柜台销户Service调用柜台销户DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.6 销户时序图
Fig 5.2.3.6 Cancel the Account Sequence Diagram
5.2.3.7 用户信息查询
后台管理列表页面管理员登录系统后点击菜单栏中后台管理模块调用后台管理的Controller调用用户的查询Service调用用户信息DAO方法调用用户实体交互MYSQL DBControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.7 用户信息查询时序图
Fig 5.2.3.7 Query User Information Sequence Diagram
5.2.3.8 修改用户信息
柜台管理列表页面管理员登录系统后点击菜单栏中柜台管理模块点击修改进入修改页面调用柜台保存Service调用柜台保存DAO方法录入信息后点击保存,调用Controller调用用户实体交互MYSQL DB后台用户信息修改页面ControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.2.3.8 修改用户信息时序图
Fig 5.2.3.8 Modify User InformationSequence Diagram
5.3 ATM服务模块
5.3.1 ATM服务模块功能介绍
用户登录成功后选择“ATM服务”可以选择已绑定的某张银行卡进行存款、取款、转账以及余额的查询;用户登录成功后可以修改自己的密码。
5.3.2 ATM服务模块用例图
图5.3.2 ATM服务模块用例图
Fig 5.3.2 ATM Services Module Use Case Diagram
5.3.3 ATM服务模块时序图
5.3.3.1 存款
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击存款进入存款页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DB柜台存款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.1 存款时序图 Fig 5.3.3.1 Deposit Sequence Diagram
5.3.3.2 取款
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击取款进入取款页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DBATM取款页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.2 取款时序图
Fig 5.3.3.2 Withdrawals Sequence Diagram
5.3.3.3 转账
ATM管理列表页面普通用户登录系统后点击菜单栏中ATM管理模块点击转账进入转账页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用账户实体交互MYSQL DBATM转账页面AccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.3 转账时序图 Fig 5.3.3.3 Transfer Sequence Diagram
5.3.3.4 查询余额
ATM管理列表页面管理员登录系统后点击菜单栏中ATM管理模块调用ATM管理的Controller调用ATM的查询余额Service调用账户DAO方法调用账户实体交互MYSQL DBAccountControllerAccountServicesAccountDaoTAccountDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.4 查询余额时序图
Fig 5.3.3.4 Query Balance Sequence Diagram
5.3.3.5 修改密码
ATM管理列表页面管理员登录系统后点击菜单栏中ATM管理模块点击修改密码进入修改页面调用ATM保存Service调用ATM保存DAO方法录入信息后点击保存,调用Controller调用用户实体交互MYSQL DBATM用户信息修改密码页面ControllerServicesDaoTUserDB返回交互信息返回数据至DAO将数据返回值SERVICES返回控制器将信息显示到页面 图5.3.3.5 修改密码时序图
Fig 5.3.3.5 Change Password Sequence Diagram
第六章 程序实现
6.1 柜台操作模块截图
登陆界面:用户打开浏览器在地址栏输入 http://localhost:8080/
进入到登陆界面输入用户名密码,登录成功后,如图6.1.1所示
输入用户名和密码后,跳转到如图6.1.2的页面中
点击新建账户,即开户操作,跳转到如图6.1.3的页面中,输入信息后,“保存”则
开户成功。
点击存款,跳转到如图6.1.4的页面中,可以输入存款金额进行存款。
点击取款,跳转到如图6.1.5的页面中,可以输入取款金额进行取款。
点击转账,跳转到如图6.1.6的页面中,可以输入转账卡号和转账金额进行转账。
点击修改信息,跳转到如图6.1.7的页面中,可以修改用户信息。用户也可以注销自己。
点击用户信息查询,跳转到如图6.1.8的页面中,可以查看账户信息。
6.2 ATM服务模块截图
用户登录成功,跳转到如图6.2.1的页面中,显示ATM服务的账户信息。
点击显示余额,跳转到如图6.2.2的页面中,可以显示账户的余额。
点击修改密码,跳转到如图6.2.3的页面中,可以输入原密码和新密码。
6.3 重点代码
@Controller @RequestMapping(“/admin/account”)public class AccountController extends BaseController{ @Autowired private AccountService accountService;
@RequestMapping(“/list.do”)
public String list(HttpServletRequest request){
String searchTruename = request.getParameter(“searchTruename”);String type = request.getParameter(“type”);request.setAttribute(“List”, accountService.findAll(searchTruename ,this.getLoginUser().getUsername()));
}
@RequestMapping(“/show.do”)public String show(HttpServletRequest request){
String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“searchTruename”, searchTruename);String a = “admin/biz/account/list”;if(type.equals(“1”)){ } if(type.equals(“2”)){ } if(type.equals(“3”)){ } return a;a = “admin/biz/account/list2”;a = “admin/biz/account/list”;a = “admin/biz/account/list1”;
} return “admin/biz/account/show”;@RequestMapping(“/setstate.do”)public String
setState(@RequestParam(“id”)int
id,@RequestParam(“state”)String state,HttpServletRequest request){
}
@RequestMapping(“/edit.do”)public String edit(HttpServletRequest request){
}
@RequestMapping(“/toZhuanzhang.do”)public String toZhuanzhang(HttpServletRequest request){
String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id)){ request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“accountEntity”, accountService.findOthers(id));String id = request.getParameter(“id”);if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));accountService.setState(id,state);return “redirect:/admin/account/list.do”;return “admin/biz/account/edit”;
} } request.setAttribute(“type”, request.getParameter(“type”));return “admin/biz/account/zhuanzhang”;@RequestMapping(“/changeMoney.do”)public String changeMoney(HttpServletRequest request){
}
/** * 存取款
* @param request * @return */ @RequestMapping(“/updateMoney.do”)public String updateMoney(HttpServletRequest request){
String id = request.getParameter(“id”);String moneyState = request.getParameter(“moneyState”);String changeMoney = request.getParameter(“changeMoney”);String id = request.getParameter(“id”);
if(StringUtils.isNotEmpty(id))request.setAttribute(“entity”, accountService.findByID(Integer.valueOf(id)));request.setAttribute(“moneyState”, request.getParameter(“moneyState”));request.setAttribute(“type”, request.getParameter(“type”));return “admin/biz/account/changeMoney”;
String type = request.getParameter(“type”);//1代表存款 //2代表取款
if(“1”.equals(StringUtils.trim(moneyState))){ TAccount account = accountService.findByID(Integer.valueOf(id));account.setMoney((Double.valueOf(account.getMoney())+ Double.valueOf(changeMoney))* 1.03 +“");
} if(”2“.equals(StringUtils.trim(moneyState))){ TAccount account = accountService.findByID(Integer.valueOf(id));account.setMoney((Double.valueOf(account.getMoney())Double.valueOf(changeMoney))* 1.03 +”“);TAccount toAccount = accountService.findByID(Integer.valueOf(toId));toAccount.setMoney((Double.valueOf(toAccount.getMoney())+ Double.valueOf(changeMoney))* 1.03 +”“);
//
}
@RequestMapping(”/save.do“)public String
save(HttpServletRequest
request)
throws
IllegalAccessException, accountService.saveOrUpdate(account);accountService.saveOrUpdate(toAccount);return ”redirect:/admin/account/listForUserid.do?userId“ + this.getLoginUser().getUserid();return ”redirect:/admin/account/list.do?type=“+type;InvocationTargetException {
TAccount account = new TAccount();String id = request.getParameter(”id“);if(StringUtils.isNotEmpty(id))account = accountService.findByID(Integer.valueOf(id));BeanUtils.populate(account, request.getParameterMap());
} account.setMoney(Double.valueOf(account.getMoney())* 1.03 + ”“);String password = request.getParameter(”password“);if(StringUtils.isNotEmpty(password))account.setPassword(SHAUtil.sha(account.getPassword()));if(account.getId()== 0){
account.setTruename(this.getLoginUser().getRealname());account.setUsername(this.getLoginUser().getUsername());account.setCreUid(Integer.valueOf(this.getLoginUser().getUserid()));account.setCreTime(CalendarUtils.getNowTimeTimestamp());}else{
} accountService.saveOrUpdate(account);return ”redirect:/admin/account/list.do“;account.setEdiTime(CalendarUtils.getNowTimeTimestamp());account.setEdiUid(Integer.valueOf(this.getLoginUser().getUserid()));@RequestMapping(”/goChangepwd.do“)public String goChangepwd(HttpServletRequest request){
}
@RequestMapping(”/changepwd.do“)request.setAttribute(”id“, request.getParameter(”id“));return ”admin/biz/account/changepwd“;
public String changepwd(HttpServletRequest request)throws IllegalAccessException, InvocationTargetException {
// } String id = request.getParameter(”id“);TAccount account = accountService.findByID(Integer.valueOf(id));String oldpwd = request.getParameter(”oldpwd“);String newpwd1 = request.getParameter(”newpwd1“);String newpwd2 = request.getParameter(”newpwd2“);String rs = null;if(StringUtils.isNotEmpty(oldpwd)&& SHAUtil.sha(oldpwd).equals(account.getPassword())){
if(newpwd1.equals(newpwd2)){
account.setPassword(SHAUtil.sha(newpwd1));accountService.saveOrUpdate(account);rs = ”密码修改成功!“;}else{ } rs = ”新密码两次输入不一致!“;}else{ } request.setAttribute(”rs“, rs);return ”admin/biz/account/changepwd“;return ”redirect:/admin/account/listForUserid.do?userId“ + this.getLoginUser().getUserid();rs = ”原密码输入错误!“;
@RequestMapping(”/export.do“)public String export(HttpServletRequest
request,HttpServletResponse
response)
throws UnsupportedEncodingException{
} } /*下载xls名字在这命名*/ String fileName = ”账号信息“;request.setAttribute(”List“, accountService.findAll());response.setContentType(”text/html;charset=utf-8“);try { request.setCharacterEncoding(”UTF-8“);} catch(UnsupportedEncodingException e){ } String excelName = new String(fileName.getBytes(), ”ISO8859-1“)+ ”.xls“;response.setHeader(”Content-disposition“, ”attachment;filename=“+ excelName);/*跳转你自己下载模版路径*/ return ”admin/biz/account/export";e.printStackTrace();
第七章 总结
经过这次开发,我对SpringMVC框架有了更加系统的把握。本系统在开发过程中,我自始至终都着眼于实际应用需求,致力于完善业务逻辑,而把繁琐的实现细节交给了SpringMVC架构完成,较使用普通的jsp开发效率明显提高。整个开发过程充分发挥了SpringMVC作为成熟的应用框架的优势。
从设计角度看本系统合理使用了分层模型,使得代码结构清晰,易于调用和维护。但需要注意的是并不分层越多越好,关键看解决问题的复杂度的考量。由于分层越多,虽然逻辑上会更清晰,更利于开发和维护,但也会带来创建实例的次数增多的问题,随之而来的是代码效率的降低。因此必须需要权衡好分层数目和代码执行效率的关系。从运行效率上看,本次开发对分层模型的层次把握比较成功。
此设计成功实现了功能。但是在业务逻辑灵活性上还有欠缺。在今后的研究中,可以通过添加一张业务逻辑表用于动态定义业务逻辑,使系统的灵活性更强,更利于移植和推广。