Springboot基于微信小程序的同城優(yōu)惠軟件的開(kāi)發(fā)
摘要
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)購(gòu)物越來(lái)越受到大家的歡迎。電子商務(wù)這一概念大家都不在陌生。通過(guò)互聯(lián)網(wǎng)進(jìn)行的商品貿(mào)易范圍越來(lái)越廣泛,從經(jīng)典的電子商品、到化妝品、書(shū)籍等,發(fā)展到小吃商品,通過(guò)網(wǎng)上微信平臺(tái),可以宣傳銷售各種商品?;谖⑿判〕绦虻耐莾?yōu)惠軟件的出現(xiàn),解決了以往商品銷售和推廣的問(wèn)題,為商品的處理帶來(lái)新的機(jī)遇?;谖⑿判〕绦虻耐莾?yōu)惠軟件的實(shí)施務(wù)必會(huì)增加商品的銷售量,給企業(yè)帶來(lái)一定額外收入,也給消費(fèi)者帶來(lái)物美價(jià)廉的商品,本網(wǎng)站平臺(tái)提供了這樣一個(gè)機(jī)會(huì),無(wú)論是商品企業(yè)還是購(gòu)買者都可以得到保障。
基于微信小程序的同城優(yōu)惠軟件基于微信開(kāi)發(fā),通過(guò)商品銷售了解相關(guān)電子商務(wù)行業(yè)現(xiàn)狀和意義。提出開(kāi)發(fā)商品銷售的相關(guān)技術(shù),對(duì)商品銷售進(jìn)行需求分析,功能設(shè)計(jì)和功能實(shí)現(xiàn)。通過(guò)系統(tǒng)測(cè)試調(diào)整功能,實(shí)現(xiàn)可以使用的基于微信小程序的同城優(yōu)惠軟件。
關(guān)鍵詞:Springboot框架;同城優(yōu)惠;訂單管理
Abstract
With the development of Internet technology, online shopping is more and more popular. The concept of e-commerce is no stranger to everyone. The scope of commodity trade through the Internet is more and more extensive, from classic electronic goods, to cosmetics, books, etc., to snack goods. Through the online WeChat platform, various commodities can be promoted and sold. The emergence of intra-city preferential software based on WeChat applets has solved the problems of commodity sales and promotion in the past and brought new opportunities for commodity processing. The implementation of intra-city preferential software based on WeChat widget will certainly increase the sales volume of goods, bring some additional income to enterprises, and also bring high-quality and cheap goods to consumers. This website platform provides such an opportunity for both commodity enterprises and buyers to be guaranteed.
The intra-city preferential software based on WeChat applet is developed based on WeChat, and the current situation and significance of relevant e-commerce industry are understood through commodity sales. Propose to develop the relevant technology of commodity sales, analyze the demand of commodity sales, design and realize the function. Through the system test and adjustment function, realize the available intra-city preferential software based on WeChat applet.
Keywords?:Springboot framework; Local discount; Order management
目錄
摘要
Abstract
第1章 緒論
1.1課題背景
1.2目的和意義
1.3本文結(jié)構(gòu)
第2章 工具及技術(shù)介紹
2.1Java開(kāi)發(fā)語(yǔ)言 2
2.2 Springboot框架 2
2.3 Mysql數(shù)據(jù)庫(kù) 3
2.4 B/S結(jié)構(gòu) 3
2.5 B/S體系工作原理 3
2.6 MVVM模式 4
2.7 微信開(kāi)發(fā)者工具 4
第3章 系統(tǒng)分析
3.1業(yè)務(wù)流程分析
3.2可行性分析
3.2.1經(jīng)濟(jì)可行性
3.2.2技術(shù)可行性
3.2.3操作可行性
3.3需求分析
3.4數(shù)據(jù)流程分析
第4章 系統(tǒng)設(shè)計(jì)
4.1結(jié)構(gòu)設(shè)計(jì)
4.2數(shù)據(jù)庫(kù)設(shè)計(jì)
4.2.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)
4.2.2數(shù)據(jù)庫(kù)概念設(shè)計(jì)
4.2.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)
第5章 系統(tǒng)實(shí)現(xiàn)
5.1首頁(yè)設(shè)計(jì)與實(shí)現(xiàn)
5.2前臺(tái)功能設(shè)計(jì)與實(shí)現(xiàn)
5.3后臺(tái)功能設(shè)計(jì)與實(shí)現(xiàn)
第6章 系統(tǒng)測(cè)試
6.1測(cè)試方法
6.2測(cè)試目的
6.3測(cè)試用例
6.3.1注冊(cè)測(cè)試
6.3.2購(gòu)買記錄測(cè)試
6.3.3商品管理測(cè)試
結(jié)論
致謝
參考文獻(xiàn)
- ?緒論
1.1課題背景
在計(jì)算機(jī)還未問(wèn)世之初,企業(yè)所展示的多樣信息也只能通過(guò)人工手寫(xiě)方式。隨著計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新和不斷發(fā)展,基于微信小程序的網(wǎng)上購(gòu)物系統(tǒng)順勢(shì)而生。目前市面大部分企業(yè)都利用計(jì)算機(jī)智能化管理,為了更快捷方便效率地工作管理而采用以計(jì)算機(jī)編寫(xiě)出的程序來(lái)為之實(shí)現(xiàn)?;ヂ?lián)網(wǎng)和寬帶上網(wǎng)的普及,日益滲透到人們的日常生活中。運(yùn)用現(xiàn)代通信技術(shù)、計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù),可以降低經(jīng)營(yíng)成本,提高生產(chǎn)效率,優(yōu)化社會(huì)資源配置,從而實(shí)現(xiàn)社會(huì)財(cái)富的最大化。
電子商務(wù)商務(wù)的出現(xiàn)和網(wǎng)絡(luò)普及,人們手上只要有一部網(wǎng)絡(luò)通訊設(shè)備,就可以足不出戶、隨時(shí)隨地隨心所欲的挑選自己喜歡想要的各種物品,已經(jīng)習(xí)慣了這種網(wǎng)絡(luò)購(gòu)物平臺(tái),只需要設(shè)計(jì)一個(gè)網(wǎng)絡(luò)在線銷售網(wǎng)站,配上通訊設(shè)備就能讓自己的商品呈現(xiàn)在用戶面前,讓其比價(jià)購(gòu)買。目前,微信作為廣泛使用的交流工具,為各種企業(yè)宣傳和銷售企業(yè)產(chǎn)品必選的新型平臺(tái)。
1.2目的和意義
隨著Internet網(wǎng)絡(luò)的普及、電子商務(wù)的迅猛發(fā)展以及人們生活和消費(fèi)觀念的改變,網(wǎng)絡(luò)購(gòu)買商品以其內(nèi)容豐富、方便、快捷、低成本等優(yōu)勢(shì)越來(lái)越被廣泛使用。 對(duì)于一個(gè)商務(wù)型企業(yè)來(lái)說(shuō),電子商務(wù)系統(tǒng)是其生存的理由和基礎(chǔ),同時(shí)也是企業(yè)對(duì)外展示信息、從事商務(wù)活動(dòng)的窗口和界面。
本題目研究的“基于微信小程序的同城優(yōu)惠軟件”擬實(shí)現(xiàn)整個(gè)購(gòu)買模塊,實(shí)現(xiàn)游客瀏覽商品,查看商品信息的功能,實(shí)現(xiàn)登錄用戶的購(gòu)買功能,完成繼續(xù)購(gòu)買、結(jié)賬等功能。
1.3本文結(jié)構(gòu)
本文的內(nèi)容包括開(kāi)發(fā)本系統(tǒng)的目的和意義、開(kāi)發(fā)所用的到技術(shù)和和方法、系統(tǒng)的需求分析、系統(tǒng)的總體分析、系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)的實(shí)現(xiàn)過(guò)程、系統(tǒng)的編碼設(shè)計(jì)、系統(tǒng)測(cè)試等。本文重點(diǎn)描述了系統(tǒng)的組成結(jié)構(gòu)和功能結(jié)構(gòu),描述了一個(gè)系統(tǒng)從無(wú)到有的過(guò)程,實(shí)現(xiàn)了系統(tǒng)的所有功能。最后通過(guò)系統(tǒng)測(cè)試驗(yàn)證系統(tǒng)的可靠性和可用性。
- ?工具及技術(shù)介紹
2.1Java開(kāi)發(fā)語(yǔ)言
Java是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,類是Java程序的基本組成單元,類中又包含了屬性和方法,在類中又可以創(chuàng)建無(wú)數(shù)個(gè)對(duì)象。類中包含的主要成員是字段和方法,字段是指一種數(shù)據(jù)變量,方法是指對(duì)字段進(jìn)行操作的集合,包括給其他變量賦值、調(diào)用方法等[1]。
2.2Springboot框架
Spring框架是Java平臺(tái)上的一種開(kāi)源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對(duì)編程模型沒(méi)有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來(lái)讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開(kāi)發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過(guò)依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來(lái)實(shí)現(xiàn)管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問(wèn),提供大量?jī)?yōu)秀的Web框架方便開(kāi)發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過(guò)Java的反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過(guò)掃描XML文件或類上特定Java注解來(lái)配置對(duì)象,開(kāi)發(fā)者可以通過(guò)依賴查找或依賴注入來(lái)獲得對(duì)象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對(duì)模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無(wú)法與AspectJ框架相比,但通過(guò)與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問(wèn)等功能均可以通過(guò)使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺(tái)帶來(lái)了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺(tái)的任何環(huán)境中工作。
2.3Mysql數(shù)據(jù)庫(kù)
Mysql數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)包含表空間(tablespace)、段(segment)、范圍(extend)、數(shù)據(jù)塊(datablock)、和模式對(duì)象(schemaobject)?[9]。每一個(gè)數(shù)據(jù)庫(kù)都可以邏輯劃分為一個(gè)或多個(gè)表空間,每一個(gè)表空間都是由一個(gè)或多個(gè)數(shù)據(jù)文件來(lái)組成。Mysql數(shù)據(jù)庫(kù)分為系統(tǒng)表空間和非系統(tǒng)表空間,每一個(gè)Mysql數(shù)據(jù)庫(kù)都包含一個(gè)稱作SYSTEM的系統(tǒng)表空間。???????????
Mysql的語(yǔ)言是非結(jié)構(gòu)化的,用戶可以在數(shù)據(jù)上進(jìn)行工作。MySQL因?yàn)槠渌俣取⒖煽啃院瓦m應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。并且因?yàn)镸ysql的語(yǔ)言和結(jié)構(gòu)比較簡(jiǎn)單,但是功能和存儲(chǔ)信息量很強(qiáng)大,所以得到了普遍的應(yīng)用。
Mysql數(shù)據(jù)庫(kù)在編程過(guò)程中的作用是很廣泛的,為用戶進(jìn)行數(shù)據(jù)查詢帶來(lái)了方便。Mysql數(shù)據(jù)庫(kù)的應(yīng)用因其靈活性強(qiáng),功能強(qiáng)大,所以在實(shí)現(xiàn)某功能時(shí)只需要一小段代碼,而不像其他程序需要編寫(xiě)大段代碼??傮w來(lái)說(shuō),Mysql數(shù)據(jù)庫(kù)的語(yǔ)言相對(duì)要簡(jiǎn)潔很多。
數(shù)據(jù)流程分析主要就是數(shù)據(jù)存儲(chǔ)的儲(chǔ)藏室,它是在計(jì)算機(jī)上進(jìn)行的,而不是現(xiàn)實(shí)中的儲(chǔ)藏室。數(shù)據(jù)的存放是按固定格式,而不是無(wú)序的,其定義就是:長(zhǎng)期有固定格式,可以共享的存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器上。數(shù)據(jù)庫(kù)管理主要是數(shù)據(jù)存儲(chǔ)、修改和增加以及數(shù)據(jù)表的建立。為了保證系統(tǒng)數(shù)據(jù)的正常運(yùn)行,一些有能力的處理者可以進(jìn)行管理而不需要專業(yè)的人來(lái)處理。數(shù)據(jù)表的建立,可以對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行調(diào)整,數(shù)據(jù)的重新組合及重新構(gòu)造,保證數(shù)據(jù)的安全性。介于數(shù)據(jù)庫(kù)的功能強(qiáng)大等特點(diǎn),本系統(tǒng)的開(kāi)發(fā)主要應(yīng)用了Mysql進(jìn)行對(duì)數(shù)據(jù)的管理。
2.4B/S結(jié)構(gòu)
B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果, 不需要考慮不停裝軟件的問(wèn)題。???????????
2.5B/S體系工作原理
B/S架構(gòu)采取瀏覽器請(qǐng)求,服務(wù)器響應(yīng)的工作模式。
用戶可以通過(guò)瀏覽器去訪問(wèn)Internet上由Web服務(wù)器產(chǎn)生的文本、數(shù)據(jù)、圖片、動(dòng)畫(huà)、視頻點(diǎn)播和聲音等信息;
而每一個(gè)Web服務(wù)器又可以通過(guò)各種方式與數(shù)據(jù)庫(kù)服務(wù)器連接,大量的數(shù)據(jù)實(shí)際存放在數(shù)據(jù)庫(kù)服務(wù)器中;
從Web服務(wù)器上下載程序到本地來(lái)執(zhí)行,在下載過(guò)程中若遇到與數(shù)據(jù)庫(kù)有關(guān)的指令,由Web服務(wù)器交給數(shù)據(jù)庫(kù)服務(wù)器來(lái)解釋執(zhí)行,并返回給Web服務(wù)器,Web服務(wù)器又返回給用戶。在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個(gè)巨大的網(wǎng),即全球網(wǎng)。而各個(gè)企業(yè)可以在此結(jié)構(gòu)的基礎(chǔ)上建立自己的Internet。
在 B/S 模式中,用戶是通過(guò)瀏覽器針對(duì)許多分布于網(wǎng)絡(luò)上的服務(wù)器進(jìn)行請(qǐng)求訪問(wèn)的,瀏覽器的請(qǐng)求通過(guò)服務(wù)器進(jìn)行處理,并將處理結(jié)果以及相應(yīng)的信息返回給瀏覽器,其他的數(shù)據(jù)加工、請(qǐng)求全部都是由Web Server完成的。通過(guò)該框架結(jié)構(gòu)以及植入于操作系統(tǒng)內(nèi)部的瀏覽器,該結(jié)構(gòu)已經(jīng)成為了當(dāng)今軟件應(yīng)用的主流結(jié)構(gòu)模式。
??2.6MVVM模式
MVVM模式是常用的開(kāi)發(fā)模式,主要是在代碼實(shí)現(xiàn)上將其分為M層、V層和C層。
視圖(View)代表用戶交互界面,一個(gè) Web 應(yīng)用就可能有很多的界面,在 MVVM?模式中,視圖僅僅處理的只有數(shù)據(jù)采集、處理,還有用戶的請(qǐng)求, 并不包括業(yè)務(wù)流程的處理,業(yè)務(wù)流程由模型(Model)來(lái)處理。
模型(Model)就是業(yè)務(wù)流程/狀態(tài)的處理及業(yè)務(wù)規(guī)則的制定。模型處理業(yè)務(wù)流程的過(guò)程其它層是無(wú)法看見(jiàn)了的,它就像黑箱子,在接受視圖請(qǐng)求的數(shù)據(jù)之后,然后返回最終的處理結(jié)果。MVVM?最主要的核心就是業(yè)務(wù)模型的設(shè)計(jì),一個(gè)典型的應(yīng)用例子就是目前流行的 EJB 模型,它從應(yīng)用技術(shù)實(shí)現(xiàn)的角度對(duì)模型做了進(jìn)一步的劃分,以便充分利用現(xiàn)有的組件,但是它不能作為應(yīng)用設(shè)計(jì)模型的框架。
控制器(Controller)可以理解為接收用戶的請(qǐng)求,然后視圖和模型匹配在一起,一起再完成用戶請(qǐng)求。它有非常明顯的作用在劃分控制層上,可以很清晰地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型、視圖,可以完成用戶的什么樣的請(qǐng)求??刂茖硬蛔鏊械臄?shù)據(jù)處理,比如說(shuō):用戶點(diǎn)擊一個(gè)連接,控制層接受到請(qǐng)求之后,并不處理業(yè)務(wù)信息,它只是向模型傳遞用戶的信息,同時(shí)告訴模型做什么,然后選擇符合需求的視圖返回給用戶。
2.7微信開(kāi)發(fā)者工具
微信開(kāi)發(fā)者工具現(xiàn)在已經(jīng)被小程序開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)運(yùn)行,目前微信開(kāi)發(fā)者工具任然在不斷的完善中,在開(kāi)發(fā)小程序時(shí)經(jīng)常要不斷的更新。可以使用微信掃碼登陸開(kāi)發(fā)者工具,開(kāi)發(fā)者工具將使用這個(gè)微信帳號(hào)的信息進(jìn)行小程序的開(kāi)發(fā)和調(diào)試。
機(jī)型選擇:小程序以智能手機(jī)的屏幕尺寸為設(shè)計(jì)標(biāo)準(zhǔn),進(jìn)行切圖。
預(yù)覽界面:寫(xiě)好視圖布局后點(diǎn)擊編譯,用來(lái)刷新視圖界面。
控制臺(tái):方便調(diào)試打印輸出信息。
- 系統(tǒng)分析
3.1業(yè)務(wù)流程分析
系統(tǒng)業(yè)務(wù)流程分析:
根據(jù)系統(tǒng)的功能需求,再分析該系統(tǒng)的業(yè)務(wù)流程,用戶登錄系統(tǒng)購(gòu)買商品,先將商品加入至購(gòu)買記錄,然后對(duì)購(gòu)買記錄做調(diào)整,接著生成訂單,訂單生成后,在線支付金額,管理員管理商品,管理用戶的訂單,回復(fù)用戶的留言信息等。
系統(tǒng)前臺(tái)業(yè)務(wù)流圖如下圖所示。
圖3-1系統(tǒng)前臺(tái)業(yè)務(wù)流圖
系統(tǒng)后臺(tái)業(yè)務(wù)流圖如下圖所示。
圖3-1系統(tǒng)后臺(tái)業(yè)務(wù)流圖
3.2可行性分析
3.2.1經(jīng)濟(jì)可行性
本系統(tǒng)最直接的目的就是讓客戶購(gòu)買商品,為達(dá)到這一理念,首先設(shè)計(jì)了平臺(tái)提供給用戶購(gòu)買商品,系統(tǒng)還提供清新的界面來(lái)吸引用戶眼球。使用本系統(tǒng)可以直接為用戶提供方便,不需要花太多的時(shí)間、精力、經(jīng)費(fèi)去宣傳商品。系統(tǒng)直接向用戶展示商品信息,讓用戶隨心選購(gòu),放心使用。整個(gè)系統(tǒng)只需要后臺(tái)管理員操作和配送員,比起傳統(tǒng)的商品銷售方便、簡(jiǎn)單、人員需求少,可以為企業(yè)節(jié)省開(kāi)支,節(jié)省人力資源。系統(tǒng)為用戶提供留言回饋?zhàn)層脩魧?duì)商家服務(wù)滿意,從而為商家增加客戶,擴(kuò)大市場(chǎng)。系統(tǒng)集多功能與一體,系統(tǒng)開(kāi)發(fā)卻不需要企業(yè)提供太多的人力物力資源,所以該系統(tǒng)投入市場(chǎng),可以獲得良好的口碑,為企業(yè)帶來(lái)經(jīng)濟(jì)效益,絕對(duì)有經(jīng)濟(jì)可行性。
3.2.2技術(shù)可行性
本系統(tǒng)主要采用了Java開(kāi)發(fā)語(yǔ)言,編程語(yǔ)言包括HTML+CSS、JSP、Javascript,技術(shù)可行性分析的目的是確認(rèn)使用現(xiàn)有的技術(shù)能否實(shí)現(xiàn)系統(tǒng)以及對(duì)開(kāi)發(fā)效率和完成情況的評(píng)估。技術(shù)的可行性是指在當(dāng)今所擁有的技術(shù)條件之下,計(jì)算機(jī)軟件和硬件的發(fā)展能否夠滿足發(fā)展的要求。由于本系統(tǒng)開(kāi)發(fā)基于Java語(yǔ)言,在一般的計(jì)算機(jī)上就能夠滿足開(kāi)發(fā)本系統(tǒng)所需要的軟硬件條件;因?yàn)樗加玫膬?nèi)存本來(lái)就相對(duì)較少,所以用MySQL數(shù)據(jù)庫(kù)對(duì)軟件的開(kāi)發(fā)以及設(shè)計(jì)在理論上沒(méi)有問(wèn)題的原因是:它占用的內(nèi)存實(shí)在是太少了。系采用以上技術(shù)可以有效的保證系統(tǒng)成功及高效地開(kāi)發(fā)。
綜上從技術(shù)可行性上來(lái)講,使用這些技術(shù)完全可以實(shí)現(xiàn)這個(gè)系統(tǒng)的開(kāi)發(fā)。
3.2.3操作可行性
基于微信小程序的同城優(yōu)惠軟件是基于J2EE技術(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)管理員只需要懂得數(shù)據(jù)的添加、刪除、修改,即可操作管理后臺(tái)。系統(tǒng)布局較簡(jiǎn)單,功能操作不復(fù)雜,完全符合現(xiàn)代市場(chǎng)需求。因此本系統(tǒng)可以進(jìn)行開(kāi)發(fā)。
3.3需求分析
通過(guò)現(xiàn)實(shí)商業(yè)銷售系統(tǒng)的調(diào)查,如淘寶網(wǎng)、當(dāng)當(dāng)網(wǎng)、京東等知名電子商務(wù)系統(tǒng),以及從企業(yè)的實(shí)際角度出發(fā),要求本系統(tǒng)具有以下功能。
- 統(tǒng)一友好的操作界面,保證系統(tǒng)的易用性,方便用戶的操作;
- 具備商品信息的展示功能,方便瀏覽者對(duì)商品信息進(jìn)行瀏覽與比較;
- 規(guī)范的商品分類,方便瀏覽者分類查找商品;
- 完善的購(gòu)買功能與用戶結(jié)賬功能;
- 設(shè)置系統(tǒng)主要商品模塊,使瀏覽者能夠及時(shí)了解系統(tǒng)的各項(xiàng)動(dòng)態(tài)變化;
- 訂單信息查詢功能、商品信息查詢功能;
- 全面的后臺(tái)管理功能,以方便管理員對(duì)系統(tǒng)信息進(jìn)行更新與管理。
9.系統(tǒng)前臺(tái)功能模塊分為:
商品模塊:展示系統(tǒng)的所有最新商品;
商品分類模塊:通過(guò)商品分類更快找到所需的商品;
商品索引模塊:輸入關(guān)鍵詞,如商品名稱、商品ID、商品類別來(lái)索引商品。
購(gòu)買模塊:跟淘寶、京東等大型電子商務(wù)網(wǎng)站一樣,確認(rèn)購(gòu)買的商品后,提交用戶訂單,然后確認(rèn)收貨地址和收貨人、聯(lián)系電話等,方可付款。
用戶訂單索引模塊:對(duì)用戶的已有的訂單進(jìn)行查看和索引。
用戶注冊(cè)模塊:瀏覽者可以通過(guò)注冊(cè)成為用戶;
用戶登錄模塊:用戶可以登錄后購(gòu)買想要的商品;
用戶資料修改:用戶可以修改自己的信息。
10.系統(tǒng)后臺(tái)功能模塊分為:
商品信息管理模塊:管理各商品信息,對(duì)商品的信息進(jìn)行維護(hù),可以增加商品,修改,刪除商品信息;
系統(tǒng)用戶維護(hù)模塊:包括注冊(cè)用戶維護(hù)和系統(tǒng)管理員用戶維護(hù),普通管理員能對(duì)注冊(cè)用戶維護(hù),不能對(duì)系統(tǒng)管理員用戶維護(hù),只有超級(jí)管理員才有維護(hù)管理員的權(quán)限。
訂單維護(hù)模塊;對(duì)用戶的交易訂單進(jìn)行維護(hù),是否有刷單等不合理訂單,刪除不合理的訂單等操作。
3.4數(shù)據(jù)流程分析
系統(tǒng)的0層數(shù)據(jù)流圖如下圖所示。
圖3-2系統(tǒng)數(shù)據(jù)流圖(0層)
系統(tǒng)1層數(shù)據(jù)流圖如下圖所示。
圖3-3系統(tǒng)數(shù)據(jù)數(shù)據(jù)流圖(1層)
訂單管理數(shù)據(jù)流圖如下圖所示。
圖3-4訂單管理數(shù)據(jù)流圖(2層)
- ?系統(tǒng)設(shè)計(jì)
4.1結(jié)構(gòu)設(shè)計(jì)
系統(tǒng)分為前臺(tái)和后臺(tái),前臺(tái)為普通用戶,后臺(tái)由管理員使用,但也可以用來(lái)登錄普通用戶,前臺(tái)功能模塊和后臺(tái)功能模塊可以細(xì)分為各種功能模塊。
1.前臺(tái)系統(tǒng)功能模塊分為:
用戶注冊(cè)模塊:要求新用戶可以在系統(tǒng)前臺(tái)注冊(cè),注冊(cè)信息可以保存在數(shù)據(jù)庫(kù)中,后臺(tái)管理員審核注冊(cè)的用戶,防止一些違規(guī)注冊(cè),注冊(cè)后即可登錄系統(tǒng)前臺(tái)。
商品展示模塊:通過(guò)主要商品和商品類別展示系統(tǒng)的所有商品;
訂單模塊:要求購(gòu)買商品的用戶可以電話購(gòu)買,也可以注冊(cè)登錄后在線購(gòu)買,在線購(gòu)買則需用戶填寫(xiě)購(gòu)買信息,并提交訂單將信息展示在后臺(tái)。
用戶購(gòu)買模塊:跟淘寶、京東等大型電子商務(wù)網(wǎng)站一樣,將商品放入用戶購(gòu)買記錄,從而管理用戶購(gòu)買記錄里的商品。
訂單上交模塊:跟淘寶、京東等大型電子商務(wù)網(wǎng)站一樣,確認(rèn)購(gòu)買記錄的商品后,提交用戶訂單,然后確認(rèn)收貨地址和收貨人、聯(lián)系電話等,方可付款。
付款模塊:用戶提交訂單后,確認(rèn)收貨地址和收貨人、聯(lián)系電話等信息后,方可進(jìn)入付款界面,付款。
2.后臺(tái)系統(tǒng)功能模塊分為:
用戶管理模塊:要求用戶信息可以展示在后臺(tái)中,用戶管理分管理員和普通用戶兩部分,管理員可以修改管理員的名字和密碼,用戶管理可以顯示用戶注冊(cè)的信息、修改用戶個(gè)人資料和刪除用戶的操作。
訂單管理模塊:要求用戶在線購(gòu)買產(chǎn)生的訂單信息可以展示在后臺(tái),賣家可以對(duì)訂單信息進(jìn)行標(biāo)記審核,表示已接單,并分配物流配送,如果該訂單過(guò)期或者遲遲沒(méi)付款,也可以刪除該訂單的信息。
商品管理模塊:要求商品信息可以展示在后臺(tái)中,賣家可以對(duì)商品進(jìn)行修改操作,修改后的商品替代原有的,并可以展示在前臺(tái)中。
系統(tǒng)功能結(jié)構(gòu)圖如下所示。
圖4-1系統(tǒng)功能結(jié)構(gòu)圖
4.2數(shù)據(jù)庫(kù)設(shè)計(jì)
對(duì)于電子商務(wù)系統(tǒng)而言,為了支持更大流量的數(shù)據(jù)訪問(wèn)需求,桌面數(shù)據(jù)庫(kù)管理系統(tǒng)的使用不能滿足需求,安全也得不到充分的保護(hù)。因此,需要采用商業(yè)常用的企業(yè)級(jí)數(shù)據(jù)庫(kù)MySQL數(shù)據(jù)庫(kù)。
4.2.1數(shù)據(jù)庫(kù)物理設(shè)計(jì)
要設(shè)計(jì)數(shù)據(jù)庫(kù),需要對(duì)數(shù)據(jù)進(jìn)行物理分析。
從用戶的注冊(cè)、登錄等功能來(lái)分析需要建立用戶信息表,其中包含的數(shù)據(jù)項(xiàng)會(huì)有用戶名、密碼、電話、郵箱、錄入時(shí)間等。
從商品的類別和商品的信息等功能來(lái)分析需要建立商品類別表和商品信息表,其中包含的數(shù)據(jù)項(xiàng)會(huì)有商品類別名、商品類別錄入時(shí)間、商品名稱、庫(kù)存數(shù)量、銷售價(jià)格等。
系統(tǒng)包含用戶提交的訂單,所以需要訂單的相關(guān)數(shù)據(jù),如訂單號(hào),訂單提交時(shí)間,訂單金額等。
用戶提交訂單后,管理員審核訂單后,這個(gè)過(guò)程需要一系列關(guān)于訂單的狀態(tài)數(shù)據(jù)。
系統(tǒng)應(yīng)該要存在多個(gè)管理員管理系統(tǒng),所以系統(tǒng)需要管理員相關(guān)的數(shù)據(jù),如管理員賬號(hào)、密碼等。
4.2.2數(shù)據(jù)庫(kù)概念設(shè)計(jì)
經(jīng)過(guò)數(shù)據(jù)庫(kù)的物理設(shè)計(jì)后,得到如下幾個(gè)概念模型,它們的ER圖如下所示。
表4-2系統(tǒng)ER圖
4.2.3數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)
根據(jù)本系統(tǒng)的實(shí)際情況,本系統(tǒng)的數(shù)據(jù)表如下。
表address (收貨地址:)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
address_id |
int |
10 |
0 |
N |
Y |
收貨地址: |
|
2 |
name |
varchar |
32 |
0 |
Y |
N |
姓名: |
|
3 |
phone |
varchar |
13 |
0 |
Y |
N |
手機(jī): |
|
4 |
postcode |
varchar |
8 |
0 |
Y |
N |
郵編: |
|
5 |
address |
varchar |
255 |
0 |
N |
N |
地址: |
|
6 |
user_id |
mediumint |
8 |
0 |
N |
N |
用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù) |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
9 |
default |
bit |
1 |
0 |
N |
N |
0 |
默認(rèn)判斷 |
表article (文章:用于內(nèi)容管理系統(tǒng)的文章)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
標(biāo)題:[0,125]用于文章和html的title標(biāo)簽中 |
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分類:[0,1000]用來(lái)搜索指定類型的文章 |
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)擊數(shù):[0,1000000000]訪問(wèn)這篇文章的人次 |
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)贊數(shù) |
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
8 |
source |
varchar |
255 |
0 |
Y |
N |
來(lái)源:[0,255]文章的出處 |
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
來(lái)源地址:[0,255]用于跳轉(zhuǎn)到發(fā)布該文章的網(wǎng)站 |
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
標(biāo)簽:[0,255]用于標(biāo)注文章所屬相關(guān)內(nèi)容,多個(gè)標(biāo)簽用空格隔開(kāi) |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主體內(nèi)容 |
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面圖 |
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
表article_type (文章分類)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分類ID:[0,10000] |
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
顯示順序:[0,1000]決定分類顯示的先后順序 |
3 |
name |
varchar |
16 |
0 |
N |
N |
分類名稱:[2,16] |
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上級(jí)分類ID:[0,32767] |
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述該分類的作用 |
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分類圖標(biāo): |
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外鏈地址:[0,255]如果該分類是跳轉(zhuǎn)到其他網(wǎng)站的情況下,就在該URL上設(shè)置 |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
表auth (用戶權(quán)限管理)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授權(quán)ID: |
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用戶組: |
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模塊名: |
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
頁(yè)面標(biāo)題: |
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路徑: |
|
7 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
8 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳轉(zhuǎn)方式: |
9 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
10 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可刪除: |
11 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
12 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
13 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
14 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
15 |
field_get |
text |
65535 |
0 |
Y |
N |
查詢字段: |
|
16 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表導(dǎo)航名稱: |
|
17 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表導(dǎo)航: |
|
18 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
表cart (購(gòu)物車)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
cart_id |
int |
10 |
0 |
N |
Y |
購(gòu)物車ID: |
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
標(biāo)題: |
|
3 |
img |
varchar |
255 |
0 |
N |
N |
0 |
圖片: |
4 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用戶ID: |
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
7 |
state |
int |
10 |
0 |
N |
N |
0 |
狀態(tài):使用中,已失效 |
8 |
price |
double |
9 |
2 |
N |
N |
0.00 |
單價(jià): |
9 |
price_ago |
double |
9 |
2 |
N |
N |
0.00 |
原價(jià): |
10 |
price_count |
double |
11 |
2 |
N |
N |
0.00 |
總價(jià): |
11 |
num |
int |
10 |
0 |
N |
N |
1 |
數(shù)量: |
12 |
goods_id |
mediumint |
8 |
0 |
N |
N |
商品id:[0,8388607] |
|
13 |
type |
varchar |
64 |
0 |
N |
N |
未分類 |
商品分類: |
14 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于產(chǎn)品規(guī)格描述 |
表collect (收藏)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
來(lái)源ID: |
6 |
title |
varchar |
255 |
0 |
Y |
N |
標(biāo)題: |
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
表comment (評(píng)論)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
comment_id |
int |
10 |
0 |
N |
Y |
評(píng)論ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
評(píng)論人ID: |
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回復(fù)評(píng)論ID:空為0 |
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
內(nèi)容: |
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵稱: |
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
頭像地址:[0,255] |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
來(lái)源ID: |
表commodity_center (商品中心)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
commodity_center_id |
int |
10 |
0 |
N |
Y |
商品中心ID |
|
2 |
seller |
int |
10 |
0 |
Y |
N |
0 |
賣家 |
3 |
shipping_address |
varchar |
64 |
0 |
Y |
N |
發(fā)貨地址 |
|
4 |
city |
varchar |
64 |
0 |
Y |
N |
所在城市 |
|
5 |
commodity_specification |
varchar |
64 |
0 |
Y |
N |
商品規(guī)格 |
|
6 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
7 |
cart_title |
varchar |
125 |
0 |
Y |
N |
標(biāo)題:[0,125]用于產(chǎn)品html的標(biāo)簽中 |
|
8 |
cart_img |
text |
65535 |
0 |
Y |
N |
封面圖:用于顯示于產(chǎn)品列表頁(yè) |
|
9 |
cart_description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于產(chǎn)品規(guī)格描述 |
|
10 |
cart_price_ago |
double |
8 |
2 |
N |
N |
0.00 |
原價(jià):[1] |
11 |
cart_price |
double |
8 |
2 |
N |
N |
0.00 |
賣價(jià):[1] |
12 |
cart_inventory |
int |
10 |
0 |
N |
N |
0 |
商品庫(kù)存 |
13 |
cart_type |
varchar |
64 |
0 |
N |
N |
未分類 |
商品分類: |
14 |
cart_content |
longtext |
2147483647 |
0 |
Y |
N |
正文:產(chǎn)品的主體內(nèi)容 |
|
15 |
cart_img_1 |
text |
65535 |
0 |
Y |
N |
主圖1: |
|
16 |
cart_img_2 |
text |
65535 |
0 |
Y |
N |
主圖2: |
|
17 |
cart_img_3 |
text |
65535 |
0 |
Y |
N |
主圖3: |
|
18 |
cart_img_4 |
text |
65535 |
0 |
Y |
N |
主圖4: |
|
19 |
cart_img_5 |
text |
65535 |
0 |
Y |
N |
主圖5: |
|
20 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間 |
21 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間 |
表goods (商品信息)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
goods_id |
mediumint |
8 |
0 |
N |
Y |
產(chǎn)品id:[0,8388607] |
|
2 |
title |
varchar |
125 |
0 |
Y |
N |
標(biāo)題:[0,125]用于產(chǎn)品和html的<title>標(biāo)簽中 |
|
3 |
img |
text |
65535 |
0 |
Y |
N |
封面圖:用于顯示于產(chǎn)品列表頁(yè) |
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于產(chǎn)品規(guī)格描述 |
|
5 |
price_ago |
double |
8 |
2 |
N |
N |
0.00 |
原價(jià):[1] |
6 |
price |
double |
8 |
2 |
N |
N |
0.00 |
賣價(jià):[1] |
7 |
sales |
int |
10 |
0 |
N |
N |
0 |
銷量:[0,1000000000] |
8 |
inventory |
int |
10 |
0 |
N |
N |
0 |
商品庫(kù)存 |
9 |
type |
varchar |
64 |
0 |
N |
N |
商品分類: |
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)擊量:[0,1000000000]訪問(wèn)這篇產(chǎn)品的人次 |
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:產(chǎn)品的主體內(nèi)容 |
|
12 |
img_1 |
text |
65535 |
0 |
Y |
N |
主圖1: |
|
13 |
img_2 |
text |
65535 |
0 |
Y |
N |
主圖2: |
|
14 |
img_3 |
text |
65535 |
0 |
Y |
N |
主圖3: |
|
15 |
img_4 |
text |
65535 |
0 |
Y |
N |
主圖4: |
|
16 |
img_5 |
text |
65535 |
0 |
Y |
N |
主圖5: |
|
17 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
18 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
19 |
customize_field |
text |
65535 |
0 |
Y |
N |
自定義字段 |
|
20 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
21 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
22 |
source_id |
int |
10 |
0 |
N |
N |
0 |
來(lái)源ID: |
23 |
user_id |
int |
10 |
0 |
Y |
N |
0 |
添加人 |
表goods_type (商品類型)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
type_id |
int |
10 |
0 |
N |
Y |
商品分類ID: |
|
2 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上級(jí)分類ID:[0,32767] |
3 |
name |
varchar |
255 |
0 |
Y |
N |
商品名稱: |
|
4 |
desc |
varchar |
255 |
0 |
Y |
N |
描述: |
|
5 |
icon |
varchar |
255 |
0 |
Y |
N |
圖標(biāo): |
|
6 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
7 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
表hits (用戶點(diǎn)擊)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
hits_id |
int |
10 |
0 |
N |
Y |
點(diǎn)贊ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)贊人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
來(lái)源ID: |
表notice (公告)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
2 |
title |
varchar |
125 |
0 |
N |
N |
標(biāo)題: |
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
表order (訂單)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
order_id |
int |
10 |
0 |
N |
Y |
訂單ID: |
|
2 |
order_number |
varchar |
64 |
0 |
Y |
N |
訂單號(hào): |
|
3 |
goods_id |
mediumint |
8 |
0 |
N |
N |
商品id:[0,8388607] |
|
4 |
title |
varchar |
32 |
0 |
Y |
N |
商品標(biāo)題: |
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
商品圖片: |
|
6 |
price |
double |
10 |
2 |
N |
N |
0.00 |
價(jià)格: |
7 |
price_ago |
double |
10 |
2 |
N |
N |
0.00 |
原價(jià): |
8 |
num |
int |
10 |
0 |
N |
N |
1 |
數(shù)量: |
9 |
price_count |
double |
8 |
2 |
N |
N |
0.00 |
總價(jià): |
10 |
norms |
varchar |
255 |
0 |
Y |
N |
規(guī)格: |
|
11 |
type |
varchar |
64 |
0 |
N |
N |
未分類 |
商品分類: |
12 |
contact_name |
varchar |
32 |
0 |
Y |
N |
聯(lián)系人姓名: |
|
13 |
contact_email |
varchar |
125 |
0 |
Y |
N |
聯(lián)系人郵箱: |
|
14 |
contact_phone |
varchar |
11 |
0 |
Y |
N |
聯(lián)系人手機(jī): |
|
15 |
contact_address |
varchar |
255 |
0 |
Y |
N |
收件地址: |
|
16 |
postal_code |
varchar |
9 |
0 |
Y |
N |
郵政編碼: |
|
17 |
user_id |
int |
10 |
0 |
N |
N |
0 |
買家ID: |
18 |
merchant_id |
mediumint |
8 |
0 |
N |
N |
0 |
商家ID: |
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
21 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于產(chǎn)品規(guī)格描述 |
|
22 |
state |
varchar |
16 |
0 |
N |
N |
待付款 |
訂單狀態(tài):待付款,待發(fā)貨,待簽收,已簽收,待退款,已退款,已拒絕,已完成 |
表praise (點(diǎn)贊)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
praise_id |
int |
10 |
0 |
N |
Y |
點(diǎn)贊ID: |
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)贊人: |
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
來(lái)源表: |
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
來(lái)源字段: |
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
來(lái)源ID: |
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
點(diǎn)贊狀態(tài):1為點(diǎn)贊,0已取消 |
表registered_users (注冊(cè)用戶)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
registered_users_id |
int |
10 |
0 |
N |
Y |
注冊(cè)用戶ID |
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用戶姓名 |
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用戶性別 |
|
4 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通過(guò) |
審核狀態(tài) |
5 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用戶ID |
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間 |
表seller (賣家)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
seller_id |
int |
10 |
0 |
N |
Y |
賣家ID |
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用戶姓名 |
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用戶性別 |
|
4 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通過(guò) |
審核狀態(tài) |
5 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推薦 |
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用戶ID |
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間 |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間 |
表slides (輪播圖)
編號(hào) |
名稱 |
數(shù)據(jù)類型 |
長(zhǎng)度 |
小數(shù)位 |
允許空值 |
主鍵 |
默認(rèn)值 |
說(shuō)明 |
1 |
slides_id |
int |
10 |
0 |
N |
Y |
輪播圖ID: |
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
標(biāo)題: |
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
內(nèi)容: |
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
鏈接: |
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
輪播圖: |
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
點(diǎn)擊量: |
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
創(chuàng)建時(shí)間: |
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新時(shí)間: |
??????????????????????????????????????????????
- ?系統(tǒng)實(shí)現(xiàn)
5.1首頁(yè)設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)的主界面設(shè)計(jì)結(jié)構(gòu)上使用左右結(jié)構(gòu),上部的主要功能菜單區(qū),主要顯示系統(tǒng)的主要功能,上部導(dǎo)航欄有用戶注冊(cè),新聞資訊,商品信息,購(gòu)物車,訂單支付,商品顯示主要是為方便用戶查看一些主要產(chǎn)品的信息。
系統(tǒng)首頁(yè)界面如下圖所示。
圖5-1系統(tǒng)首頁(yè)界面
5.2前臺(tái)功能設(shè)計(jì)與實(shí)現(xiàn)
5.2.1用戶模塊設(shè)計(jì)與實(shí)現(xiàn)
作為基于微信小程序的同城優(yōu)惠軟件,必須保證用戶的正確性、購(gòu)物安全、有效管理用戶信息,用戶管理是電子商務(wù)系統(tǒng)的重要組成部分。它主要包括用戶注冊(cè)、登錄和驗(yàn)證、用戶注冊(cè)數(shù)據(jù)修改和用戶退出等功能。
1.注冊(cè)
用戶首先進(jìn)入系統(tǒng)前臺(tái),點(diǎn)擊用戶注冊(cè)鏈接,進(jìn)入用戶注冊(cè)頁(yè)面,用戶填滿表單,即可點(diǎn)擊提交,完成注冊(cè),之后用戶可以使用賬號(hào)登錄系統(tǒng)前臺(tái)。
用戶注冊(cè)是通過(guò)userreg.jsp和yonghuzhuce_add_list.jsp等頁(yè)面實(shí)現(xiàn)的,userreg.jsp是用戶點(diǎn)擊注冊(cè)后,進(jìn)入注冊(cè)頁(yè)面的純靜態(tài)頁(yè)面,通過(guò)userreg.jsp的表單將注冊(cè)數(shù)據(jù)提交到y(tǒng)onghuzhuce_add_list.jsp,yonghuzhuce_add_list.jsp直接操作數(shù)據(jù)庫(kù),從而實(shí)現(xiàn)將注冊(cè)數(shù)據(jù)添加至數(shù)據(jù)庫(kù)的用戶表中。
用戶注冊(cè)界面如下圖所示。
圖5-2用戶注冊(cè)界面
2.登錄
用戶進(jìn)入系統(tǒng)前臺(tái)首頁(yè)后,即可看到左上角有登錄表單,用戶輸入用戶名、密碼、驗(yàn)證碼,經(jīng)過(guò)數(shù)據(jù)庫(kù)驗(yàn)證,即可登錄。如果驗(yàn)證失敗,將通過(guò)js提示賬號(hào)或密碼錯(cuò)誤。
本功能參與的代碼文件有index.jsp、userlog_list.jsp、首先用戶進(jìn)入前臺(tái)首頁(yè)index.jsp,輸入賬號(hào)密碼,通過(guò)表單提交到userlog_list.jsp,驗(yàn)證成功后跳到index.jsp,然后通過(guò)session獲取用戶的用戶名,并顯示出來(lái)。
用戶登錄流程圖如下所示。
圖5-3用戶登錄流程圖
用戶登錄界面如下圖所示。
圖5-4用戶登錄界面
系統(tǒng)登錄的邏輯代碼如下所示。
???* 登錄
?????* @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;
????????QueryWrapper wrapper = new QueryWrapper<User>();
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態(tài)
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
????????????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)或密碼不正確");
????????}
}
????public String select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return sql.toString();
}
????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;
}
3.用戶資料修改
登錄系統(tǒng)前臺(tái)的用戶可以進(jìn)入個(gè)人中心修改個(gè)人信息,包括姓名、年齡、性別等,當(dāng)用戶要退出系統(tǒng)時(shí),可以點(diǎn)擊注銷,系統(tǒng)將情況session。
首先用戶進(jìn)入yonghuzhuce_updt.jsp頁(yè)面,即修改個(gè)人信息頁(yè)面,用戶可以任意修改表單中的數(shù)據(jù),然后用戶點(diǎn)擊提交按鈕,將表單提交至yonghuzhuce_updt_list.jsp中,yonghuzhuce_updt_list.jsp直接操作數(shù)據(jù)庫(kù)完成用戶信息的修改。
界面如下圖所示。
圖5-5用戶資料修改界面
5.2.2商品展示模塊設(shè)計(jì)與實(shí)現(xiàn)
用戶進(jìn)入系統(tǒng)前臺(tái),先展示系統(tǒng)主要的商品,用戶可以選擇所有商品,查看所有商品,也可以點(diǎn)擊某個(gè)商品,查看某個(gè)商品的詳細(xì)信息,包括商品名稱、類別、價(jià)格、庫(kù)存數(shù)量等。
shangpinxinxilisttp.jsp即系統(tǒng)前臺(tái)所有商品頁(yè)面、shangpinxinxidetail.jsp是商品詳細(xì)頁(yè)面,shangpinxinxilisttp.jsp通過(guò)循環(huán)遍歷所有商品信息,然后通過(guò)<tr>排列,<td height="26" align="center"><%=shangpinmingcheng%></td>顯示數(shù)據(jù)庫(kù)的數(shù)據(jù)。
商品展示界面如下圖所示。
???????????????????????????
圖5-6商品展示界面
商品展示關(guān)鍵代碼如下所示。
?<mapper namespace="com.project.demo.dao.base.BaseMapper">
????<select id="selectBaseList" resultType="java.util.LinkedHashMap">
????????${select}
????</select>
????<select id="selectBaseCount" resultType="Integer">
????????${count}
????</select>
????<select id="selectBaseOne" resultType="Object">
????????${select}
????</select>
????<update id="updateBaseSql">
????????${sql}
????</update>
????<delete id="deleteBaseSql">
????????${sql}
????</delete>
</mapper>
5.2.3購(gòu)買模塊的設(shè)計(jì)與實(shí)現(xiàn)
用戶在添加到購(gòu)買記錄后選擇并購(gòu)買商品,在購(gòu)買記錄中刪除不滿意的商品的同時(shí),還可以更改數(shù)量,或清空購(gòu)買記錄的所有商品,用戶確認(rèn)購(gòu)買記錄后,可以提交訂單,填寫(xiě)收貨地址、收貨人和聯(lián)系方式。
顧客將商品添加到購(gòu)買記錄和顧客對(duì)購(gòu)買記錄的管理,例如更新所購(gòu)物品的數(shù)量,清空購(gòu)買記錄以及從購(gòu)買記錄中移除購(gòu)買記錄中的物品。 購(gòu)買記錄是持久的,并不限制用戶購(gòu)買的物品數(shù)量,也就是說(shuō)購(gòu)買記錄可以顯示許多商品。
在系統(tǒng)前臺(tái),用戶選擇好商品,可以點(diǎn)擊添加至購(gòu)買記錄,這里通過(guò)onClick="javascript:location.href='goumaijiluadd.jsp?id=<%=id%>,將商品ID傳值到goumaijilu_add.jsp頁(yè)面,然后在goumaijilu_add.jsp向goumaijilu_list.jsp頁(yè)面提交添加購(gòu)買記錄表單,即可實(shí)現(xiàn)將商品添加至購(gòu)買記錄。
購(gòu)買流程圖如下圖所示。
圖5-7購(gòu)買流程圖
購(gòu)買界面的設(shè)計(jì)如下圖所示。
圖5-8購(gòu)買界面
商品購(gòu)買關(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);
????????}
}
訂單支付的設(shè)計(jì)如下圖所示。
圖5-9訂單支付界面
5.2.5用戶評(píng)論模塊的設(shè)計(jì)與實(shí)現(xiàn)
用戶需要登錄系統(tǒng)前臺(tái),才能進(jìn)行用戶評(píng)論,用戶點(diǎn)擊導(dǎo)航欄的在線用戶評(píng)論,填寫(xiě)標(biāo)題、內(nèi)容等,填寫(xiě)用戶評(píng)論內(nèi)容,即可完成在線用戶評(píng)論,管理員可以回復(fù)客戶的用戶評(píng)論。
本功能用到了代碼文件有yonghupinglun_add_list.jsp,用戶在系統(tǒng)前臺(tái)點(diǎn)擊添加用戶評(píng)論,跳轉(zhuǎn)至yonghupinglun.jsp頁(yè)面,填寫(xiě)好表單參數(shù),提交至yonghupinglun?_add_list.jsp頁(yè)面,然后又yonghupinglun?_add_list.jsp操作數(shù)據(jù)庫(kù),完成用戶評(píng)論的添加。
用戶評(píng)論界面如下圖所示。
圖5-10用戶評(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.3后臺(tái)功能設(shè)計(jì)與實(shí)現(xiàn)
5.3.1用戶管理設(shè)計(jì)與實(shí)現(xiàn)
該功能包括管理員用戶管理和注冊(cè)用戶管理,主要是由超級(jí)管理員使用,對(duì)管理員用戶進(jìn)行添加、刪除、修改,審核用戶注冊(cè)、刪除普通用戶、修改普通用戶的個(gè)人資料。首先管理員用戶進(jìn)入后臺(tái)主頁(yè),在左邊菜單欄選擇相應(yīng)的功能操作。
首先管理員點(diǎn)擊進(jìn)入普通用戶列表yonghuzhuce_list.jsp,可以選擇刪除、或者修改,如果管理員點(diǎn)擊刪除,則將通過(guò)js提示管理員是否刪除onClick="return confirm('真的要?jiǎng)h除?')",如果刪除后將請(qǐng)求sh.jsp進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)刪除,如果管理員選擇修改用戶信息,將跳轉(zhuǎn)至yonghuzhuce_updt2.jsp,然后管理員修改后,頁(yè)面請(qǐng)求yonghuzhuce_updt2_list.jsp來(lái)操作數(shù)據(jù)庫(kù)完成用戶信息的修改。
用戶信息管理類界面如下圖所示。
圖5-11用戶信息管理界面
用戶信息管理關(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);
}
5.3.2訂單管理設(shè)計(jì)與實(shí)現(xiàn)
普通用戶在系統(tǒng)前臺(tái)購(gòu)買商品后,提交訂單,后臺(tái)將生成用戶提交的訂單,管理員需要處理訂單,審核訂單,刪除、修改訂單等操作。
首先管理員點(diǎn)擊進(jìn)入訂單列表dingdan_list.jsp,可以選擇刪除、或者修改,如果管理員點(diǎn)擊刪除,則將通過(guò)js提示管理員是否刪除onClick="return confirm('真的要?jiǎng)h除?')",如果刪除后將請(qǐng)求sh.jsp進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)刪除,如果管理員選擇修改訂單信息,將跳轉(zhuǎn)至dingdan_updt2.jsp,然后管理員修改后,頁(yè)面請(qǐng)求dingdan_updt2_list.jsp來(lái)操作數(shù)據(jù)庫(kù)完成訂單信息的修改,審核訂單是將訂單的是否審核狀態(tài)的boolean值改成是true。
訂單管理界面如下圖所示。
圖5-12訂單管理界面
5.3.3商品管理設(shè)計(jì)與實(shí)現(xiàn)
除了商品的基本信息管理功能外,為了方便客戶瀏覽商品的真實(shí)外觀,在添加的商品模塊中添加商品圖片上傳的功能。
用戶在商品添加頁(yè)面中輸入添加商品的基本信息,點(diǎn)擊提交進(jìn)入上傳圖片頁(yè)面。在上傳圖片位置添加文件并單擊提交按鈕,在提交成功后,彈出提示信息。查看用戶的商品信息,視圖上的鼠標(biāo)可以查看圖片。
用戶在系統(tǒng)后臺(tái)點(diǎn)擊添加商品,跳轉(zhuǎn)至shangpin_add.jsp頁(yè)面,填寫(xiě)好表單參數(shù),提交至shangpin_add_list.jsp頁(yè)面,然后又shangpin_add_list.jsp操作數(shù)據(jù)庫(kù),完成商品的添加。首先管理員點(diǎn)擊進(jìn)入普通商品列表shangpinxinxi_list.jsp,可以選擇刪除、或者修改,如果管理員點(diǎn)擊刪除,則將通過(guò)js提示管理員是否刪除onClick="return confirm('真的要?jiǎng)h除?')",如果刪除后將請(qǐng)求sh.jsp進(jìn)行數(shù)據(jù)庫(kù)數(shù)據(jù)刪除,如果管理員選擇修改商品信息,將跳轉(zhuǎn)至shangpinxinxi_updt2.jsp,然后管理員修改后,頁(yè)面請(qǐng)求shangpinxinxi_updt2_list.jsp來(lái)操作數(shù)據(jù)庫(kù)完成商品信息的修改。
商品管理界面如下圖所示。
圖5-13商品管理界面
商品管理關(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);
- ?系統(tǒng)測(cè)試
6.1測(cè)試方法
根據(jù)系統(tǒng)測(cè)試目的并結(jié)合面向?qū)ο蟮臏y(cè)試方法,給出如下系統(tǒng)測(cè)試方案:
1、盡可能早的、并且不斷地進(jìn)行系統(tǒng)測(cè)試。因?yàn)殄e(cuò)誤發(fā)現(xiàn)的越早,修正它所付出的代價(jià)以及費(fèi)用就會(huì)越小。
2、設(shè)計(jì)本測(cè)試用例時(shí),應(yīng)該給出測(cè)試的預(yù)期結(jié)果。一個(gè)合理的測(cè)試用例由兩部分組成:主要有測(cè)試用的輸入數(shù)據(jù)和該輸入數(shù)據(jù)所期望的系統(tǒng)運(yùn)行結(jié)果。
3、在設(shè)計(jì)本測(cè)試用例時(shí),不僅需要有合法的輸入測(cè)試用例,還應(yīng)該要有非法的輸入測(cè)試用例。因?yàn)?,因?yàn)樵谙到y(tǒng)的實(shí)際使用過(guò)程中,通常由于各種原因,用戶往往會(huì)使用一些非法的輸入測(cè)試用例來(lái)進(jìn)行測(cè)試。測(cè)試用例為了測(cè)試系統(tǒng)的正確性和完整性,本節(jié)將對(duì)系統(tǒng)中重點(diǎn)模塊的測(cè)試進(jìn)行介紹。
6.2測(cè)試目的
該系統(tǒng)能夠完成商品選購(gòu),加入購(gòu)物車,商品管理,訂單管理,用戶評(píng)論,用戶管理等功能,做到所開(kāi)發(fā)的系統(tǒng)操作簡(jiǎn)單,符合系統(tǒng)開(kāi)放性要求,該系統(tǒng)能夠在開(kāi)放的硬件體系結(jié)構(gòu)中運(yùn)行,并且能與其他系統(tǒng)順利連接。
6.3測(cè)試用例
6.3.1注冊(cè)測(cè)試
用戶注冊(cè)功能測(cè)試,如下表所示。
表6-1用戶注冊(cè)測(cè)試用例表
用例編號(hào) |
用例名稱 |
測(cè)試功能 |
輸入 |
操作過(guò)程 |
預(yù)期輸出 |
測(cè)試結(jié)果 |
B1 |
用戶注冊(cè)模塊測(cè)試 |
正確輸入用戶信息,完成用戶的注冊(cè)。 |
用戶的基本信息 |
用戶在系統(tǒng)的注冊(cè)頁(yè)面根據(jù)提示填寫(xiě)相應(yīng)的信息,然后點(diǎn)擊“注冊(cè)”按鈕。 |
提示成功并跳轉(zhuǎn)到登陸界面。 |
正確 |
B2 |
用戶注冊(cè)模塊測(cè)試 |
用戶注冊(cè)失敗的情況 |
用戶不填寫(xiě)用戶名 |
用戶在系統(tǒng)的注冊(cè)頁(yè)面根據(jù)提示填寫(xiě)除了用戶名以外相應(yīng)的信息,然后點(diǎn)擊“注冊(cè)”按鈕。 |
注冊(cè)失敗,提示“*用戶名不符合要求”。 |
正確 |
B3 |
用戶注冊(cè)模塊測(cè)試 |
用戶注冊(cè)失敗的情況 |
用戶兩次輸入密碼不一致 |
用戶在系統(tǒng)的注冊(cè)頁(yè)面根據(jù)提示填寫(xiě)相應(yīng)的信息,填寫(xiě)密碼時(shí)兩次輸入的密碼不一致,然后點(diǎn)擊“注冊(cè)”按鈕。 |
注冊(cè)失敗,提示“*兩次輸入密碼不一致”。 |
正確 |
6.3.2購(gòu)買訂單測(cè)試
首先對(duì)購(gòu)買訂單的商品的數(shù)量進(jìn)行單元測(cè)試,修改商品的數(shù)量,當(dāng)輸入除數(shù)字外的數(shù)量,比如輸入a,系統(tǒng)能自動(dòng)識(shí)別,并將數(shù)量改成1,通過(guò)測(cè)試幾組數(shù)據(jù),均發(fā)現(xiàn)沒(méi)有bug,并且,系統(tǒng)能根據(jù)商品的數(shù)量,自動(dòng)計(jì)算出商品總價(jià)。接著測(cè)試購(gòu)買訂單出現(xiàn)添加2種同樣商品時(shí)的情況,發(fā)現(xiàn)添加商品的數(shù)量為2后,再添加該同樣的商品數(shù)量為3,發(fā)現(xiàn)購(gòu)買訂單該商品的數(shù)量為5,測(cè)試無(wú)誤,通過(guò)幾次測(cè)試,均發(fā)現(xiàn)購(gòu)買訂單的商品數(shù)量和總價(jià)是正確的。
購(gòu)買訂單功能測(cè)試,如下表所示。
表6-2購(gòu)買訂單測(cè)試用例表
用例編號(hào) |
用例名稱 |
測(cè)試功能 |
輸入 |
操作過(guò)程 |
預(yù)期輸出 |
測(cè)試結(jié)果 |
A1 |
購(gòu)買訂單功能測(cè)試 |
商品加入購(gòu)買訂單成功場(chǎng)景。 |
點(diǎn)擊商品,填寫(xiě)數(shù)量加入購(gòu)買訂單 |
在系統(tǒng)的商品信息頁(yè)選擇商品點(diǎn)擊“加入購(gòu)買訂單”按鈕。 |
界面提示“有一件商品加入購(gòu)買訂單!” |
正確 |
6.3.3商品管理測(cè)試
- 添加功能的測(cè)試
添加商品時(shí),如果上傳的是jpg等圖片格式的圖片,將上傳成功,并且系統(tǒng)能正常顯示該圖片,如果上傳doc、mp3等非圖片格式的文件后,系統(tǒng)將提示上傳失敗,并要求用戶重新上傳圖片,進(jìn)行了幾次的測(cè)試,均發(fā)現(xiàn)正常。
- 刪除功能的測(cè)試
例如,用戶想刪除編號(hào)為2的商品,則點(diǎn)擊刪除按鈕,系統(tǒng)提示是否刪除,點(diǎn)擊是,則將刪除該商品,頁(yè)面自動(dòng)更新,同時(shí)查看數(shù)據(jù)庫(kù),發(fā)現(xiàn)該商品對(duì)應(yīng)的數(shù)據(jù)也刪除了,證實(shí)該功能正常。
- 查詢功能的測(cè)試
該系統(tǒng)中的查詢功能是通過(guò)點(diǎn)擊鏈接來(lái)實(shí)現(xiàn)的。 對(duì)商品管理代碼進(jìn)行測(cè)試,當(dāng)用戶的密碼輸入到后臺(tái)時(shí),可以通過(guò)點(diǎn)擊商品管理直接看到商品信息。 點(diǎn)擊查看商品圖片查看商品是否已上傳圖片,系統(tǒng)未出現(xiàn)錯(cuò)誤,查詢成功。
結(jié)論
在基于微信小程序的同城優(yōu)惠軟件的設(shè)計(jì)過(guò)程中,由于對(duì)Java并不熟悉,系統(tǒng)的開(kāi)發(fā)也屬于邊學(xué)習(xí)邊應(yīng)用的過(guò)程,因此對(duì)Java的理解不免出現(xiàn)偏差和錯(cuò)誤,程序中肯定存在許多需要改正的地方。另外,由于畢業(yè)設(shè)計(jì)的時(shí)間比較緊張,而且自己技術(shù)有限,系統(tǒng)不免有些簡(jiǎn)陋,這也是今后系統(tǒng)需要改進(jìn)和完善的地方。
基于微信小程序的同城優(yōu)惠軟件采用Java+Springboot+Html+Css+JavaSrcript,Java語(yǔ)言成熟、強(qiáng)大、易理解易使用,通過(guò)使用這個(gè)架構(gòu),降低了開(kāi)發(fā)的難度。本系統(tǒng)實(shí)現(xiàn)了基于Java框架的基于微信小程序的同城優(yōu)惠軟件,將銷售流程轉(zhuǎn)化成電腦操作流程,具體實(shí)現(xiàn)了對(duì)銷售訂單和客戶的管理、系統(tǒng)人員管理、商品和商品類型管理,并提供查詢統(tǒng)計(jì)功能來(lái)對(duì)訂單和商品的相關(guān)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,讓商家能更清晰的掌握運(yùn)營(yíng)情況,幫助商家進(jìn)行銷售管理,簡(jiǎn)化商家工作流程,提高工作效率和盈利。
目前完成的基于微信小程序的同城優(yōu)惠軟件,還有許多有待改進(jìn)的地方。一個(gè)是功能上的改進(jìn),用戶理應(yīng)可以修改自己的相關(guān)信息,故應(yīng)增設(shè)個(gè)人中心功能;另外,系統(tǒng)如果能提供更多查詢統(tǒng)計(jì)功能就會(huì)使得系統(tǒng)更加豐富和多樣化,比如客戶購(gòu)買力排行功能、業(yè)務(wù)員銷售能力排行功能等。第二個(gè)是技術(shù)上的改進(jìn),由于對(duì)MVC架構(gòu)不太熟悉,權(quán)限管理這部分,本系統(tǒng)采用一個(gè)Jsp頁(yè)面來(lái)規(guī)定好導(dǎo)航欄,即跳轉(zhuǎn)的頁(yè)面,這相對(duì)比較不靈活,如果將URL路徑記錄到數(shù)據(jù)庫(kù)并實(shí)現(xiàn)增刪查改會(huì)比較好;另外就是對(duì)EasyUI的使用還不夠熟練,視覺(jué)效果和界面觀感有待提升,希望日后能對(duì)這個(gè)系統(tǒng)有所改進(jìn)。
致謝
此次畢業(yè)設(shè)計(jì)的課題開(kāi)發(fā)中,遇到了很多分析和技術(shù)上的問(wèn)題,通過(guò)網(wǎng)上查找資料和請(qǐng)求同學(xué)幫忙,順利解決許多問(wèn)題。
首先,我要感謝學(xué)校,是它給了我四年良好的生活環(huán)境和學(xué)習(xí)的平臺(tái)。我要感謝我的指導(dǎo)老師。在這次畢業(yè)課題設(shè)計(jì)和論文的撰寫(xiě)中,指導(dǎo)老師都給了我真誠(chéng)的幫助和細(xì)心的指導(dǎo)。我要感謝我的專業(yè)老師,是他們?cè)趯I(yè)知識(shí)上幫我解除了疑惑,讓我學(xué)到更多。我還要感謝的同學(xué)和朋友,是他們陪伴我走過(guò)四年的學(xué)習(xí)生活。
時(shí)間隨流水般走過(guò),大學(xué)四年時(shí)光就是這樣在不經(jīng)意之間就走到了盡頭。有太多的不舍,但卻不會(huì)有太多的遺憾。四年時(shí)間見(jiàn)證了很多,也讓你們見(jiàn)證了我的成長(zhǎng)。感謝在大學(xué)里有你們的陪伴,感謝在成長(zhǎng)的路上有你們的支持和鼓勵(lì),謝謝你們,讓我的生活變得更加精彩!
參考文獻(xiàn)
[1]楊宇.jsp典型模塊與項(xiàng)目實(shí)戰(zhàn)大全[M].清華大學(xué)出版社,2012.1
[2]夏偉.中國(guó)電子商務(wù)現(xiàn)狀與發(fā)展趨勢(shì)分析[J].科技廣場(chǎng),2011,4.
[3] Aaron.Professional jsp Design Patterns Saray[M].WROX PR/PEER INFORMATION INC ,2012.8
[4] Patrick.Expert jsp and MySQL Galbraith [M]. WROX PR/PEER INFORMATION INC,2010.3
[5]仲進(jìn)平.jsp+MySQL網(wǎng)絡(luò)開(kāi)發(fā)技術(shù)[M].人民郵電出版社,2012.2
[6]胡菘.Dreamweaver完美網(wǎng)頁(yè)設(shè)計(jì)[M].中國(guó)青年電子出版社,2010.5
[7]胡建華,楊軍.基于jsp的連鎖酒店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2016(1):25-26
[8]趙啟志.jsp+MySQL完整自學(xué)方案[M].中國(guó)鐵道出版社,2011.9
[9] J.E. Marco Tabini&Associates.Architect's Guide to jsp Design Patterns Sweat[M].2011.2
[10]李宇.Javascript網(wǎng)頁(yè)特效實(shí)例解析[M].機(jī)械工業(yè)出版社,2013.4
[11](澳)威利,(澳)湯姆森. jsp和MySQL Web開(kāi)發(fā) (原書(shū)第4版)[M].機(jī)械工業(yè)出版社,2013.4
[12]張麗萍,陳曉娟等.基于jsp技術(shù)的管理系統(tǒng)應(yīng)用研究[J].蘭州交通大學(xué)學(xué)報(bào),2010(1):3-5
[13]張清林,李繼寶等.科研管理信息化的理論研究與實(shí)踐[J].消防科學(xué)與技術(shù),2010,5:432-435.
[14]張嶽.光大銀行理財(cái)產(chǎn)品在線銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連理工大學(xué),2015.
[15]魏松,賀丹娜.基于MYSQL的學(xué)生信息管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012,12:207-209.
[16]de Leeuw J R. javasych: a Javascript library for creating behavioral experiments in a Web browser.[J]. Behavior Research Methods, 2015, 47(1):1.
[17]Gupta P, Govil M C. MVC Design Pattern for the multi framework distributed applications using XML, spring and struts framework[J]. International Journal on Computer Science & Engineering, 2010, 2(4):1047-1051.
[19]Derrick?Snyder,??Managing?and?Analyzing?Large?Data?Sets[M],National?Instruments?Austin,?2015
[19]About??Face,?The?Essentials?of?User?Interface?Design[M],IDG,Foster?City?CA,2014,ISBN?1-56884-322-4?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-830112.html
[20]Saul?W.Gellernan,?Motivation?and?Producting[M],Amercom,NewYork,2013文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-830112.html
請(qǐng)關(guān)注點(diǎn)贊+私信博主,免費(fèi)領(lǐng)取項(xiàng)目源碼
到了這里,關(guān)于(附源碼)Springboot基于微信小程序的同城優(yōu)惠軟件的開(kāi)發(fā)-計(jì)算機(jī)畢設(shè) 24287的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!