




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于Grails框架的借貸平臺系統功能實現摘要隨著互聯網時代的到來,信息化技術得到了極大速度的發展,同時加之國家大力扶持小微企業創業,使得新型的借貸形式產生,以一種招投標項目形式發布,通過點對點的形式完成借貸業務。但是在此過程中存在很多問題,而且網絡犯罪屢見不鮮,所以金融領域企業急需開發一套功能完善,且安全的金融信貸平臺。在分析目前各類信貸APP后,根據用戶的實際需求,采用了Groovy語言、Grails框架、MVC模式開發該系統,首先對系統進行功能與非功能分析,然后在需求分析的基礎上設計了客戶資料管理模塊、借款管理模塊、投資管理模塊、充值交易管理模塊、提現交易管理模塊以及資金記錄管理模塊。該系統的開發過程中,實時考慮成本核算和系統實際的運行效果,目前系統已開發完成,并已滿足用戶的實際需求,具有一定的理論價值和實踐價值。關鍵詞:網絡借貸、Grails框架、Groovy語言、MVC模式目錄TOC\o"1-3"\h\u8335摘要 1117831緒論 5107091.1課題研究背景與意義 51.1.1研究背景 51.1.2研究意義 5314201.2國內外研究現狀 750301.3論文的結構及內容 9230971.3.1研究目標與內容 9302031.3.2本文結構 10141242相關技術概述 1159582.1MVC設計模式分析 1156872.2瀏覽器/服務器結構設計 122.3Grails開發技術 152.3.1Grails框架簡介 152.3.2Groovy程序設計語言 162.4MySQL數據庫 173網絡借貸平臺系統需求分析 173.1功能性需求分析 173.1.1用戶登錄注冊需求分析 183.1.2用戶借款管理需求分析 193.1.3用戶投資管理需求分析 203.1.4用戶資金管理需求分析 213.1.5用戶資金日志需求分析 213.2需求分析數據庫表展示 224網絡借貸平臺系統功能實現 254.1系統功能實現所需軟件 254.2用戶功能實現 264.2.1用戶登錄注冊功能實現 264.2.2用戶借款管理功能實現 284.2.3用戶投資管理功能實現 304.2.4用戶還款管理功能實現 314.2.5用戶資金管理功能實現 334.2.6用戶資金日志功能實現 355仿真使用結果與分析 366總結與展望 411緒論1.1課題研究背景與意義1.1.1研究背景近年來,隨著互聯網技術的迅猛發展,上網瀏覽、咨詢、購物甚至借貸都可以通過網絡的形式進行。21世紀初,從海外傳播過來的網絡借貸熱浪逐漸聲名鵲起。逐漸,人們不斷地發現出了網絡借貸的優點:能有效節省時間,不僅可以省去借款人與貸款人之間的會面與洽談,而且可以在有限的時間內讓更多的貸款人看到借款人的需求;能有效節約成本,工作成本只需要網站的維護成員便可以有效實現低成本地運營。2008年,美國的金融危機迅速席卷全球,作為已經融入世界經濟一體化的我國也深受其害,其中中小企業受到的影響最為深重。金融危機對中小企業的影響最集中體現在融資方面。融資難一直是制約中小企業發展的瓶頸問題,在金融危機下這個問題更加尖銳,甚至決定了企業的生死存亡。中小企業要想通過發行股票、債券等手段進行直接融資十分困難,雖然目前證券市場開設了創業投資板塊,但只是針對部分高科技企業,大部分中小企業仍然是以銀行的間接融資作為首選和最主要的融資渠道。目前,國家已經實施了相對寬松的貨幣政策,降低了銀行貸款利率,調增了商業銀行信貸規模,還出臺了有利于中小企業發展的有關政策。但是,銀行對中小企業發展信心不足,特別是在金融危機大背景下,銀行為了降低風險,更加慎重對待對中小企業的貸款,對中小企業“限貸”、“惜貸”、甚至“停貸”的現象仍然存在。而中小企業一方面由于自身營業收入下滑、庫存增加和貨款回收困難等,再加上融資渠道單一,導致企業資金緊張,其生產經營出現嚴重困難。在這樣的背景下,網絡借貸的形式越來越受到中小型企業的歡迎。1.1.2研究意義近些年,網絡借貸的形式變得越發普遍,特別是一些歐美發達國家,通過網絡借貸開發能夠實現的各種功能已經相當完善,可以滿足不同借款人的借貸需求。而隨著中國網絡時代的興起,這種模式也越來越得到廣大中國網民的認可,不僅可以通過網絡借貸實現中小型企業的融資,而且可以滿足很多網民的個人需求,如買房,升學,開網店等。同時像網絡借貸平臺這樣的新型金融貸款模型,也越來越得到金融投資者的認可。21世紀初,很多金融投資者質疑網絡借貸平臺的安全度,不敢在網上進行借貸交易。現今,隨著網絡借貸平臺功能的不斷完善,借貸平臺可以通過綁定支付寶、微信、銀聯等手機APP實現實名認證,在借貸平臺里不僅有借款人的詳細個人信息,而且有借款人詳細的借款原因和借款人承諾的借款利率,從而有效安全得保證了貸款人的財產安全。目前隨著互聯網技術的飛速發展,已經產生了互聯網金融(ITFIN)這一全新的金融模式,網絡借貸平臺就是其中一種,又因為借貸過程可以細化到個人,所以又可以稱作點對點借貸即P2P信貸。P2P信貸有以下優點:對第三方電子商務平臺來說,能夠為網站會員提供更多增值服務,提升網站粘性和競爭力;對銀行來說,則可以通過整合第三方電子商務平臺等社會資源,加速自身金融產品創新,挖掘新的商機;網絡貸款平臺將為銀行、第三方電子商務平臺、中小企業帶來“三方共贏”;網絡借貸還可以滿足金額少或者短期借款的用戶的個人需求。因此,P2P信貸平臺是互聯網新興技術與微小型金融業結合的一項創新產物。但是近年來,P2P信貸面臨的風險問題也是層出不窮,主要有以下幾點:第一,貸款利率遠超過銀行普遍水平,有些個體商戶無法短期內從銀行獲得貸款,便想從網絡平臺借貸,但由于缺乏網絡市場監管,整個P2P信貸平臺的貸款年利率都在15%以上;第二,網絡安全管理并沒有落實到位,平臺普遍缺少網絡安全專業方面的法律監察人員;第三,平臺的市場準入門檻不高,全網各類信貸平臺層出不窮,各平臺技術服務不可靠,客戶的信息安全沒有保障。1.2國內外研究現狀在我國,P2P網上信貸平臺到現在還屬于一種新型的借貸方式,并非已經落實到每家每戶。其實從2007年開始,P2P網上信貸模式才逐漸傳入我國,近些年隨著網絡電商的興起,才逐漸被人們所了解。但在歐美等發達國家,網絡信貸平臺的發展卻遠遠超過我國,各種從事電子商務或者金融投資的人士及網絡大眾都十分認可這種新型的借貸方式。他們認為,這種借貸方式不僅可以靈活得選擇借貸對象,而且可以不需要其他成本便可以輕松了解到借款人和貸款人的個人信息。在平臺的使用過程中,不僅借款人可以快速獲得自己的資金需求,而且貸款人可以選擇性地獲得增值利潤。據調查,美國最大的P2P網絡借貸平臺為Prosper,歐洲最大P2P網絡借貸平為Zopa,上述兩個平臺都采用了P2P金融服務,整個過程無需銀行介入。Zopa在2005年由英國首先引入,作為全球首發的P2P網絡信貸平臺,Zopa在設置借貸方案時,可以根據貸款人的想法設置合適的借貸方案,包括借貸金額,借貸周期和借貸方式。不同的貸款人選擇的方案也大相徑庭,有的貸款人選擇較高的回報率而對借款人的個人信息要求不高,而有的貸款人對于借款人的信用度要求極高而相對設置寬松的借貸利率。在借貸過程中,除了平臺之外,只有貸款人和借款人雙方進行交易,這種模式雖然很大程度上受到人們的歡迎,但其中存在的風險因素也十分巨大。而Prosper是在Zopa上線一年之后,在2006年引入美國網絡平臺,但實際上這兩個網絡借貸平臺的實現方式十分相似,都需要收取貸款人手續費,投資者管理費和逾期費用。唯一不同的是,Zopa平臺對投資者收取每年0.5%的管理費,對借貸者收取0-190英鎊的固定費用;而Prosper平臺對投資者收取每年1%的管理費;對借貸者收取一次性的0.5%-4.5%的手續費。反觀我國,在2015年前,我國網絡信貸的發展速度遠遠遲緩于歐美一些發達國家。但在2015年后,隨著我國經濟在金融危機的浪潮之后慢慢復蘇,加之網絡電商的興起,商業大眾化讓中國網民把目光不斷聚焦到這種新型的P2P借貸網站,比如拍拍貸,好利網等。但其實拍拍貸平臺在2007年就已經被開發出來。拍拍貸作為中國第一家網絡借貸平臺,在伊始,并不被大眾看好,因為當時網絡環境并不發達,加之沒有很好的監管機制,很多貸款人不敢將資金投入到網站中。在2008年金融危機之后,很多銀行對于貸款給中小型企業沒有足夠的信心,他們只能從網絡貸款和民間貸款中尋找出路。相比于民間貸款,網絡貸款的安全性、監管性和個人信息的保密性更能得到中小型企業的肯定。當時在北京、上海、廣州和深圳等一線城市,網絡貸款逐漸流行起來,這樣中小企業不僅能更迅速更靈活地獲得融資,而且貸款人也可以從中獲得自己設置日期和方案的利潤來彌補金融危機造成的資金缺口。隨著拍拍貸發展得如火如荼,一大批新型的網絡信貸平臺也逐漸興起。比如發展較好的有紅嶺創投,易貸365,好利網和宜農貸等。這些網絡信貸平臺的興起極大程度上促進了金融危機之后中國經濟的復蘇和發展。像拍拍貸的方案是收取借款人管理費和其他服務費用,但是對投資者免費,對籌資者6個月以下按本金2%收取,6個月以上按本金4%收取。這種固定的借貸方式不僅非常吸引投資者將資金投放到平臺,而且平臺還提供了預判欺詐系統使投資者更加放心。同時較低的利率和適當服務費用更能讓借款人接受。網絡借貸平臺的受眾除了中小型企業以外,還有很多大學生與研究生群體。因為大學生和研究生的經濟尚不獨立。但隨著中國經濟的高速發展和網絡購物的時興,現今大學生和研究生的購物欲已經遠超從前。在2013年我國第一個消費信貸分期購物平臺佰潮網的誕生,最早是為了滿足廣州區域的大學生對于電子數碼產品的需要而創立,但卻擴寬了網絡消費信貸的服務人群,是我國消費信貸分期型的開端,標志著網絡消費信貸邁上了一個新的臺階。在近幾年的調查中,中國的主要網絡貸款平臺開始強大起來,并且逐漸形成了自己的商業模式。從2018年之后,我國網絡信貸交易額已成飽和性。如下圖1-1所示。除了幾家知名的借貸平臺之外,其他很多草根型的借貸平臺通常在網站上承諾貸款人高回報率,以此吸引了很多投資人,但實際回報率卻遠不如預期,甚至在約定時間內收不回基本的本金,因此對整個網絡借貸平臺產生了較大的負面影響。所以安全性還是現在網絡借貸平臺需要注意的首要問題。圖1-11.3論文的結構及內容1.3.1研究目標及內容(1)研究目標本文基于Grails框架制作一個帶有基本借款還款功能的網絡借貸平臺,并以系統各項功能的實現為研究目標。(2)研究內容本文需查閱國內外基于Grails框架制作軟件系統的文獻、理解網絡借貸平臺的設計相關資料,明確課題研究背景及意義;掌握Grails框架制作的基本流程及使用Groovy面向對象編程語言和MVCWeb應用開發的基礎知識,并在論文中有所體現。達到的基本指標:(1)注冊-->新建借款項目-->收到投資-->提現(2)注冊-->充值-->投資借款項目-->收到還款(3)注冊-->充值-->還款(4)項目借款人可收到多個投資者的投資資金(5)項目投資者可投資多個不同的項目1.3.2本文結構本文基于Grails框架制作一個帶有基本借款還款功能的網絡借貸平臺,本文結構介紹如下:第一章為緒論,本章主要探討了網絡信貸平臺的誕生及發展史,且在不同的時間段結合不同的經濟和網絡發展情況研究了歐美等發達國家和國內的實際案例,結合以上背景探尋在現今大環境下如何建立好網絡借貸平臺。第二章為相關技術概述,整個程序使用的技術路線和手段:1、使用Grails附帶的一個內嵌式的HSQLDB(它是一個純java的關系數據庫)。2、Grails對象關系映射(GORM)API。3、JDBC驅動程序。4、建立在Hibernate之上。5、使用RaceTrack應用。其中主要介紹MVC設計模式分析、Grails開發技術和SQLSERVER數據庫。第三章為網絡借貸平臺需求分析,首先進行的是總體分析,分別從擬解決問題、系統總體業務、功能性分析和非功能性分析四個方面進行討論。然后對各個需要實現的功能模塊進行分析,分別是客戶資料管理模塊功能分析、借款管理模塊功能分析、投資管理模塊功能分析、充值交易管理模塊功能分析、提現交易管理模塊功能分析和資金記錄管理模塊功能分析。第四章為網絡借貸平臺設計,在上一章需求分析的基礎上,主要論述了整個程序的設計過程。首先對于整個架構進行總體設計,然后詳細對各個功能模塊進行設計。第五章為網絡借貸平臺的實現,本章主要基于Groovy編程語言實現,以系統的代碼編寫為依據,首先根據Grails設計出整體架構,然后根據層次依次實現系統的邏輯處理部分。第六章為網絡借貸平臺的測試,在整個系統開發完成之后,還要對于系統的各個功能進行安全性、抗壓性測試。因為開發環境較為優良,所以很可能在使用過程中會產生意想不到的錯處或漏洞。為了保證平臺的可持續性運行,所以平臺開發完成的測試是必不可少的。2相關技術概述2.1MVC模式分析MVC框架,英文全名ModelViewController,中文名稱對應分別是模型(model)——視圖(view)——控制器(controller):Model(模型)表示應用程序核心(比如數據庫記錄列表)。View(視圖)顯示數據(數據庫記錄)。
Controller(控制器)處理輸入(寫入數據庫記錄)。如圖2-1可以清晰地表示出一個用戶請求是如何通過MVC框架實現程序應答的:圖2-1網絡借貸平臺使用MVC模式進行系統層次方面的設計的目的是將M和V實現代碼分離,從而是同一個程序可以使用不同的表現形式。其中,View的定義較為清晰,即用戶界面。通俗來講,MVC框架就是幫助設計創建Web應用程序的一種模式。MVC模式同時提供了對HTML、CSS和JavaScript的完全控制。2.2瀏覽器/服務器結構設計設計網絡借貸平臺的過程中主要是應用了瀏覽器/服務器的結構設計形式。B/S結構(Browser/Server,瀏覽器/服務器模式),是WEB興起后的一種網絡結構模式,WEB瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器,如NetscapeNavigator或InternetExplorer,服務器安裝SQLServer、Oracle、MYSQL等數據庫。瀏覽器通過WebServer同數據庫進行數據交互。如圖2-2可清晰得看出B/S的體系結構。圖2-2網絡借貸平臺之所以使用B/S體系結構是因為這樣簡單可以通用瀏覽器就實現了原來需要復雜專用軟件才能實現的強大功能,并節約了開發成本,是一種全新的軟件系統構造技術。第一層是瀏覽器,即客戶端,只有簡單的輸入輸出功能,處理極少部分的事務邏輯。由于客戶不需要安裝客戶端,只要有瀏覽器就能上網瀏覽,所以它面向的是大范圍的用戶,所以界面設計得比較簡單,通用。第二層是WEB服務器,扮演著信息傳送的角色。當用戶想要訪問數據庫時,就會首先向WEB服務器發送請求,WEB服務器統一請求后會向數據庫服務器發送訪問數據庫的請求,這個請求是以SQL語句實現的。第三層是數據庫服務器,他扮演著重要的角色,因為它存放著大量的數據。當數據庫服務器收到了WEB服務器的請求后,會對SQL語句進行處理,并將返回的結果發送給WEB服務器,接下來,WEB服務器將收到的數據結果轉換為HTML文本形式發送給瀏覽器,也就是我們打開瀏覽器看到的界面。具體工作流程為:首先,客戶端發送請求。用戶在客戶端瀏覽器頁面提交表單操作,向服務器發送請求,等待服務器響應;然后,服務器端處理請求。服務器端接收并處理請求,應用服務器端通常使用服務器端技術,如JSP等,對請求進行數據處理,并產生響應;接下來,服務器端發送響應。服務器端把用戶請求的數據(網頁文件、圖片、聲音等等)返回給瀏覽器。最后,瀏覽器解釋執行HTML文件,呈現用戶界面。如圖2-3所示,可以展現出客戶端、服務器和瀏覽器之間的工作流程。圖2-3網絡借貸平臺使用B/S體系結構的優點有很多:因為B/S的開發環境是廣域網,這就意味著可以系統開發人員在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網的電腦就能使用,客戶端零維護。所以使用B/S系統的成本就會很低。不僅如此,系統的擴展還非常容易,只要能上網,再由系統管理員分配一個用戶名和密碼,就可以使用了。目前,各種軟件系統的改進和升級越來越頻繁,B/S架構的產品明顯體現著更為方便的特性,使用B/S體系的機構對于維護和升級軟件系統的會較其他系統更加簡單。2.3Grails開發技術2.3.1Grails框架簡介Grails是一個基于MVC模式的面向企業的Web框架。它經過大量實際應用驗證和擴展構建于Spring、Hivernate、Quartz和SiteMesh等開源框架上。它的設計使得開發人員可以比以前的J2EE規范更快地創建Web程序。相比于Grails,像Struts和Webwork是較早出現在J2EE平臺的優秀MVC框架。而Spring、Tapestry和JSF這些框架提供了非常好的分層能力。基于良好的MVC分離,為了提高開發效率命令,它們提供了許多現成的輔助類庫。Struts可以說是最穩定、最成熟的JavaWebMVC框架,它具有很強的可擴展性和可配置性。Webwork結構簡單,易于放大和調整;Spring更開放,更清晰且全面而高效,允許在復雜的應用程序中配置簡單的組件;JSF和Tapestry是基于組件的事件成熟框架模型類。上述框架各有優缺點,但它們都不易使用,且必須使用大量的XML文件進行配置管理。而Grails提供了一個面向用戶且易于使用的框架,這正是大多數JavaWeb框架所缺乏的。為了使Grails一直具備靈活性,選擇合適的實現技術至關重要,而且要遵循Java社區的“不重新發明輪子”的概念。這就是為什么Grails作為一種基礎設施去選擇時下最流行的開源技術。這個具體的開源項目分類是:(1)Hibernate:實際標準Java中的映射;(2)Spring:最流行的反轉控制容器和其他Java框架包裝器;(3)Quartz:極其靈活的企業級作業調度框架,可供持續作業。(4)SiteMesh:穩定的布局渲染框架。圖2-4圖2-4所示的框架,盡管被稱為輕量框架,但API仍然太過復雜。因此,Grails的主要目標之一是為用戶提供一個基于Groovy程序語言的動態特性且易于使用的抽象層。2.3.2Groovy程序設計語言
Groovy是一種基于JVM(Java虛擬機)的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性,Groovy代碼能夠與Java代碼很好地結合,也能用于擴展現有代碼。由于其運行在JVM上的特性,Groovy可以使用其他Java語言編寫的庫。Groovy可以直接將代碼編譯成字節碼(.class文件),這又保證了它在Java虛擬機(JVM)中能夠共享相同的對象模型。實際上,Groovy對象就是一個Java對象,并且也使用Java的編譯器和虛擬機(VM)。(引:舒丹基于Grails框架的MVC模型研究)Groovy中有以下特點:同時支持靜態和動態類型、支持運算符重載和本地語法列表和關聯數組,對正則表達式的本地支持,對各種標記語言,如XML和HTML原生支持。Groovy對于Java開發人員來說很簡單,因為Java和Groovy的語法非常相似。2.4MySQL數據庫網絡借貸管理系統使用的是由瑞典公司開發的MySQL關系型數據庫管理系統。MySQL是最流行的關系型數據庫管理系統之一,在WEB應用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關系數據庫管理系統)應用軟件之一。與其他的大型數據庫例如Oracle、DB2、SQLServer等相比,MySQL雖然有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。所以我們網絡借貸管理平臺作為模擬實際應用開發選擇的是MySQL數據庫。3網絡借貸平臺系統需求分析3.1功能性需求分析從網絡借貸平臺的用戶來看,應該分為下面幾個角色:系統管理員(admin)和普通用戶。對于這些功能角色來說,網絡借貸平臺還需要實現如圖3-1幾個方面的功能。如圖3-13.1.1用戶登錄注冊需求用戶注冊功能:進入網站后看到主頁提示,選擇注冊或者登陸。若是新用戶的話,點擊注冊。通過輸入自己的用戶編碼、證件號、設置的密碼、重復設置的密碼、用戶名、電子郵箱和手機號完成新用戶注冊的過程。用戶登陸功能:若是老用戶,進入網站主頁后,直接選擇登陸。通過輸入自己的用戶編碼和設置的密碼完成登陸。圖3-2為用戶登錄注冊需求分析圖圖3-23.1.2用戶借款管理需求用戶借款管理功能:登陸完成后,點擊借款管理。頁面可以顯示用戶借款項目的創建時間、結束時間、借款項目期限(月)、借款金額、利率。圖3-3為用戶借款管理需求分析圖圖3-33.1.3用戶投資管理需求用戶投資管理功能:點擊投資管理后,若是第一次進行投資,則選擇新建投資。頁面會顯示該網站可選擇的不同投資項目,點擊投資便可以成功完成一次投資。圖3-4為用戶投資管理需求分析圖圖3-43.1.4用戶資金管理需求用戶充值管理功能:點擊充值可以選擇充值的金額,此功能是方便用戶了解自己所擁有資金的數額以方便投資。用戶提現管理功能:點擊提現可以選擇提現的金額,此功能是方便提醒用戶查看自己投資項目的本金和利息在規定時間內是否有按時收回。注:因為制作的網絡借貸平臺是模擬企業進行的P2P系統,所以雖然有設置綁定銀行卡的環節,但實際操作功能是不綁定銀行卡的,充值和提現功能只做模擬使用。圖3-5為用戶資金管理需求分析圖圖3-53.1.5資金日志管理需求資金日志記錄功能:點擊資金記錄,可以顯示本用戶的所有資金流動的情況,如借款、投資、充值、提現等。3.2需求分析數據庫表展示表1Investment數據庫列名數據類型長度小數點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nend_datedatetime00Nlast_updateddatetime00Nloan_idbigint200Nmoneydecimal192Nstart_datedatetime00Nuser_idbigint200N表1所示為投資信息表(Investmentbook),主要記錄了投資人的id,投資項目創建日期,結束日期,更新日期,借款人的id和借款金額。表2loan數據庫列名數據類型長度小數點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nend_datedatetime00Nlast_updateddatetime00Nmoneydecimal192Nratedecimal192Nremarkvarchar50000Ystart_datedatetime00Nstatusvarchar2550Ytermint110N表2所示為借款信息表(loanbook),主要記錄了借款人的id,借款項目創建日期,借款項目結束日期,借款歸還期限(月),借款金額和利率。表3money_log數據庫列名數據類型長度小數點是否允許空值idbigint200Nversionbigint200Ndate_createddatetime00Nlast_updateddatetime00Nmoneydecimal192Nreasonvarchar2550Nremarkvarchar2550Yuser_idbigint200N表3所示為資金日志信息表(money_logbook),主要記錄了資金流動項目人的id,資金流動項目的創建日期,流動金額,資金周轉原因(可包括:充值、提現、投資和收入等)和需要的備注。表4sys_conf數據庫列名數據類型長度小數點是否允許空值idbigint200Nversionbigint200Nratedecimal192N表4所示為平臺收費比例表(sys_confbook),此表為系統配置表,可后臺設置平臺抽成每一筆資金流動的比例。表5user數據庫列名數據類型長度小數點是否允許空值idbigint200Nversionbigint200Nbankcardvarchar2550Ydate_createdatetime00Nemailvarchar2550Yid_numvarchar2550Nlast_updateddatetime00Nmoneydecimal192Npasswordvarchar2550Nphonevarchar2550Yrealnamevarchar2550Yremarkvarchar50000Ystatusvarchar50Ntypevarchar2550Nusernamevarchar2550N表5所示為用戶信息表(userbook),主要記錄了用戶的基本信息,包括用戶編碼,用戶證件號、用戶設置的系統登錄密碼、用戶名、電子郵箱、手機號、銀行賬號和備注等其他功能實現時的關聯信息。4網絡借貸平臺系統功能實現4.1系統功能實現所需軟件(1)XAMPP(存放數據庫)XAMPP是一個功能強大的建站集成軟件包。它可以在Windows、Linux、Solaris、MacOSX等多種操作系統下安裝使用。如果想要手工下載apache和mysql,需要很多的配置步驟。而XAMPP是一個易于安裝:只需下載,解壓縮,啟動即可。且包含MySQL、PHP和Perl的Apache發行版。XAMPP整合了Apache,mysql,并且可以支持php及filezilla的應用。Filezilla是搭建在apache上的應用,php是服務器端腳本,需要搭載在apache上,結合mysql數據庫可以制作應用網站。(2)NavicatforMYSQL(連接數據庫,進行可視化管理)NavicatforMySQL是一套專為MySQL設計的強大數據庫管理及開發工具。它可以用于任何3.21或以上的MySQL數據庫服務器,并支持大部份MySQL最新版本的功能,包括觸發器、存儲過程、函數、事件、檢索、權限管理等等。NavicatforMySQL基于Windows平臺,為MySQL量身訂作,提供類似于MySQL的用管理界面工具。此解決方案的出現,將解放PHP、J2EE等程序員以及數據庫設計者、管理者的大腦,降低開發成本,為用戶帶來更高的開發效率。NavicatforMySQL使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創建、組織、存取和共享信息。用戶可完全控制
MySQL數據庫和顯示不同的管理資料,包括一個多功能的圖形化管理用戶和訪問權限的管理工具,方便將數據從一個數據庫轉移到另一個數據庫中(LocaltoRemote、RemotetoRemote、RemotetoLocal),進行檔案備份。NavicatforMySQL支援Unicode,以及本地或遠程MySQL服務器多連線,用戶可瀏覽數據庫、建立和刪除數據庫、編輯數據、建立或執行SQLqueries、管理用戶權限(安全設定)、將數據庫備份/復原、匯入/匯出數據(支援CSV,TXT,DBF和XML檔案種類)等。軟件與任何MySQL5.0.x伺服器版本兼容,支援Triggers,以及BINARYVARBINARY/BIT數據種類等的規范。4.2用戶功能實現4.2.1用戶登錄注冊功能實現(1)用戶注冊登錄功能圖4-1:圖4-1(2)用戶注冊登錄后臺操作流程圖4-2:圖4-2(3)后臺(controller)注冊操作主要代碼及注釋如下:defregister={defuserInstance=newUser()userIperties=paramsreturn[userInstance:userInstance]}//用戶進行注冊用戶名后,轉到后臺進行注冊用戶信息保存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])}}//后臺進行保存用戶信息時,進行用戶密碼審核,為防止用戶設置密碼出現錯誤,會在設置密碼時,要求用戶進行第二次輸入密碼。若是兩次輸入密碼不同,系統會出現提醒。注冊成功后便可跳回登陸頁面。(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="用戶已經被封禁"render(view:"login")}else{session.setAttribute("user",userInstance)render(view:"home")}}else{flash.message="用戶名或密碼不匹配"render(view:"login")}}}//登錄時只需要輸入用戶編碼和密碼,后臺進行用戶編碼和密碼的匹配性驗證。若用戶編碼與密碼匹配,則登陸成功;若用戶編碼與密碼不匹配,則登錄失敗。4.2.2用戶借款管理功能實現(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()]}//創建基本借款項目4.2.3用戶投資管理功能實現(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用戶還款功能實現后臺(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="還款成功!"}//循環每一個投資者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")}}//修改狀態為已還款,避免下次重復還款//(1)扣減借款人的資金//(2)創建借款人的資金記錄//(3)增加投資者的資金//(4)創建投資者的資金記錄4.2.5用戶資金管理功能實現(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的數字"}}render(view:"recharge")}(4)后臺(controller)提現操作主要代碼及注釋如下: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){//余額足夠提現user.money=moneyif(user.save(flush:true)){session.setAttribute("user",user)defmoneyLog=newMoneyLog()moneyLog.money=-(params.moneyasBigDecimal)moneyLog.user=usermoneyLog.reason="提現"moneyLog.save(flush:true)flash.message="提現成功!"}}else{flash.message="請輸入小于${user.money}的提現金額"}4.2.6用戶資金日志功能實現后臺(controller)資金日志功能實現主要代碼及注釋如下:deflist={defuser=session.getAttribute("user")asUserdefmoneyLogInstanceListif(user.type=="admin"){moneyLogInstanceList=MoneyLog.list(params)}else
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 涂改用品企業制定與實施新質生產力戰略研究報告
- 2025-2030中國塑料薄膜覆蓋機行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國基因檢測行業發展分析及投資風險與戰略研究報告
- 2025-2030中國城市燃氣行業全景調研與發展戰略研究咨詢報告
- 2025-2030中國固定式排放控制催化劑行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國回收棉行業發展分析及競爭力研究與發展趨勢預測報告
- 2025-2030中國商用鹽基軟水劑行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國商業排氣扇行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025-2030中國呼叫監控軟件行業市場發展趨勢與前景展望戰略研究報告
- 2025-2030中國吸塑包裝材料行業市場現狀供需分析及投資評估規劃分析研究報告
- 2024年中小學教師資格考試復習資料
- 軍事國防教育基地方案
- 金氏五行升降中醫方集
- 蛋雞155標準化立體養殖模式
- 小兒常見皮疹識別與護理
- 2025年山西經貿職業學院單招職業技能考試題庫新版
- 某連鎖藥店公司發展戰略
- 浙江省湖州市德清縣2025年中考語文模擬考試試卷(附答案)
- 2025年無錫南洋職業技術學院單招職業技能測試題庫帶答案
- 2025年河南工業和信息化職業學院單招職業技能測試題庫及答案1套
- 校長在2025春季開學思政第一課講話:用《哪吒2》如何講好思政課
評論
0/150
提交評論