第一篇:在銀行柜臺和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作為成熟的應用框架的優勢。
從設計角度看本系統合理使用了分層模型,使得代碼結構清晰,易于調用和維護。但需要注意的是并不分層越多越好,關鍵看解決問題的復雜度的考量。由于分層越多,雖然邏輯上會更清晰,更利于開發和維護,但也會帶來創建實例的次數增多的問題,隨之而來的是代碼效率的降低。因此必須需要權衡好分層數目和代碼執行效率的關系。從運行效率上看,本次開發對分層模型的層次把握比較成功。
此設計成功實現了功能。但是在業務邏輯靈活性上還有欠缺。在今后的研究中,可以通過添加一張業務邏輯表用于動態定義業務邏輯,使系統的靈活性更強,更利于移植和推廣。