《基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)》12000字(論文)_第1頁
《基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)》12000字(論文)_第2頁
《基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)》12000字(論文)_第3頁
《基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)》12000字(論文)_第4頁
《基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)》12000字(論文)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于Grails框架的借貸平臺系統(tǒng)功能實現(xiàn)摘要隨著互聯(lián)網(wǎng)時代的到來,信息化技術(shù)得到了極大速度的發(fā)展,同時加之國家大力扶持小微企業(yè)創(chuàng)業(yè),使得新型的借貸形式產(chǎn)生,以一種招投標項目形式發(fā)布,通過點對點的形式完成借貸業(yè)務(wù)。但是在此過程中存在很多問題,而且網(wǎng)絡(luò)犯罪屢見不鮮,所以金融領(lǐng)域企業(yè)急需開發(fā)一套功能完善,且安全的金融信貸平臺。在分析目前各類信貸APP后,根據(jù)用戶的實際需求,采用了Groovy語言、Grails框架、MVC模式開發(fā)該系統(tǒng),首先對系統(tǒng)進行功能與非功能分析,然后在需求分析的基礎(chǔ)上設(shè)計了客戶資料管理模塊、借款管理模塊、投資管理模塊、充值交易管理模塊、提現(xiàn)交易管理模塊以及資金記錄管理模塊。該系統(tǒng)的開發(fā)過程中,實時考慮成本核算和系統(tǒng)實際的運行效果,目前系統(tǒng)已開發(fā)完成,并已滿足用戶的實際需求,具有一定的理論價值和實踐價值。關(guān)鍵詞:網(wǎng)絡(luò)借貸、Grails框架、Groovy語言、MVC模式目錄TOC\o"1-3"\h\u8335摘要 1117831緒論 5107091.1課題研究背景與意義 51.1.1研究背景 51.1.2研究意義 5314201.2國內(nèi)外研究現(xiàn)狀 750301.3論文的結(jié)構(gòu)及內(nèi)容 9230971.3.1研究目標與內(nèi)容 9302031.3.2本文結(jié)構(gòu) 10141242相關(guān)技術(shù)概述 1159582.1MVC設(shè)計模式分析 1156872.2瀏覽器/服務(wù)器結(jié)構(gòu)設(shè)計 122.3Grails開發(fā)技術(shù) 152.3.1Grails框架簡介 152.3.2Groovy程序設(shè)計語言 162.4MySQL數(shù)據(jù)庫 173網(wǎng)絡(luò)借貸平臺系統(tǒng)需求分析 173.1功能性需求分析 173.1.1用戶登錄注冊需求分析 183.1.2用戶借款管理需求分析 193.1.3用戶投資管理需求分析 203.1.4用戶資金管理需求分析 213.1.5用戶資金日志需求分析 213.2需求分析數(shù)據(jù)庫表展示 224網(wǎng)絡(luò)借貸平臺系統(tǒng)功能實現(xiàn) 254.1系統(tǒng)功能實現(xiàn)所需軟件 254.2用戶功能實現(xiàn) 264.2.1用戶登錄注冊功能實現(xiàn) 264.2.2用戶借款管理功能實現(xiàn) 284.2.3用戶投資管理功能實現(xiàn) 304.2.4用戶還款管理功能實現(xiàn) 314.2.5用戶資金管理功能實現(xiàn) 334.2.6用戶資金日志功能實現(xiàn) 355仿真使用結(jié)果與分析 366總結(jié)與展望 411緒論1.1課題研究背景與意義1.1.1研究背景近年來,隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,上網(wǎng)瀏覽、咨詢、購物甚至借貸都可以通過網(wǎng)絡(luò)的形式進行。21世紀初,從海外傳播過來的網(wǎng)絡(luò)借貸熱浪逐漸聲名鵲起。逐漸,人們不斷地發(fā)現(xiàn)出了網(wǎng)絡(luò)借貸的優(yōu)點:能有效節(jié)省時間,不僅可以省去借款人與貸款人之間的會面與洽談,而且可以在有限的時間內(nèi)讓更多的貸款人看到借款人的需求;能有效節(jié)約成本,工作成本只需要網(wǎng)站的維護成員便可以有效實現(xiàn)低成本地運營。2008年,美國的金融危機迅速席卷全球,作為已經(jīng)融入世界經(jīng)濟一體化的我國也深受其害,其中中小企業(yè)受到的影響最為深重。金融危機對中小企業(yè)的影響最集中體現(xiàn)在融資方面。融資難一直是制約中小企業(yè)發(fā)展的瓶頸問題,在金融危機下這個問題更加尖銳,甚至決定了企業(yè)的生死存亡。中小企業(yè)要想通過發(fā)行股票、債券等手段進行直接融資十分困難,雖然目前證券市場開設(shè)了創(chuàng)業(yè)投資板塊,但只是針對部分高科技企業(yè),大部分中小企業(yè)仍然是以銀行的間接融資作為首選和最主要的融資渠道。目前,國家已經(jīng)實施了相對寬松的貨幣政策,降低了銀行貸款利率,調(diào)增了商業(yè)銀行信貸規(guī)模,還出臺了有利于中小企業(yè)發(fā)展的有關(guān)政策。但是,銀行對中小企業(yè)發(fā)展信心不足,特別是在金融危機大背景下,銀行為了降低風險,更加慎重對待對中小企業(yè)的貸款,對中小企業(yè)“限貸”、“惜貸”、甚至“停貸”的現(xiàn)象仍然存在。而中小企業(yè)一方面由于自身營業(yè)收入下滑、庫存增加和貨款回收困難等,再加上融資渠道單一,導致企業(yè)資金緊張,其生產(chǎn)經(jīng)營出現(xiàn)嚴重困難。在這樣的背景下,網(wǎng)絡(luò)借貸的形式越來越受到中小型企業(yè)的歡迎。1.1.2研究意義近些年,網(wǎng)絡(luò)借貸的形式變得越發(fā)普遍,特別是一些歐美發(fā)達國家,通過網(wǎng)絡(luò)借貸開發(fā)能夠?qū)崿F(xiàn)的各種功能已經(jīng)相當完善,可以滿足不同借款人的借貸需求。而隨著中國網(wǎng)絡(luò)時代的興起,這種模式也越來越得到廣大中國網(wǎng)民的認可,不僅可以通過網(wǎng)絡(luò)借貸實現(xiàn)中小型企業(yè)的融資,而且可以滿足很多網(wǎng)民的個人需求,如買房,升學,開網(wǎng)店等。同時像網(wǎng)絡(luò)借貸平臺這樣的新型金融貸款模型,也越來越得到金融投資者的認可。21世紀初,很多金融投資者質(zhì)疑網(wǎng)絡(luò)借貸平臺的安全度,不敢在網(wǎng)上進行借貸交易。現(xiàn)今,隨著網(wǎng)絡(luò)借貸平臺功能的不斷完善,借貸平臺可以通過綁定支付寶、微信、銀聯(lián)等手機APP實現(xiàn)實名認證,在借貸平臺里不僅有借款人的詳細個人信息,而且有借款人詳細的借款原因和借款人承諾的借款利率,從而有效安全得保證了貸款人的財產(chǎn)安全。目前隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,已經(jīng)產(chǎn)生了互聯(lián)網(wǎng)金融(ITFIN)這一全新的金融模式,網(wǎng)絡(luò)借貸平臺就是其中一種,又因為借貸過程可以細化到個人,所以又可以稱作點對點借貸即P2P信貸。P2P信貸有以下優(yōu)點:對第三方電子商務(wù)平臺來說,能夠為網(wǎng)站會員提供更多增值服務(wù),提升網(wǎng)站粘性和競爭力;對銀行來說,則可以通過整合第三方電子商務(wù)平臺等社會資源,加速自身金融產(chǎn)品創(chuàng)新,挖掘新的商機;網(wǎng)絡(luò)貸款平臺將為銀行、第三方電子商務(wù)平臺、中小企業(yè)帶來“三方共贏”;網(wǎng)絡(luò)借貸還可以滿足金額少或者短期借款的用戶的個人需求。因此,P2P信貸平臺是互聯(lián)網(wǎng)新興技術(shù)與微小型金融業(yè)結(jié)合的一項創(chuàng)新產(chǎn)物。但是近年來,P2P信貸面臨的風險問題也是層出不窮,主要有以下幾點:第一,貸款利率遠超過銀行普遍水平,有些個體商戶無法短期內(nèi)從銀行獲得貸款,便想從網(wǎng)絡(luò)平臺借貸,但由于缺乏網(wǎng)絡(luò)市場監(jiān)管,整個P2P信貸平臺的貸款年利率都在15%以上;第二,網(wǎng)絡(luò)安全管理并沒有落實到位,平臺普遍缺少網(wǎng)絡(luò)安全專業(yè)方面的法律監(jiān)察人員;第三,平臺的市場準入門檻不高,全網(wǎng)各類信貸平臺層出不窮,各平臺技術(shù)服務(wù)不可靠,客戶的信息安全沒有保障。1.2國內(nèi)外研究現(xiàn)狀在我國,P2P網(wǎng)上信貸平臺到現(xiàn)在還屬于一種新型的借貸方式,并非已經(jīng)落實到每家每戶。其實從2007年開始,P2P網(wǎng)上信貸模式才逐漸傳入我國,近些年隨著網(wǎng)絡(luò)電商的興起,才逐漸被人們所了解。但在歐美等發(fā)達國家,網(wǎng)絡(luò)信貸平臺的發(fā)展卻遠遠超過我國,各種從事電子商務(wù)或者金融投資的人士及網(wǎng)絡(luò)大眾都十分認可這種新型的借貸方式。他們認為,這種借貸方式不僅可以靈活得選擇借貸對象,而且可以不需要其他成本便可以輕松了解到借款人和貸款人的個人信息。在平臺的使用過程中,不僅借款人可以快速獲得自己的資金需求,而且貸款人可以選擇性地獲得增值利潤。據(jù)調(diào)查,美國最大的P2P網(wǎng)絡(luò)借貸平臺為Prosper,歐洲最大P2P網(wǎng)絡(luò)借貸平為Zopa,上述兩個平臺都采用了P2P金融服務(wù),整個過程無需銀行介入。Zopa在2005年由英國首先引入,作為全球首發(fā)的P2P網(wǎng)絡(luò)信貸平臺,Zopa在設(shè)置借貸方案時,可以根據(jù)貸款人的想法設(shè)置合適的借貸方案,包括借貸金額,借貸周期和借貸方式。不同的貸款人選擇的方案也大相徑庭,有的貸款人選擇較高的回報率而對借款人的個人信息要求不高,而有的貸款人對于借款人的信用度要求極高而相對設(shè)置寬松的借貸利率。在借貸過程中,除了平臺之外,只有貸款人和借款人雙方進行交易,這種模式雖然很大程度上受到人們的歡迎,但其中存在的風險因素也十分巨大。而Prosper是在Zopa上線一年之后,在2006年引入美國網(wǎng)絡(luò)平臺,但實際上這兩個網(wǎng)絡(luò)借貸平臺的實現(xiàn)方式十分相似,都需要收取貸款人手續(xù)費,投資者管理費和逾期費用。唯一不同的是,Zopa平臺對投資者收取每年0.5%的管理費,對借貸者收取0-190英鎊的固定費用;而Prosper平臺對投資者收取每年1%的管理費;對借貸者收取一次性的0.5%-4.5%的手續(xù)費。反觀我國,在2015年前,我國網(wǎng)絡(luò)信貸的發(fā)展速度遠遠遲緩于歐美一些發(fā)達國家。但在2015年后,隨著我國經(jīng)濟在金融危機的浪潮之后慢慢復(fù)蘇,加之網(wǎng)絡(luò)電商的興起,商業(yè)大眾化讓中國網(wǎng)民把目光不斷聚焦到這種新型的P2P借貸網(wǎng)站,比如拍拍貸,好利網(wǎng)等。但其實拍拍貸平臺在2007年就已經(jīng)被開發(fā)出來。拍拍貸作為中國第一家網(wǎng)絡(luò)借貸平臺,在伊始,并不被大眾看好,因為當時網(wǎng)絡(luò)環(huán)境并不發(fā)達,加之沒有很好的監(jiān)管機制,很多貸款人不敢將資金投入到網(wǎng)站中。在2008年金融危機之后,很多銀行對于貸款給中小型企業(yè)沒有足夠的信心,他們只能從網(wǎng)絡(luò)貸款和民間貸款中尋找出路。相比于民間貸款,網(wǎng)絡(luò)貸款的安全性、監(jiān)管性和個人信息的保密性更能得到中小型企業(yè)的肯定。當時在北京、上海、廣州和深圳等一線城市,網(wǎng)絡(luò)貸款逐漸流行起來,這樣中小企業(yè)不僅能更迅速更靈活地獲得融資,而且貸款人也可以從中獲得自己設(shè)置日期和方案的利潤來彌補金融危機造成的資金缺口。隨著拍拍貸發(fā)展得如火如荼,一大批新型的網(wǎng)絡(luò)信貸平臺也逐漸興起。比如發(fā)展較好的有紅嶺創(chuàng)投,易貸365,好利網(wǎng)和宜農(nóng)貸等。這些網(wǎng)絡(luò)信貸平臺的興起極大程度上促進了金融危機之后中國經(jīng)濟的復(fù)蘇和發(fā)展。像拍拍貸的方案是收取借款人管理費和其他服務(wù)費用,但是對投資者免費,對籌資者6個月以下按本金2%收取,6個月以上按本金4%收取。這種固定的借貸方式不僅非常吸引投資者將資金投放到平臺,而且平臺還提供了預(yù)判欺詐系統(tǒng)使投資者更加放心。同時較低的利率和適當服務(wù)費用更能讓借款人接受。網(wǎng)絡(luò)借貸平臺的受眾除了中小型企業(yè)以外,還有很多大學生與研究生群體。因為大學生和研究生的經(jīng)濟尚不獨立。但隨著中國經(jīng)濟的高速發(fā)展和網(wǎng)絡(luò)購物的時興,現(xiàn)今大學生和研究生的購物欲已經(jīng)遠超從前。在2013年我國第一個消費信貸分期購物平臺佰潮網(wǎng)的誕生,最早是為了滿足廣州區(qū)域的大學生對于電子數(shù)碼產(chǎn)品的需要而創(chuàng)立,但卻擴寬了網(wǎng)絡(luò)消費信貸的服務(wù)人群,是我國消費信貸分期型的開端,標志著網(wǎng)絡(luò)消費信貸邁上了一個新的臺階。在近幾年的調(diào)查中,中國的主要網(wǎng)絡(luò)貸款平臺開始強大起來,并且逐漸形成了自己的商業(yè)模式。從2018年之后,我國網(wǎng)絡(luò)信貸交易額已成飽和性。如下圖1-1所示。除了幾家知名的借貸平臺之外,其他很多草根型的借貸平臺通常在網(wǎng)站上承諾貸款人高回報率,以此吸引了很多投資人,但實際回報率卻遠不如預(yù)期,甚至在約定時間內(nèi)收不回基本的本金,因此對整個網(wǎng)絡(luò)借貸平臺產(chǎn)生了較大的負面影響。所以安全性還是現(xiàn)在網(wǎng)絡(luò)借貸平臺需要注意的首要問題。圖1-11.3論文的結(jié)構(gòu)及內(nèi)容1.3.1研究目標及內(nèi)容(1)研究目標本文基于Grails框架制作一個帶有基本借款還款功能的網(wǎng)絡(luò)借貸平臺,并以系統(tǒng)各項功能的實現(xiàn)為研究目標。(2)研究內(nèi)容本文需查閱國內(nèi)外基于Grails框架制作軟件系統(tǒng)的文獻、理解網(wǎng)絡(luò)借貸平臺的設(shè)計相關(guān)資料,明確課題研究背景及意義;掌握Grails框架制作的基本流程及使用Groovy面向?qū)ο缶幊陶Z言和MVCWeb應(yīng)用開發(fā)的基礎(chǔ)知識,并在論文中有所體現(xiàn)。達到的基本指標:(1)注冊-->新建借款項目-->收到投資-->提現(xiàn)(2)注冊-->充值-->投資借款項目-->收到還款(3)注冊-->充值-->還款(4)項目借款人可收到多個投資者的投資資金(5)項目投資者可投資多個不同的項目1.3.2本文結(jié)構(gòu)本文基于Grails框架制作一個帶有基本借款還款功能的網(wǎng)絡(luò)借貸平臺,本文結(jié)構(gòu)介紹如下:第一章為緒論,本章主要探討了網(wǎng)絡(luò)信貸平臺的誕生及發(fā)展史,且在不同的時間段結(jié)合不同的經(jīng)濟和網(wǎng)絡(luò)發(fā)展情況研究了歐美等發(fā)達國家和國內(nèi)的實際案例,結(jié)合以上背景探尋在現(xiàn)今大環(huán)境下如何建立好網(wǎng)絡(luò)借貸平臺。第二章為相關(guān)技術(shù)概述,整個程序使用的技術(shù)路線和手段:1、使用Grails附帶的一個內(nèi)嵌式的HSQLDB(它是一個純java的關(guān)系數(shù)據(jù)庫)。2、Grails對象關(guān)系映射(GORM)API。3、JDBC驅(qū)動程序。4、建立在Hibernate之上。5、使用RaceTrack應(yīng)用。其中主要介紹MVC設(shè)計模式分析、Grails開發(fā)技術(shù)和SQLSERVER數(shù)據(jù)庫。第三章為網(wǎng)絡(luò)借貸平臺需求分析,首先進行的是總體分析,分別從擬解決問題、系統(tǒng)總體業(yè)務(wù)、功能性分析和非功能性分析四個方面進行討論。然后對各個需要實現(xiàn)的功能模塊進行分析,分別是客戶資料管理模塊功能分析、借款管理模塊功能分析、投資管理模塊功能分析、充值交易管理模塊功能分析、提現(xiàn)交易管理模塊功能分析和資金記錄管理模塊功能分析。第四章為網(wǎng)絡(luò)借貸平臺設(shè)計,在上一章需求分析的基礎(chǔ)上,主要論述了整個程序的設(shè)計過程。首先對于整個架構(gòu)進行總體設(shè)計,然后詳細對各個功能模塊進行設(shè)計。第五章為網(wǎng)絡(luò)借貸平臺的實現(xiàn),本章主要基于Groovy編程語言實現(xiàn),以系統(tǒng)的代碼編寫為依據(jù),首先根據(jù)Grails設(shè)計出整體架構(gòu),然后根據(jù)層次依次實現(xiàn)系統(tǒng)的邏輯處理部分。第六章為網(wǎng)絡(luò)借貸平臺的測試,在整個系統(tǒng)開發(fā)完成之后,還要對于系統(tǒng)的各個功能進行安全性、抗壓性測試。因為開發(fā)環(huán)境較為優(yōu)良,所以很可能在使用過程中會產(chǎn)生意想不到的錯處或漏洞。為了保證平臺的可持續(xù)性運行,所以平臺開發(fā)完成的測試是必不可少的。2相關(guān)技術(shù)概述2.1MVC模式分析MVC框架,英文全名ModelViewController,中文名稱對應(yīng)分別是模型(model)——視圖(view)——控制器(controller):Model(模型)表示應(yīng)用程序核心(比如數(shù)據(jù)庫記錄列表)。View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄)。

Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)。如圖2-1可以清晰地表示出一個用戶請求是如何通過MVC框架實現(xiàn)程序應(yīng)答的:圖2-1網(wǎng)絡(luò)借貸平臺使用MVC模式進行系統(tǒng)層次方面的設(shè)計的目的是將M和V實現(xiàn)代碼分離,從而是同一個程序可以使用不同的表現(xiàn)形式。其中,View的定義較為清晰,即用戶界面。通俗來講,MVC框架就是幫助設(shè)計創(chuàng)建Web應(yīng)用程序的一種模式。MVC模式同時提供了對HTML、CSS和JavaScript的完全控制。2.2瀏覽器/服務(wù)器結(jié)構(gòu)設(shè)計設(shè)計網(wǎng)絡(luò)借貸平臺的過程中主要是應(yīng)用了瀏覽器/服務(wù)器的結(jié)構(gòu)設(shè)計形式。B/S結(jié)構(gòu)(Browser/Server,瀏覽器/服務(wù)器模式),是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,WEB瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護和使用。客戶機上只要安裝一個瀏覽器,如NetscapeNavigator或InternetExplorer,服務(wù)器安裝SQLServer、Oracle、MYSQL等數(shù)據(jù)庫。瀏覽器通過WebServer同數(shù)據(jù)庫進行數(shù)據(jù)交互。如圖2-2可清晰得看出B/S的體系結(jié)構(gòu)。圖2-2網(wǎng)絡(luò)借貸平臺之所以使用B/S體系結(jié)構(gòu)是因為這樣簡單可以通用瀏覽器就實現(xiàn)了原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。第一層是瀏覽器,即客戶端,只有簡單的輸入輸出功能,處理極少部分的事務(wù)邏輯。由于客戶不需要安裝客戶端,只要有瀏覽器就能上網(wǎng)瀏覽,所以它面向的是大范圍的用戶,所以界面設(shè)計得比較簡單,通用。第二層是WEB服務(wù)器,扮演著信息傳送的角色。當用戶想要訪問數(shù)據(jù)庫時,就會首先向WEB服務(wù)器發(fā)送請求,WEB服務(wù)器統(tǒng)一請求后會向數(shù)據(jù)庫服務(wù)器發(fā)送訪問數(shù)據(jù)庫的請求,這個請求是以SQL語句實現(xiàn)的。第三層是數(shù)據(jù)庫服務(wù)器,他扮演著重要的角色,因為它存放著大量的數(shù)據(jù)。當數(shù)據(jù)庫服務(wù)器收到了WEB服務(wù)器的請求后,會對SQL語句進行處理,并將返回的結(jié)果發(fā)送給WEB服務(wù)器,接下來,WEB服務(wù)器將收到的數(shù)據(jù)結(jié)果轉(zhuǎn)換為HTML文本形式發(fā)送給瀏覽器,也就是我們打開瀏覽器看到的界面。具體工作流程為:首先,客戶端發(fā)送請求。用戶在客戶端瀏覽器頁面提交表單操作,向服務(wù)器發(fā)送請求,等待服務(wù)器響應(yīng);然后,服務(wù)器端處理請求。服務(wù)器端接收并處理請求,應(yīng)用服務(wù)器端通常使用服務(wù)器端技術(shù),如JSP等,對請求進行數(shù)據(jù)處理,并產(chǎn)生響應(yīng);接下來,服務(wù)器端發(fā)送響應(yīng)。服務(wù)器端把用戶請求的數(shù)據(jù)(網(wǎng)頁文件、圖片、聲音等等)返回給瀏覽器。最后,瀏覽器解釋執(zhí)行HTML文件,呈現(xiàn)用戶界面。如圖2-3所示,可以展現(xiàn)出客戶端、服務(wù)器和瀏覽器之間的工作流程。圖2-3網(wǎng)絡(luò)借貸平臺使用B/S體系結(jié)構(gòu)的優(yōu)點有很多:因為B/S的開發(fā)環(huán)境是廣域網(wǎng),這就意味著可以系統(tǒng)開發(fā)人員在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網(wǎng)的電腦就能使用,客戶端零維護。所以使用B/S系統(tǒng)的成本就會很低。不僅如此,系統(tǒng)的擴展還非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個用戶名和密碼,就可以使用了。目前,各種軟件系統(tǒng)的改進和升級越來越頻繁,B/S架構(gòu)的產(chǎn)品明顯體現(xiàn)著更為方便的特性,使用B/S體系的機構(gòu)對于維護和升級軟件系統(tǒng)的會較其他系統(tǒng)更加簡單。2.3Grails開發(fā)技術(shù)2.3.1Grails框架簡介Grails是一個基于MVC模式的面向企業(yè)的Web框架。它經(jīng)過大量實際應(yīng)用驗證和擴展構(gòu)建于Spring、Hivernate、Quartz和SiteMesh等開源框架上。它的設(shè)計使得開發(fā)人員可以比以前的J2EE規(guī)范更快地創(chuàng)建Web程序。相比于Grails,像Struts和Webwork是較早出現(xiàn)在J2EE平臺的優(yōu)秀MVC框架。而Spring、Tapestry和JSF這些框架提供了非常好的分層能力?;诹己玫腗VC分離,為了提高開發(fā)效率命令,它們提供了許多現(xiàn)成的輔助類庫。Struts可以說是最穩(wěn)定、最成熟的JavaWebMVC框架,它具有很強的可擴展性和可配置性。Webwork結(jié)構(gòu)簡單,易于放大和調(diào)整;Spring更開放,更清晰且全面而高效,允許在復(fù)雜的應(yīng)用程序中配置簡單的組件;JSF和Tapestry是基于組件的事件成熟框架模型類。上述框架各有優(yōu)缺點,但它們都不易使用,且必須使用大量的XML文件進行配置管理。而Grails提供了一個面向用戶且易于使用的框架,這正是大多數(shù)JavaWeb框架所缺乏的。為了使Grails一直具備靈活性,選擇合適的實現(xiàn)技術(shù)至關(guān)重要,而且要遵循Java社區(qū)的“不重新發(fā)明輪子”的概念。這就是為什么Grails作為一種基礎(chǔ)設(shè)施去選擇時下最流行的開源技術(shù)。這個具體的開源項目分類是:(1)Hibernate:實際標準Java中的映射;(2)Spring:最流行的反轉(zhuǎn)控制容器和其他Java框架包裝器;(3)Quartz:極其靈活的企業(yè)級作業(yè)調(diào)度框架,可供持續(xù)作業(yè)。(4)SiteMesh:穩(wěn)定的布局渲染框架。圖2-4圖2-4所示的框架,盡管被稱為輕量框架,但API仍然太過復(fù)雜。因此,Grails的主要目標之一是為用戶提供一個基于Groovy程序語言的動態(tài)特性且易于使用的抽象層。2.3.2Groovy程序設(shè)計語言

