(附源码)ssm网上零食销售系统 毕业设计 180826
SSM網(wǎng)上零食銷售系統(tǒng)的開(kāi)發(fā)
摘 ?要
隨著Internet的使用越來(lái)越廣泛,在傳統(tǒng)的商業(yè)模式中,對(duì)于零食等商品,人們習(xí)慣于到各種商家店鋪購(gòu)買(mǎi)。然而在快節(jié)奏的新時(shí)代中,人們不一定能為購(gòu)買(mǎi)零食騰出時(shí)間,更不會(huì)耐心挑選自己想要的零食。所以設(shè)計(jì)一個(gè)網(wǎng)上零食銷售系統(tǒng),既是迎合電子商務(wù)的大潮流,也是傳統(tǒng)零食行業(yè)的一個(gè)突破口,可以給傳統(tǒng)零食行業(yè)帶來(lái)轉(zhuǎn)變和機(jī)遇。
本系統(tǒng)主要是提供給用戶一個(gè)購(gòu)買(mǎi)零食的平臺(tái),通過(guò)價(jià)格優(yōu)勢(shì)吸引眾多消費(fèi)者來(lái)購(gòu)買(mǎi),實(shí)現(xiàn)正常運(yùn)營(yíng)。本文主要是采用Java語(yǔ)言、JavaEE技術(shù)、Mysql數(shù)據(jù)庫(kù)、Tomcat服務(wù)器作為開(kāi)發(fā)平臺(tái),系統(tǒng)采用B/S結(jié)構(gòu)進(jìn)行開(kāi)發(fā),完成一個(gè)網(wǎng)上零食銷售系統(tǒng)。目標(biāo)是實(shí)現(xiàn)一個(gè)以銷售為中心的計(jì)算機(jī)系統(tǒng),構(gòu)建用戶信息與賬號(hào),賬號(hào)與訂單信息有機(jī)結(jié)合的業(yè)務(wù)系統(tǒng)。
關(guān)鍵詞:零食銷售;購(gòu)物系統(tǒng);Mysql數(shù)據(jù)庫(kù)
Development of SSM online snack sales system
ABSTRACT
With the more and more extensive use of the Internet, in the traditional business model, people are used to buying snacks and other goods from various stores. However, in the fast-paced new era, people may not be able to make time for buying snacks, let alone patiently choose the snacks they want. Therefore, designing an online snack sales system is not only to meet the general trend of e-commerce, but also a breakthrough in the traditional snack industry, which can bring changes and opportunities to the traditional snack industry.
The system is mainly to provide users with a platform to buy snacks, attract many consumers to buy through price advantages, and realize normal operation. This paper mainly uses Java language, JavaEE technology, MySQL database and Tomcat server as the development platform. The system is developed with B / S structure to complete an online snack sales system. The goal is to realize a sales centered computer system and build a business system with the organic combination of user information and account number, account number and order information.
Key words:Snack sales; Shopping system; Mysql database
目 ???錄
摘??要
ABSTRACT
第1章 緒論
1.1研究背景
1.2研究意義
1.3系統(tǒng)目標(biāo)
1.4本文的結(jié)構(gòu)
第2章 關(guān)鍵技術(shù)介紹
2.1開(kāi)發(fā)環(huán)境介紹
2.2統(tǒng)一建模語(yǔ)言
2.3 開(kāi)發(fā)技術(shù)
2.3.1J2EE技術(shù) 3
2.3.2MVC模式 3
2.3.3MySQL數(shù)據(jù)庫(kù) 3
2.3.4?B/S結(jié)構(gòu) 4
2.3.5SSM框架 4
2.3.6?MyEclipse開(kāi)發(fā)工具 4
第3章 系統(tǒng)分析
3.1可行性分析
3.1.1操作可行性
3.1.2技術(shù)可行性
3.1.3經(jīng)濟(jì)可行性
3.2功能需求分析
3.3用例分析
3.4數(shù)據(jù)流分析
3.5數(shù)據(jù)字典
第4章 系統(tǒng)設(shè)計(jì)
4.1結(jié)構(gòu)設(shè)計(jì)
4.2功能設(shè)計(jì)
4.3數(shù)據(jù)庫(kù)設(shè)計(jì)
4.3.1概念設(shè)計(jì)
4.3.2邏輯設(shè)計(jì)
4.3.3表設(shè)計(jì)
第5章 系統(tǒng)詳細(xì)設(shè)計(jì)
5.1JavaEE連接數(shù)據(jù)庫(kù)
5.2登錄模塊
5.3好物推薦模塊
5.4商品評(píng)論模塊
5.5購(gòu)買(mǎi)商品模塊
5.6系統(tǒng)用戶管理模塊
5.7公告管理模塊
5.8商品管理模塊
5.9訂單管理模塊
第6章 系統(tǒng)測(cè)試
6.1測(cè)試目的
6.2測(cè)試用例
第7章 結(jié)論
參考文獻(xiàn)
致?謝
1.1研究背景
各種物品是人們?nèi)粘5南M(fèi)品,物品供應(yīng)與消費(fèi)者需求有著極為重要的關(guān)系。社會(huì)壓力造成工作日漸繁忙,時(shí)間觀念越來(lái)越強(qiáng),簡(jiǎn)化事務(wù)、方便消費(fèi),使網(wǎng)絡(luò)化銷售逐漸成為消費(fèi)社會(huì)化的需要。同時(shí),由于人們生活消費(fèi)質(zhì)量的不斷提高,各種物品消費(fèi)需要由“數(shù)量型”向“質(zhì)量型”轉(zhuǎn)變,物品消費(fèi)的消耗性、多樣化也成為一種消費(fèi)需求。
這種消費(fèi)型社會(huì)的大趨勢(shì)已為網(wǎng)絡(luò)銷售業(yè)發(fā)展提供了良好商機(jī)。據(jù)了解,目前內(nèi)陸各省大多有銷售企業(yè)在運(yùn)轉(zhuǎn),起步時(shí)間都不長(zhǎng),而且上規(guī)模的正規(guī)企業(yè)也不是很多,部分仍處于買(mǎi)賣雙方談妥價(jià)格后的私下交易。而在廣東、山東、北京、上海、天津等地已有大規(guī)模的商品銷售中心出現(xiàn),特別是大城市中面向家庭客戶的商品銷售服務(wù)已蔚然興起。
然而,隨著業(yè)務(wù)量的不斷增長(zhǎng),眾多企業(yè)目前都多多少少的面臨著一個(gè)嚴(yán)峻的問(wèn)題,就是由于缺乏信息化的支持,從商品生產(chǎn)到客戶下單,再到物流運(yùn)輸?shù)恼麄€(gè)業(yè)務(wù)流程都缺乏有效管理,作業(yè)方式較為原始,管理成本不斷攀升,而且差錯(cuò)率難以控制。 ??
本系統(tǒng)是針對(duì)企業(yè)面臨的困境與現(xiàn)狀,為方便消費(fèi)者的購(gòu)買(mǎi)以及將線上與線下更好的結(jié)合在一起,利用相關(guān)的技術(shù)所設(shè)計(jì)出的。
1.2研究意義
隨著我國(guó)電子商務(wù)的迅速發(fā)展,網(wǎng)絡(luò)銷售已形成了一定的規(guī)模并取得較大的成功,其對(duì)企業(yè)的效益越來(lái)越突出。淘寶、京東、亞馬遜、蘇寧易購(gòu)、國(guó)美等大型電子商務(wù)企業(yè)的崛起,由此可以看出網(wǎng)絡(luò)銷售的巨大潛力和嶄新的盈利模式。網(wǎng)絡(luò)銷售可以加快產(chǎn)品的發(fā)布和宣傳,使交易過(guò)程簡(jiǎn)化、自動(dòng)化,銷售方只需要把產(chǎn)品交給物流行業(yè)運(yùn)作即可,省去傳統(tǒng)交易模式的繁瑣。在空間上可以減少店鋪?zhàn)饨鸬闹С?#xff0c;不用頻繁的進(jìn)貨、卸貨、裝貨以及上架產(chǎn)品,側(cè)面上減少了實(shí)體店的數(shù)量,為目前堵塞的城市現(xiàn)狀給予一定的緩解。?
但是,目前網(wǎng)絡(luò)銷售在實(shí)踐過(guò)程存在著部分問(wèn)題:?
(1)關(guān)于電子商務(wù)的法律法規(guī)不完善。無(wú)良商家肆無(wú)忌憚的通過(guò)網(wǎng)絡(luò)售賣假冒偽劣產(chǎn)品,以假亂真,欺騙消費(fèi)者。?
(2)網(wǎng)絡(luò)安全技術(shù)人才緊缺。目前,很多銷售系統(tǒng)被黑客攻擊甚至偷取信息、錢(qián)財(cái)?shù)劝讣r(shí)有發(fā)生。?
(3)網(wǎng)絡(luò)宣傳不到位。目前很多企業(yè)開(kāi)通了網(wǎng)絡(luò)銷售系統(tǒng),但在消費(fèi)者中知名度不高。?
1.3系統(tǒng)目標(biāo)
對(duì)于典型的數(shù)據(jù)庫(kù)系統(tǒng),尤其是對(duì)于像網(wǎng)上零食銷售系統(tǒng)這樣的數(shù)據(jù)流量特別大的網(wǎng)絡(luò)系統(tǒng),必須要滿足使用方便、操作靈活等要求。本系統(tǒng)在設(shè)計(jì)時(shí)應(yīng)該滿足以下幾個(gè)目標(biāo)
(1)采用人機(jī)對(duì)話的操作方式,界面美觀、友好,信息查詢靈活、方便,數(shù)據(jù)存儲(chǔ)準(zhǔn)確、安全可靠;
(2)全面展示所有商品,并可展示主要商品;
(3)便于顧客快捷地進(jìn)行商品信息查詢;
(4)用戶可以隨時(shí)修改自己的基本資料;
(5)實(shí)現(xiàn)下單的功能;
(6)顧客可以隨時(shí)查看自己的訂單信息;
(7)對(duì)客戶輸入的數(shù)據(jù),系統(tǒng)進(jìn)行嚴(yán)格的數(shù)據(jù)檢驗(yàn),盡可能排除人為的錯(cuò)誤;
(8)系統(tǒng)最大限度地實(shí)現(xiàn)了易維護(hù)性和易操作性;
(9)系統(tǒng)運(yùn)行穩(wěn)定、安全可靠。
1.4本文的結(jié)構(gòu)
本文具體內(nèi)容包括:緒論、系統(tǒng)采用的關(guān)鍵技術(shù)、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)和系統(tǒng)測(cè)試。本文著重描述了系統(tǒng)的組成與結(jié)構(gòu),闡述了系統(tǒng)的設(shè)計(jì)方案、實(shí)現(xiàn)方法以及所采用的開(kāi)發(fā)工具和相關(guān)技術(shù),另外,重點(diǎn)剖析了部分環(huán)節(jié)的開(kāi)發(fā)過(guò)程。本系統(tǒng)在一定的環(huán)境下對(duì)系統(tǒng)的重要模塊進(jìn)行了模擬測(cè)試,證實(shí)了系統(tǒng)的可用性、可靠性。
2.1開(kāi)發(fā)環(huán)境介紹
1.軟件體系結(jié)構(gòu)方案:采用B/S模式,B/S代表的是服務(wù)器端由web服務(wù)器發(fā)放,客戶端由瀏覽器接收的系統(tǒng),它的前臺(tái)是html語(yǔ)言,由瀏覽器解釋。B/S結(jié)構(gòu)可以由web服務(wù)器能夠解釋的腳本語(yǔ)言如jsp、php、asp、JavaScript。
2.操作系統(tǒng)方案:Windows 7(旗艦版)操作系統(tǒng),該系統(tǒng)可以兼容需要的軟件,并且具有良好的運(yùn)行速度,界面良好。
3.后臺(tái)數(shù)據(jù)庫(kù):選用Mysql。Mysql旨在通過(guò)數(shù)據(jù)庫(kù)加密、更加安全的默認(rèn)設(shè)置、加強(qiáng)的密碼政策和細(xì)化許可控制、及加強(qiáng)的安全模型等特性,為企業(yè)數(shù)據(jù)提供最高級(jí)別的安全性。
4.開(kāi)發(fā)工具:選用Myeclipse10
5.開(kāi)發(fā)語(yǔ)言:Java語(yǔ)言。
6.開(kāi)發(fā)技術(shù):JavaEE+html+css+js技術(shù)
2.2統(tǒng)一建模語(yǔ)言
統(tǒng)一建模語(yǔ)言(Unified ?Modeling ?Language ,UML)是一種可視化建模語(yǔ)言,通俗上講就是系統(tǒng)開(kāi)發(fā)者利用UML可以清楚地表達(dá)出自己對(duì)系統(tǒng)是如何設(shè)計(jì),是一種設(shè)計(jì)思想的體現(xiàn),然而UML就是作為輔助工具,就如汽車軸承的輪滑油。UML包括了一些可以相互組合圖表的圖形元素。由于UML是一種語(yǔ)言,所以UML具有組合這些元素的法規(guī)。UML提供了多種圖來(lái)設(shè)計(jì)設(shè)計(jì)系統(tǒng),如設(shè)計(jì)系統(tǒng)前期常用的用例圖,行為圖等,這些圖需要用多個(gè)視圖來(lái)展示一個(gè)系統(tǒng),這組視圖被稱為一個(gè)模型(Model)。一個(gè)UML模型描述了一個(gè)系統(tǒng)需要做什么。同時(shí),UML提供了組織和擴(kuò)展這些圖的方法。
2.3 開(kāi)發(fā)技術(shù)?
2.3.1J2EE技術(shù)
人可以掌握多門(mén)外語(yǔ),而一個(gè)計(jì)算機(jī)科學(xué)家精通的大多是編程語(yǔ)言,它不是人類的自然語(yǔ)言,比如C語(yǔ)言、Java、Perl等等。由于不同的公司開(kāi)發(fā)出的“中間件”不夠規(guī)范,所以Sun公司推出J2EE,用這個(gè)標(biāo)準(zhǔn)來(lái)解決弊病。它提供了良好的機(jī)制,讓每個(gè)層次允許與之相對(duì)的服務(wù)器、組件運(yùn)行,使得系統(tǒng)的搭建穩(wěn)定可用、開(kāi)發(fā)高效、維護(hù)方便[1][2]。
2.3.2MVC模式
MVC模式是常用的開(kāi)發(fā)模式,主要是在代碼實(shí)現(xiàn)上將其分為M層、V層和C層。
視圖(View)代表用戶交互界面,一個(gè) Web 應(yīng)用就可能有很多的界面,在 MVC 模式中,視圖僅僅處理的只有數(shù)據(jù)采集、處理,還有用戶的請(qǐng)求, 并不包括業(yè)務(wù)流程的處理,業(yè)務(wù)流程由模型(Model)來(lái)處理[3]。
模型(Model)就是業(yè)務(wù)流程/狀態(tài)的處理及業(yè)務(wù)規(guī)則的制定。模型處理業(yè)務(wù)流程的過(guò)程其它層是無(wú)法看見(jiàn)了的,它就像黑箱子,在接受視圖請(qǐng)求的數(shù)據(jù)之后,然后返回最終的處理結(jié)果。MVC 最主要的核心就是業(yè)務(wù)模型的設(shè)計(jì),一個(gè)典型的應(yīng)用例子就是目前流行的 EJB 模型,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但是它不能作為應(yīng)用設(shè)計(jì)模型的框架[4]。
控制器(Controller)可以理解為接收用戶的請(qǐng)求,然后視圖和模型匹配在一起,一起再完成用戶請(qǐng)求。它有非常明顯的作用在劃分控制層上,可以很清晰地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型、視圖,可以完成用戶的什么樣的請(qǐng)求。控制層不做所有的數(shù)據(jù)處理,比如說(shuō):用戶點(diǎn)擊一個(gè)連接,控制層接受到請(qǐng)求之后,并不處理業(yè)務(wù)信息,它只是向模型傳遞用戶的信息,同時(shí)告訴模型做什么,然后選擇符合需求的視圖返回給用戶[5][6]。
2.3.3MySQL數(shù)據(jù)庫(kù)
科技的進(jìn)步,給日常帶來(lái)許多便利:教室的投影器用到了虛擬成像技術(shù),數(shù)碼相機(jī)用到了光電檢測(cè)技術(shù),比如超市貨物進(jìn)出庫(kù)的記錄需要一個(gè)信息倉(cāng)庫(kù)。這個(gè)信息倉(cāng)庫(kù)就是數(shù)據(jù)庫(kù),而這次的物流信息管理系統(tǒng)也需要這項(xiàng)技術(shù)的支持[7]。
用MySQL這個(gè)軟件,是因?yàn)樗芙邮芏鄠€(gè)使用者訪問(wèn),而且里面存在Archive等。它會(huì)先把數(shù)據(jù)進(jìn)行分類,然后分別保存在表里,這樣的特別操作就會(huì)提高數(shù)據(jù)管理系統(tǒng)自身的速度,讓數(shù)據(jù)庫(kù)能被靈活運(yùn)用。MySQL的代碼是公開(kāi)的,而且允許別人二次編譯升級(jí)。這個(gè)特點(diǎn)能夠降低使用者的成本,再搭配合適的軟件后形成一個(gè)良好的網(wǎng)站系統(tǒng)。雖然它有缺點(diǎn),但是綜合各方面來(lái)說(shuō),它是使用者的主流運(yùn)用的對(duì)象[8]。
2.3.4B/S結(jié)構(gòu)
B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果, 不需要考慮不停裝軟件的問(wèn)題[9]。
2.3.5SSM框架
SSM即SpringMVC+Spring+Mybatis,這三個(gè)框架有各自最獨(dú)有的優(yōu)勢(shì),那么將它們組合在一起能夠碰撞出很強(qiáng)的火花。設(shè)計(jì)者在不需消耗大量功夫,能做出Web應(yīng)用程序,而且這個(gè)程序還具有層次清晰、升級(jí)更新操作不影響正常使用的、允許多次使用的特點(diǎn)。這個(gè)復(fù)合框架形成一個(gè)有著結(jié)構(gòu)完整、功能強(qiáng)大和結(jié)構(gòu)良好的體系:SpringMVC使各板塊分離,Spring使開(kāi)發(fā)更靈活方便,使用Mybatis讓開(kāi)發(fā)者直接對(duì)對(duì)象進(jìn)行操縱,各層次分工明細(xì),并實(shí)現(xiàn)各個(gè)層次間的解耦,讓代碼更加的靈活精簡(jiǎn)。這個(gè)框架使程序員能夠規(guī)避在開(kāi)發(fā)時(shí)期避免個(gè)別錯(cuò)誤導(dǎo)致整體被破壞,也能在后期應(yīng)對(duì)客戶對(duì)產(chǎn)品提出的新需求[10] [11]。
2.3.6MyEclipse開(kāi)發(fā)工具
MyEclipse是由Genuitec公司開(kāi)發(fā)的,一款功能非常強(qiáng)大的JavaEE的集成開(kāi)發(fā)環(huán)境,其中包括有:完備的編碼、調(diào)試、測(cè)試和發(fā)布功能[10],完整支持JSP、Spring、CSS、JavaScript、SpringMVC、HTML、JSF、Mybatis、SQL等技術(shù)。在體系結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:JavaEE模型;Web開(kāi)發(fā)工具、EJB開(kāi)發(fā)工具、JavaEE項(xiàng)目部署服務(wù)、應(yīng)用程序服務(wù)器的而連接器、數(shù)據(jù)庫(kù)服務(wù)、MyEclipse整合幫助[11]。
對(duì)于以上每一種功能的類別,在MyEclipse中都有相應(yīng)的功能部件,并通過(guò)一系列的插件來(lái)實(shí)現(xiàn)它們。MyEclipse在結(jié)構(gòu)上的這種模塊化,可以讓它在不影響其他模塊的情況下,對(duì)其中任意的一個(gè)模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。強(qiáng)大的MyEclipse應(yīng)用開(kāi)發(fā)平臺(tái)也不僅僅只是Eclipse的插件而已,同時(shí)更是一款功能強(qiáng)大的,用于JavaEE的集成開(kāi)發(fā)環(huán)境[12]。
。
3.1可行性分析
本系統(tǒng)操作簡(jiǎn)單,易理解。網(wǎng)上零食銷售系統(tǒng)與大部分電子商務(wù)系統(tǒng)的操作流程類似,避免了用戶學(xué)習(xí)使用系統(tǒng)的時(shí)間和負(fù)擔(dān)。
3.1.1操作可行性
本系統(tǒng)使用的是現(xiàn)流行的開(kāi)發(fā)語(yǔ)言,即Java技術(shù)。同時(shí)所有的信息都是以網(wǎng)頁(yè)的形式展示,系統(tǒng)中的信息都可以在后臺(tái)操作數(shù)據(jù)庫(kù)達(dá)到數(shù)據(jù)更新的效果。用戶只需要會(huì)計(jì)算機(jī)的基本操作或者會(huì)上網(wǎng)就可以使用本系統(tǒng),系統(tǒng)管理員只需要懂得文件上傳,處理文本即可操作管理后臺(tái)。系統(tǒng)布局較簡(jiǎn)單,功能操作不復(fù)雜,完全符合現(xiàn)代市場(chǎng)需求。因此本系統(tǒng)具有操作可行性。
3.1.2技術(shù)可行性
本系統(tǒng)在Windows7開(kāi)發(fā)環(huán)境下,利用Myeclipse10開(kāi)發(fā)工具,并使用Mysql作為數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)實(shí)現(xiàn)系統(tǒng)的各種功能。Mysql屬于主從式的數(shù)據(jù)庫(kù)服務(wù)器這也是主從式數(shù)據(jù)庫(kù)服務(wù)器的特點(diǎn),服務(wù)器本身重在數(shù)據(jù)的管理,為用戶端應(yīng)用程序提供一致的接口。可以提高系統(tǒng)的性能,降低它的局限性。
3.1.3經(jīng)濟(jì)可行性
本系統(tǒng)是一個(gè)在線的網(wǎng)上零食銷售系統(tǒng),顧客可以直接在系統(tǒng)上購(gòu)買(mǎi)零食,同時(shí)計(jì)算機(jī)的價(jià)格十分低廉,性能卻有了長(zhǎng)足的進(jìn)步。而此系統(tǒng)的開(kāi)發(fā)可以有效的提高工作效率,降低管理成本,節(jié)省管理費(fèi)用,為企業(yè)的工作效率帶來(lái)了一個(gè)質(zhì)的飛躍。因此,本系統(tǒng)在經(jīng)濟(jì)上是完全具有可行性的。
3.2功能需求分析
通過(guò)本系統(tǒng),賣家節(jié)省了用于交易場(chǎng)所、服務(wù)質(zhì)量、維護(hù)商鋪雜支開(kāi)銷等方面的投入,從而降低了價(jià)格;買(mǎi)家方面,不僅節(jié)約了時(shí)間成本,同時(shí)降低了購(gòu)買(mǎi)成本,可以“貨比三家”地隨意挑選性價(jià)比高的產(chǎn)品。加快了交易和貨幣流通速度,而進(jìn)而推動(dòng)經(jīng)濟(jì)的增長(zhǎng)。
根據(jù)條件需要,系統(tǒng)結(jié)構(gòu)主要由二大用戶組成。一是買(mǎi)家組成的買(mǎi)家用戶,二是管理員用戶。
1用戶登錄及身份要求 ??????
驗(yàn)證買(mǎi)家、管理員等用戶的信息
2本系統(tǒng)銷售功能需求(面向買(mǎi)家用戶)
允許買(mǎi)家用戶在線留言。
允許買(mǎi)家用戶評(píng)論商品。
允許買(mǎi)家用戶查詢商品的信息。
允許買(mǎi)家用戶對(duì)購(gòu)買(mǎi)訂單的管理。
自動(dòng)生成訂單。
買(mǎi)家用戶在線支付訂單費(fèi)用。
買(mǎi)家選擇商品,進(jìn)行購(gòu)買(mǎi),填寫(xiě)發(fā)貨地址、聯(lián)系電話等信息。
3本系統(tǒng)銷售功能需求(面向賣家用戶)
對(duì)商品信息的管理(添加、刪除,修改,查詢)。
對(duì)買(mǎi)家的訂單的管理(刪除,修改,查詢)。
管理商品的庫(kù)存數(shù)量。
對(duì)買(mǎi)家賣家用戶注冊(cè)信息的管理(添加,刪除,修改,查詢)。
對(duì)商品信息的管理(刪除,修改,查詢)。
對(duì)買(mǎi)家的訂單的管理(刪除,修改,查詢)。
對(duì)商品類別管理(添加、刪除、修改商品類別)。
3.3用例分析
1.管理員主要負(fù)責(zé)系統(tǒng)管理、好物推薦管理、好物分類管理、用戶信息管理、訂單管理,下圖所示描述管理員的用例。
?
圖3-1管理員用例圖
2.用戶主要使用系統(tǒng)的在線購(gòu)買(mǎi)業(yè)務(wù),下圖所示為用戶用例圖。
?
圖3-2用戶用例圖
3.4數(shù)據(jù)流分析
數(shù)據(jù)流圖的設(shè)計(jì)主要是由于系統(tǒng)目前功能還沒(méi)有確定,可以先描述可能要使用到的功能內(nèi)容,并且向用戶了解“系統(tǒng)從外界接受什么數(shù)據(jù)”和“系統(tǒng)向外界送出什么數(shù)據(jù)”等信息,根據(jù)用戶所給的答復(fù)進(jìn)行設(shè)計(jì)數(shù)據(jù)流圖。
如下為系統(tǒng)的0層數(shù)據(jù)流圖,系統(tǒng)用戶分為管理員和普通用戶。
????
?
圖3-4系統(tǒng)數(shù)據(jù)流圖(0層)
如下圖所示為系統(tǒng)1層數(shù)據(jù)流圖。
?
圖3-5系統(tǒng)數(shù)據(jù)流圖(1層)
網(wǎng)上零食銷售系統(tǒng)第二層數(shù)據(jù)流圖主要詳細(xì)反應(yīng)各功能模塊對(duì)應(yīng)的操作與數(shù)據(jù)進(jìn)行交互的原理。并且更詳細(xì)的顯示出各角色對(duì)功能模塊操作的數(shù)據(jù)流向,讓開(kāi)發(fā)人員能了解該系統(tǒng)的開(kāi)發(fā)方向,能夠更準(zhǔn)確的開(kāi)發(fā)出系統(tǒng)模型。
將商品信息維護(hù)進(jìn)行細(xì)化得到商品信息管理二層數(shù)據(jù)流程圖,如下圖所示。?????
?
圖3-6商品管理數(shù)據(jù)流圖(2層)
將訂單信息管理進(jìn)行細(xì)化得到訂單信息管理二層數(shù)據(jù)流程圖,如下圖所示。
?
圖3-7訂單管理數(shù)據(jù)流圖(2層)
3.5數(shù)據(jù)字典
1.數(shù)據(jù)存儲(chǔ)描述
下表描述了用戶信息的數(shù)據(jù)流、數(shù)據(jù)來(lái)源、數(shù)據(jù)去向和數(shù)據(jù)流組成的詞條。
表3-1用戶信息描述
| 數(shù)據(jù)流 | 用戶信息 |
| 數(shù)據(jù)流來(lái)源 | Mysql數(shù)據(jù)庫(kù)中用戶信息表,用戶詳細(xì)信息表 |
| 數(shù)據(jù)去向 | 系統(tǒng)界面,用戶信息管理界面 |
| 數(shù)據(jù)流組成 | 用戶名、用戶密碼、添加時(shí)間、編號(hào) |
下表描述了購(gòu)買(mǎi)訂單信息的數(shù)據(jù)流、數(shù)據(jù)來(lái)源、數(shù)據(jù)去向和數(shù)據(jù)流組成的詞條。
表3-2購(gòu)買(mǎi)訂單信息描述
| 數(shù)據(jù)流 | 購(gòu)買(mǎi)訂單信息 |
| 數(shù)據(jù)流來(lái)源 | Mysql數(shù)據(jù)庫(kù)中購(gòu)買(mǎi)訂單表,購(gòu)買(mǎi)訂單詳細(xì)信息表 |
| 數(shù)據(jù)去向 | 購(gòu)買(mǎi)訂單界面 |
| 數(shù)據(jù)流組成 | 購(gòu)買(mǎi)訂單ID、用戶ID、商品ID、數(shù)量 |
下表描述了訂單信息的數(shù)據(jù)流、數(shù)據(jù)來(lái)源、數(shù)據(jù)去向和數(shù)據(jù)流組成的詞條。
表3-3訂單信息描述
| 數(shù)據(jù)流 | 訂單信息 |
| 數(shù)據(jù)流來(lái)源 | Mysql數(shù)據(jù)庫(kù)中訂單表,訂單詳情表 |
| 數(shù)據(jù)去向 | 用戶訂單界面,訂單管理界面 |
| 數(shù)據(jù)流組成 | 用戶ID、訂單ID、商品ID、下單時(shí)間、訂單金額 |
下表描述了好物分類的數(shù)據(jù)流、數(shù)據(jù)來(lái)源、數(shù)據(jù)去向和數(shù)據(jù)流組成的詞條。
表3-4好物分類信息描述
| 數(shù)據(jù)流 | 好物分類信息 |
| 數(shù)據(jù)流來(lái)源 | Mysql數(shù)據(jù)庫(kù)中好物分類表、好物詳情表 |
| 數(shù)據(jù)去向 | 好物詳情界面、購(gòu)買(mǎi)訂單界面、好物分類管理界面 |
| 數(shù)據(jù)流組成 | 好物分類名 |
下表描述了商品管理的數(shù)據(jù)流、數(shù)據(jù)來(lái)源、數(shù)據(jù)去向和數(shù)據(jù)流組成的詞條。
表3-5商品信息描述
| 數(shù)據(jù)流 | 商品信息 |
| 數(shù)據(jù)流來(lái)源 | Mysql數(shù)據(jù)庫(kù)中商品表、商品類別表 |
| 數(shù)據(jù)去向 | 商品查詢界面、商品詳情界面、購(gòu)買(mǎi)訂單界面、商品管理界面 |
| 數(shù)據(jù)流組成 | 商品名、商品價(jià)格、庫(kù)存數(shù)量、商品類別 |
2.數(shù)據(jù)處理描述
下表描述用戶通過(guò)輸入用戶名和密碼進(jìn)行身份驗(yàn)證處理,驗(yàn)證成功后將返回的信息顯示在界面上。
表3-6用戶身份驗(yàn)證
| 處理邏輯名稱 | 用戶身份驗(yàn)證 |
| 簡(jiǎn)述 | 檢查輸入信息的合法性 |
| 輸入的數(shù)據(jù)流 | 用戶名+密碼 |
| 處理過(guò)程 | 根據(jù)輸入的用戶名和密碼,檢索用戶,顯示查詢信息 |
| 輸出的數(shù)據(jù)流 | 用戶信息、商品信息 |
下表描述用戶成功登錄系統(tǒng)后通過(guò)商品名查詢商品信息,根據(jù)查詢后返回的數(shù)據(jù)顯示在界面上。
表3-7商品信息查詢
| 處理邏輯名稱 | 商品信息查詢 |
| 簡(jiǎn)述 | 檢查輸入信息的合法性 |
| 輸入的數(shù)據(jù)流 | 商品名或商品編號(hào)或商品類別 |
| 處理過(guò)程 | 登錄成功的用戶,通過(guò)商品名查詢用戶所需的商品,還可查詢用戶的訂單及評(píng)論。 |
| 輸出的數(shù)據(jù)流 | 用戶訂單信息,購(gòu)買(mǎi)訂單信息 |
下表描述管理員用戶成功登錄系統(tǒng)后可以添加商品,添加后,重新查詢商品表,返回的商品數(shù)據(jù)顯示在界面上。
表3-8商品信息添加
| 處理邏輯名稱 | 商品信息添加 |
| 簡(jiǎn)述 | 檢查輸入信息的合法性 |
| 輸入的數(shù)據(jù)流 | 商品信息 |
| 處理過(guò)程 | 登錄成功的管理員用戶,往數(shù)據(jù)庫(kù)添加一條商品信息數(shù)據(jù)。 |
| 輸出的數(shù)據(jù)流 | 商品信息,訂單信息 |
下表描述管理員用戶成功登錄系統(tǒng)后,購(gòu)買(mǎi)商品,填寫(xiě)訂單收貨人、收貨地址、聯(lián)系電話等,生成購(gòu)買(mǎi)訂單后,重新查詢訂單表,返回的訂單數(shù)據(jù)顯示在界面上。
表3-9訂單生成
| 處理邏輯名稱 | 訂單生成 |
| 簡(jiǎn)述 | 檢查輸入信息的合法性 |
| 輸入的數(shù)據(jù)流 | 訂單信息 |
| 處理過(guò)程 | 登錄成功的用戶,往數(shù)據(jù)庫(kù)添加一條訂單信息數(shù)據(jù)。 |
| 輸出的數(shù)據(jù)流 | 訂單信息 |
下表描述用戶成功登錄系統(tǒng)后可以瀏覽好物推薦,返回的好物推薦數(shù)據(jù)顯示在界面上。
表3-10好物推薦
| 處理邏輯名稱 | 好物推薦瀏覽 |
| 簡(jiǎn)述 | 檢查輸入信息的合法性 |
| 輸入的數(shù)據(jù)流 | 推薦標(biāo)題 |
| 處理過(guò)程 | 登錄成功的用戶,通過(guò)推薦信息查看好物推薦 |
| 輸出的數(shù)據(jù)流 | 好物推薦 |
4.1結(jié)構(gòu)設(shè)計(jì)
本系統(tǒng)的設(shè)計(jì)是基于Java技術(shù)+Mysql數(shù)據(jù)庫(kù)+Tomcat服務(wù)器的方式設(shè)計(jì),以Myeclipse10為開(kāi)發(fā)工具,并運(yùn)用Photoshop CS6技術(shù)美化網(wǎng)頁(yè),輔之以CSS技術(shù)。本系統(tǒng)使用的角色主要有系統(tǒng)管理員和普通用戶,系統(tǒng)分為前臺(tái)和后臺(tái),前臺(tái)主要用于商品的展示和購(gòu)買(mǎi),后臺(tái)用于商品信息和訂單信息的管理,首先以普通用戶通過(guò)賬號(hào)注冊(cè)后登錄系統(tǒng)前臺(tái),可以進(jìn)行各種商品的信息瀏覽和搜索,用戶可以將需要的商品進(jìn)行下單購(gòu)買(mǎi),用戶可以查詢訂單是否已經(jīng)被管理員確認(rèn),訂單生成后表示用戶購(gòu)買(mǎi)成功,前臺(tái)系統(tǒng)除了可以進(jìn)行商品的下單還可以對(duì)商品進(jìn)行收藏,進(jìn)行商品評(píng)論,用戶同時(shí)可以修改個(gè)人的信息資料,查看個(gè)人的購(gòu)買(mǎi)記錄;以管理員的身份登錄系統(tǒng)后臺(tái)可以進(jìn)行商品維護(hù)、訂單維護(hù)、統(tǒng)計(jì)分析。
系統(tǒng)功能結(jié)構(gòu)圖如下所示。
圖4-1系統(tǒng)功能結(jié)構(gòu)圖
?
4.2功能設(shè)計(jì)
1.用戶登錄模塊:確保用戶注冊(cè)信息的真實(shí)度是提高系統(tǒng)效率和盈利的重要因素。真實(shí)的用戶才能帶來(lái)價(jià)值,注冊(cè)是保證真實(shí)用戶使用系統(tǒng)主要業(yè)務(wù)的第一步,通過(guò)對(duì)用戶注冊(cè)信息的審核,可防止機(jī)器注冊(cè)。使用現(xiàn)如今較為流行的管理員進(jìn)行賬號(hào)激活的驗(yàn)證方式,對(duì)用戶注冊(cè)信息進(jìn)行過(guò)濾,未激活用戶信息將不能使用系統(tǒng)主要功能。
如下圖所示為用戶登錄流程圖。
?
圖4-2用戶登錄流程圖
2.商品瀏覽模塊:沒(méi)有登錄的用戶和登錄的用戶都可以在系統(tǒng)前臺(tái)進(jìn)行商品瀏覽,用戶可以查看商品的詳細(xì)信息和選擇相應(yīng)的商品類別進(jìn)行該類別下的商品查看,用戶還可以通過(guò)商品名稱的關(guān)鍵字進(jìn)行搜索。
如下圖所示為商品瀏覽流程圖。
?
圖4-3商品瀏覽流程圖
3.訂單管理模塊:用戶購(gòu)買(mǎi)商品后,填寫(xiě)收貨地址、收貨人、電話等信息,生成訂單信息,管理員可以審核訂單,刪除、修改訂單,對(duì)訂單信息進(jìn)行相應(yīng)的商品發(fā)貨。?
如下圖所示為訂單管理流程圖。
?
圖4-4訂單管理流程圖
4.商品管理模塊
系統(tǒng)管理員可以對(duì)商品信息進(jìn)行增、刪、改、查的操作。
5.用戶管理模塊
系統(tǒng)管理員可以對(duì)用戶信息進(jìn)行增、刪、改、查的操作。
6.購(gòu)買(mǎi)訂單模塊
用戶對(duì)個(gè)人添加至購(gòu)買(mǎi)訂單里面的商品進(jìn)行增刪改查等操作。
7.好物分類管理模塊
系統(tǒng)管理員可以對(duì)好物列別進(jìn)行增、刪、改、查的操作。
4.3數(shù)據(jù)庫(kù)設(shè)計(jì)
4.3.1概念設(shè)計(jì)
本系統(tǒng)的E-R圖表現(xiàn)了系統(tǒng)中各個(gè)實(shí)體之間的聯(lián)系,經(jīng)過(guò)分析,系統(tǒng)的實(shí)體有商品、商品類別、留言、訂單、用戶等。
商品信息的實(shí)體圖如下圖所示。
?
圖4-6商品信息實(shí)體圖
商品類別實(shí)體圖如下圖所示。
?
圖4-7商品類別信息實(shí)體圖
用戶信息實(shí)體圖如下圖所示。
?
圖4-8用戶信息實(shí)體圖
訂單信息的實(shí)體圖如下圖所示。
?
圖4-9訂單信息實(shí)體圖
系統(tǒng)總體的實(shí)體圖如下圖所示。
?
圖4-10系統(tǒng)E-R圖
4.3.2邏輯設(shè)計(jì)
Allusers表是系統(tǒng)用戶的信息表,存儲(chǔ)系統(tǒng)用戶真實(shí)姓名、性別、年齡、電話、地址、備注、編號(hào)、姓名、用戶密碼以及其相對(duì)應(yīng)的密碼等相關(guān)信息。
Dingdan表是訂單信息表,存儲(chǔ)用戶的訂單的相關(guān)信息,其中包括編號(hào)、訂單號(hào)、金額、訂單內(nèi)容、用戶名、姓名、郵件地址、郵編、手機(jī)、快遞類型、快遞費(fèi)用、添加時(shí)間、是否審核等相關(guān)信息。
yonghuzhuce表是用戶注冊(cè)信息表,存儲(chǔ)用戶的注冊(cè)信息,其中包括編號(hào)、用戶名、密碼、姓名、性別、出生年月、QQ、郵箱、電話、身份證、頭像、地址、備至、折扣等相關(guān)信息。
shangpinxinxi表是商品信息表,存儲(chǔ)商品內(nèi)容的信息,其中包括編號(hào)、商品編號(hào)、商品名稱、類別、價(jià)格、發(fā)布人、圖片、庫(kù)存、銷量、簡(jiǎn)介、添加時(shí)間等相關(guān)信息。
xinwentongzhi表是公告信息表,存儲(chǔ)公告的內(nèi)容信息,其中包括編號(hào)、標(biāo)題、類別、內(nèi)容、添加人、首頁(yè)圖片、點(diǎn)擊率、添加時(shí)間、摘要等相關(guān)信息。
4.3.3表設(shè)計(jì)
????數(shù)據(jù)庫(kù)表設(shè)計(jì):經(jīng)過(guò)前期的需求分析、可執(zhí)行分析、數(shù)據(jù)流分析等各個(gè)流程分析,結(jié)合軟件工程的高內(nèi)聚、低耦合規(guī)則,并考慮到以后的程序功能擴(kuò)展,設(shè)計(jì)如下幾張表。
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| user_id | int | 11 | 是 | 是 | 用戶ID |
| user_name | varchar | 64 | 是 | 否 | 用戶名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| 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í)間 |
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| mall_center_id | int | 11 | 是 | 是 | 商城中心ID |
| brand | varchar | 64 | 否 | 否 | 品牌 |
| specifications | varchar | 64 | 否 | 否 | 規(guī)格 |
| 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í)間 |
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| order_after_sales_id | int | 11 | 是 | 是 | 訂單售后ID |
| order_number | varchar | 64 | 否 | 否 | 訂單號(hào) |
| user_name | int | 11 | 否 | 否 | 用戶名 |
| after_sale_goods | varchar | 64 | 否 | 否 | 售后商品 |
| after_sales_type | varchar | 64 | 否 | 否 | 售后類型 |
| relevant_vouchers | varchar | 255 | 否 | 否 | 相關(guān)憑證 |
| after_sales_content | text | 0 | 否 | 否 | 售后內(nèi)容 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態(tài) |
| examine_reply | varchar | 255 | 否 | 否 | 審核回復(fù) |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
| 名稱 | 類型 | 長(zhǎng)度 | 不是null | 主鍵 | 注釋 |
| order_shipment_id | int | 11 | 是 | 是 | 訂單發(fā)貨ID |
| user | int | 11 | 否 | 否 | 用戶 |
| order_number | varchar | 64 | 否 | 否 | 訂單號(hào) |
| courier_services_company | varchar | 64 | 否 | 否 | 快遞公司 |
| courier_number | varchar | 64 | 否 | 否 | 快遞單號(hào) |
| receiving_address | varchar | 64 | 否 | 否 | 收貨地址 |
| consignee_name_ | varchar | 64 | 否 | 否 | 收貨人姓名 |
| contact_number | varchar | 64 | 否 | 否 | 聯(lián)系電話 |
| commodity_list | text | 0 | 否 | 否 | 商品清單 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創(chuàng)建時(shí)間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時(shí)間 |
?系統(tǒng)詳細(xì)設(shè)計(jì)
5.1登錄模塊
本系統(tǒng)主要的用戶有系統(tǒng)管理員、用戶,一個(gè)系統(tǒng)最基本的功能就是登錄功能,本系統(tǒng)可以進(jìn)行系統(tǒng)登錄的角色有用戶、管理員,用戶對(duì)應(yīng)前臺(tái)登錄界面,管理員對(duì)應(yīng)后臺(tái)登錄界面,首先進(jìn)入登錄頁(yè),輸入用戶名和密碼,然后提交至服務(wù)端進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)驗(yàn)證,通過(guò)JavaEE邏輯代碼判斷數(shù)據(jù)庫(kù)是否存在用戶輸入的這一個(gè)記錄,如果存在,則判斷用戶身份,如果是用戶,則進(jìn)入用戶前臺(tái),如果是管理員用戶,則進(jìn)入系統(tǒng)主頁(yè),并把用戶對(duì)象存放在session中,如果不存在這樣一條記錄,則返回登錄界面。
登錄界面如下所示。
?
圖5-1前臺(tái)登錄界面
?
圖5-3用戶注冊(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;
}
5.3好物推薦模塊
系統(tǒng)為用戶提供好物信息推薦,方便用戶瀏覽推薦信息。在shaowutuijianlist.jsp實(shí)現(xiàn)好物推薦列表的展示,用戶點(diǎn)擊瀏覽,通過(guò)推薦id傳遞值,找到數(shù)據(jù)表的該好物的推薦信息。
如下圖所示為好物推薦界面。
?
圖5-4好物推薦界面
好物推薦關(guān)鍵代碼如下:
????@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();
}
5.4商品評(píng)論模塊
系統(tǒng)提供商品評(píng)論功能,在pinglunadd.jsp實(shí)現(xiàn)商品的評(píng)論,添加評(píng)論后,存入數(shù)據(jù)庫(kù)的評(píng)論表。管理員管理商品的評(píng)論信息。
如下圖所示為評(píng)論的部分界面。
?
圖5-5評(píng)論界面
商品評(píng)論關(guān)鍵代碼如下:
@RequestMapping("/get_list")
????public Map<String, Object> getList(HttpServletRequest request) {
????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
????????return success(map);
}
5.5購(gòu)買(mǎi)商品模塊
用戶在瀏覽商品后,登錄系統(tǒng)前臺(tái),進(jìn)行商品購(gòu)買(mǎi),將商品添加至購(gòu)買(mǎi)車,在個(gè)人后臺(tái)可以查看購(gòu)買(mǎi)車?yán)锩娴纳唐?#xff0c;確定商品之后可以生成訂單,然后支付。
如下圖所示為購(gòu)買(mǎi)商品的部分界面。
?
圖5-6購(gòu)買(mǎi)商品界面
5.6系統(tǒng)用戶管理模塊
過(guò)去傳統(tǒng)的手工登記管理系統(tǒng)人員信息很不方便,也很容易造成數(shù)據(jù)出錯(cuò),所以本系統(tǒng)需要一個(gè)可以管理登記人員信息的功能,管理員登入系統(tǒng),可以添加新的管理員用戶,刪除現(xiàn)有的管理員,也可以對(duì)自己的密碼和管理員用戶的密碼進(jìn)行修改。修改密碼是經(jīng)過(guò)跟數(shù)據(jù)庫(kù)的原來(lái)的密碼字段的數(shù)據(jù)進(jìn)行判斷,如果輸入兩次的新密碼一致,則更新密碼這屬性對(duì)應(yīng)的一條數(shù)據(jù)。
如下圖所示為系統(tǒng)用戶管理的部分界面。
?
圖5-7系統(tǒng)用戶管理界面
如下圖所示為修改密碼界面。
?
圖5-8修改密碼界面
系統(tǒng)用戶管理關(guān)鍵代碼如下:
@RequestMapping("/get_obj")
????public Map<String, Object> obj(HttpServletRequest request) {
????????List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
????????if (resultList.size() > 0) {
????????????JSONObject jsonObject = new JSONObject();
????????????jsonObject.put("obj",resultList.get(0));
????????????return success(jsonObject);
????????} else {
????????????return success(null);
????????}
}
5.7公告管理模塊
用戶在系統(tǒng)前臺(tái)瀏覽公告,管理員登錄系統(tǒng)后,可以對(duì)添加、刪除、修改公告,公告管理包括添加公告、查詢公告、修改公告,系統(tǒng)前臺(tái)的公告信息時(shí)隨系統(tǒng)后臺(tái)變化而變化的,同時(shí)能進(jìn)行詳細(xì)公告的打印和公告列表導(dǎo)出至excel表,管理員還可以通過(guò)標(biāo)題、編號(hào)等關(guān)鍵字進(jìn)行公告信息的搜索。
公告添加的界面如下圖所示。
?
圖5-9公告添加界面
公告發(fā)布關(guān)鍵代碼如下:
public Map<String, Object> error(Integer code, String message) {
????????Map<String, Object> map = new HashMap<>();
????????map.put("error", new HashMap<String, Object>(4) {{
????????????put("code", code);
????????????put("message", message);
????????}});
????????return map;
}
5.8商品管理模塊
管理人員可以對(duì)商品進(jìn)行增刪查改的操作,這些操作將在商品管理界面進(jìn)行。
如下圖所示為商品管理界面。
?
圖5-10商品管理界面
商品發(fā)布關(guān)鍵代碼如下:
public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
5.9訂單管理模塊
管理人員可以對(duì)訂單進(jìn)行增刪查改的操作,這些操作將在訂單管理界面進(jìn)行。
如下圖為訂單管理界面。
?
圖5-11訂單管理界面
訂單管理關(guān)鍵代碼如下:
public class FindConfig {
????public static String PAGE = "page";
????public static String SIZE = "size";
????public static String LIKE = "like";
????public static String ORDER_BY = "orderby";
????public static String FIELD = "field";
????public static String GROUP_BY = "groupby";
????public static String MIN_ = "_min";
????public static String MAX_ = "_max";
}
?
6.1測(cè)試目的
該系統(tǒng)能夠完成商品選購(gòu),好物推薦、商品購(gòu)買(mǎi),商品管理,商品類別管理,訂單管理,用戶管理等功能,做到所開(kāi)發(fā)的系統(tǒng)操作簡(jiǎn)單,盡量使系統(tǒng)操作不受用戶對(duì)電腦知識(shí)水平的限制,符合系統(tǒng)可維護(hù)性,由于系統(tǒng)涉及的信息比較廣,數(shù)據(jù)庫(kù)中的數(shù)據(jù)需定期修改,系統(tǒng)可利用的空間及性能也隨之下降,為了使系統(tǒng)更好地運(yùn)轉(zhuǎn),系統(tǒng)可以對(duì)系統(tǒng)數(shù)據(jù)及一些簡(jiǎn)單的功能進(jìn)行獨(dú)立的維護(hù)及調(diào)整;符合系統(tǒng)開(kāi)放性要求,該系統(tǒng)能夠在開(kāi)放的硬件體系結(jié)構(gòu)中運(yùn)行,并且能與其他系統(tǒng)順利連接。
6.2測(cè)試用例
1.注冊(cè)測(cè)試
表6-1注冊(cè)測(cè)試用例
| 字段名稱 | 描述 |
| 測(cè)試項(xiàng) | 首頁(yè)注冊(cè)功能測(cè)試 |
| 輸入數(shù)據(jù) | 1、輸入正確的郵箱、用戶名、密碼、確認(rèn)密碼、以及驗(yàn)證碼之后點(diǎn)擊“注冊(cè)”按鈕 2、輸入錯(cuò)誤的用戶名或密碼、郵箱、驗(yàn)證碼等,單擊“注冊(cè)”按鈕 3、不輸入郵箱、用戶名、密碼、確認(rèn)密碼、以及驗(yàn)證碼之后點(diǎn)擊“注冊(cè)”按鈕 |
| 預(yù)計(jì)輸出數(shù)據(jù) | 1、用戶能正確注冊(cè)賬號(hào),成功插入數(shù)據(jù)庫(kù)用戶的賬戶資料,提示注冊(cè)成功。 2、無(wú)法注冊(cè)用戶信息,注冊(cè)失敗。 3、無(wú)法注冊(cè)用戶信息,注冊(cè)失敗。 |
使用上述測(cè)試用例對(duì)前臺(tái)首頁(yè)注冊(cè)界面進(jìn)行測(cè)試,當(dāng)在輸入正確的郵箱、用戶名、密碼、確認(rèn)密碼、以及驗(yàn)證碼之后,系統(tǒng)將彈出注冊(cè)成功信息提示對(duì)話框。
使用上述測(cè)試用例對(duì)前臺(tái)首頁(yè)注冊(cè)界面進(jìn)行測(cè)試,當(dāng)在輸入錯(cuò)誤的用戶名或密碼、郵箱、驗(yàn)證碼之后,系統(tǒng)將提示錯(cuò)誤。
使用上述測(cè)試用例對(duì)前臺(tái)首頁(yè)注冊(cè)界面進(jìn)行測(cè)試,當(dāng)在不輸入用戶名、密碼、郵箱、驗(yàn)證碼之后,點(diǎn)擊注冊(cè)按鈕。
2.登錄界面進(jìn)行測(cè)試?
表6-2登錄測(cè)試用例
| 測(cè)試項(xiàng) | 首頁(yè)登錄功能測(cè)試 |
| 輸入數(shù)據(jù) | 1、輸入正確的用戶名和密碼,單擊“登錄”按鈕 2、輸入錯(cuò)誤的用戶名和密碼,單擊“登錄”按鈕 3、不輸入用戶名和密碼,單擊“登錄”按鈕 |
| 預(yù)計(jì)輸出數(shù)據(jù) | 1、數(shù)據(jù)庫(kù)中存在的用戶能正確登錄,。結(jié)果彈出主界面。 2、錯(cuò)誤的或者無(wú)效用戶登錄,登錄系統(tǒng)失敗。 3、輸入用戶名或密碼信息為空,登錄系統(tǒng)失敗。 |
3.商品管理進(jìn)行測(cè)試?
名稱:用戶管理測(cè)試????????目的:測(cè)試商品管理界面?
內(nèi)容:口令的輸入,合法性檢查,合理性檢查,界面的顯示控制。?
下表描述了商品表中目前所存在的記錄。
表6-5商品表預(yù)存數(shù)據(jù)
| ????商品名 | 商品類別 | 商品價(jià)格 | 商品狀態(tài) |
| A | A | 389 | 上架 |
| B | B | 249 | 上架 |
| C | C | 322 | 下架 |
| D | D | 168 | 上架 |
添加時(shí)應(yīng)注意事項(xiàng):
管理員添加商品時(shí)必須添加已存在的商品類別,若該商品不屬于現(xiàn)有的所有類別,則應(yīng)該先添加商品類別。
下表描述了添加商品進(jìn)行測(cè)試的用例,主要是為了防止添加商品時(shí)出現(xiàn)異常和存在的漏洞。
表6-6添加商品測(cè)試用例
| 輸入 | 輸出 | ||
| 商品名 | 商品價(jià)格 | 商品圖片 | |
| ???空 | 參數(shù)錯(cuò)誤 | ||
| 空 | 參數(shù)錯(cuò)誤 | ||
| 空 | 請(qǐng)選擇上傳圖片 | ||
| A | 1 | a.jpg | 添加成功 |
4.購(gòu)買(mǎi)商品測(cè)試?
名稱:購(gòu)買(mǎi)商品測(cè)試????????目的:測(cè)試購(gòu)買(mǎi)商品界面?
內(nèi)容:口令的輸入,合法性檢查,合理性檢查,界面的顯示控制。?
下表描述了購(gòu)買(mǎi)商品的測(cè)試用例,防止購(gòu)買(mǎi)時(shí)出錯(cuò)。
表6-7購(gòu)買(mǎi)商品測(cè)試用例
| 輸入 | 輸出 | ||
| 用戶ID | 商品ID | 商品數(shù)量 | |
| 11 | 1 | 1 | 購(gòu)買(mǎi)商品成功 |
| 22 | 電視 | 請(qǐng)?zhí)顚?xiě)商品數(shù)量 | |
| 33 | 電視 | a | 購(gòu)買(mǎi)失敗 |
用戶購(gòu)買(mǎi)商品時(shí),首先判斷商品數(shù)量是否小于庫(kù)存,若超出庫(kù)存數(shù)量,則提示商品數(shù)量不足。
經(jīng)過(guò)這幾個(gè)月的設(shè)計(jì)和開(kāi)發(fā),“基于SSM的網(wǎng)上零食銷售系統(tǒng)”已經(jīng)完成了,其功能符合設(shè)計(jì)需求,能夠完成用戶的注冊(cè)、在線購(gòu)買(mǎi)、訂單管理、好物推薦管理和管理員的商品類別管理、訂單審核、商品審核、用戶管理、系統(tǒng)管理,信息維護(hù)、查詢等功能。經(jīng)過(guò)最后的使用,證明系統(tǒng)完全具有可行性與可擴(kuò)充性。
在系統(tǒng)的分析階段,主要是分析系統(tǒng)的需求,理解系統(tǒng)要完成的基本功能,找出系統(tǒng)的用例(Use Case)和角色(Actor),畫(huà)出系統(tǒng)的用例模型圖,用例模型是此后系統(tǒng)建模的基礎(chǔ)。在用例的基礎(chǔ)上分析順序圖和協(xié)作圖,得到系統(tǒng)的所有對(duì)象,然后建立對(duì)象模型。抽象出系統(tǒng)的類,并將系統(tǒng)中聯(lián)系緊密的類劃分為若干個(gè)包,畫(huà)出包圖。有了這些基礎(chǔ),就可以將系統(tǒng)劃分為小單元功能模塊。
整個(gè)過(guò)程中,我必須認(rèn)可UML統(tǒng)一建模語(yǔ)言,它讓我很清晰的知道自己想做什么,想實(shí)現(xiàn)什么,對(duì)系統(tǒng)后面的代碼編寫(xiě)起到?jīng)Q定性的幫助,同時(shí)經(jīng)過(guò)本次系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),讓我積累了很多經(jīng)驗(yàn),提高了編寫(xiě)程序的能力,為以后的學(xué)習(xí)和工作打下了堅(jiān)實(shí)的基礎(chǔ)。
由于時(shí)間有限,本系統(tǒng)還有待繼續(xù)完善和改進(jìn),因此需要進(jìn)一步進(jìn)行分析和修改,以使其更加完善!?
參考文獻(xiàn)
[5]王娟.基于Android系統(tǒng)的手機(jī)網(wǎng)上商城設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2021(03):43-44.
[6]韓己峰.綜合性網(wǎng)上商城引領(lǐng)山東政府采購(gòu)駛?cè)敫咚俾穂J].中國(guó)政府采購(gòu),2020(12):39-41.
[7]袁江琛.基于MVC框架網(wǎng)上商城的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2020,32(20):126-128.
[8]袁江琛.Ajax+jQuery在網(wǎng)上商城購(gòu)物車模塊中的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2020(10):34-35+68.
[9]王柯夢(mèng),王瑞平.基于B2C網(wǎng)上商城前臺(tái)系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].廣西質(zhì)量監(jiān)督導(dǎo)報(bào),2020(09):70-71.
[10]薄志強(qiáng). 基于SSM框架的網(wǎng)上商城系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2020..
[11]張浩. 基于網(wǎng)上商城服務(wù)對(duì)話系統(tǒng)的研究與實(shí)現(xiàn)[D].黑龍江大學(xué),2020.
[12]孫建英.分布式、集中式、區(qū)塊鏈技術(shù)在網(wǎng)上商城中的應(yīng)用[J].商場(chǎng)現(xiàn)代化,2020(01):13-15.
[13]李穎,方浪,武瑞嬋.“Free-Try”虛擬試衣在網(wǎng)上商城中的實(shí)現(xiàn)[J].襄陽(yáng)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2019,18(06):64-66.
[14]王一凡. 基于MOT的云南移動(dòng)網(wǎng)上商城O2O手機(jī)營(yíng)銷策略優(yōu)化研究[D].云南大學(xué),2019.
[15]布祉穎.論B2C和O2O的進(jìn)口零食營(yíng)銷的模式——關(guān)于零始科技有限公司的零始網(wǎng)研究[J].現(xiàn)代婦女(下旬),2018(12):75-76.
[16]老潘,花椰菜.零食控的購(gòu)物車[J].寵物世界(狗迷),2018(12):50-55.
致 謝
大學(xué)的學(xué)習(xí)生活總是感覺(jué)短暫的,總感到知識(shí)還沒(méi)有學(xué)夠,但大學(xué)畢業(yè)就在我們面前,即畢業(yè)設(shè)計(jì)即將的結(jié)束,意味著我們的大學(xué)生涯即將結(jié)束。畢業(yè)設(shè)計(jì)是我們?cè)诖髮W(xué)所學(xué)知識(shí)的一次總結(jié),更是對(duì)我們過(guò)去所學(xué)知識(shí)的提煉和升華,通過(guò)畢業(yè)設(shè)計(jì),我們認(rèn)識(shí)到大學(xué)學(xué)習(xí)過(guò)程中還有那些知識(shí)沒(méi)有掌握,那些知識(shí)需要我們進(jìn)入深入研究。這次畢業(yè)設(shè)計(jì)讓我學(xué)到了很多新的知識(shí),研究了一些新的以前自己不熟悉的領(lǐng)域,使我處理問(wèn)題的能力得到了一定的提升,同時(shí)也為今后的繼續(xù)深造或踏入社會(huì)大門(mén)提供了很好的鍛煉機(jī)會(huì)。
我也曾經(jīng)沮喪過(guò),失落過(guò),想放棄過(guò),可是因?yàn)槟銈冞@不厭其煩的鼓勵(lì)和支持才使得我堅(jiān)持了下來(lái),這里我要對(duì)我的老師和同學(xué)們說(shuō)句“謝謝你們”。因?yàn)槲覀兊闹R(shí)是有限的,所以本文將不可避免的會(huì)出現(xiàn)一些錯(cuò)誤和不足之處,還請(qǐng)老師指正。
免費(fèi)領(lǐng)取本源代碼,請(qǐng)關(guān)注點(diǎn)贊+私信
總結(jié)
以上是生活随笔為你收集整理的(附源码)ssm网上零食销售系统 毕业设计 180826的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一个简单的时间轴demo
- 下一篇: java信息管理系统总结_java实现科