(附源码)ssm网上零食销售系统 毕业设计 180826
SSM網上零食銷售系統的開發
摘 ?要
隨著Internet的使用越來越廣泛,在傳統的商業模式中,對于零食等商品,人們習慣于到各種商家店鋪購買。然而在快節奏的新時代中,人們不一定能為購買零食騰出時間,更不會耐心挑選自己想要的零食。所以設計一個網上零食銷售系統,既是迎合電子商務的大潮流,也是傳統零食行業的一個突破口,可以給傳統零食行業帶來轉變和機遇。
本系統主要是提供給用戶一個購買零食的平臺,通過價格優勢吸引眾多消費者來購買,實現正常運營。本文主要是采用Java語言、JavaEE技術、Mysql數據庫、Tomcat服務器作為開發平臺,系統采用B/S結構進行開發,完成一個網上零食銷售系統。目標是實現一個以銷售為中心的計算機系統,構建用戶信息與賬號,賬號與訂單信息有機結合的業務系統。
關鍵詞:零食銷售;購物系統;Mysql數據庫
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系統目標
1.4本文的結構
第2章 關鍵技術介紹
2.1開發環境介紹
2.2統一建模語言
2.3 開發技術
2.3.1J2EE技術 3
2.3.2MVC模式 3
2.3.3MySQL數據庫 3
2.3.4?B/S結構 4
2.3.5SSM框架 4
2.3.6?MyEclipse開發工具 4
第3章 系統分析
3.1可行性分析
3.1.1操作可行性
3.1.2技術可行性
3.1.3經濟可行性
3.2功能需求分析
3.3用例分析
3.4數據流分析
3.5數據字典
第4章 系統設計
4.1結構設計
4.2功能設計
4.3數據庫設計
4.3.1概念設計
4.3.2邏輯設計
4.3.3表設計
第5章 系統詳細設計
5.1JavaEE連接數據庫
5.2登錄模塊
5.3好物推薦模塊
5.4商品評論模塊
5.5購買商品模塊
5.6系統用戶管理模塊
5.7公告管理模塊
5.8商品管理模塊
5.9訂單管理模塊
第6章 系統測試
6.1測試目的
6.2測試用例
第7章 結論
參考文獻
致?謝
1.1研究背景
各種物品是人們日常的消費品,物品供應與消費者需求有著極為重要的關系。社會壓力造成工作日漸繁忙,時間觀念越來越強,簡化事務、方便消費,使網絡化銷售逐漸成為消費社會化的需要。同時,由于人們生活消費質量的不斷提高,各種物品消費需要由“數量型”向“質量型”轉變,物品消費的消耗性、多樣化也成為一種消費需求。
這種消費型社會的大趨勢已為網絡銷售業發展提供了良好商機。據了解,目前內陸各省大多有銷售企業在運轉,起步時間都不長,而且上規模的正規企業也不是很多,部分仍處于買賣雙方談妥價格后的私下交易。而在廣東、山東、北京、上海、天津等地已有大規模的商品銷售中心出現,特別是大城市中面向家庭客戶的商品銷售服務已蔚然興起。
然而,隨著業務量的不斷增長,眾多企業目前都多多少少的面臨著一個嚴峻的問題,就是由于缺乏信息化的支持,從商品生產到客戶下單,再到物流運輸的整個業務流程都缺乏有效管理,作業方式較為原始,管理成本不斷攀升,而且差錯率難以控制。 ??
本系統是針對企業面臨的困境與現狀,為方便消費者的購買以及將線上與線下更好的結合在一起,利用相關的技術所設計出的。
1.2研究意義
隨著我國電子商務的迅速發展,網絡銷售已形成了一定的規模并取得較大的成功,其對企業的效益越來越突出。淘寶、京東、亞馬遜、蘇寧易購、國美等大型電子商務企業的崛起,由此可以看出網絡銷售的巨大潛力和嶄新的盈利模式。網絡銷售可以加快產品的發布和宣傳,使交易過程簡化、自動化,銷售方只需要把產品交給物流行業運作即可,省去傳統交易模式的繁瑣。在空間上可以減少店鋪租金的支出,不用頻繁的進貨、卸貨、裝貨以及上架產品,側面上減少了實體店的數量,為目前堵塞的城市現狀給予一定的緩解。?
但是,目前網絡銷售在實踐過程存在著部分問題:?
(1)關于電子商務的法律法規不完善。無良商家肆無忌憚的通過網絡售賣假冒偽劣產品,以假亂真,欺騙消費者。?
(2)網絡安全技術人才緊缺。目前,很多銷售系統被黑客攻擊甚至偷取信息、錢財等案件時有發生。?
(3)網絡宣傳不到位。目前很多企業開通了網絡銷售系統,但在消費者中知名度不高。?
1.3系統目標
對于典型的數據庫系統,尤其是對于像網上零食銷售系統這樣的數據流量特別大的網絡系統,必須要滿足使用方便、操作靈活等要求。本系統在設計時應該滿足以下幾個目標
(1)采用人機對話的操作方式,界面美觀、友好,信息查詢靈活、方便,數據存儲準確、安全可靠;
(2)全面展示所有商品,并可展示主要商品;
(3)便于顧客快捷地進行商品信息查詢;
(4)用戶可以隨時修改自己的基本資料;
(5)實現下單的功能;
(6)顧客可以隨時查看自己的訂單信息;
(7)對客戶輸入的數據,系統進行嚴格的數據檢驗,盡可能排除人為的錯誤;
(8)系統最大限度地實現了易維護性和易操作性;
(9)系統運行穩定、安全可靠。
1.4本文的結構
本文具體內容包括:緒論、系統采用的關鍵技術、系統分析、系統設計、系統實現和系統測試。本文著重描述了系統的組成與結構,闡述了系統的設計方案、實現方法以及所采用的開發工具和相關技術,另外,重點剖析了部分環節的開發過程。本系統在一定的環境下對系統的重要模塊進行了模擬測試,證實了系統的可用性、可靠性。
2.1開發環境介紹
1.軟件體系結構方案:采用B/S模式,B/S代表的是服務器端由web服務器發放,客戶端由瀏覽器接收的系統,它的前臺是html語言,由瀏覽器解釋。B/S結構可以由web服務器能夠解釋的腳本語言如jsp、php、asp、JavaScript。
2.操作系統方案:Windows 7(旗艦版)操作系統,該系統可以兼容需要的軟件,并且具有良好的運行速度,界面良好。
3.后臺數據庫:選用Mysql。Mysql旨在通過數據庫加密、更加安全的默認設置、加強的密碼政策和細化許可控制、及加強的安全模型等特性,為企業數據提供最高級別的安全性。
4.開發工具:選用Myeclipse10
5.開發語言:Java語言。
6.開發技術:JavaEE+html+css+js技術
2.2統一建模語言
統一建模語言(Unified ?Modeling ?Language ,UML)是一種可視化建模語言,通俗上講就是系統開發者利用UML可以清楚地表達出自己對系統是如何設計,是一種設計思想的體現,然而UML就是作為輔助工具,就如汽車軸承的輪滑油。UML包括了一些可以相互組合圖表的圖形元素。由于UML是一種語言,所以UML具有組合這些元素的法規。UML提供了多種圖來設計設計系統,如設計系統前期常用的用例圖,行為圖等,這些圖需要用多個視圖來展示一個系統,這組視圖被稱為一個模型(Model)。一個UML模型描述了一個系統需要做什么。同時,UML提供了組織和擴展這些圖的方法。
2.3 開發技術?
2.3.1J2EE技術
人可以掌握多門外語,而一個計算機科學家精通的大多是編程語言,它不是人類的自然語言,比如C語言、Java、Perl等等。由于不同的公司開發出的“中間件”不夠規范,所以Sun公司推出J2EE,用這個標準來解決弊病。它提供了良好的機制,讓每個層次允許與之相對的服務器、組件運行,使得系統的搭建穩定可用、開發高效、維護方便[1][2]。
2.3.2MVC模式
MVC模式是常用的開發模式,主要是在代碼實現上將其分為M層、V層和C層。
視圖(View)代表用戶交互界面,一個 Web 應用就可能有很多的界面,在 MVC 模式中,視圖僅僅處理的只有數據采集、處理,還有用戶的請求, 并不包括業務流程的處理,業務流程由模型(Model)來處理[3]。
模型(Model)就是業務流程/狀態的處理及業務規則的制定。模型處理業務流程的過程其它層是無法看見了的,它就像黑箱子,在接受視圖請求的數據之后,然后返回最終的處理結果。MVC 最主要的核心就是業務模型的設計,一個典型的應用例子就是目前流行的 EJB 模型,它從應用技術實現的角度對模型做了進一步的劃分,以便充分利用現有的組件,但是它不能作為應用設計模型的框架[4]。
控制器(Controller)可以理解為接收用戶的請求,然后視圖和模型匹配在一起,一起再完成用戶請求。它有非常明顯的作用在劃分控制層上,可以很清晰地告訴你,它就是一個分發器,選擇什么樣的模型、視圖,可以完成用戶的什么樣的請求??刂茖硬蛔鏊械臄祿幚?#xff0c;比如說:用戶點擊一個連接,控制層接受到請求之后,并不處理業務信息,它只是向模型傳遞用戶的信息,同時告訴模型做什么,然后選擇符合需求的視圖返回給用戶[5][6]。
2.3.3MySQL數據庫
科技的進步,給日常帶來許多便利:教室的投影器用到了虛擬成像技術,數碼相機用到了光電檢測技術,比如超市貨物進出庫的記錄需要一個信息倉庫。這個信息倉庫就是數據庫,而這次的物流信息管理系統也需要這項技術的支持[7]。
用MySQL這個軟件,是因為它能接受多個使用者訪問,而且里面存在Archive等。它會先把數據進行分類,然后分別保存在表里,這樣的特別操作就會提高數據管理系統自身的速度,讓數據庫能被靈活運用。MySQL的代碼是公開的,而且允許別人二次編譯升級。這個特點能夠降低使用者的成本,再搭配合適的軟件后形成一個良好的網站系統。雖然它有缺點,但是綜合各方面來說,它是使用者的主流運用的對象[8]。
2.3.4B/S結構
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數據的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題[9]。
2.3.5SSM框架
SSM即SpringMVC+Spring+Mybatis,這三個框架有各自最獨有的優勢,那么將它們組合在一起能夠碰撞出很強的火花。設計者在不需消耗大量功夫,能做出Web應用程序,而且這個程序還具有層次清晰、升級更新操作不影響正常使用的、允許多次使用的特點。這個復合框架形成一個有著結構完整、功能強大和結構良好的體系:SpringMVC使各板塊分離,Spring使開發更靈活方便,使用Mybatis讓開發者直接對對象進行操縱,各層次分工明細,并實現各個層次間的解耦,讓代碼更加的靈活精簡。這個框架使程序員能夠規避在開發時期避免個別錯誤導致整體被破壞,也能在后期應對客戶對產品提出的新需求[10] [11]。
2.3.6MyEclipse開發工具
MyEclipse是由Genuitec公司開發的,一款功能非常強大的JavaEE的集成開發環境,其中包括有:完備的編碼、調試、測試和發布功能[10],完整支持JSP、Spring、CSS、JavaScript、SpringMVC、HTML、JSF、Mybatis、SQL等技術。在體系結構上,MyEclipse的特征可以被分為7類:JavaEE模型;Web開發工具、EJB開發工具、JavaEE項目部署服務、應用程序服務器的而連接器、數據庫服務、MyEclipse整合幫助[11]。
對于以上每一種功能的類別,在MyEclipse中都有相應的功能部件,并通過一系列的插件來實現它們。MyEclipse在結構上的這種模塊化,可以讓它在不影響其他模塊的情況下,對其中任意的一個模塊進行單獨的擴展和升級。強大的MyEclipse應用開發平臺也不僅僅只是Eclipse的插件而已,同時更是一款功能強大的,用于JavaEE的集成開發環境[12]。
。
3.1可行性分析
本系統操作簡單,易理解。網上零食銷售系統與大部分電子商務系統的操作流程類似,避免了用戶學習使用系統的時間和負擔。
3.1.1操作可行性
本系統使用的是現流行的開發語言,即Java技術。同時所有的信息都是以網頁的形式展示,系統中的信息都可以在后臺操作數據庫達到數據更新的效果。用戶只需要會計算機的基本操作或者會上網就可以使用本系統,系統管理員只需要懂得文件上傳,處理文本即可操作管理后臺。系統布局較簡單,功能操作不復雜,完全符合現代市場需求。因此本系統具有操作可行性。
3.1.2技術可行性
本系統在Windows7開發環境下,利用Myeclipse10開發工具,并使用Mysql作為數據庫管理系統來實現系統的各種功能。Mysql屬于主從式的數據庫服務器這也是主從式數據庫服務器的特點,服務器本身重在數據的管理,為用戶端應用程序提供一致的接口??梢蕴岣呦到y的性能,降低它的局限性。
3.1.3經濟可行性
本系統是一個在線的網上零食銷售系統,顧客可以直接在系統上購買零食,同時計算機的價格十分低廉,性能卻有了長足的進步。而此系統的開發可以有效的提高工作效率,降低管理成本,節省管理費用,為企業的工作效率帶來了一個質的飛躍。因此,本系統在經濟上是完全具有可行性的。
3.2功能需求分析
通過本系統,賣家節省了用于交易場所、服務質量、維護商鋪雜支開銷等方面的投入,從而降低了價格;買家方面,不僅節約了時間成本,同時降低了購買成本,可以“貨比三家”地隨意挑選性價比高的產品。加快了交易和貨幣流通速度,而進而推動經濟的增長。
根據條件需要,系統結構主要由二大用戶組成。一是買家組成的買家用戶,二是管理員用戶。
1用戶登錄及身份要求 ??????
驗證買家、管理員等用戶的信息
2本系統銷售功能需求(面向買家用戶)
允許買家用戶在線留言。
允許買家用戶評論商品。
允許買家用戶查詢商品的信息。
允許買家用戶對購買訂單的管理。
自動生成訂單。
買家用戶在線支付訂單費用。
買家選擇商品,進行購買,填寫發貨地址、聯系電話等信息。
3本系統銷售功能需求(面向賣家用戶)
對商品信息的管理(添加、刪除,修改,查詢)。
對買家的訂單的管理(刪除,修改,查詢)。
管理商品的庫存數量。
對買家賣家用戶注冊信息的管理(添加,刪除,修改,查詢)。
對商品信息的管理(刪除,修改,查詢)。
對買家的訂單的管理(刪除,修改,查詢)。
對商品類別管理(添加、刪除、修改商品類別)。
3.3用例分析
1.管理員主要負責系統管理、好物推薦管理、好物分類管理、用戶信息管理、訂單管理,下圖所示描述管理員的用例。
?
圖3-1管理員用例圖
2.用戶主要使用系統的在線購買業務,下圖所示為用戶用例圖。
?
圖3-2用戶用例圖
3.4數據流分析
數據流圖的設計主要是由于系統目前功能還沒有確定,可以先描述可能要使用到的功能內容,并且向用戶了解“系統從外界接受什么數據”和“系統向外界送出什么數據”等信息,根據用戶所給的答復進行設計數據流圖。
如下為系統的0層數據流圖,系統用戶分為管理員和普通用戶。
????
?
圖3-4系統數據流圖(0層)
如下圖所示為系統1層數據流圖。
?
圖3-5系統數據流圖(1層)
網上零食銷售系統第二層數據流圖主要詳細反應各功能模塊對應的操作與數據進行交互的原理。并且更詳細的顯示出各角色對功能模塊操作的數據流向,讓開發人員能了解該系統的開發方向,能夠更準確的開發出系統模型。
將商品信息維護進行細化得到商品信息管理二層數據流程圖,如下圖所示。?????
?
圖3-6商品管理數據流圖(2層)
將訂單信息管理進行細化得到訂單信息管理二層數據流程圖,如下圖所示。
?
圖3-7訂單管理數據流圖(2層)
3.5數據字典
1.數據存儲描述
下表描述了用戶信息的數據流、數據來源、數據去向和數據流組成的詞條。
表3-1用戶信息描述
| 數據流 | 用戶信息 |
| 數據流來源 | Mysql數據庫中用戶信息表,用戶詳細信息表 |
| 數據去向 | 系統界面,用戶信息管理界面 |
| 數據流組成 | 用戶名、用戶密碼、添加時間、編號 |
下表描述了購買訂單信息的數據流、數據來源、數據去向和數據流組成的詞條。
表3-2購買訂單信息描述
| 數據流 | 購買訂單信息 |
| 數據流來源 | Mysql數據庫中購買訂單表,購買訂單詳細信息表 |
| 數據去向 | 購買訂單界面 |
| 數據流組成 | 購買訂單ID、用戶ID、商品ID、數量 |
下表描述了訂單信息的數據流、數據來源、數據去向和數據流組成的詞條。
表3-3訂單信息描述
| 數據流 | 訂單信息 |
| 數據流來源 | Mysql數據庫中訂單表,訂單詳情表 |
| 數據去向 | 用戶訂單界面,訂單管理界面 |
| 數據流組成 | 用戶ID、訂單ID、商品ID、下單時間、訂單金額 |
下表描述了好物分類的數據流、數據來源、數據去向和數據流組成的詞條。
表3-4好物分類信息描述
| 數據流 | 好物分類信息 |
| 數據流來源 | Mysql數據庫中好物分類表、好物詳情表 |
| 數據去向 | 好物詳情界面、購買訂單界面、好物分類管理界面 |
| 數據流組成 | 好物分類名 |
下表描述了商品管理的數據流、數據來源、數據去向和數據流組成的詞條。
表3-5商品信息描述
| 數據流 | 商品信息 |
| 數據流來源 | Mysql數據庫中商品表、商品類別表 |
| 數據去向 | 商品查詢界面、商品詳情界面、購買訂單界面、商品管理界面 |
| 數據流組成 | 商品名、商品價格、庫存數量、商品類別 |
2.數據處理描述
下表描述用戶通過輸入用戶名和密碼進行身份驗證處理,驗證成功后將返回的信息顯示在界面上。
表3-6用戶身份驗證
| 處理邏輯名稱 | 用戶身份驗證 |
| 簡述 | 檢查輸入信息的合法性 |
| 輸入的數據流 | 用戶名+密碼 |
| 處理過程 | 根據輸入的用戶名和密碼,檢索用戶,顯示查詢信息 |
| 輸出的數據流 | 用戶信息、商品信息 |
下表描述用戶成功登錄系統后通過商品名查詢商品信息,根據查詢后返回的數據顯示在界面上。
表3-7商品信息查詢
| 處理邏輯名稱 | 商品信息查詢 |
| 簡述 | 檢查輸入信息的合法性 |
| 輸入的數據流 | 商品名或商品編號或商品類別 |
| 處理過程 | 登錄成功的用戶,通過商品名查詢用戶所需的商品,還可查詢用戶的訂單及評論。 |
| 輸出的數據流 | 用戶訂單信息,購買訂單信息 |
下表描述管理員用戶成功登錄系統后可以添加商品,添加后,重新查詢商品表,返回的商品數據顯示在界面上。
表3-8商品信息添加
| 處理邏輯名稱 | 商品信息添加 |
| 簡述 | 檢查輸入信息的合法性 |
| 輸入的數據流 | 商品信息 |
| 處理過程 | 登錄成功的管理員用戶,往數據庫添加一條商品信息數據。 |
| 輸出的數據流 | 商品信息,訂單信息 |
下表描述管理員用戶成功登錄系統后,購買商品,填寫訂單收貨人、收貨地址、聯系電話等,生成購買訂單后,重新查詢訂單表,返回的訂單數據顯示在界面上。
表3-9訂單生成
| 處理邏輯名稱 | 訂單生成 |
| 簡述 | 檢查輸入信息的合法性 |
| 輸入的數據流 | 訂單信息 |
| 處理過程 | 登錄成功的用戶,往數據庫添加一條訂單信息數據。 |
| 輸出的數據流 | 訂單信息 |
下表描述用戶成功登錄系統后可以瀏覽好物推薦,返回的好物推薦數據顯示在界面上。
表3-10好物推薦
| 處理邏輯名稱 | 好物推薦瀏覽 |
| 簡述 | 檢查輸入信息的合法性 |
| 輸入的數據流 | 推薦標題 |
| 處理過程 | 登錄成功的用戶,通過推薦信息查看好物推薦 |
| 輸出的數據流 | 好物推薦 |
4.1結構設計
本系統的設計是基于Java技術+Mysql數據庫+Tomcat服務器的方式設計,以Myeclipse10為開發工具,并運用Photoshop CS6技術美化網頁,輔之以CSS技術。本系統使用的角色主要有系統管理員和普通用戶,系統分為前臺和后臺,前臺主要用于商品的展示和購買,后臺用于商品信息和訂單信息的管理,首先以普通用戶通過賬號注冊后登錄系統前臺,可以進行各種商品的信息瀏覽和搜索,用戶可以將需要的商品進行下單購買,用戶可以查詢訂單是否已經被管理員確認,訂單生成后表示用戶購買成功,前臺系統除了可以進行商品的下單還可以對商品進行收藏,進行商品評論,用戶同時可以修改個人的信息資料,查看個人的購買記錄;以管理員的身份登錄系統后臺可以進行商品維護、訂單維護、統計分析。
系統功能結構圖如下所示。
圖4-1系統功能結構圖
?
4.2功能設計
1.用戶登錄模塊:確保用戶注冊信息的真實度是提高系統效率和盈利的重要因素。真實的用戶才能帶來價值,注冊是保證真實用戶使用系統主要業務的第一步,通過對用戶注冊信息的審核,可防止機器注冊。使用現如今較為流行的管理員進行賬號激活的驗證方式,對用戶注冊信息進行過濾,未激活用戶信息將不能使用系統主要功能。
如下圖所示為用戶登錄流程圖。
?
圖4-2用戶登錄流程圖
2.商品瀏覽模塊:沒有登錄的用戶和登錄的用戶都可以在系統前臺進行商品瀏覽,用戶可以查看商品的詳細信息和選擇相應的商品類別進行該類別下的商品查看,用戶還可以通過商品名稱的關鍵字進行搜索。
如下圖所示為商品瀏覽流程圖。
?
圖4-3商品瀏覽流程圖
3.訂單管理模塊:用戶購買商品后,填寫收貨地址、收貨人、電話等信息,生成訂單信息,管理員可以審核訂單,刪除、修改訂單,對訂單信息進行相應的商品發貨。?
如下圖所示為訂單管理流程圖。
?
圖4-4訂單管理流程圖
4.商品管理模塊
系統管理員可以對商品信息進行增、刪、改、查的操作。
5.用戶管理模塊
系統管理員可以對用戶信息進行增、刪、改、查的操作。
6.購買訂單模塊
用戶對個人添加至購買訂單里面的商品進行增刪改查等操作。
7.好物分類管理模塊
系統管理員可以對好物列別進行增、刪、改、查的操作。
4.3數據庫設計
4.3.1概念設計
本系統的E-R圖表現了系統中各個實體之間的聯系,經過分析,系統的實體有商品、商品類別、留言、訂單、用戶等。
商品信息的實體圖如下圖所示。
?
圖4-6商品信息實體圖
商品類別實體圖如下圖所示。
?
圖4-7商品類別信息實體圖
用戶信息實體圖如下圖所示。
?
圖4-8用戶信息實體圖
訂單信息的實體圖如下圖所示。
?
圖4-9訂單信息實體圖
系統總體的實體圖如下圖所示。
?
圖4-10系統E-R圖
4.3.2邏輯設計
Allusers表是系統用戶的信息表,存儲系統用戶真實姓名、性別、年齡、電話、地址、備注、編號、姓名、用戶密碼以及其相對應的密碼等相關信息。
Dingdan表是訂單信息表,存儲用戶的訂單的相關信息,其中包括編號、訂單號、金額、訂單內容、用戶名、姓名、郵件地址、郵編、手機、快遞類型、快遞費用、添加時間、是否審核等相關信息。
yonghuzhuce表是用戶注冊信息表,存儲用戶的注冊信息,其中包括編號、用戶名、密碼、姓名、性別、出生年月、QQ、郵箱、電話、身份證、頭像、地址、備至、折扣等相關信息。
shangpinxinxi表是商品信息表,存儲商品內容的信息,其中包括編號、商品編號、商品名稱、類別、價格、發布人、圖片、庫存、銷量、簡介、添加時間等相關信息。
xinwentongzhi表是公告信息表,存儲公告的內容信息,其中包括編號、標題、類別、內容、添加人、首頁圖片、點擊率、添加時間、摘要等相關信息。
4.3.3表設計
????數據庫表設計:經過前期的需求分析、可執行分析、數據流分析等各個流程分析,結合軟件工程的高內聚、低耦合規則,并考慮到以后的程序功能擴展,設計如下幾張表。
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| user_id | int | 11 | 是 | 是 | 用戶ID |
| user_name | varchar | 64 | 是 | 否 | 用戶名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| age | varchar | 64 | 否 | 否 | 年齡 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| mall_center_id | int | 11 | 是 | 是 | 商城中心ID |
| brand | varchar | 64 | 否 | 否 | 品牌 |
| specifications | varchar | 64 | 否 | 否 | 規格 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| cart_title | varchar | 125 | 否 | 否 | 標題: |
| cart_img | text | 0 | 否 | 否 | 封面圖: |
| cart_description | varchar | 255 | 否 | 否 | 描述: |
| cart_price_ago | double | 8 | 是 | 否 | 原價 |
| cart_price | double | 8 | 是 | 否 | 賣價 |
| cart_inventory | int | 11 | 是 | 否 | 商品庫存 |
| 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 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| order_after_sales_id | int | 11 | 是 | 是 | 訂單售后ID |
| order_number | varchar | 64 | 否 | 否 | 訂單號 |
| user_name | int | 11 | 否 | 否 | 用戶名 |
| after_sale_goods | varchar | 64 | 否 | 否 | 售后商品 |
| after_sales_type | varchar | 64 | 否 | 否 | 售后類型 |
| relevant_vouchers | varchar | 255 | 否 | 否 | 相關憑證 |
| after_sales_content | text | 0 | 否 | 否 | 售后內容 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 255 | 否 | 否 | 審核回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| order_shipment_id | int | 11 | 是 | 是 | 訂單發貨ID |
| user | int | 11 | 否 | 否 | 用戶 |
| order_number | varchar | 64 | 否 | 否 | 訂單號 |
| courier_services_company | varchar | 64 | 否 | 否 | 快遞公司 |
| courier_number | varchar | 64 | 否 | 否 | 快遞單號 |
| receiving_address | varchar | 64 | 否 | 否 | 收貨地址 |
| consignee_name_ | varchar | 64 | 否 | 否 | 收貨人姓名 |
| contact_number | varchar | 64 | 否 | 否 | 聯系電話 |
| commodity_list | text | 0 | 否 | 否 | 商品清單 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
?系統詳細設計
5.1登錄模塊
本系統主要的用戶有系統管理員、用戶,一個系統最基本的功能就是登錄功能,本系統可以進行系統登錄的角色有用戶、管理員,用戶對應前臺登錄界面,管理員對應后臺登錄界面,首先進入登錄頁,輸入用戶名和密碼,然后提交至服務端進行數據庫數據驗證,通過JavaEE邏輯代碼判斷數據庫是否存在用戶輸入的這一個記錄,如果存在,則判斷用戶身份,如果是用戶,則進入用戶前臺,如果是管理員用戶,則進入系統主頁,并把用戶對象存放在session中,如果不存在這樣一條記錄,則返回登錄界面。
登錄界面如下所示。
?
圖5-1前臺登錄界面
?
圖5-3用戶注冊界面
登錄關鍵代碼如下:
/**
?????* 注冊
?????* @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]用戶獲取其他與用戶相關的數據
?????*/
????@Id
????@GeneratedValue(strategy = GenerationType.IDENTITY)
????@Column(name = "user_id")
????private Integer userId;
????/**
?????* 賬戶狀態:[0,10](1可用|2異常|3已凍結|4已注銷)
?????*/
????@Basic
????@Column(name = "state")
????private Integer state;
????/**
?????* 所在用戶組:[0,32767]決定用戶身份和權限
?????*/
????@Basic
????@Column(name = "user_group")
????private String userGroup;
????/**
?????* 上次登錄時間:
?????*/
????@Basic
????@Column(name = "login_time")
????private Timestamp loginTime;
????/**
?????* 手機號碼:[0,11]用戶的手機號碼,用于找回密碼時或登錄時
?????*/
????@Basic
????@Column(name = "phone")
????private String phone;
????/**
?????* 手機認證:[0,1](0未認證|1審核中|2已認證)
?????*/
????@Basic
????@Column(name = "phone_state")
????private Integer phoneState;
????/**
?????* 用戶名:[0,16]用戶登錄時所用的賬戶名稱
?????*/
????@Basic
????@Column(name = "username")
????private String username;
????/**
?????* 昵稱:[0,16]
?????*/
????@Basic
????@Column(name = "nickname")
????private String nickname;
????/**
?????* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數字或英文組成
?????*/
????@Basic
????@Column(name = "password")
????private String password;
????/**
?????* 郵箱:[0,64]用戶的郵箱,用于找回密碼時或登錄時
?????*/
????@Basic
????@Column(name = "email")
????private String email;
????/**
?????* 郵箱認證:[0,1](0未認證|1審核中|2已認證)
?????*/
????@Basic
????@Column(name = "email_state")
????private Integer emailState;
????/**
?????* 頭像地址:[0,255]
?????*/
????@Basic
????@Column(name = "avatar")
????private String avatar;
????/**
?????* 創建時間:
?????*/
????@Basic
????@Column(name = "create_time")
????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
????private Timestamp createTime;
????@Basic
????@Transient
????private String code;
}
5.3好物推薦模塊
系統為用戶提供好物信息推薦,方便用戶瀏覽推薦信息。在shaowutuijianlist.jsp實現好物推薦列表的展示,用戶點擊瀏覽,通過推薦id傳遞值,找到數據表的該好物的推薦信息。
如下圖所示為好物推薦界面。
?
圖5-4好物推薦界面
好物推薦關鍵代碼如下:
????@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商品評論模塊
系統提供商品評論功能,在pinglunadd.jsp實現商品的評論,添加評論后,存入數據庫的評論表。管理員管理商品的評論信息。
如下圖所示為評論的部分界面。
?
圖5-5評論界面
商品評論關鍵代碼如下:
@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購買商品模塊
用戶在瀏覽商品后,登錄系統前臺,進行商品購買,將商品添加至購買車,在個人后臺可以查看購買車里面的商品,確定商品之后可以生成訂單,然后支付。
如下圖所示為購買商品的部分界面。
?
圖5-6購買商品界面
5.6系統用戶管理模塊
過去傳統的手工登記管理系統人員信息很不方便,也很容易造成數據出錯,所以本系統需要一個可以管理登記人員信息的功能,管理員登入系統,可以添加新的管理員用戶,刪除現有的管理員,也可以對自己的密碼和管理員用戶的密碼進行修改。修改密碼是經過跟數據庫的原來的密碼字段的數據進行判斷,如果輸入兩次的新密碼一致,則更新密碼這屬性對應的一條數據。
如下圖所示為系統用戶管理的部分界面。
?
圖5-7系統用戶管理界面
如下圖所示為修改密碼界面。
?
圖5-8修改密碼界面
系統用戶管理關鍵代碼如下:
@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公告管理模塊
用戶在系統前臺瀏覽公告,管理員登錄系統后,可以對添加、刪除、修改公告,公告管理包括添加公告、查詢公告、修改公告,系統前臺的公告信息時隨系統后臺變化而變化的,同時能進行詳細公告的打印和公告列表導出至excel表,管理員還可以通過標題、編號等關鍵字進行公告信息的搜索。
公告添加的界面如下圖所示。
?
圖5-9公告添加界面
公告發布關鍵代碼如下:
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商品管理模塊
管理人員可以對商品進行增刪查改的操作,這些操作將在商品管理界面進行。
如下圖所示為商品管理界面。
?
圖5-10商品管理界面
商品發布關鍵代碼如下:
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訂單管理模塊
管理人員可以對訂單進行增刪查改的操作,這些操作將在訂單管理界面進行。
如下圖為訂單管理界面。
?
圖5-11訂單管理界面
訂單管理關鍵代碼如下:
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測試目的
該系統能夠完成商品選購,好物推薦、商品購買,商品管理,商品類別管理,訂單管理,用戶管理等功能,做到所開發的系統操作簡單,盡量使系統操作不受用戶對電腦知識水平的限制,符合系統可維護性,由于系統涉及的信息比較廣,數據庫中的數據需定期修改,系統可利用的空間及性能也隨之下降,為了使系統更好地運轉,系統可以對系統數據及一些簡單的功能進行獨立的維護及調整;符合系統開放性要求,該系統能夠在開放的硬件體系結構中運行,并且能與其他系統順利連接。
6.2測試用例
1.注冊測試
表6-1注冊測試用例
| 字段名稱 | 描述 |
| 測試項 | 首頁注冊功能測試 |
| 輸入數據 | 1、輸入正確的郵箱、用戶名、密碼、確認密碼、以及驗證碼之后點擊“注冊”按鈕 2、輸入錯誤的用戶名或密碼、郵箱、驗證碼等,單擊“注冊”按鈕 3、不輸入郵箱、用戶名、密碼、確認密碼、以及驗證碼之后點擊“注冊”按鈕 |
| 預計輸出數據 | 1、用戶能正確注冊賬號,成功插入數據庫用戶的賬戶資料,提示注冊成功。 2、無法注冊用戶信息,注冊失敗。 3、無法注冊用戶信息,注冊失敗。 |
使用上述測試用例對前臺首頁注冊界面進行測試,當在輸入正確的郵箱、用戶名、密碼、確認密碼、以及驗證碼之后,系統將彈出注冊成功信息提示對話框。
使用上述測試用例對前臺首頁注冊界面進行測試,當在輸入錯誤的用戶名或密碼、郵箱、驗證碼之后,系統將提示錯誤。
使用上述測試用例對前臺首頁注冊界面進行測試,當在不輸入用戶名、密碼、郵箱、驗證碼之后,點擊注冊按鈕。
2.登錄界面進行測試?
表6-2登錄測試用例
| 測試項 | 首頁登錄功能測試 |
| 輸入數據 | 1、輸入正確的用戶名和密碼,單擊“登錄”按鈕 2、輸入錯誤的用戶名和密碼,單擊“登錄”按鈕 3、不輸入用戶名和密碼,單擊“登錄”按鈕 |
| 預計輸出數據 | 1、數據庫中存在的用戶能正確登錄,。結果彈出主界面。 2、錯誤的或者無效用戶登錄,登錄系統失敗。 3、輸入用戶名或密碼信息為空,登錄系統失敗。 |
3.商品管理進行測試?
名稱:用戶管理測試????????目的:測試商品管理界面?
內容:口令的輸入,合法性檢查,合理性檢查,界面的顯示控制。?
下表描述了商品表中目前所存在的記錄。
表6-5商品表預存數據
| ????商品名 | 商品類別 | 商品價格 | 商品狀態 |
| A | A | 389 | 上架 |
| B | B | 249 | 上架 |
| C | C | 322 | 下架 |
| D | D | 168 | 上架 |
添加時應注意事項:
管理員添加商品時必須添加已存在的商品類別,若該商品不屬于現有的所有類別,則應該先添加商品類別。
下表描述了添加商品進行測試的用例,主要是為了防止添加商品時出現異常和存在的漏洞。
表6-6添加商品測試用例
| 輸入 | 輸出 | ||
| 商品名 | 商品價格 | 商品圖片 | |
| ???空 | 參數錯誤 | ||
| 空 | 參數錯誤 | ||
| 空 | 請選擇上傳圖片 | ||
| A | 1 | a.jpg | 添加成功 |
4.購買商品測試?
名稱:購買商品測試????????目的:測試購買商品界面?
內容:口令的輸入,合法性檢查,合理性檢查,界面的顯示控制。?
下表描述了購買商品的測試用例,防止購買時出錯。
表6-7購買商品測試用例
| 輸入 | 輸出 | ||
| 用戶ID | 商品ID | 商品數量 | |
| 11 | 1 | 1 | 購買商品成功 |
| 22 | 電視 | 請填寫商品數量 | |
| 33 | 電視 | a | 購買失敗 |
用戶購買商品時,首先判斷商品數量是否小于庫存,若超出庫存數量,則提示商品數量不足。
經過這幾個月的設計和開發,“基于SSM的網上零食銷售系統”已經完成了,其功能符合設計需求,能夠完成用戶的注冊、在線購買、訂單管理、好物推薦管理和管理員的商品類別管理、訂單審核、商品審核、用戶管理、系統管理,信息維護、查詢等功能。經過最后的使用,證明系統完全具有可行性與可擴充性。
在系統的分析階段,主要是分析系統的需求,理解系統要完成的基本功能,找出系統的用例(Use Case)和角色(Actor),畫出系統的用例模型圖,用例模型是此后系統建模的基礎。在用例的基礎上分析順序圖和協作圖,得到系統的所有對象,然后建立對象模型。抽象出系統的類,并將系統中聯系緊密的類劃分為若干個包,畫出包圖。有了這些基礎,就可以將系統劃分為小單元功能模塊。
整個過程中,我必須認可UML統一建模語言,它讓我很清晰的知道自己想做什么,想實現什么,對系統后面的代碼編寫起到決定性的幫助,同時經過本次系統的設計與實現,讓我積累了很多經驗,提高了編寫程序的能力,為以后的學習和工作打下了堅實的基礎。
由于時間有限,本系統還有待繼續完善和改進,因此需要進一步進行分析和修改,以使其更加完善!?
參考文獻
[5]王娟.基于Android系統的手機網上商城設計與實現[J].電子技術與軟件工程,2021(03):43-44.
[6]韓己峰.綜合性網上商城引領山東政府采購駛入高速路[J].中國政府采購,2020(12):39-41.
[7]袁江琛.基于MVC框架網上商城的設計與實現[J].信息與電腦(理論版),2020,32(20):126-128.
[8]袁江琛.Ajax+jQuery在網上商城購物車模塊中的設計與實現[J].電腦編程技巧與維護,2020(10):34-35+68.
[9]王柯夢,王瑞平.基于B2C網上商城前臺系統數據庫設計與實現[J].廣西質量監督導報,2020(09):70-71.
[10]薄志強. 基于SSM框架的網上商城系統的設計與實現[D].西安電子科技大學,2020..
[11]張浩. 基于網上商城服務對話系統的研究與實現[D].黑龍江大學,2020.
[12]孫建英.分布式、集中式、區塊鏈技術在網上商城中的應用[J].商場現代化,2020(01):13-15.
[13]李穎,方浪,武瑞嬋.“Free-Try”虛擬試衣在網上商城中的實現[J].襄陽職業技術學院學報,2019,18(06):64-66.
[14]王一凡. 基于MOT的云南移動網上商城O2O手機營銷策略優化研究[D].云南大學,2019.
[15]布祉穎.論B2C和O2O的進口零食營銷的模式——關于零始科技有限公司的零始網研究[J].現代婦女(下旬),2018(12):75-76.
[16]老潘,花椰菜.零食控的購物車[J].寵物世界(狗迷),2018(12):50-55.
致 謝
大學的學習生活總是感覺短暫的,總感到知識還沒有學夠,但大學畢業就在我們面前,即畢業設計即將的結束,意味著我們的大學生涯即將結束。畢業設計是我們在大學所學知識的一次總結,更是對我們過去所學知識的提煉和升華,通過畢業設計,我們認識到大學學習過程中還有那些知識沒有掌握,那些知識需要我們進入深入研究。這次畢業設計讓我學到了很多新的知識,研究了一些新的以前自己不熟悉的領域,使我處理問題的能力得到了一定的提升,同時也為今后的繼續深造或踏入社會大門提供了很好的鍛煉機會。
我也曾經沮喪過,失落過,想放棄過,可是因為你們這不厭其煩的鼓勵和支持才使得我堅持了下來,這里我要對我的老師和同學們說句“謝謝你們”。因為我們的知識是有限的,所以本文將不可避免的會出現一些錯誤和不足之處,還請老師指正。
免費領取本源代碼,請關注點贊+私信
總結
以上是生活随笔為你收集整理的(附源码)ssm网上零食销售系统 毕业设计 180826的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个简单的时间轴demo
- 下一篇: Mac下的Parallel Window