董 瑤 劉 斌 戚曉薇
(1、陜西科技大學(xué) 電子信息與人工智能學(xué)院,陜西 西安710021 2、陜西科技大學(xué) 馬克思主義學(xué)院,陜西 西安710021)
21 世紀(jì)以來(lái),作為一種新型的經(jīng)營(yíng)模式,電子商務(wù)得到了長(zhǎng)足的發(fā)展,現(xiàn)在的人們已經(jīng)離不開(kāi)網(wǎng)絡(luò)購(gòu)物的方式[1]。電子商務(wù)這一新興的商務(wù)模式以其便捷、數(shù)據(jù)化、低成本的優(yōu)點(diǎn)極大的改變了我們的生活。在中國(guó),網(wǎng)購(gòu)已經(jīng)具有良好的消費(fèi)者基礎(chǔ)。
武功縣手工粗布是非常優(yōu)秀的傳統(tǒng)手工藝品,具有吸汗透氣、舒適止癢、抗靜電等優(yōu)點(diǎn),但是根據(jù)調(diào)查目前大部分武功縣粗布的銷售還處在一個(gè)自產(chǎn)自銷的階段,沒(méi)有一個(gè)好的平臺(tái)搭建起買(mǎi)家和賣(mài)家的橋梁。所以,為了拓展武功縣粗布的市場(chǎng)空間,促進(jìn)粗布產(chǎn)業(yè)的發(fā)展,我們將武功縣粗布這一民間手工布藝產(chǎn)品和電子商務(wù)相結(jié)合,設(shè)計(jì)開(kāi)發(fā)了武功縣粗布電商平臺(tái)。
1.1 開(kāi)發(fā)工具。武功縣粗布平臺(tái)的開(kāi)發(fā)主要使用了IDEA、Maven、Git 等開(kāi)發(fā)工具[2]。
常用的關(guān)系型數(shù)據(jù)庫(kù)有MySql、SqlServer、oracle[3]。我們采用MySql 數(shù)據(jù)庫(kù),相對(duì)于oracle 它是輕量級(jí)數(shù)據(jù)庫(kù),硬件要求小。
Tomcat 服務(wù)器是一個(gè)開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,具有處理HTML 頁(yè)面的功能[4],我們采用的是spring boot 默認(rèn)的內(nèi)嵌容器tomcat,在使用的時(shí)候只需要在SpringBoot 配置文件里設(shè)置端口和上下文路徑即可。
pache Solr 是一個(gè)流行的開(kāi)源搜索服務(wù)器[5],它建立在Lucene(全文搜索引擎)之上。通過(guò)使用類似REST 的HTTP API,確保能在任何編程語(yǔ)言中使用Solr。
1.2 主要技術(shù)。武功縣粗布電商平臺(tái)使用了Java 語(yǔ)言編寫(xiě),主要使用了SpringBoot 框架,內(nèi)部集成了SSM(Spring、SpringtMVC、Mybatis)框架,后端使用MVC 模式,使用Maven 管理項(xiàng)目依賴,HTML 頁(yè)面技術(shù)展示信息,AngualrJs 和Jquery 來(lái)發(fā)送HTTP 請(qǐng)求和動(dòng)態(tài)渲染頁(yè)面,前臺(tái)使用了MVC 模式。
2.1 系統(tǒng)總體設(shè)計(jì)。本系統(tǒng)采用了MVC 設(shè)計(jì)模式,它分為三層:Model(模型)層、View(視圖)層和Controller(控制器)層[6]。
Model 封裝的是數(shù)據(jù)源和所有基于對(duì)這些數(shù)據(jù)的操作,View封裝的是對(duì)數(shù)據(jù)源Model 的一種顯示。一個(gè)模型可以有多個(gè)視圖,并且可以在需要的時(shí)候動(dòng)態(tài)地渲染到相應(yīng)的視圖上。而一個(gè)視圖理論上也可以與不同的模型關(guān)聯(lián)起來(lái)。Controller 封裝的是外界作用于模型的操作。通常,這些操作會(huì)轉(zhuǎn)發(fā)到模型上,并調(diào)用模型中相應(yīng)的一個(gè)或者多個(gè)方法。一般Controller 在Model 和View 之間起到了溝通的作用,處理用戶在View 上的輸入,并轉(zhuǎn)發(fā)給Model 來(lái)更改其狀態(tài)值。這樣Model 和View 兩者之間可以做到松散耦合,甚至可以彼此不知道對(duì)方,而由Controller 連接起這兩個(gè)部分。
MVC 設(shè)計(jì)模式可以使程序中的每一層專注于自己的功能,減少了這三層之間的耦合性。同時(shí)提高了代碼重用率[7]。
2.2 功能模塊設(shè)計(jì)。武功粗布電商平臺(tái)設(shè)計(jì)為一個(gè)功能基本完整系統(tǒng)。電商平臺(tái)主要分為三個(gè)模塊:普通用戶模塊、商家模塊和運(yùn)營(yíng)商模塊。詳細(xì)功能設(shè)計(jì)如圖1 所示。各模塊的主要功能有:
2.2.1 普通用戶模塊。用戶進(jìn)入系統(tǒng)之后可以進(jìn)行注冊(cè)、登錄、注銷、修改密碼。注冊(cè)的時(shí)候會(huì)有表單驗(yàn)證,用戶名不能和別的用戶相同,輸入的兩次密碼要相同,后端處理的時(shí)候要對(duì)用戶密碼進(jìn)行加密。登錄的時(shí)候會(huì)將用戶的密碼加密之后再去數(shù)據(jù)庫(kù)里面查詢。用戶可以瀏覽商品并進(jìn)行多條件查詢,可以將商品加入購(gòu)物車(chē)、查看購(gòu)物車(chē)、購(gòu)物車(chē)?yán)锊煌牡赇伒纳唐钒凑盏赇伔珠_(kāi)展示。用戶也可以提交訂單,查看訂單。
2.2.2 商家模塊。商家可以通過(guò)商家入駐頁(yè)面申請(qǐng)入駐,入駐成功之后可以進(jìn)行商家信息的修改。可以添加商品、管理商品對(duì)商品信息進(jìn)行更改,包括商品詳細(xì)信息、價(jià)格、庫(kù)存等。
2.2.3 運(yùn)營(yíng)商模塊。運(yùn)營(yíng)商可以對(duì)申請(qǐng)入駐的商家進(jìn)行審核。對(duì)商品的一些基本屬性進(jìn)行管理,比如商品規(guī)格、規(guī)格模版、商品分類的管理,對(duì)商家上傳的商品進(jìn)行審核。
圖1 系統(tǒng)功能模塊圖
圖2 數(shù)據(jù)庫(kù)ER 圖
2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)。系統(tǒng)的數(shù)據(jù)庫(kù)實(shí)體關(guān)系如圖2 所示。
主要數(shù)據(jù)庫(kù)表有:用戶信息表:主要字段有用戶名、密碼、用戶角色分為管理員和普通用戶。訂單主表:主要記錄了訂單的編號(hào)、用戶編號(hào)、店鋪的編號(hào)、訂單的狀態(tài)以及訂單總額。訂單項(xiàng)表:記錄訂單項(xiàng)的詳細(xì)信息,比如sku 編號(hào)、sku 標(biāo)題、購(gòu)買(mǎi)的數(shù)量、訂單項(xiàng)總額。商品spu 表:記錄了商品的關(guān)鍵信息(不會(huì)影響庫(kù)存和價(jià)格的屬性),比如spu 編號(hào)、分類信息、商品名稱、模版編號(hào)、商品狀態(tài)表示是否刪除。由于一些商品的字段信息長(zhǎng)度很長(zhǎng),所以單獨(dú)拆分為一個(gè)表,主要包括spu 編號(hào)、詳細(xì)介紹、規(guī)格集合、自定義屬性、包裝清單、售后服務(wù)等字段。商品類別表:記錄類別的父類編號(hào)、自身的名稱和編號(hào)以及模版編號(hào)。規(guī)格表:記錄規(guī)格的名稱。規(guī)格選項(xiàng)表:記錄具體的規(guī)格選項(xiàng)。商品規(guī)格模版表:將規(guī)格集合保存為一個(gè)模版。店鋪信息表:記錄店鋪的登錄名、密碼、以及店鋪的基本信息。
3.1 首頁(yè)。用戶登錄成功之后跳到主頁(yè)。主頁(yè)主要分為頭部、引用頁(yè)面head.html,里面有登錄入口、注冊(cè)入口、網(wǎng)站首頁(yè)入口、用戶主頁(yè)、運(yùn)營(yíng)商后臺(tái)入口、商家后臺(tái)入口、網(wǎng)站logo、搜索欄、購(gòu)物車(chē)入口、全部商品分類、首頁(yè)圖片輪播和首頁(yè)商品展示這幾部分。如圖3所示。
圖3 武功粗布電商平臺(tái)首頁(yè)
3.2 商品多條件搜索。搜索頁(yè)面有搜索欄,點(diǎn)擊搜索就會(huì)根據(jù)關(guān)鍵字去查詢,這時(shí)候會(huì)根據(jù)關(guān)鍵字展示出所有相關(guān)的商品分類,還有商品規(guī)格選項(xiàng)供用戶去篩選。還可以根據(jù)銷量進(jìn)行新品降序排序,按照價(jià)格升序或者降序排列,當(dāng)用戶點(diǎn)擊這些條件時(shí),前臺(tái)就會(huì)構(gòu)造搜索對(duì)象去服務(wù)器查詢。搜索頁(yè)面的實(shí)現(xiàn)如圖4 所示。
系統(tǒng)測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤的執(zhí)行程序的過(guò)程,然后去修補(bǔ)缺陷。武功粗布電商平臺(tái)采用和白盒和墨盒兩種測(cè)試方法。
圖4 武功粗布電商平臺(tái)搜索頁(yè)面
其中白盒測(cè)試主要是接口測(cè)試。根據(jù)代碼的邏輯來(lái)設(shè)計(jì)測(cè)試用例,保證測(cè)試用例覆蓋到代碼的每一個(gè)分支,這種測(cè)試是最小規(guī)模的,主要查看代碼是否符合設(shè)計(jì)。
黑盒測(cè)試主要采用功能測(cè)試,查看系統(tǒng)是否符合需求設(shè)計(jì)。主要有:
4.1 頁(yè)面跳轉(zhuǎn)測(cè)試。用戶和Web 應(yīng)用系統(tǒng)之間的交互避免不了頁(yè)面跳轉(zhuǎn),測(cè)試頁(yè)面之間的跳轉(zhuǎn)邏輯是否正確;測(cè)試所有跳轉(zhuǎn)是否按設(shè)計(jì)的那樣確實(shí)跳轉(zhuǎn)到了相應(yīng)的頁(yè)面;測(cè)試所跳轉(zhuǎn)的頁(yè)面是否存在;保證Web 應(yīng)用系統(tǒng)上絕對(duì)沒(méi)有孤立的頁(yè)面,所說(shuō)的孤立頁(yè)面就是指沒(méi)有鏈接可以跳向該頁(yè)面,只有通過(guò)正確的URL 地址才能訪問(wèn)。
4.2 Cookie 測(cè)試。Cookie 通常用來(lái)保存用戶某些信息,當(dāng)一個(gè)用戶使用Cookie 訪問(wèn)了Web 應(yīng)用系統(tǒng)時(shí),Web 服務(wù)器將發(fā)送關(guān)于用戶的信息,把相關(guān)信息以Cookie 的形式發(fā)送至用戶端,這可以用來(lái)保存登錄信息或者購(gòu)物車(chē)信息,保存JSESSIONID 用來(lái)和服務(wù)器的Session 通信。如果Web 應(yīng)用系統(tǒng)使用了Cookie,我們必須檢查Cookie 是否能按照設(shè)計(jì)的那樣正常工作,同時(shí)對(duì)這些信息已經(jīng)加密。測(cè)試的內(nèi)容可以包括Cookies 是否起作用,什么情況下Cookie會(huì)做出什么樣的改變,是否按照預(yù)期的那樣。
4.3 安全測(cè)試。查看用戶是否可以訪問(wèn)自己權(quán)限之外的頁(yè)面。
通過(guò)測(cè)試發(fā)現(xiàn)系統(tǒng)存在一定的問(wèn)題,經(jīng)過(guò)多次修改前臺(tái)頁(yè)面的代碼,最終系統(tǒng)已滿足以上要求,測(cè)試通過(guò)。
本文詳細(xì)介紹了武功縣粗布電商平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)的過(guò)程,該平臺(tái)基本實(shí)現(xiàn)了武功粗布銷售和購(gòu)買(mǎi)的功能,為粗布生產(chǎn)者提供了一個(gè)粗布銷售的平臺(tái),同時(shí)也為消費(fèi)者提供了一個(gè)購(gòu)買(mǎi)粗布的平臺(tái)。在電商行業(yè)蓬勃發(fā)展的今天,相信武功縣粗布電商平臺(tái)能夠搭建起粗布生產(chǎn)者與消費(fèi)者之間的橋梁,促進(jìn)武功縣粗布市場(chǎng)的發(fā)展。