Groovy是一種基于JVM(Java虛擬機)的敏捷開發(fā)語言,它結(jié)合了Python、Ruby和Smalltalk的許多強大的特性,Groovy代碼能夠與Java代碼很好地結(jié)合,也能用于擴展現(xiàn)有代碼。由于其運行在JVM上的特性,Groovy可以使用其他Java語言編寫的庫。Groovy可以直接將代碼編譯成字節(jié)碼(.class文件),這又保證了它在Java虛擬機(JVM)中能夠共享相同的對象模型。實際上,Groovy對象就是一個Java對象,并且也使用Java的編譯器和虛擬機(VM)。(引:舒丹基于Grails框架的MVC模型研究)Groovy中有以下特點:同時支持靜態(tài)和動態(tài)類型、支持運算符重載和本地語法列表和關(guān)聯(lián)數(shù)組,對正則表達式的本地支持,對各種標記語言,如XML和HTML原生支持。Groovy對于Java開發(fā)人員來說很簡單,因為Java和Groovy的語法非常相似。2.4MySQL數(shù)據(jù)庫網(wǎng)絡(luò)借貸管理系統(tǒng)使用的是由瑞典公司開發(fā)的MySQL關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。MySQL是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL雖然有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。所以我們網(wǎng)絡(luò)借貸管理平臺作為模擬實際應(yīng)用開發(fā)選擇的是MySQL數(shù)據(jù)庫。3網(wǎng)絡(luò)借貸平臺系統(tǒng)需求分析3.1功能性需求分析從網(wǎng)絡(luò)借貸平臺的用戶來看,應(yīng)該分為下面幾個角色:系統(tǒng)管理員(admin)和普通用戶。對于這些功能角色來說,網(wǎng)絡(luò)借貸平臺還需要實現(xiàn)如圖3-1幾個方面的功能。如圖3-13.1.1用戶登錄注冊需求用戶注冊功能:進入網(wǎng)站后看到主頁提示,選擇注冊或者登陸。若是新用戶的話,點擊注冊。通過輸入自己的用戶編碼、證件號、設(shè)置的密碼、重復(fù)設(shè)置的密碼、用戶名、電子郵箱和手機號完成新用戶注冊的過程。用戶登陸功能:若是老用戶,進入網(wǎng)站主頁后,直接選擇登陸。通過輸入自己的用戶編碼和設(shè)置的密碼完成登陸。圖3-2為用戶登錄注冊需求分析圖圖3-23.1.2用戶借款管理需求用戶借款管理功能:登陸完成后,點擊借款管理。頁面可以顯示用戶借款項目的創(chuàng)建時間、結(jié)束時間、借款項目期限(月)、借款金額、利率。圖3-3為用戶借款管理需求分析圖圖3-33.1.3用戶投資管理需求用戶投資管理功能:點擊投資管理后,若是第一次進行投資,則選擇新建投資。頁面會顯示該網(wǎng)站可選擇的不同投資項目,點擊投資便可以成功完成一次投資。圖3-4為用戶投資管理需求分析圖圖3-43.1.4用戶資金管理需求用戶充值管理功能:點擊充值可以選擇充值的金額,此功能是方便用戶了解自己所擁有資金的數(shù)額以方便投資。用戶提現(xiàn)管理功能:點擊提現(xiàn)可以選擇提現(xiàn)的金額,此功能是方便提醒用戶查看自己投資項目的本金和利息在規(guī)定時間內(nèi)是否有按時收回。注:因為制作的網(wǎng)絡(luò)借貸平臺是模擬企業(yè)進行的P2P系統(tǒng),所以雖然有設(shè)置綁定銀行卡的環(huán)節(jié),但實際操作功能是不綁定銀行卡的,充值和提現(xiàn)功能只做模擬使用。圖3-5為用戶資金管理需求分析圖圖3-53.1.5資金日志管理需求資金日志記錄功能:點擊資金記錄,可以顯示本用戶的所有資金流動的情況,如借款、投資、充值、提現(xiàn)等。3.2需求分析數(shù)據(jù)庫表展示表1Investment數(shù)據(jù)庫列名數(shù)據(jù)類型長度小數(shù)點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nend_datedatetime00Nlast_updateddatetime00Nloan_idbigint200Nmoneydecimal192Nstart_datedatetime00Nuser_idbigint200N表1所示為投資信息表(Investmentbook),主要記錄了投資人的id,投資項目創(chuàng)建日期,結(jié)束日期,更新日期,借款人的id和借款金額。表2loan數(shù)據(jù)庫列名數(shù)據(jù)類型長度小數(shù)點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nend_datedatetime00Nlast_updateddatetime00Nmoneydecimal192Nratedecimal192Nremarkvarchar50000Ystart_datedatetime00Nstatusvarchar2550Ytermint110N表2所示為借款信息表(loanbook),主要記錄了借款人的id,借款項目創(chuàng)建日期,借款項目結(jié)束日期,借款歸還期限(月),借款金額和利率。表3money_log數(shù)據(jù)庫列名數(shù)據(jù)類型長度小數(shù)點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nlast_updateddatetime00Nmoneydecimal192Nreasonvarchar2550Nremarkvarchar2550Yuser_idbigint200N表3所示為資金日志信息表(money_logbook),主要記錄了資金流動項目人的id,資金流動項目的創(chuàng)建日期,流動金額,資金周轉(zhuǎn)原因(可包括:充值、提現(xiàn)、投資和收入等)和需要的備注。表4sys_conf數(shù)據(jù)庫列名數(shù)據(jù)類型長度小數(shù)點是否允許空值idbigint200Nversionbigint200Nratedecimal192N表4所示為平臺收費比例表(sys_confbook),此表為系統(tǒng)配置表,可后臺設(shè)置平臺抽成每一筆資金流動的比例。表5user數(shù)據(jù)庫列名數(shù)據(jù)類型長度小數(shù)點是否允許空值idbigint200Nversionbigint200Nbankcardvarchar2550Ydate_createdatetime00Nemailvarchar2550Yid_numvarchar2550Nlast_updateddatetime00Nmoneydecimal192Npasswordvarchar2550Nphonevarchar2550Yrealnamevarchar2550Yremarkvarchar50000Ystatusvarchar50Ntypevarchar2550Nusernamevarchar2550N表5所示為用戶信息表(userbook),主要記錄了用戶的基本信息,包括用戶編碼,用戶證件號、用戶設(shè)置的系統(tǒng)登錄密碼、用戶名、電子郵箱、手機號、銀行賬號和備注等其他功能實現(xiàn)時的關(guān)聯(lián)信息。4網(wǎng)絡(luò)借貸平臺系統(tǒng)功能實現(xiàn)4.1系統(tǒng)功能實現(xiàn)所需軟件(1)XAMPP(存放數(shù)據(jù)庫)XAMPP是一個功能強大的建站集成軟件包。它可以在Windows、Linux、Solaris、MacOSX等多種操作系統(tǒng)下安裝使用。如果想要手工下載apache和mysql,需要很多的配置步驟。而XAMPP是一個易于安裝:只需下載,解壓縮,啟動即可。且包含MySQL、PHP和Perl的Apache發(fā)行版。XAMPP整合了Apache,mysql,并且可以支持php及filezilla的應(yīng)用。Filezilla是搭建在apache上的應(yīng)用,php是服務(wù)器端腳本,需要搭載在apache上,結(jié)合mysql數(shù)據(jù)庫可以制作應(yīng)用網(wǎng)站。(2)NavicatforMYSQL(連接數(shù)據(jù)庫,進行可視化管理)NavicatforMySQL是一套專為MySQL設(shè)計的強大數(shù)據(jù)庫管理及開發(fā)工具。它可以用于任何3.21或以上的MySQL數(shù)據(jù)庫服務(wù)器,并支持大部份MySQL最新版本的功能,包括觸發(fā)器、存儲過程、函數(shù)、事件、檢索、權(quán)限管理等等。NavicatforMySQL基于Windows平臺,為MySQL量身訂作,提供類似于MySQL的用管理界面工具。此解決方案的出現(xiàn),將解放PHP、J2EE等程序員以及數(shù)據(jù)庫設(shè)計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。NavicatforMySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。用戶可完全控制

