mysql基于SpringBoot的“1818小酒馆”商城网站的设计与实现毕业设计源码192004
目 ?錄
摘要
1 緒論
1.1研究背景與意義
1.2開發(fā)現(xiàn)狀
1.3系統(tǒng)開發(fā)技術(shù)的特色
1.4論文結(jié)構(gòu)與章節(jié)安排
2?1818小酒館商城分析
2.1 可行性分析
2.2 系統(tǒng)流程分析
2.2.1數(shù)據(jù)增加流程
2.3.2數(shù)據(jù)修改流程
2.3.3數(shù)據(jù)刪除流程
2.3 系統(tǒng)功能分析
2.3.1 功能性分析
2.3.2 非功能性分析
2.4 系統(tǒng)用例分析
2.5本章小結(jié)
3 1818小酒館商城總體設(shè)計(jì)
3.1 系統(tǒng)架構(gòu)設(shè)計(jì)
3.2 系統(tǒng)功能模塊設(shè)計(jì)
3.2.1整體功能模塊設(shè)計(jì)
3.2.2用戶模塊設(shè)計(jì)
3.2.3評(píng)論管理模塊設(shè)計(jì)
3.2.3商城管理模塊設(shè)計(jì)
3.2.5訂單管理模塊設(shè)計(jì)
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
3.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
3.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
3.4本章小結(jié)
4?1818小酒館商城詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
4.1用戶功能模塊
4.1.1 前臺(tái)首頁(yè)界面
4.1.2 用戶登錄界面
4.1.3用戶注冊(cè)界面 23
4.1.4商品詳情界面 24
4.1.5 收貨地址界面
4.1.6 我的訂單界面
4.2管理員功能模塊
4.2.1 用戶管理界面
4.2.2 酒品資訊界面
4.2.3 站點(diǎn)管理界面
4.2.4 商城管理界面
4.2.5更多管理界面
5系統(tǒng)測(cè)試 31
5.1測(cè)試的目的 31
5.2 功能測(cè)試 31
5.3 性能測(cè)試 32
結(jié)論 33
參考文獻(xiàn) 34
致??謝
摘要
信息化社會(huì)內(nèi)需要與之針對(duì)性的信息獲取途徑,但是途徑的擴(kuò)展基本上為人們所努力的方向,由于站在的角度存在偏差,人們經(jīng)常能夠獲得不同類型信息,這也是技術(shù)最為難以攻克的課題。針對(duì)1818小酒館商城等問(wèn)題,對(duì)1818小酒館商城進(jìn)行研究分析,然后開發(fā)設(shè)計(jì)出1818小酒館商城以解決問(wèn)題。
1818小酒館商城主要功能模塊包括用戶管理、酒品商城、分類列表、訂單列表、訂單信息、退單申請(qǐng),采取面對(duì)對(duì)象的開發(fā)模式進(jìn)行軟件的開發(fā)和硬體的架設(shè),能很好的滿足實(shí)際使用的需求,完善了對(duì)應(yīng)的軟體架設(shè)以及程序編碼的工作,采取MySQL作為后臺(tái)數(shù)據(jù)的主要存儲(chǔ)單元,采用springboot框架、Java技術(shù)、Ajax技術(shù)進(jìn)行業(yè)務(wù)系統(tǒng)的編碼及其開發(fā),實(shí)現(xiàn)了本系統(tǒng)的全部功能。本次報(bào)告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎(chǔ)。針對(duì)1818小酒館商城的各項(xiàng)需求以及技術(shù)問(wèn)題進(jìn)行分析,證明了系統(tǒng)的必要性和技術(shù)可行性,然后對(duì)設(shè)計(jì)系統(tǒng)需要使用的技術(shù)軟件以及設(shè)計(jì)思想做了基本的介紹,最后來(lái)實(shí)現(xiàn)1818小酒館商城和部署運(yùn)行使用它。
關(guān)鍵詞:springboot技術(shù);MYSQL;1818小酒館商城
Abstract
In the information society, there is a need for targeted information access, but the expansion of access is basically the direction of people's efforts. Due to the deviation of the perspective, people can often obtain different types of information, which is also the most difficult subject for technology to overcome. Aiming at the problems of "1818 tavern" mall, this paper studies and analyzes the "1818 tavern" mall, and then develops and designs the "1818 tavern" mall to solve the problems.
The main functional modules of "1818 tavern" mall include user management, wine mall, classification list, order list, order information and refund application. The object-oriented development mode is adopted for software development and hardware erection, which can well meet the needs of actual use, improve the corresponding software erection and program coding, take MySQL as the main storage unit of background data, and adopt springboot framework Java technology and Ajax technology encode and develop the business system, and realize all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the "1818 tavern" mall, proves the necessity and technical feasibility of the system, and then makes a basic introduction to the technical software and design ideas needed to design the system. Finally, it realizes the "1818 tavern" mall and deploys it.
Keywords:Springboot technology; MYSQL; "1818 tavern" mall
1 緒論
1.1研究背景與意義
近年來(lái),隨著移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,除了傳統(tǒng)的網(wǎng)頁(yè)瀏覽、資料搜索、發(fā)送電子郵件等基本應(yīng)用外,國(guó)內(nèi)大多數(shù)網(wǎng)民已經(jīng)漸漸習(xí)慣了通過(guò)網(wǎng)絡(luò)接受購(gòu)物、通訊、旅游、娛樂(lè)等傳統(tǒng)功能之外的新服務(wù)模式,其中利用網(wǎng)絡(luò)購(gòu)物也日益成為人們生活中一種重要的購(gòu)物形式。互聯(lián)網(wǎng)的快速發(fā)展為1818小酒館商城發(fā)展提供了強(qiáng)大保障和支撐,另外,在線網(wǎng)上購(gòu)物的外部環(huán)境也逐漸得到了改善,移動(dòng)互聯(lián)網(wǎng)終端(手機(jī)、平板)使得網(wǎng)民結(jié)構(gòu)變得越來(lái)越大眾化,網(wǎng)上支付結(jié)算手段越來(lái)越便捷,快遞物流越來(lái)越暢通,相應(yīng)的法規(guī)政策也越來(lái)越完善。現(xiàn)如今,在線網(wǎng)上購(gòu)物對(duì)人們的吸引力越來(lái)越大,人們對(duì)網(wǎng)上購(gòu)物的看法也從一開始的不了解到了解,從懷疑到逐漸信任,從拒絕到慢慢接受并習(xí)慣。在線網(wǎng)上購(gòu)物的觀念已經(jīng)越來(lái)越深入人心,促使人們?cè)诰€網(wǎng)上購(gòu)物的主要因素有:
(1)方便快捷。網(wǎng)上購(gòu)物可全天 24 小時(shí)營(yíng)業(yè),人們不需要奔赴到商店就可進(jìn)行購(gòu)物,購(gòu)買的美酒也可以直接送達(dá)到家。這樣就使得消費(fèi)者即使足不出戶,也能買到來(lái)自世界各地得喜愛(ài)美酒。
(2)信息量大。相比于傳統(tǒng)的購(gòu)物的方式,電子商務(wù)所能容納的信息量非常大,既包括現(xiàn)實(shí)產(chǎn)品也包括虛擬產(chǎn)品。另外,還可以提供一些比較特殊的產(chǎn)品,既能保護(hù)消費(fèi)者的個(gè)人隱私,又能滿足消費(fèi)者不同的心理需求。
(3)私密性強(qiáng)。消費(fèi)者有時(shí)候在購(gòu)買一些不愿意讓別人知道的美酒時(shí),利用網(wǎng)上購(gòu)物,賣家和快遞物流都可以保護(hù)好用戶的隱私,這樣就可以避免一些不必要的麻煩。
1.2開發(fā)現(xiàn)狀
由于近年來(lái)在線銷售行業(yè)的興起,也了解了一些相關(guān)信息。在中國(guó),以前的銷售只是傳統(tǒng)銷售,而在線銷售似乎滿足了市場(chǎng)需求。到目前為止,有一些家喻戶曉的名字,如淘寶和天貓。然而,這種在線銷售也有一些缺點(diǎn):用戶不能在下訂單并付款后立即提貨,他們還應(yīng)該考慮貨物是否受損。該系統(tǒng)是根據(jù)美酒網(wǎng)絡(luò)上的銷售情況開發(fā)的。
經(jīng)過(guò)幾年的發(fā)展,許多被消費(fèi)者認(rèn)可的網(wǎng)上購(gòu)物中心已經(jīng)出現(xiàn)在國(guó)內(nèi)外。這些網(wǎng)上購(gòu)物中心的內(nèi)容是多樣化的,它們包含的功能相對(duì)完善,包括注冊(cè)用戶、搜索美酒、管理訂單、介紹美酒細(xì)節(jié)以及在線留言。如今,互聯(lián)網(wǎng)的廣泛使用在一定程度上導(dǎo)致了國(guó)內(nèi)外在線購(gòu)物中心的發(fā)展,只要企業(yè)通過(guò)這個(gè)平臺(tái)在線打字,就可以隨時(shí)管理系統(tǒng)的內(nèi)容。通過(guò)展示美酒內(nèi)容和發(fā)布公告,鼓勵(lì)消費(fèi)者購(gòu)買和進(jìn)行在線交易。
1.3系統(tǒng)開發(fā)技術(shù)的特色
(1)1818小酒館商城中的web后臺(tái)管理中的后端不再使用古老的jsp+javabean+servlet技術(shù),而是使用當(dāng)前主流的springboot框架,它減少java配置代碼,簡(jiǎn)化編程代碼,目前springboot框架也是很多企業(yè)選擇的框架之一。
(2)1818小酒館商城中的web后臺(tái)管理中的前端使用的是JavaScript框架,它配合ajax[8]和jquery可以美化頁(yè)面設(shè)計(jì)。
(3)1818小酒館商城中數(shù)據(jù)庫(kù)用的mysql5.7,它執(zhí)行效率高。
1.4論文結(jié)構(gòu)與章節(jié)安排
論文將分層次經(jīng)行編排,除去論文摘要致謝文獻(xiàn)參考部分,正文部分還會(huì)對(duì)網(wǎng)站需求做出分析,以及闡述大體的設(shè)計(jì)和實(shí)現(xiàn)的功能,最后羅列部分調(diào)測(cè)記錄,論文主要架構(gòu)如下:
第一章:引言。第一章主要介紹了課題研究的背景,系統(tǒng)開發(fā)的現(xiàn)狀和本文的開發(fā)現(xiàn)狀與主要工作。
第二章:系統(tǒng)需求分析。第二章主要從系統(tǒng)的用戶、功能等方面進(jìn)行需求分析。
第三章:系統(tǒng)設(shè)計(jì)。第三章主要對(duì)系統(tǒng)框架、系統(tǒng)功能模塊、數(shù)據(jù)庫(kù)進(jìn)行功能設(shè)計(jì)。
第四章:系統(tǒng)實(shí)現(xiàn)。第四章主要介紹了系統(tǒng)框架搭建、系統(tǒng)界面的實(shí)現(xiàn)。
第五章:系統(tǒng)測(cè)試。第五章主要對(duì)系統(tǒng)的部分界面進(jìn)行測(cè)試并對(duì)主要功能進(jìn)行測(cè)試
第六章:總結(jié)。
2?1818小酒館商城分析
系統(tǒng)分析是開發(fā)一個(gè)項(xiàng)目的先決條件,通過(guò)系統(tǒng)分析可以很好的了解系統(tǒng)的主體用戶的基本需求情況,同時(shí)這也是項(xiàng)目的開發(fā)的原因。進(jìn)而對(duì)系統(tǒng)開發(fā)進(jìn)行可行性分析,通常包括技術(shù)可行性、經(jīng)濟(jì)可行性等,可行性分析同時(shí)也是從項(xiàng)目整體角度進(jìn)行的分析。然后就是對(duì)項(xiàng)目的具體需求進(jìn)行分析,分析的手段一般都是通過(guò)用戶的用例圖來(lái)實(shí)現(xiàn)。下面是詳細(xì)的介紹。
2.1 可行性分析
(1)經(jīng)濟(jì)可行性:
在項(xiàng)目上使用的工具大部分都是是當(dāng)下流行開源免費(fèi)的,所以在開發(fā)前期,開發(fā)時(shí)用于項(xiàng)目的經(jīng)費(fèi)將會(huì)大大降低,不會(huì)讓開發(fā)該軟件在項(xiàng)目啟動(dòng)期受到經(jīng)費(fèi)的影響,所以經(jīng)濟(jì)上還是可行的。盡量用最少的花費(fèi)去滿足用戶的需求。省下經(jīng)費(fèi)用于人工費(fèi),以及設(shè)備費(fèi)用。將在無(wú)紙化,高效率的道路上越走越遠(yuǎn)。
所以經(jīng)濟(jì)可行性沒(méi)有問(wèn)題。
(2)操作可行性:
此次項(xiàng)目設(shè)計(jì)參考了幾個(gè)該模式下網(wǎng)站的開發(fā)案例,對(duì)他們的操作界面分析,將眾多案例結(jié)合在一起,突出以人為本簡(jiǎn)化操作,所以具有基本計(jì)算機(jī)知識(shí)的人都會(huì)操作本項(xiàng)目。
因此操作可行性也沒(méi)有問(wèn)題。
(3)技術(shù)可行性:
技術(shù)可行性指的是對(duì)于搭建框架的可行性,以及有更優(yōu)秀的技術(shù)出現(xiàn)時(shí)系統(tǒng)的技術(shù)更新?lián)Q代的納新性如何,開發(fā)時(shí)間成本費(fèi)用比如何。
現(xiàn)有的springboot技術(shù)能夠迎合所有電子商務(wù)系統(tǒng)的搭建。開發(fā)這個(gè)1818小酒館商城的時(shí)候我采用了springboot+MYSQL用以運(yùn)行整體程序。
綜上所述技術(shù)可行性也沒(méi)有問(wèn)題。
(4)法律可行性:
從開發(fā)者角度來(lái)看,springboot和MYSQL是網(wǎng)上開源且免費(fèi)的,在知識(shí)產(chǎn)權(quán)方面不會(huì)產(chǎn)生任何法律糾紛。
從用戶使用角度來(lái)看,只要不再系統(tǒng)上販賣違禁品,對(duì)系統(tǒng)做出條約協(xié)議,杜絕非法支付即可。
綜上所述法律可行性也沒(méi)有問(wèn)題。
2.2系統(tǒng)流程分析
業(yè)務(wù)流程是用一些特定的符合和線條來(lái)進(jìn)行演示用戶在使用系統(tǒng)時(shí)的過(guò)程,在進(jìn)行系統(tǒng)分析的時(shí)候,業(yè)務(wù)流程可以幫助開發(fā)人員更好的理解業(yè)務(wù),發(fā)現(xiàn)錯(cuò)誤,完善系統(tǒng)。
2.2.1 數(shù)據(jù)增加流程
用戶成功登入系統(tǒng)后就能夠?qū)崿F(xiàn)增加數(shù)據(jù)的操作,增加數(shù)據(jù)的編號(hào)是特定的,系統(tǒng)生成,用戶不能隨意填寫,除了編號(hào)以外,其他增加信息用戶自己填寫,填寫后的信息經(jīng)過(guò)系統(tǒng)驗(yàn)證,驗(yàn)證合法通過(guò)就顯示增加數(shù)據(jù)成功了,相反的話,就沒(méi)有增加成功,圖2-1顯示的就是在增加數(shù)據(jù)時(shí)的流程。
?
圖2-1 ?數(shù)據(jù)增加流程圖
2.2.2 數(shù)據(jù)修改流程
數(shù)據(jù)修改時(shí)的流程和上面介紹的數(shù)據(jù)增加時(shí)的流程差不多,如圖2-2所示。
?
圖2-2 ?數(shù)據(jù)修改流程圖
2.2.3 數(shù)據(jù)刪除流程
如果系統(tǒng)里面存在一些沒(méi)有用的數(shù)據(jù)的話,相關(guān)的管理人員還可以對(duì)這些數(shù)據(jù)進(jìn)行刪除,圖2-3就是數(shù)據(jù)刪除時(shí)的流程圖。
?
圖2-3 ?數(shù)據(jù)刪除流程圖
2.3?系統(tǒng)功能分析
2.3.1 功能性分析
按照1818小酒館商城的角色,我劃分為了普通用戶管理模塊和管理員管理模塊這兩大部分。
普通用戶管理模塊:
(1)用戶注冊(cè)登錄:用戶注冊(cè)為用戶并登錄1818小酒館商城;普通用戶對(duì)個(gè)人信息的增刪改查,比如個(gè)人資料,密碼修改。
(2)查看1818小酒館商城的首頁(yè)信息:1818小酒館商城的首頁(yè)信息包含了首頁(yè)、酒品資訊、公告消息酒品商城、我的收藏、我的賬戶、個(gè)人中心等。
(3)公告消息:當(dāng)用戶當(dāng)點(diǎn)“公告消息”這一菜單,會(huì)顯示管理員在后臺(tái)發(fā)布的所有的公告消息,可以查看詳情;
(4)酒品資訊:當(dāng)用戶點(diǎn)擊“酒品資訊”這一菜單,會(huì)顯示管理員在后臺(tái)發(fā)布的所有的酒品資訊,可以查看詳情,進(jìn)行收藏、點(diǎn)贊、評(píng)論等;
(5)我的收藏:在“我的”下可以查看管理“我的收藏”信息,可以查看收藏,也可以對(duì)不喜歡的信息進(jìn)行刪除收藏;
管理員管理模塊:
(1)登錄:管理員的賬號(hào)是在數(shù)據(jù)表表中直接設(shè)置生成的,不需要進(jìn)行注冊(cè);
(2)站點(diǎn)管理:當(dāng)點(diǎn)擊“站點(diǎn)管理”這一菜單的時(shí)候,會(huì)出現(xiàn)輪播圖+公告欄兩個(gè)子菜單,可以對(duì)這兩個(gè)模塊進(jìn)行增刪改查操作;
(3)用戶管理:當(dāng)點(diǎn)擊“用戶管理”這一菜單的時(shí)候,會(huì)出現(xiàn)管理員+普通用戶兩個(gè)子菜單,可以對(duì)這兩個(gè)模塊進(jìn)行增刪改查操作;
(4)內(nèi)容管理:當(dāng)點(diǎn)擊“內(nèi)容管理”這一菜單的時(shí)候,會(huì)出現(xiàn)酒品資訊+酒品資訊分類這兩個(gè)子菜單,能夠?qū)τ脩粼谇芭_(tái)提交的酒品資訊進(jìn)行管理,同時(shí)對(duì)前臺(tái)展示的酒品商城進(jìn)行增刪改查操作;
(5)商城管理:當(dāng)點(diǎn)擊“商城管理”這一菜單的時(shí)候,會(huì)出現(xiàn)酒品商城+分類列表+訂單列表這三個(gè)子菜單,能夠?qū)?/span>這三個(gè)模塊進(jìn)行增刪改查操作;
(6)更多管理:當(dāng)點(diǎn)擊“更多管理”這一菜單的時(shí)候,會(huì)出現(xiàn)訂單列表+退單申請(qǐng)這兩個(gè)子菜單,能夠?qū)?/span>這兩個(gè)模塊進(jìn)行增刪改查操作;
2.3.2 非功能性分析
1818小酒館商城的非功能性需求比如1818小酒館商城的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:
表3-11818小酒館商城非功能需求表
| 安全性 | 主要指1818小酒館商城數(shù)據(jù)庫(kù)的安裝,數(shù)據(jù)庫(kù)的使用和密碼的設(shè)定必須合乎規(guī)范。 |
| 可靠性 | 可靠性是指1818小酒館商城能夠安裝用戶的指示進(jìn)行操作,經(jīng)過(guò)測(cè)試,可靠性90%以上。 |
| 性能 | 性能是影響1818小酒館商城占據(jù)市場(chǎng)的必要條件,所以性能最好要佳才好。 |
| 可擴(kuò)展性 | 比如數(shù)據(jù)庫(kù)預(yù)留多個(gè)屬性,比如接口的使用等確保了系統(tǒng)的非功能性需求。 |
| 易用性 | 用戶只要跟著1818小酒館商城?的頁(yè)面展示內(nèi)容進(jìn)行操作,就可以了。 |
| 可維護(hù)性 | 1818小酒館商城?開發(fā)的可維護(hù)性是非常重要的,經(jīng)過(guò)測(cè)試,可維護(hù)性沒(méi)有問(wèn)題 |
2.4?系統(tǒng)用例分析
通過(guò)2.3功能的分析,得出了本1818小酒館商城的用例圖:
用戶角色用例如圖2-3所示。
?
圖2-3?1818小酒館商城普通用戶角色用例圖
web后臺(tái)管理上的管理員是維護(hù)整個(gè)1818小酒館商城中所有數(shù)據(jù)信息的。管理員角色用例如圖2-4所示。
?
圖2-5?1818小酒館商城管理員角色用例圖
2.5本章小結(jié)
本章主要通過(guò)對(duì)1818小酒館商城?的可行性分析、流程分析、功能需求分析、系統(tǒng)用例分析,確定整個(gè)1818小酒館商城?要實(shí)現(xiàn)的功能。同時(shí)也為1818小酒館商城?的代碼實(shí)現(xiàn)和測(cè)試提供了標(biāo)準(zhǔn)。
3 1818小酒館商城?總體設(shè)計(jì)
本章主要討論的內(nèi)容包括1818小酒館商城的功能模塊設(shè)計(jì)、數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)。
3.1 系統(tǒng)架構(gòu)設(shè)計(jì)
本1818小酒館商城?從架構(gòu)上分為三層:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)以及數(shù)據(jù)層(DL)。
圖3-11818小酒館商城架構(gòu)設(shè)計(jì)圖
?
表現(xiàn)層(UI):又稱UI層,主要完成本1818小酒館商城的UI交互功能,一個(gè)良好的UI可以打打提高用戶的用戶體驗(yàn),增強(qiáng)用戶使用本1818小酒館商城時(shí)的舒適度。UI的界面設(shè)計(jì)也要適應(yīng)不同版本的1818小酒館商城?以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進(jìn)行交互操作時(shí)必須要得到與之相符的交互結(jié)果,這就要求表現(xiàn)層要與業(yè)務(wù)邏輯層進(jìn)行良好的對(duì)接。
業(yè)務(wù)邏輯層(BLL):主要完成本1818小酒館商城的數(shù)據(jù)處理功能。用戶從表現(xiàn)層傳輸過(guò)來(lái)的數(shù)據(jù)經(jīng)過(guò)業(yè)務(wù)邏輯層進(jìn)行處理交付給數(shù)據(jù)層,系統(tǒng)從數(shù)據(jù)層讀取的數(shù)據(jù)經(jīng)過(guò)業(yè)務(wù)邏輯層進(jìn)行處理交付給表現(xiàn)層。
數(shù)據(jù)層(DL):由于本1818小酒館商城的數(shù)據(jù)是放在服務(wù)端的mysql數(shù)據(jù)庫(kù)中,因此本屬于服務(wù)層的部分可以直接整合在業(yè)務(wù)邏輯層中,所以數(shù)據(jù)層中只有數(shù)據(jù)庫(kù),其主要完成本1818小酒館商城?的數(shù)據(jù)存儲(chǔ)和管理功能。
3.2?系統(tǒng)功能模塊設(shè)計(jì)
3.2.1整體功能模塊設(shè)計(jì)
在上一章節(jié)中主要對(duì)系統(tǒng)的功能性需求和非功能性需求進(jìn)行分析,并且根據(jù)需求分析了本1818小酒館商城中的用例。那么接下來(lái)就要開始對(duì)本1818小酒館商城的架構(gòu)、主要功能和數(shù)據(jù)庫(kù)開始進(jìn)行設(shè)計(jì)。1818小酒館商城根據(jù)前面章節(jié)的需求分析得出,其總體設(shè)計(jì)模塊圖如圖3-2所示。
圖3-2?1818小酒館商城功能模塊圖
?
3.2.2用戶模塊設(shè)計(jì)
后臺(tái)管理者能夠?qū)崿F(xiàn)對(duì)前臺(tái)注冊(cè)的用戶增刪改查操作,用戶模塊結(jié)構(gòu)圖如下圖:
?
圖3-3用戶模塊結(jié)構(gòu)圖
3.2.3評(píng)論管理模塊設(shè)計(jì)
1818小酒館商城是一個(gè)交流性質(zhì)的公開平臺(tái),用戶用戶和管理人員用戶可以對(duì)平臺(tái)上信息進(jìn)行評(píng)論,增加用戶之間的互動(dòng)性。但是同時(shí)也為了更好的規(guī)范評(píng)論的內(nèi)容,給予管理員刪除不合適的言論的功能,所以需要專門設(shè)計(jì)一個(gè)評(píng)論管理模塊,具體的結(jié)構(gòu)圖如下:
?
圖3-4評(píng)論模塊結(jié)構(gòu)圖
3.2.4商城管理模塊設(shè)計(jì)
1818小酒館商城是中需要存儲(chǔ)不少商品信息,其模塊功能結(jié)構(gòu),具體的結(jié)構(gòu)圖如下:
?
圖3-5商城模塊結(jié)構(gòu)圖
3.2.5訂單管理模塊設(shè)計(jì)
1818小酒館商城最重要的一個(gè)功能就是購(gòu)買,其模塊功能結(jié)構(gòu),具體的結(jié)構(gòu)圖如下:
?
圖3-5訂單模塊結(jié)構(gòu)圖
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括需求分析、概念模型設(shè)計(jì)、數(shù)據(jù)庫(kù)表建立三大過(guò)程,其中需求分析前面章節(jié)已經(jīng)闡述,概念模型設(shè)計(jì)有概念模型和邏輯結(jié)構(gòu)設(shè)計(jì)兩部分。
3.3.1 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
下面是整個(gè)1818小酒館商城?中主要的數(shù)據(jù)庫(kù)表總E-R實(shí)體關(guān)系圖。
圖3-6?1818小酒館商城?總E-R關(guān)系圖
?
下面根據(jù)1818小酒館商城?的數(shù)據(jù)庫(kù)總E-R關(guān)系圖可以得出1818小酒館商城需要很多E-R圖,在此羅列出來(lái)一些主要的數(shù)據(jù)庫(kù)E-R模型圖。
?
圖3-7普通用戶E-R關(guān)系圖
?
圖3-8?退單申請(qǐng)E-R關(guān)系圖
?
圖3-9商品商城E-R關(guān)系圖
?
圖3-10訂單信息E-R關(guān)系圖
3.3.2 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)
通過(guò)上一小節(jié)中1818小酒館商城?中總E-R關(guān)系圖上得出一共需要?jiǎng)?chuàng)建很多個(gè)數(shù)據(jù)表。在此我主要羅列幾個(gè)主要的數(shù)據(jù)庫(kù)表結(jié)構(gòu)設(shè)計(jì)。
ordinary_users表:
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| ordinary_users_id | int | 11 | 是 | 是 | 普通用戶ID |
| user_name | varchar | 64 | 是 | 否 | 用戶姓名 |
| user_gender | varchar | 64 | 否 | 否 | 用戶性別 |
| user_age | varchar | 64 | 否 | 否 | 用戶年齡 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| order_information表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| order_information_id | int | 11 | 是 | 是 | 訂單信息ID |
| order_number | varchar | 64 | 否 | 否 | 訂單編號(hào) |
| wine_name | varchar | 64 | 否 | 否 | 酒品名稱 |
| wine_type | varchar | 64 | 否 | 否 | 酒品類型 |
| wine_unit_price | varchar | 64 | 否 | 否 | 酒品單價(jià) |
| purchase_user | int | 11 | 否 | 否 | 購(gòu)買用戶 |
| purchase_time | datetime | 0 | 否 | 否 | 購(gòu)買時(shí)間 |
| purchase_quantity | varchar | 64 | 否 | 否 | 購(gòu)買數(shù)量 |
| receiving_address | varchar | 64 | 否 | 否 | 收貨地址 |
| total_purchases | varchar | 64 | 否 | 否 | 購(gòu)買總數(shù) |
| total_purchase_price | varchar | 64 | 否 | 否 | 購(gòu)買總價(jià) |
| logistics_status | varchar | 64 | 否 | 否 | 物流狀態(tài) |
| sign_in_status | varchar | 64 | 否 | 否 | 簽收狀態(tài) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| hotel_mall表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| hotel_mall_id | int | 11 | 是 | 是 | 酒品商城ID |
| remarks | varchar | 64 | 否 | 否 | 備注 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| cart_title | varchar | 125 | 否 | 否 | 標(biāo)題 |
| cart_img | text | 0 | 否 | 否 | 封面圖 |
| cart_description | varchar | 255 | 否 | 否 | 描述 |
| cart_price_ago | double | 8 | 是 | 否 | 原價(jià) |
| cart_price | double | 8 | 是 | 否 | 賣價(jià) |
| cart_inventory | int | 11 | 是 | 否 | 商品庫(kù)存 |
| cart_type | varchar | 64 | 是 | 否 | 商品分類 |
| cart_content | longtext | 0 | 否 | 否 | 正文 |
| cart_img_1 | text | 0 | 否 | 否 | 主圖1 |
| cart_img_2 | text | 0 | 否 | 否 | 主圖2 |
| cart_img_3 | text | 0 | 否 | 否 | 主圖3 |
| cart_img_4 | text | 0 | 否 | 否 | 主圖4 |
| cart_img_5 | text | 0 | 否 | 否 | 主圖5 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| chargeback_request表; | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| chargeback_request_id | int | 11 | 是 | 是 | 退單申請(qǐng)ID |
| order_number | varchar | 64 | 否 | 否 | 訂單編號(hào) |
| wine_name | varchar | 64 | 否 | 否 | 酒品名稱 |
| wine_type | varchar | 64 | 否 | 否 | 酒品類型 |
| wine_unit_price | varchar | 64 | 否 | 否 | 酒品單價(jià) |
| purchase_user | int | 11 | 否 | 否 | 購(gòu)買用戶 |
| purchase_time | datetime | 0 | 否 | 否 | 購(gòu)買時(shí)間 |
| purchase_quantity | varchar | 64 | 否 | 否 | 購(gòu)買數(shù)量 |
| receiving_address | varchar | 64 | 否 | 否 | 收貨地址 |
| total_purchases | varchar | 64 | 否 | 否 | 購(gòu)買總數(shù) |
| total_purchase_price | varchar | 64 | 否 | 否 | 購(gòu)買總價(jià) |
| application_status | varchar | 64 | 否 | 否 | 申請(qǐng)狀態(tài) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| comment表: | |||||
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| comment_id | int | 11 | 是 | 是 | 評(píng)論ID |
| user_id | int | 11 | 是 | 否 | 評(píng)論人ID |
| reply_to_id | int | 11 | 是 | 否 | 回復(fù)評(píng)論ID:空為0 |
| content | longtext | 0 | 否 | 否 | 內(nèi)容 |
| nickname | varchar | 255 | 否 | 否 | 昵稱 |
| avatar | varchar | 255 | 否 | 否 | 頭像地址 |
| create_time | timestamp | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| source_table | varchar | 255 | 否 | 否 | 來(lái)源表 |
| source_field | varchar | 255 | 否 | 否 | 來(lái)源字段 |
| source_id | int | 10 | 是 | 否 | 來(lái)源ID |
3.4本章小結(jié)
整個(gè)1818小酒館商城的需求分析主要對(duì)系統(tǒng)總體架構(gòu)以及功能模塊的設(shè)計(jì),通過(guò)建立E-R模型和數(shù)據(jù)庫(kù)邏輯系統(tǒng)設(shè)計(jì)完成了數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)。
4?1818小酒館商城?詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)
1818小酒館商城?的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)主要是根據(jù)前面的1818小酒館商城?的需求分析和1818小酒館商城?的總體設(shè)計(jì)來(lái)設(shè)計(jì)頁(yè)面并實(shí)現(xiàn)業(yè)務(wù)邏輯。主要從1818小酒館商城?界面實(shí)現(xiàn)、業(yè)務(wù)邏輯實(shí)現(xiàn)這兩部分進(jìn)行介紹。
4.1用戶功能模塊
4.1.1 前臺(tái)首頁(yè)界面
當(dāng)進(jìn)入1818小酒館商城的時(shí)候,首先映入眼簾的是系統(tǒng)的導(dǎo)航欄,下面是輪播圖以及系統(tǒng)內(nèi)容,其主界面展示如下圖4-1所示。
?
圖4-1?前臺(tái)首頁(yè)界面圖
4.1.2用戶登錄界面
1818小酒館商城中的前臺(tái)上注冊(cè)后的學(xué)生是可以通過(guò)自己的賬戶名和密碼進(jìn)行登錄的,當(dāng)用戶輸入完整的自己的賬戶名和密碼信息并點(diǎn)擊“登錄”按鈕后,將會(huì)首先驗(yàn)證輸入的有沒(méi)有空數(shù)據(jù),再次驗(yàn)證輸入的賬戶名+密碼和數(shù)據(jù)庫(kù)中當(dāng)前保存的用戶信息是否一致,只有在一致后將會(huì)登錄成功并自動(dòng)跳轉(zhuǎn)到1818小酒館商城的首頁(yè)中;否則將會(huì)提示相應(yīng)錯(cuò)誤信息,用戶登錄界面如下圖4-2所示。
?
圖4-2用戶登錄界面圖
登錄關(guān)鍵代碼如下所示。
/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執(zhí)行登錄接口]");
????????String username = data.get("username");
????????String email = data.get("email");
????????String phone = data.get("phone");
????????String password = data.get("password");
????????List resultList = null;
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}else{
????????????return error(30000, "賬號(hào)或密碼不能為空");
????????}
????????if (resultList == null || password == null) {
????????????return error(30000, "賬號(hào)或密碼不能為空");
????????}
????????//判斷是否有這個(gè)用戶
????????if (resultList.size()<=0){
????????????return error(30000,"用戶不存在");
????????}
????????User byUsername = (User) resultList.get(0);
????????Map<String, String> groupMap = new HashMap<>();
????????groupMap.put("name",byUsername.getUserGroup());
????????List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態(tài)
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());
????????????if (res==null){
????????????????return error(30000,"用戶不存在");
????????????}
????????????if (!res.equals("已通過(guò)")){
????????????????return error(30000,"該用戶審核未通過(guò)");
????????????}
????????}
????????//查詢用戶狀態(tài)
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態(tài),不能登錄");
????????}
????????String md5password = service.encryption(password);
????????if (byUsername.getPassword().equals(md5password)) {
????????????// 存儲(chǔ)Token到數(shù)據(jù)庫(kù)
????????????AccessToken accessToken = new AccessToken();
????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
????????????accessToken.setUser_id(byUsername.getUserId());
????????????tokenService.save(accessToken);
????????????// 返回用戶信息
????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
????????????user.put("token", accessToken.getToken());
????????????JSONObject ret = new JSONObject();
????????????ret.put("obj",user);
????????????return success(ret);
????????} else {
????????????return error(30000, "賬號(hào)或密碼不正確");
????????}
}
4.1.3用戶注冊(cè)界面
不是1818小酒館商城中正式用戶的是可以在線進(jìn)行注冊(cè)的,如果你沒(méi)有本1818小酒館商城的賬號(hào)的話,添加“注冊(cè)”,當(dāng)填寫上自己的賬號(hào)+密碼+確認(rèn)密碼+昵稱+郵箱+手機(jī)號(hào)等后再點(diǎn)擊“注冊(cè)”按鈕后將會(huì)先驗(yàn)證輸入的有沒(méi)有空數(shù)據(jù),再次驗(yàn)證密碼和確認(rèn)密碼是否是一樣的,最后驗(yàn)證輸入的賬戶名和數(shù)據(jù)庫(kù)表中已經(jīng)注冊(cè)的賬戶名是否重復(fù),只有都驗(yàn)證沒(méi)問(wèn)題后即可用戶注冊(cè)成功。其用用戶注冊(cè)界面展示如下圖4-3所示。
?
圖4-2用戶注冊(cè)界面圖
注冊(cè)關(guān)鍵代碼如下所示。
/**
?????* 注冊(cè)
?????* @param user
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(@RequestBody User user) {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????query.put("username",user.getUsername());
????????List list = service.select(query, new HashMap<>()).getResultList();
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????user.setUserId(null);
????????user.setPassword(service.encryption(user.getPassword()));
????????service.save(user);
????????return success(1);
}
/**
?????* 用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù)
?????*/
????@Id
????@GeneratedValue(strategy = GenerationType.IDENTITY)
????@Column(name = "user_id")
????private Integer userId;
????/**
?????* 賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)
?????*/
????@Basic
????@Column(name = "state")
????private Integer state;
????/**
?????* 所在用戶組:[0,32767]決定用戶身份和權(quán)限
?????*/
????@Basic
????@Column(name = "user_group")
????private String userGroup;
????/**
?????* 上次登錄時(shí)間:
?????*/
????@Basic
????@Column(name = "login_time")
????private Timestamp loginTime;
????/**
?????* 手機(jī)號(hào)碼:[0,11]用戶的手機(jī)號(hào)碼,用于找回密碼時(shí)或登錄時(shí)
?????*/
????@Basic
????@Column(name = "phone")
????private String phone;
????/**
?????* 手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)
?????*/
????@Basic
????@Column(name = "phone_state")
????private Integer phoneState;
????/**
?????* 用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱
?????*/
????@Basic
????@Column(name = "username")
????private String username;
????/**
?????* 昵稱:[0,16]
?????*/
????@Basic
????@Column(name = "nickname")
????private String nickname;
????/**
?????* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成
?????*/
????@Basic
????@Column(name = "password")
????private String password;
????/**
?????* 郵箱:[0,64]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)
?????*/
????@Basic
????@Column(name = "email")
????private String email;
????/**
?????* 郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)
?????*/
????@Basic
????@Column(name = "email_state")
????private Integer emailState;
????/**
?????* 頭像地址:[0,255]
?????*/
????@Basic
????@Column(name = "avatar")
????private String avatar;
????/**
?????* 創(chuàng)建時(shí)間:
?????*/
????@Basic
????@Column(name = "create_time")
????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
????private Timestamp createTime;
????@Basic
????@Transient
????private String code;
}
4.1.4商品詳情界面
當(dāng)訪客點(diǎn)擊了任意商品后將會(huì)進(jìn)入該款商品的詳情界面,可以了解到該商品的圖片信息、商品信息、價(jià)錢信息等,同時(shí)可以對(duì)該商品進(jìn)行加購(gòu)+立即購(gòu)買+收藏+點(diǎn)贊+評(píng)論,商品詳情展示頁(yè)面如圖4-4所示。
?
圖4-4商品詳情界面圖
4.1.5收貨地址界面
當(dāng)用戶點(diǎn)擊“收貨地址”右后,就回去顯示出目前現(xiàn)有的地址,也可以添加新的地址,界面如下圖4-5所示。
?
圖4-5收貨地址界面圖
4.1.6我的訂單界面
當(dāng)用戶點(diǎn)擊“我的訂單”鏈接后就進(jìn)入自己購(gòu)買的訂單的界面展示,界面如下圖4-6所示。
?
圖4-6我的訂單界面圖
4.2管理員功能模塊
4.2.1 用戶管理界面
1818小酒館商城中的管理人員是可以對(duì)前臺(tái)注冊(cè)的學(xué)生用戶、司機(jī)用戶進(jìn)行管理的,也可以對(duì)管理員進(jìn)行管控。界面如下圖4-7所示。
?
圖4-7用戶管理界面圖
用戶管理關(guān)鍵代碼如下所示。
public String encryption(String plainText) {
????????String re_md5 = new String();
????????try {
????????????MessageDigest md = MessageDigest.getInstance("MD5");
????????????md.update(plainText.getBytes());
????????????byte b[] = md.digest();
????????????int i;
????????????StringBuffer buf = new StringBuffer("");
????????????for (int offset = 0; offset < b.length; offset++) {
????????????????i = b[offset];
????????????????if (i < 0)
????????????????????i += 256;
????????????????if (i < 16)
????????????????????buf.append("0");
????????????????buf.append(Integer.toHexString(i));
????????????}
????????????re_md5 = buf.toString();
????????} catch (Exception e) {
????????????e.printStackTrace();
????????}
????????return re_md5;
????}
4.2.2酒品資訊界面
1818小酒館商城的管理人員是可以對(duì)1818小酒館商城內(nèi)的資訊信息進(jìn)行維護(hù)和管理的。酒品資訊界面如下圖4-8所示。
?
圖4-8酒品資訊界面圖
4.3.3站點(diǎn)管理界面
1818小酒館商城中的管理人員在“站點(diǎn)管理”這一菜單中是可以對(duì)前臺(tái)顯示的輪播圖以及公告欄進(jìn)行管控。界面如下圖4-9所示。
?
圖4-9站點(diǎn)管理界面圖
站點(diǎn)管理關(guān)鍵代碼如下所示。
??@PostMapping("/add")
????@Transactional
????public Map<String, Object> add(HttpServletRequest request) throws IOException {
????????service.insert(service.readBody(request.getReader()));
????????return success(1);
????}
????@Transactional
????public Map<String, Object> addMap(Map<String,Object> map){
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
}
????public void insert(Map<String,Object> body){
????????StringBuffer sql = new StringBuffer("INSERT INTO ");
????????sql.append("`").append(table).append("`").append(" (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
????????}
????????sql.deleteCharAt(sql.length()-1);
????????sql.append(") VALUES (");
????????for (Map.Entry<String,Object> entry:body.entrySet()){
????????????Object value = entry.getValue();
????????????if (value instanceof String){
????????????????sql.append("'").append(entry.getValue()).append("'").append(",");
????????????}else {
????????????????sql.append(entry.getValue()).append(",");
????????????}
????????}
????????sql.deleteCharAt(sql.length() - 1);
????????sql.append(")");
????????log.info("[{}] - 插入操作:{}",table,sql);
????????Query query = runCountSql(sql.toString());
????????query.executeUpdate();
????}
4.2.4商城管理界面
1818小酒館商城中的管理人員是可以對(duì)1818小酒館商城內(nèi)的管理員發(fā)布的酒品進(jìn)行維護(hù)和管理的,支持增刪改查操作。界面如下圖4-10所示。
?
圖4-10商城管理界面圖
商城管理關(guān)鍵代碼如下所示。
@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
????@Transactional
????public void delete(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
????????sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
????????log.info("[{}] - 刪除操作:{}",table,sql);
????????Query query1 = runCountSql(sql.toString());
????????query1.executeUpdate();
????}
4.3.5更多管理界面
1818小酒館商城中的管理人員在“更多管理”這一菜單下是可以對(duì)1818小酒館商城內(nèi)的訂單信息、退單申請(qǐng)進(jìn)行管控的,其管理界面如下圖4-11所示。
?
圖4-11更多管理界面圖
5系統(tǒng)測(cè)試
5.1測(cè)試目的
對(duì)任何系統(tǒng)而言,測(cè)試都是必不可少的環(huán)節(jié),測(cè)試可以發(fā)現(xiàn)系統(tǒng)存在的很多問(wèn)題,所有的軟件上線之前,都應(yīng)該進(jìn)行充足的測(cè)試之后才能保證上線后不會(huì)Bug頻發(fā),或者是功能不滿足需求等問(wèn)題的發(fā)生。下面分別從單元測(cè)試,功能測(cè)試和用例測(cè)試來(lái)對(duì)系統(tǒng)進(jìn)行測(cè)試以保證系統(tǒng)的穩(wěn)定性和可靠性。
5.2功能測(cè)試
下表是訂單信息管理功能的測(cè)試用例,檢測(cè)了訂單信息管理中對(duì)訂單信息信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。
前置條件;用戶登錄系統(tǒng)。
表5-1 訂單信息管理的測(cè)試用例
| 功能描述 | 用于訂單信息管理 | |
| 測(cè)試目的 | 檢測(cè)訂單信息管理時(shí)的各種操作的運(yùn)行情況 | |
| 測(cè)試數(shù)據(jù)以及操作 | 預(yù)期結(jié)果 | 實(shí)際結(jié)果 |
| 點(diǎn)擊添加訂單信息,必填項(xiàng)合法輸入,點(diǎn)擊保存 | 提示添加成功 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊添加訂單信息,必填項(xiàng)輸入不合法,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊修改訂單信息,必填項(xiàng)修改為空,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊修改訂單信息,必填項(xiàng)輸入不合法,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊刪除訂單信息,選擇訂單信息刪除 | 提示刪除成功 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊搜索訂單信息,輸入存在的訂單信息名 | 查找出訂單信息 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊搜索訂單信息,輸入不存在的訂單信息名 | 不顯示訂單信息 | 與預(yù)期結(jié)果一致 |
下表是退單申請(qǐng)管理功能的測(cè)試用例,檢測(cè)了退單申請(qǐng)管理中對(duì)退單申請(qǐng)信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。
前置條件;用戶登錄系統(tǒng)。
表5-2 退單申請(qǐng)管理的測(cè)試用例
| 功能描述 | 用于退單申請(qǐng)管理 | |
| 測(cè)試目的 | 檢測(cè)退單申請(qǐng)管理時(shí)的各種操作的運(yùn)行情況 | |
| 測(cè)試數(shù)據(jù)以及操作 | 預(yù)期結(jié)果 | 實(shí)際結(jié)果 |
| 點(diǎn)擊添加退單申請(qǐng),必填項(xiàng)合法輸入,點(diǎn)擊保存 | 提示添加成功 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊添加退單申請(qǐng),必填項(xiàng)輸入不合法,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊修改退單申請(qǐng),必填項(xiàng)修改為空,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊修改退單申請(qǐng),必填項(xiàng)輸入不合法,點(diǎn)擊保存 | 提示必填項(xiàng)不能為空 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊刪除退單申請(qǐng),選擇退單申請(qǐng)刪除 | 提示刪除成功 | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊搜索退單申請(qǐng),輸入存在的退單申請(qǐng)名 | 查找出退單申請(qǐng) | 與預(yù)期結(jié)果一致 |
| 點(diǎn)擊搜索退單申請(qǐng),輸入不存在的退單申請(qǐng)名 | 不顯示退單申請(qǐng) | 與預(yù)期結(jié)果一致 |
下表是訂單列表管理功能的測(cè)試用例,檢測(cè)了訂單列表管理中分類列表的操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。
前置條件;用戶登錄系統(tǒng)。
表5-3 訂單列表管理的測(cè)試用例
| 功能描述 | 用于訂單列表管理 | |
| 測(cè)試目的 | 檢測(cè)訂單列表管理時(shí)各種操作的情況 | |
| 測(cè)試數(shù)據(jù)以及操作 | 預(yù)期結(jié)果 | 實(shí)際結(jié)果 |
| 未選擇分類,點(diǎn)擊提交 | 提示請(qǐng)選擇分類 | 與預(yù)期結(jié)果一致 |
| 未選擇列表,點(diǎn)擊提交 | 提示請(qǐng)選擇列表 | 與預(yù)期結(jié)果一致 |
5.3性能測(cè)試
使用阿里云PTS(Performance Testing Service)性能測(cè)試服務(wù)對(duì)線上系統(tǒng)進(jìn)行壓力測(cè)試。線上服務(wù)器環(huán)境為:1核心CPU,1G內(nèi)存,1Mbps公網(wǎng)帶寬,Centos7.0操作系統(tǒng)。
壓測(cè)過(guò)程中使用了2臺(tái)并發(fā)機(jī)器,每臺(tái)機(jī)器20個(gè)用戶并發(fā),對(duì)系統(tǒng)主頁(yè),登錄,數(shù)據(jù)查詢和數(shù)據(jù)維護(hù)等模塊進(jìn)行并發(fā)訪問(wèn),測(cè)試結(jié)果是有40個(gè)用戶并發(fā)時(shí),數(shù)據(jù)管理相關(guān)頁(yè)面的響應(yīng)時(shí)間甚至達(dá)到了7s,通過(guò)查看服務(wù)器出網(wǎng)流量發(fā)現(xiàn)已經(jīng)達(dá)到1381kb/s,可以看出服務(wù)器的帶寬已經(jīng)達(dá)到峰值,如果系統(tǒng)使用5Mbps的帶寬,系統(tǒng)的響應(yīng)時(shí)間和TPS將會(huì)大大增加。在整個(gè)測(cè)試的過(guò)程中,CPU的使用率占用僅8%,也提現(xiàn)出帶寬瓶頸對(duì)系統(tǒng)的影響非常嚴(yán)重。
結(jié)論
至此,1818小酒館商城已經(jīng)結(jié)束,在開發(fā)前做了許多的準(zhǔn)備,在本系統(tǒng)的設(shè)計(jì)和開發(fā)過(guò)程中閱覽和學(xué)習(xí)了許多文獻(xiàn)資料,從中我也收獲了很多寶貴的方法和設(shè)計(jì)思路,對(duì)系統(tǒng)的開發(fā)也起到了很重要的作用,系統(tǒng)的開發(fā)技術(shù)選用的都是自己比較熟悉的,比如Web、springboot技術(shù)、MYSQL,這些技術(shù)都是在以前的學(xué)習(xí)中學(xué)到了,其中許多的設(shè)計(jì)思路和方法都是在以前不斷地學(xué)習(xí)中摸索出來(lái)的經(jīng)驗(yàn),其實(shí)對(duì)于我們來(lái)說(shuō)工作量還是比較大的,但是正是由于之前的積累與準(zhǔn)備,才能順利的完成這個(gè)項(xiàng)目,由此看來(lái),積累經(jīng)驗(yàn)跟做好準(zhǔn)備是十分重要的事情。
當(dāng)然在該系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的過(guò)程中也離不開老師以及同學(xué)們的幫助,正是因?yàn)樗麄兊闹笇?dǎo)與幫助,我才能夠成功的在預(yù)期內(nèi)完成了這個(gè)系統(tǒng)。同時(shí)在這個(gè)過(guò)程當(dāng)中我也收獲了很多東西,此系統(tǒng)也有需要改進(jìn)的地方,但是由于專業(yè)知識(shí)的淺薄,并不能做到十分完美,希望以后有機(jī)會(huì)可以讓其真正的投入到使用之中。
參考文獻(xiàn)
[1]曾勁濤,斯恩昊,龍滿生,付青.基于Spring Boot框架的井岡蜜柚管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].井岡山大學(xué)學(xué)報(bào)(自然科學(xué)版),2022,43(02):82-87+102.
[2]常兵,薛楨一,陳德徐,孫誠(chéng)彬,阮瑩瑩. 一種基于JAVA技術(shù)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化導(dǎo)入導(dǎo)出的方法[P]. 江蘇省:CN114063989A,2022-02-18.
[3]熊勇.基于Java技術(shù)的后臺(tái)服務(wù)程序設(shè)計(jì)分析[J].信息記錄材料,2022,23(02):80-82.DOI:10.16009/j.cnki.cn13-1295/tq.2022.02.002.
[4]馮凱.“MySQL數(shù)據(jù)庫(kù)”課程教學(xué)中常見(jiàn)問(wèn)題探析[J].無(wú)線互聯(lián)科技,2021,18(24):158-159.
[5]陳潔.“MySQL數(shù)據(jù)庫(kù)安全”課程教學(xué)方法優(yōu)化分析[J].無(wú)線互聯(lián)科技,2021,18(24):160-161.
[6]尚鵬. 一種基于Spring boot框架的數(shù)據(jù)處理方法及裝置[P]. 北京市:CN113641700A,2021-11-12.
[7]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).
[8]白楊. 基于JAVA的電力公司安監(jiān)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2021.DOI:10.27005/d.cnki.gdzku.2021.002572.
[9]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4).
[10]楊超智. 基于Spring boot框架的預(yù)警監(jiān)測(cè)平臺(tái)[C]//.中國(guó)移動(dòng)5G天線產(chǎn)業(yè)技術(shù)研討會(huì)論文集.,2020:90-92.DOI:10.26914/c.cnkihy.2020.065469.
[11], 專科(678人) 軟件技術(shù)(Java方向)(225人). 朱金瑞 主編,河南財(cái)經(jīng)政法大學(xué)年鑒,中州古籍出版社,2018,525-526,年鑒.DOI:10.38722/y.cnki.ycjzf.2020.001067.
[12]張懷勇. 基于Spring Boot框架的車輛寄售后臺(tái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2020.DOI:10.26969/d.cnki.gbydu.2020.002108.
[13]Lei Yu,Cheng Li,Lei Wei,Hu WenYa. Marine biological monitoring and managing system based on Java technology[J]. MIPPR 2019: REMOTE SENSING IMAGE PROCESSING, GEOGRAPHIC INFORMATION SYSTEMS, AND OTHER APPLICATIONS,2020,11432.
[14]張倩,王蕾,史述紅,呂經(jīng)緯. 基于JAVA并行計(jì)算技術(shù)的電力直接交易集中撮合交易算法[C]//.中國(guó)電機(jī)工程學(xué)會(huì)電力市場(chǎng)專業(yè)委員會(huì)2018年學(xué)術(shù)年會(huì)暨全國(guó)電力交易機(jī)構(gòu)聯(lián)盟論壇論文集.,2018:373-377.
[15]袁梅冷,李斌,肖正興. Java應(yīng)用開發(fā)技術(shù)實(shí)例教程[M].人民郵電出版社:, 201708.253.
[16]SJ/T 11683-2017, Java語(yǔ)言源代碼缺陷控制與測(cè)試指南[S].
致 ?謝
逝者如斯夫,不舍晝夜。轉(zhuǎn)眼間,大用戶用戶活便已經(jīng)接近尾聲,人面對(duì)著離別與結(jié)束,總是充滿著不舍與茫然,我亦如此,仍記得那年秋天,我迫不及待的提前一天到了學(xué)校,面對(duì)學(xué)校巍峨的大門,我心里充滿了期待:這里,就是我新生活的起點(diǎn)嗎?那天,陽(yáng)光明媚,學(xué)校的歡迎儀式很熱烈,我面對(duì)著一個(gè)個(gè)對(duì)著我微笑的同學(xué),仿佛一縷縷陽(yáng)光透過(guò)胸口照進(jìn)了我心里,同時(shí),在那天我認(rèn)識(shí)可愛(ài)的室友,我們攜手共同度過(guò)了這難忘的兩年。如今,我望著這篇論文的致謝,不禁又要問(wèn)自己:現(xiàn)在,我們就要說(shuō)再見(jiàn)了嗎?
感慨莫名,不知所言。遙想當(dāng)初剛來(lái)學(xué)校的時(shí)候,心里總是想著工科學(xué)校會(huì)過(guò)于板正,會(huì)缺乏一些柔情,當(dāng)時(shí)心里甚至有一點(diǎn)點(diǎn)排斥,但是隨著我對(duì)學(xué)校的慢慢認(rèn)識(shí)與了解,我才認(rèn)識(shí)到了她的美麗,她的柔情,并且慢慢的喜歡上了這個(gè)校園,但是時(shí)間太快了,快到我還沒(méi)有好好體會(huì)她的美麗便要離開了,但是她帶給我的回憶,永遠(yuǎn)不會(huì)離開我,也許真正離開那天我的眼里會(huì)滿含淚水,我不是因?yàn)殡y過(guò),我只是想將她的樣子映在我的淚水里,刻在我的心里。最后,感謝我的老師們,是你們教授了我們知識(shí)與做人的道理;感謝我的室友們,是你們陪伴了我如此之久;感謝每位關(guān)心與支持我的人。
少年,追風(fēng)趕月莫停留,平荒盡處是春山。
免費(fèi)領(lǐng)取本源代碼,請(qǐng)關(guān)注點(diǎn)贊+私信
總結(jié)
以上是生活随笔為你收集整理的mysql基于SpringBoot的“1818小酒馆”商城网站的设计与实现毕业设计源码192004的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库系统工程师怎么备考?
- 下一篇: 抢先体验Drive 2.0 Beta,按