MySQL數(shù)據(jù)庫和顯示不同的管理資料,包括一個多功能的圖形化管理用戶和訪問權(quán)限的管理工具,方便將數(shù)據(jù)從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫中(LocaltoRemote、RemotetoRemote、RemotetoLocal),進行檔案備份。NavicatforMySQL支援Unicode,以及本地或遠程MySQL服務(wù)器多連線,用戶可瀏覽數(shù)據(jù)庫、建立和刪除數(shù)據(jù)庫、編輯數(shù)據(jù)、建立或執(zhí)行SQLqueries、管理用戶權(quán)限(安全設(shè)定)、將數(shù)據(jù)庫備份/復(fù)原、匯入/匯出數(shù)據(jù)(支援CSV,TXT,DBF和XML檔案種類)等。軟件與任何MySQL5.0.x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT數(shù)據(jù)種類等的規(guī)范。4.2用戶功能實現(xiàn)4.2.1用戶登錄注冊功能實現(xiàn)(1)用戶注冊登錄功能圖4-1:圖4-1(2)用戶注冊登錄后臺操作流程圖4-2:圖4-2(3)后臺(controller)注冊操作主要代碼及注釋如下:defregister={defuserInstance=newUser()userIperties=paramsreturn[userInstance:userInstance]}//用戶進行注冊用戶名后,轉(zhuǎn)到后臺進行注冊用戶信息保存defregisterSave={if(params.password2!=params.password){flash.message="兩次密碼輸入的不同"render(view:"register",model:[userInstance:newUser()])}defuserInstance=newUser(params)if(userInstance.save(flush:true)){flash.message="${message(code:'default.created.message',args:[message(code:'user.label',default:'User'),userInstance.id])}"redirect(action:"login")}else{render(view:"register",model:[userInstance:userInstance])}}//后臺進行保存用戶信息時,進行用戶密碼審核,為防止用戶設(shè)置密碼出現(xiàn)錯誤,會在設(shè)置密碼時,要求用戶進行第二次輸入密碼。若是兩次輸入密碼不同,系統(tǒng)會出現(xiàn)提醒。注冊成功后便可跳回登陸頁面。(4)后臺(controller)登錄操作主要代碼及注釋如下:deflogin={defusername=params.usernamedefpassword=newUser().getMD5String(params.password)if(!username||!password){flash.message=""render(view:"login")}else{defuserInstance=User.findByUsernameAndPassword(username,password)if(userInstance){if(userInstance.status=="已封禁"){flash.message="用戶已經(jīng)被封禁"render(view:"login")}else{session.setAttribute("user",userInstance)render(view:"home")}}else{flash.message="用戶名或密碼不匹配"render(view:"login")}}}//登錄時只需要輸入用戶編碼和密碼,后臺進行用戶編碼和密碼的匹配性驗證。若用戶編碼與密碼匹配,則登陸成功;若用戶編碼與密碼不匹配,則登錄失敗。4.2.2用戶借款管理功能實現(xiàn)(1)用戶借款管理功能圖4-3:圖4-3(2)用戶借款管理后臺操作流程圖如圖4-4:圖4-4(3)后臺(controller)借款操作主要代碼及注釋如下:deflist={defuser=session.getAttribute("user")asUserdefloanInstanceListparams.max=Math.min(params.max?('max'):10,100)if(user.type=="admin"){loanInstanceList=Loan.list(params)}else{loanInstanceList=Loan.findAllByUser(user,params)}[loanInstanceList:loanInstanceList,loanInstanceTotal:loanInstanceList.size()]}//創(chuàng)建基本借款項目4.2.3用戶投資管理功能實現(xiàn)(1)用戶投資管理功能圖4-5:圖4-5(2)用戶投資管理后臺操作流程圖4-6:圖4-6(3)后臺(controller)投資操作主要代碼及注釋如下:deflistAll={defuser=session.getAttribute("user")asUserdefloanInstanceListparams.max=Math.min(params.max?('max'):10,100)loanInstanceList=Loan.findAllByUserNotEqual(user,params)[loanInstanceList:loanInstanceList,loanInstanceTotal:loanInstanceList.size()]}//投資時顯示所有借款項目且要排除自己的借款項目4.2.4用戶還款功能實現(xiàn)后臺(controller)還款操作主要代碼及注釋如下:defrepayment={defloanInstance=Loan.get(params.id)if(loanInstance){defmoney=loanInstance.money*(1+loanInstance.rate*loanInstance.term)//金額*利率*期限defouter=loanInstance.userif(outer.money<money){flash.message="需還款${money},賬戶只有${outer.money},請充值后再還款"redirect(action:"show",id:params.id)}else{loanInstance.status="已還款"loanInstance.save(flush:true)outer.money=outer.money-moneyif(outer.save(flush:true)){session.setAttribute("user",outer)defmoneyLog=newMoneyLog()moneyLog.money=-moneymoneyLog.user=outermoneyLog.reason="還款"moneyLog.remark=loanInstance.idasStringmoneyLog.save(flush:true)flash.message="還款成功!"}//循環(huán)每一個投資者defsize=loanInstance.investment.size()defmoneyLeft=moneyloanInstance.investment.eachWithIndex{investment,index->definner=investment.user//投資者defmoneyIn=0if(index==(size-1)){//最后一個投資者moneyIn=moneyLeft}else{moneyIn=money*investment.money/loanInstance.moneymoneyLeft=moneyLeft-moneyIn}inner.money=inner.money+moneyInif(inner.save(flush:true)){defmoneyLog=newMoneyLog()moneyLog.money=moneyInmoneyLog.user=innermoneyLog.reason="投資還款"moneyLog.remark=investment.idasStringmoneyLog.save(flush:true)}}redirect(action:"show",id:params.id)}}else{flash.message="${message(code:'default.not.found.message',args:[message(code:'loan.label',default:'Loan'),params.id])}"redirect(action:"list")}}//修改狀態(tài)為已還款,避免下次重復(fù)還款//(1)扣減借款人的資金//(2)創(chuàng)建借款人的資金記錄//(3)增加投資者的資金//(4)創(chuàng)建投資者的資金記錄4.2.5用戶資金管理功能實現(xiàn)(1)用戶資金管理功能圖4-7:圖4-7(2)用戶資金管理后臺操作流程圖4-8:圖4-8(3)后臺(controller)充值操作主要代碼及注釋如下:defrecharge={flash.message=""if(params.money){defmoney=params.moneyasBigDecimalif(money>0){defuser=User.get(session.getAttribute("user").idaslong)if(user){money=user.money+moneyuser.money=moneyif(user.save(flush:true)){session.setAttribute("user",user)defmoneyLog=newMoneyLog()moneyLog.money=moneymoneyLog.user=usermoneyLog.reason="充值"moneyLog.save(flush:true)flash.message="充值成功!"}}else{flash.message="登錄超時,請重新登錄"}}else{flash.message="請輸入大于0的數(shù)字"}}render(view:"recharge")}(4)后臺(controller)提現(xiàn)操作主要代碼及注釋如下:defcash={flash.message=""if(params.money){defmoney=params.moneyasBigDecimalif(money>0){defuser=User.get(session.getAttribute("user").idaslong)if(user){money=user.money-moneyif(money>=0){//余額足夠提現(xiàn)user.money=moneyif(user.save(flush:true)){session.setAttribute("user",user)defmoneyLog=newMoneyLog()moneyLog.money=-(params.moneyasBigDecimal)moneyLog.user=usermoneyLog.reason="提現(xiàn)"moneyLog.save(flush:true)flash.message="提現(xiàn)成功!"}}else{flash.message="請輸入小于${user.money}的提現(xiàn)金額"}4.2.6用戶資金日志功能實現(xiàn)后臺(controller)資金日志功能實現(xiàn)主要代碼及注釋如下:deflist={defuser=session.getAttribute("user")asUserdefmoneyLogInstanceListif(user.type=="admin"){moneyLogInstanceList=MoneyLog.list(params)}else

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論