【基于微信小程序的訂餐系統(tǒng)設計】16000字(論文)_第1頁
【基于微信小程序的訂餐系統(tǒng)設計】16000字(論文)_第2頁
【基于微信小程序的訂餐系統(tǒng)設計】16000字(論文)_第3頁
【基于微信小程序的訂餐系統(tǒng)設計】16000字(論文)_第4頁
【基于微信小程序的訂餐系統(tǒng)設計】16000字(論文)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

基于微信小程序的訂餐系統(tǒng)設計隨著移動互聯(lián)網(wǎng)的不斷發(fā)展,各式各樣的APP層出不窮,也不斷地改變著我們的生活方式。伴隨著生活節(jié)奏的加快,傳統(tǒng)形式的餐廳點餐浪費消費者大量的時間,工作效率也比較低下。傳統(tǒng)的APP也比較臃腫,微信小程序的推出很大程度上改善了這個局面。該系統(tǒng)設計了基于微信小程序平臺的訂餐界面和B/S模式的后臺。使用微信小程序框架自身提供的Wxml、Wxss、Json、JS在本系統(tǒng)中前端頁面以及前端數(shù)據(jù)的顯示和代碼邏輯。Wxml、Wxss對應網(wǎng)頁中的HTML和CSS。SpringBoot作為整個后臺項目的開發(fā)框架,它自身封裝了很多框架。Mybatis用于前后臺與數(shù)據(jù)庫的數(shù)據(jù)傳遞。Vue框架主要實現(xiàn)商家后臺前端頁面的開發(fā)。Dubbo分布式框架在本系統(tǒng)中用于服務的提供和調(diào)用。本系統(tǒng)在小程序端實現(xiàn)了用戶登錄、首頁商品展示、個人信息、購物車功能、生成訂單等模塊。商家后臺有管理員賬號模塊、訂單模塊、輪播圖設置等模塊。從用戶的角度出發(fā)基本上滿足用戶的簡單需求,從商家角度出發(fā)也能夠滿足商家對店鋪的基本管理。在線點餐的出現(xiàn)極大的改變?nèi)藗兊纳罘绞剑瑫r也呈現(xiàn)著信息時代化的發(fā)展趨勢。微信小程序;訂餐系統(tǒng);SpringBoot;目錄1緒論 。(2)軟件運行環(huán)境需求本系統(tǒng)在Windows系統(tǒng)下開發(fā),將Dubbo部署到Linux系統(tǒng),Windows系統(tǒng)中使用MobaXtrem連接工具,Java1.8版本、nodejs環(huán)境、IDEA和微信小程序開發(fā)工具,MySQL數(shù)據(jù)庫使用的5.7版本,數(shù)據(jù)庫工具是Navicat,Maven作為項目的管理工具。軟件功能性需求描述(1)用戶功能需求在頁面頁面樣式上的設置主要是對照餓了么軟件的模塊來進行開發(fā),也能夠滿足多數(shù)消費者的審美觀。“美食坊”小程序中有四個底部導航欄相當于四個大模塊,用戶進入小程序后會直接進入首頁模塊,在首頁中頁面的右上角有個登錄按鈕可以通過微信授權(quán)進行登錄,接著下面是一個宣傳語可以點擊后面的叉號關閉,緊接著下面是一個搜索框,用戶在搜索框輸入內(nèi)容通過后臺模糊查詢出對應的商品信息。下面的模塊模塊則是一個輪播圖,通過輪播圖展示商家的一些精美商品圖片以此來吸引顧客目光。最下面則是商家的商品信息通過銷售量進行逐個顯示。用戶可以點擊商品跳轉(zhuǎn)進入商品詳情頁,在詳情頁中可以加入購物車進行下單,最后可以在我的導航欄中查看用戶的訂單詳情。小程序端在用戶登錄和未登錄的情況下都是可以進入“美食坊”小程序中的,能夠訪問查看商家的商品信息,但是無法使用購物車功能、商品的下單以及我的基本信息。登錄功能,小程序端不需要注冊,只需要進入“美食坊”小程序后點擊登錄進行微信授權(quán)即可,授權(quán)通過后在后臺會將該用戶的信息保存到數(shù)據(jù)庫,以便下次該用戶查看添加到購物車中的商品以及訂單詳情。直接使用微信賬戶避免了用戶在注冊時害怕信息泄露以及一系列的信息填寫。分類模塊功能,分類列表中是通過商品的類別進行展示統(tǒng)一的商品類別的商品信息。用戶可以在此模塊中篩選自己想要購買的菜品類型,小程序會在類目右側(cè)展示出所選類型的各種菜品,用戶可以點擊其中的某種菜品進入所選菜品的詳情頁。購物車功能,購物車是目前電商的一大特點,可以記錄下用戶當時心儀商品等到用戶想要去購買時不需要再次進行頻繁查找大量的商品數(shù)據(jù)去尋找自己當時想要購買的商品。購物車功能只能對登錄“美食坊”小程序的用戶起作用,因為購物車是通過登錄用戶的唯一id來查詢用戶所添加到購物車中的商品信息,沒有登錄的情況下默認提示用戶去首頁進行登錄。支付功能,在商品詳情頁以及購物車頁面中都需要支付功能,來向商家付款。因為購物車列表時已經(jīng)時登錄狀態(tài)了,無需判斷用戶是否登錄,但是在商品詳情頁直接支付時需要判斷用戶是否登錄才能進行支付,因為微信支付接口需要實體商家的實名認證以及唯一商家號,這里沒有調(diào)用微信的支付接口而是自己寫了一個支付接口調(diào)用完成支付流程。支付時需要計算用戶所選商品的金額以及判斷用戶的賬戶金額是否能夠支付商品金額。我的功能,在我的模塊中,首先會判斷用戶是否登錄,當用戶沒有登錄的情況下,我的模塊頁面會顯示一些默認數(shù)據(jù),用戶登錄的情況下,用戶可以在“我的”頁面中設置用戶的一些基本信息以及用戶的收貨地址,在“我的”頁面中有一個重要的功能就是用戶的訂單列表。在這個地方可以看到用戶使用小程序以來所有訂單信息。(2)商家功能需求商家是作為這個“美食坊”小程序訂餐系統(tǒng)的根本,所有的東西都是需要圍繞著商家展開的,而且是這個系統(tǒng)的重要管理角色。商家作為整個系統(tǒng)最高管理者,有對這個系統(tǒng)的所有權(quán)限。此系統(tǒng)無法注冊,但是管理員可以添加賬號為其賦權(quán)限,整個系統(tǒng)主要有商品管理、訂單管理、微信小程序輪播圖管理以及賬號管理。員工賬號管理功能,為了防止他人惡意隨便注冊該系統(tǒng),所以系統(tǒng)中取消注冊功能,通過其他管理員操作該系統(tǒng)為其員工創(chuàng)建一個商家后臺賬號并決定是否為其分配系統(tǒng)管理權(quán)限,其中有權(quán)限的員工或者管理員可以對系統(tǒng)中得員工賬號進行修改,添加以及的功能。訂單列表功能,訂單中有三個功能,第一個是訂單列表功能,此處顯示的是從“美食坊”小程序端傳過來的訂單請求并以列表的形式進行展示,可以在此處進行對用戶的訂單進行處理,決定是否接單還是拒收,還有通過用戶名進行進行收搜用戶所提交的訂單以及批量處理功能。處理結(jié)果會異步轉(zhuǎn)發(fā)的“美食坊”小程序端,用戶可以查看自己的訂單是否被處理。第二個是訂單結(jié)算功能,是對“美食坊”小程序端傳過來的用戶訂單做接單的列表顯示,可以在此出看到小程序用戶的訂單詳情,這里也有一個搜索功能可以通過小程序用戶名進行搜索并在頁面顯示該小程序用戶在在商家的所有訂單信息。第三個是訂單統(tǒng)計功能,訂單統(tǒng)計功能是為了商家能夠更好的經(jīng)營店鋪,可以從訂單統(tǒng)計中清晰的看出哪種商品的銷售量最高,那種商品屬于冷門商品。管理員還可以通過時間搜索查看商家每月商品的銷售。該功能對于商家來說是非常實用的,商品管理功能,商品管理功能中主要是商家管理員對商品進行增加,刪除,列表顯示操作,管理員在頁面上添加商家需要上架的新種商品以及新的商品類別,可以對商品進行上下架處理。輪播圖功能,輪播圖功能是商家對自己商鋪的一個宣傳手段,通過輪播圖上的精美圖片來吸引更多的用戶。商家管理員可以通過在輪播圖頁面上進行輪播圖的添加以及修改,以此來改變“美食坊”小程序端的輪播圖。系統(tǒng)用例圖系統(tǒng)用例圖可以以最簡表示形式來展現(xiàn)用戶和系統(tǒng)的交互,展示了用戶與其他相關的用例之間的關系。通過用例圖,我們可以直觀的看到系統(tǒng)不同種類的用戶和用例。“美食坊”訂單系統(tǒng)的角色分為用戶角色和商家管理員角色。當用戶以游客的身份進入,可以在首頁中瀏覽商家的商品以及搜索游客想要的商品,但是小程序中的購物車功能、訂單功能以及我的模塊功能游客無法正常使用,會提示游客需要登錄。游客的話可以點擊在首頁中的登錄按鈕,通過微信官方授權(quán)進行登錄“美食坊”小程序,游客登錄成功后,系統(tǒng)會自動在數(shù)據(jù)庫中生成一個用戶信息,用戶可以先將滿意的商品先加入購物車,隨后點擊購買下單支付商品金額并生成訂單小程序會自動跳轉(zhuǎn)到訂單詳情頁面上,用戶也可以在我的功能模塊中的訂單功能中查看訂單詳情。用戶用例圖如圖3-1所示:圖3-1用戶用例圖管理員角色可以對整個系統(tǒng)進行操作,主要功能有員工賬號管理、訂單模塊管理、商品管理以及輪播圖管理。管理員的用例圖如圖3-2所下:圖3-2管理員用例圖 系統(tǒng)用例描述(1)用戶用例描述-1用例名稱:添加購物車參與者:用戶簡要說明:將要購買的商品添加入購物車前置條件:用戶已經(jīng)登陸基本事件流:①用戶點擊商品展示圖進入商品詳情頁②用戶點擊加入購物車按鈕③用戶進入購物車查看④用例終止異常事件流:加入相同商品相同數(shù)量時購物車會加入失敗。(2)用戶用例描述-2用例名稱:提交訂單參與者:用戶簡要說明:購買加入購物車的商品,提交訂單給商家前置條件:用戶已登錄基本事件流:①用戶在購物車中選擇要購買的商品②用戶點擊提交訂單③訂單提交成功并跳轉(zhuǎn)到訂單詳情頁④用例終止異常事件流:在用戶提交訂單之前商家將此商品下架,但依舊下單成功,導致業(yè)務邏輯不通。(3)用戶用例描述-3用例名稱:添加商品參與者:管理員簡要說明:管理員添加商品前置條件:管理員已經(jīng)登陸,并有操作此功能的權(quán)限基本事件流:①管理員進入商品管理頁面②管理員點擊添加商品類別③管理員添加商品的基本信息④管理員點擊添加,商品添加成功⑤用例終止異常事件流:管理員添加商品時,部分信息為空,或者信息不符合要求都會導致商品添加失敗。(4)用戶用例描述-4用例名稱:訂單處理參與者:管理員簡要說明:處理用戶提交的訂單前置條件:管理員已登陸,并有操作此功能的權(quán)限基本事件流:①管理員進入訂單處理頁面②管理員選中要處理的訂單③管理員點擊處理是否接單④頁面提示處理成功⑤用例終止異常事件流:訂單處理時間過長超時導致處理訂單失敗。系統(tǒng)設計系統(tǒng)功能模塊設計在完成“美食坊”小程序訂餐系統(tǒng)的需求分析之后,接下來就是針對本系統(tǒng)的不同角色進行不同的功能模塊劃分。“美食坊”小程序訂餐系統(tǒng)功能模塊主要分為用戶模塊和管理員模塊。該系統(tǒng)的主要功能設計圖如圖4-1所示:圖4-1系統(tǒng)功能結(jié)構(gòu)圖用戶模塊從系統(tǒng)實用性和用戶使用角度分析,為了更加方面用戶的使用,該小程序直接使用微信官方授權(quán)登錄無需再進行注冊賬號,所以用戶在小程序端使用的模塊一共分為四個模塊,首頁模塊、分類模塊、購物車模塊、個人信息模塊,以下是四個功能模塊的詳細介紹:(1)首頁模塊,主要是商家商品列表,供用戶進行瀏覽選擇自己中意的商品,其次是搜索框用來搜索用戶想要的商品,但只能查詢該商家已上架的商品。還有就是輪播圖功能用來展示商家的一些新品或者較為熱售的商品,首頁基本可以滿足用戶對商家商品的預覽。(2)分類模塊,是商家通過商品的不同類型進行同類篩選處理,以此通過頁面來直接顯示統(tǒng)一類別的所以商品,生成一組列表能夠更加方便用戶根據(jù)自己的需求來選擇自己想要購買的商品。(3)購物車模塊,用戶可以將自己喜歡的商品可以暫時加入購物車中繼續(xù)選擇自己想要商品,而后可以在底部導航欄中的購物車查看用戶剛才添加的商品以及近期內(nèi)添加的,選中用戶要購買的商品進行下單購買。(4)支付功能,用戶可以在商品詳情頁以及購物車頁面進行支付功能,在商品詳情頁時如果用戶直接付款下單需要判斷用戶是否登錄不然無法執(zhí)行支付功能,在購物車頁面時如果沒有登錄會提示用戶登錄,只要用戶登錄會顯示用戶所添加的購物車信息,在用戶選擇好要下單的商品后點擊下單會執(zhí)行支付功能。(5)訂單模塊,用戶通過添加到購物車的商品,選擇要購買的商品以及商品數(shù)量,點擊下單進行,用戶支付商品金額支付成功后系統(tǒng)會生成一個下單詳情,并跳轉(zhuǎn)到訂單列表中。(6)個人信息模塊,此模塊中主要是用戶關于商家的一些基本信息,例如用戶昵稱、用戶頭像、性別、用戶收貨地址等,并且可以在該模塊中可以查看用戶自己的訂單列表。管理員模塊從商家對商品管理需求角度分析,為商家管理員劃分為四個模塊,分別為員工賬號管理模塊、訂單管理模塊、商品管理模塊、輪播圖管理模塊,以下是四個模塊的詳細介紹:(1)員工賬號管理模塊,第一個主要是管理員為商家員工創(chuàng)建員工賬號,并為其分配商家后臺管理系統(tǒng)的權(quán)限以此來操作管理商家后臺系統(tǒng),第二個是對已有員工賬號進行管理,可以為其重新分配系統(tǒng)權(quán)限以及員工賬號的刪除功能。為了防止他人惡意注冊所以取消了該系統(tǒng)的注冊功能。(2)訂單模塊,訂單模塊中有訂單統(tǒng)計功能、訂單處理功能、訂單統(tǒng)計圖三個功能。訂單統(tǒng)計功能是用來顯示用戶方的訂單商品的處理狀態(tài)。訂單處理功能是用來處理用戶訂單,商家是否接單的操作。訂單統(tǒng)計圖是以柱狀圖的形式展示商品近期的商品銷售狀況。(3)商品管理模塊,商品模塊中主要有三個功能,一是商家商品列表功能,二是商家新商品的添加功能,三是商家商品的上下架功能。其中商品列表主要是查看商家商品,重要的功能是商品的添加以及商品上下級功能,商品添加時需要先選擇要添加的商品種類,其次是填寫新商品的名稱,商品描述,商品單價以及商品圖片的URL。商品的上下架功能主要是體現(xiàn)在“美食坊”小程序端,首頁是否能夠正常搜索其商品到以及是否能夠購買。(4)輪播圖管理模塊,此模塊是用來設置“美食坊”小程序首頁中的輪播圖,管理員可以通過該模塊對“美食坊”小程序中的輪播圖進行添加以及刪除“美食坊”小程序中輪播圖中的圖片。系統(tǒng)流程設計用戶添加購物車流程用戶首先進入“美食坊”小程序中,在首頁右上角點擊登錄,通過微信對小程序進行授權(quán)并以自動為該用戶在用戶數(shù)據(jù)表中生成一個該用戶所對應的賬號以及用戶身份的唯一openId標識,在登錄完成后可以在首頁中的商品列表或者通過搜索框搜索商品,以及通過分類模塊中選擇一個喜歡的商品,點擊商品進入對應商品的詳情頁,可以在其詳情頁選擇所要購買的商品數(shù)量并將其商品添加入購物車中,在加入購物車時會判斷該用戶是否登錄,如果沒有登錄無法將商品加入到購物車中。添加成功后可以在購物車模塊中查看所選商品。購物車流程圖如圖4-2所示:圖4-2添加購物車流程圖用戶下單流程用戶下單的流程設計。用戶在登錄成功后,在小程序端選擇自己要購買的商品加入購物車,然后在購物車模塊中選擇要下單的商品以及商品數(shù)量。在點擊下單時會讓用戶支付所選商品的金額,支付成功后系統(tǒng)會生成一個對應的下單詳情并跳轉(zhuǎn)到詳情列表中,因為微信小程序的支付接口需要商家的實名認證以及真是商戶號,所有個人開發(fā)無法使用微信支付功能,在系統(tǒng)只是提示有該支付形式并不影響訂單的生成。在支付成功后會判斷該用戶的收貨地址是否為空,為空則無法下單,并且提示用戶去填寫收貨地址。不為空則下單成功并跳轉(zhuǎn)到訂單列表中。下單流程圖如圖4-3所示:圖4-3下單流程圖管理員添加商品管理員添加商品流程設計,管理員登錄商家后臺管理系統(tǒng)后,進入商品管理列表再點擊商品添加頁面。跳轉(zhuǎn)到商品添加頁面后首先要選擇要添加的商品類目,選擇商品所屬的類型,如果沒有則可以在商品添加頁面中直接添加一個新的商品類目并進行選擇。添加完類目后就是商品的名稱的填寫和商品的簡單描述以及商品的價格,最后是商品的圖片添加,添加完商品圖片后會在頁面的右側(cè)有個商品信息預覽功能,可以直接顯示管理員當前添加的商品大致信息,最后點擊添加商品按鈕,系統(tǒng)會判斷它的類目以及商品的基本信息是否為空,為空則填寫必要的信息不為空則進行添加操作。添加商品流程圖如圖4-4所示:圖4-4商品添加流程圖管理員訂單處理管理員處理訂單流程設計。管理員登錄商品后臺管理系統(tǒng)后進入訂單處理頁面,頁面顯示的是未處理的訂單,可以通過搜索用戶名進行查詢訂單進行。點擊處理會彈出一個會話框,在里面選擇是否接單以及填寫備注信息,點擊確定提交處理結(jié)果,成功后頁面會提示處理成功的提醒框。處理訂單還有一種批量處理的操作方式,批量處理的訂單狀態(tài)默認都是接單狀態(tài),通過勾選獲取訂單的編號進行批量處理。添加商品流程圖如圖4-5所示:圖4-5訂單處理流程圖系統(tǒng)數(shù)據(jù)庫設置概念模型設計概念模型是一種或多或少的形式化描述,通常是對實際的簡化描述,包括一定程度的抽象,顯示或隱式地按照頭腦中的確切使用方式進行構(gòu)建。根據(jù)需求分析得到商家和管理員、訂單、商家都是一對多關系,而用戶和菜品、訂單、購物車也是一對多關系。系統(tǒng)E-R圖如圖4-6所示:圖4-6系統(tǒng)E-R圖物理模型設置根據(jù)系統(tǒng)需求分析,本系統(tǒng)一共需要8張數(shù)據(jù)庫表。用戶信息表shopping-all-myinfo,主要是用來存儲用戶的基本信息,主要記錄的有id、昵稱、收貨地址、頭像URL。用戶信息表結(jié)構(gòu)如表4-1所示:表4-1shopping-all-myinfo(用戶信息表)字段數(shù)據(jù)類型長度可否空說明idint11N主鍵自增nicknamevarchar200N用戶昵稱countryvarchar255N省份provincevarchar255N市區(qū)cityint11N城市g(shù)endervarchar255Y性別accountdecimal10N賬號金額redPacketsdecimal10Y紅包openIdvarchar200N用戶唯一idavatarUrlvarchar200Y頭像URLreceiptAddressvarchar200Y收貨地址訂單表shopping-all-orderinfo,用來記錄用戶購買商品信息,主要有訂單編號、訂單狀態(tài)、訂單時間、用戶id組成。訂單表數(shù)結(jié)構(gòu)如表4-2所示:表4-2shopping-all-orderinfo(訂單表)字段數(shù)據(jù)類型長度可否空說明idvarchar100N訂單編號orderTimedatetime0N訂單時間orderStatustinyint0N訂單狀態(tài)orderDetaillongtext0Y訂單描述personalOpenIdvarchr100N訂單用戶id管理員賬號信息表admin-sys-user,用來記錄商家管理員的基本信息如用戶id和用戶名以及賬號密碼。管理員賬號信息表結(jié)構(gòu)如表4-3所示:表4-3admin-sys-user(管理員賬號信息表)字段數(shù)據(jù)類型長度可否空說明idint11N管理員idusernamevarchar200N管理員用戶名passwordvarchar200N管理員賬戶密碼resourcevarchar255Y管理員權(quán)限statusint10N賬號狀態(tài)商鋪商品表shopping-all-goods,用來記錄商鋪商品的id、商品名稱、商品圖片、商品價格、商品描述、商品標簽等一些基本信息。商鋪商鋪表結(jié)構(gòu)如表4-4所示:表4-4shopping-all-goods(商鋪商品表)字段數(shù)據(jù)類型長度可否空說明idint11N商品idgoodsNamevarchar200Y商品名稱goodsImagevarchar200Y商品圖片goodsPricevarchar200Y商品價格goodsDescriptionvarchar200Y商品描述goodsTagsvarchar200Y商品標簽goodsItemIdint11N所屬類別商品類目表shopping-all-items,用來記錄商家商品的種類,便于商品分類以及用戶查詢,商品類目表結(jié)構(gòu)如表4-5所示:表4-5shopping-all-items(商品類目表)字段數(shù)據(jù)類型長度可否空說明idint11N類目idnamevarchar100N類目名稱購物車表shopping-all-cart,用來記錄用戶在小程序添加到購物車的商品信息。購物車表結(jié)構(gòu)如表4-6所示:表4-6shopping-all-cart(購物車表)字段數(shù)據(jù)類型長度可否空說明idvarchar200N購物車idgoodsIdint0Y商品idgoodsCountint1Y商品數(shù)量personalOpenIdvarchar200Y用戶id小程序輪播圖表shopping-all-slide,用來記錄商品詳細信息,有id、商品名稱、商品價格、商品圖片、商品描述、商品標簽。商品信息表結(jié)構(gòu)如表4-7所示:表4-7shopping-all-slide(小程序輪播圖表)字段數(shù)據(jù)類型長度可否空說明idInt11N輪播圖idimgUrlvarchar200N輪播圖urldescriptionvarchar200Y輪播圖描述timedatetime0Y創(chuàng)建時間權(quán)限表resource,用來記錄系統(tǒng)中的權(quán)限列表,有id、權(quán)限名稱、權(quán)限鏈接、權(quán)限類型、權(quán)限點、以及用有權(quán)限的父id。商品信息表結(jié)構(gòu)如表4-8所示:表4-8resource(權(quán)限表)字段數(shù)據(jù)類型長度可否空說明idbigint20N權(quán)限idnamevarchar255N權(quán)限名urlvarchar255Y權(quán)限路徑typevarchar255N權(quán)限類型permissionvarchar255Y權(quán)限點parent_idbigint50N父id角色表role,用來記錄記錄管理員所屬類型。角色表結(jié)構(gòu)如表4-6所示:表4-6role(角色表)字段數(shù)據(jù)類型長度可否空說明idbigInt50N角色idrole_namevarchar255N角色名稱角色權(quán)限表role_resource,用來記錄角色所對應的權(quán)限。角色權(quán)限表結(jié)構(gòu)如表4-6所示:表4-6role_resource(角色權(quán)限表)字段數(shù)據(jù)類型長度可否空說明idbigInt50N角色權(quán)限表idrole_idbigInt50N角色idresource_idbigInt50N權(quán)限id編碼設計與實現(xiàn)小程序端功能實現(xiàn)首頁頁面實現(xiàn)打開“美食坊”微信小程序首先會觸發(fā)授權(quán),使用微信為“美食坊”小程序授權(quán),首先進入的是小程序端的首頁,該部分展示了系統(tǒng)的重點內(nèi)容,有商家列表以及輪播圖和搜索框等。如圖5-1所示,在首頁面加載之前,微信小程序中的onLoad()函數(shù)會為用戶實現(xiàn)自動登錄,不需要用戶進行注冊或者登錄操作,進入首頁后,通過函數(shù)與服務器進行通信查詢所有商品的信息,并以推薦值做降序查詢,然后顯示到首頁上,其中可以點擊任意商品跳轉(zhuǎn)進入商品詳情頁,選擇心儀商品可以先加入購物車,也可以直接下單。頁面如圖5-1所示:圖5-1用戶登錄用戶登錄是通過微信接口來獲取微信用戶的信息的,首先判斷用戶信息是否為空,不為空通過微信提供的/sns/jscode2session接口去驗證,驗證成功后將結(jié)果轉(zhuǎn)換為對象,再次判斷該用戶是否為新用戶還是老用戶,如果是新用戶存儲到數(shù)據(jù)庫中,老用戶直接返回用戶信息。用戶登錄主要代碼如下:publicStringuserCheckByCode(Stringcode,StringuserInfo){

//將校驗成功結(jié)果轉(zhuǎn)為對象

WechatUserCheckResultDowechatUserCheckResultDo=JSONObject.parseObject(responseInfo,WechatUserCheckResultDo.class);

//判斷是否是老用戶

WechatUserInfoDoqueryUserInfoDo=userInfoManager.getUserInfoByOpneId(wechatUserCheckResultDo.getOpenid());

//老用戶直接返回用戶信息

if(queryUserInfoDo!=null){

("老用戶queryUserInfoDo:"+JSON.toJSONString(queryUserInfoDo));

returnJSON.toJSONString(queryUserInfoDo);

}

//新用戶添加到表中

wechatUserInfoDo.setOpenId(wechatUserCheckResultDo.getOpenid());

userInfoManager.addUserInfo(wechatUserInfoDo);

("新用戶wechatUserInfoDo:"+wechatUserInfoDo.toString());

returnJSON.toJSONString(wechatUserInfoDo);

}分類頁面實現(xiàn)分類頁面是為了用戶能夠更直觀的對比商品之間價值,分類頁面是通過商品的類別屬性進行分類顯示查找。分類詳情如圖5-2所示:圖5-2分類模塊分類頁面通過商品的類目id來查詢統(tǒng)一的類目的商品信息,通過服務器將查詢到的數(shù)據(jù)封裝成JSON類型并返回到微信小程序中,小程序端通過setDate()方法賦值并顯示到頁面上,主要實現(xiàn)代碼如下:goodsItem:function(e){

var

that

=

this;

const

currentId

=

e.currentTarget.dataset.typeId;

that.setData({

currentItemId:currentId,

});

wx.request({

url:

':8089/wechatApi/goodsInfoByItemId?itemId='

+

currentId,

success:

function

(res)

{

console.log(res);

that.setData({

foodList:

JSON.parse(res.data.data),

});

}

})

},購物車頁面實現(xiàn)進入購物車導航欄會觸發(fā)onShow()函數(shù),首先判斷用戶時候登錄,登錄成功后會通過用戶id進行異步操作獲取用戶購物車列表信息。可以通過goodsAccountChange()方法進行單選還是多選,最后調(diào)用resultAccount()支付方法進行結(jié)算。可以調(diào)用deleteFromCart()刪除購物車的信息。購物車頁面如圖5-3所示:圖5-3購物車用戶將選擇的商品添加到購物車的實現(xiàn)主要是通過用戶的id來識別是哪個用戶所添加的商品,并將添加的商品的信息寫入數(shù)據(jù)庫中,購物車主要代碼實現(xiàn)為:@PostMapping("/addInfoInMyCart")

publicStringinsertIntoCartInfo(@RequestParamStringmyCartInfo){

resultDto=newResultDto<>();

("consumeparams:"+myCartInfo);

CartInformationDocartInformationDo=JSONObject.parseObject(myCartInfo,CartInformationDo.class);

if(cartInformationDo.getGoodsId()==null||cartInformationDo.getOnlyId()==null){

returnJSON.toJSONString(resultDto.failedDto("goodsId或onlyId不能為空"));

}

StringInsertResult=myCartManagerService.insertIntoCartInfo(myCartInfo);

returnJSON.toJSONString(resultDto.successDto("添加成功"+InsertResult));

}訂單實現(xiàn)用戶通過從購物車進行訂單的生成。在支付時向后臺發(fā)送請求并調(diào)用后臺的paySeatOrder(),支付成功后生成對應的訂單詳情并跳轉(zhuǎn)到訂單列表中,可以在我的導航欄中的訂單列表查看用戶的下單詳情。通過onLoad()函數(shù)轉(zhuǎn)發(fā)到后臺進行訂單詳情查詢。。訂單詳情頁面如圖5-4所示:圖5-4訂單列表前端代碼主要是向服務端發(fā)送請求并處理,服務器接受到請求后通過用戶id查詢關于用戶的訂單數(shù)據(jù)并將數(shù)據(jù)封裝成JSON格式返回到微信小程序,小程序通過setDate()方法賦值,訂單代碼主要代碼如下:

onLoad:

function

(options)

{

const

that=this;

console.log(options);

wx.request({

url:

':8089/wechatApi/getOrderInfo?userOnlyId='

+

options.onlyId,

success:function(res){

console.log(res);

that.setData({

orderDetails:JSON.parse(res.data.data)

});

}

})

},支付接口publicObjectpaySeatOrder(StringorderId,WechatUserInfoDouser){Map<String,Object>ret=newHashMap<>();ret.put("status",false);//查詢用戶余額是否充足Doubleprice=orderInfoDao.queryOrderPriceByOrderId(orderId);//訂單價格DoubleuserBalance=userService.queryUserBalanceByUserId(userId);//用戶余額if(price>userBalance){ret.put("tip","余額不足,請充值!");returnret;}}商家后臺功能實現(xiàn)商家商品管理實現(xiàn)商品管理是整個系統(tǒng)重要的一個模塊,管理員登錄登錄后臺系統(tǒng)后,可以在商品管理模塊增加新商品以及修改商品信息,商品的上下架等一系列操作。商品管理頁面如圖5-5所示:圖5-5商品管理添加商品時,首先會判斷商品的類別是否選擇,沒有選擇的話頁面會進行提示,如果沒有要選擇的類別可以在當前頁面添加一個新類別并選擇,選擇后添加商品的基本信息,后臺會判斷這些信息是否為空,主要代碼實現(xiàn)如下:publicStringaddGoodsInfo(@RequestBodyAdminGoodsDoadminGoodsDo){

(adminGoodsDo.toString());

resultDto=newResultDto();

if(adminGoodsDo.getGoodsName()==null||adminGoodsDo.getGoodsPrice()==null||adminGoodsDo.getGoodsImage()==null||adminGoodsDo.getGoodsItemId()==null){

returnJSON.toJSONString(resultDto.failedDto("參數(shù)不能為空"));

}

Stringresult=goodsMenuManagerApi.insertGoodsInfo(adminGoodsDo);

returnJSON.toJSONString(resultDto.successDto("添加成功"+result));

}訂單管理實現(xiàn)在訂單管理模塊可以查看商品近期內(nèi)的所有訂單以列表的形式進行顯示出來,可以統(tǒng)計出那種商品銷售量比較高,哪一種不太受歡迎,可以通過這些數(shù)據(jù)來適當?shù)娜ジ淖兩碳疑唐返匿N售,以提高商家的利潤率。如圖5-6所示:圖5-6訂單管理該程序主要是通過mybatis操作數(shù)據(jù)庫進行查詢數(shù)據(jù)中的商品訂單信息,并將查詢出的數(shù)據(jù)傳送給前端顯示,主要代碼實現(xiàn)如下:SELECTsao.id,sao.orderDetail,sao.orderStatus,sao.orderTime,sam.receiptAddress,sam.openId,sam.nickname,GROUP_CONCAT(vince,'',sam.city,'',sam.country)ASuserAddress

FROM

`shopping-all-orderinfo`saoLEFTJOIN`shopping-all-myinfo`samONsao.personalOpenId=sam.openId

WHERE

sao.orderStatusIN

<foreachcollection="allStatus"item="status"separator=","open="("close=")">#{status}

</foreach>

<iftest="keys!=null">

ANDsam.nicknameLIKECONCAT('%',#{keys},'%')

</if>

<iftest="startTime!=nullandendTime!=null">

ANDsao.orderTimeBETWEEN#{startTime}AND#{endTime}

<if>

GROUPBY

sao.id

ORDERBY

orderTimeDESC輪播圖實現(xiàn)輪播圖功能主要是管理員通過商家后臺管理系統(tǒng)進行添加和修改輪播圖圖片操作,以此來修改數(shù)據(jù)庫中存儲的圖片信息,進而為“美食坊”小程序中首頁顯示的輪播圖來呈現(xiàn)不同的圖片,如圖5-7所示:圖5-7輪播圖顯示輪播圖圖片,通過服務器攔截請求,執(zhí)行查詢列表的功能,并將查詢到的數(shù)據(jù)轉(zhuǎn)換為JSON格式,返回給前端進行顯示,代碼如下:publicStringgetSlidesList(){

resultDto=newResultDto();

List<SlideDo>slidesList=slideApi.getSlidesList();

StringjsonString=JSON.toJSONString(resultDto.successDto(slidesList));

(jsonString);

returnjsonString;

}員工賬號管理員工賬號管理的目的是為了給商家員工創(chuàng)建賬號管理商家的店鋪信息,該功能使用了shiro權(quán)限框架實現(xiàn)的,管理員通過給員工創(chuàng)建賬號并分配不同的權(quán)限來管理商家不同的后臺功能模塊,如圖5-8所示:圖5-8員工賬號 授權(quán)方法判斷用戶有那些權(quán)限,首先獲取用戶查看該用戶資源權(quán)限信息,先過濾type為function的權(quán)限,再獲取Resource類中的Permission屬性,封裝到list集合,交給shiro,代碼實現(xiàn)如下:protectedAuthorizationInfodoGetAuthorizationInfo(PrincipalCollectionprincipals){

Stringusername=(String)principals.getPrimaryPrincipal();

SimpleAuthorizationInfoinfo=newSimpleAuthorizationInfo();

List<LayuiResource>layuiResources=resourceMapper.selectResByUsername(username);

List<String>functions=layuiResources.stream().filter(o->"function".equals(o.getType())).map(LayuiResource::getPermission).collect(Collectors.toList());

for(Strings:functions){

System.out.println(s);

}

info.addStringPermissions(functions);

returninfo;

}訂單統(tǒng)計管理訂單統(tǒng)計管理的目的是為了商家更好的管理自己的店鋪,從直觀的數(shù)據(jù)顯示店鋪的經(jīng)營狀況。該統(tǒng)計是計算每日商家的訂單數(shù)量來統(tǒng)計,通過echarts圖表技術(shù)來顯示到頁面上。如圖5-9所示:圖5-9訂單統(tǒng)計圖訂單統(tǒng)計是直接查詢商家的所有訂單數(shù)量,將查詢結(jié)果轉(zhuǎn)換為JSON字符串格式傳遞給前端,前端將對應數(shù)據(jù)一一賦值給對應的屬性,并通過echarts圖表技術(shù)生成對應的柱狀圖。代碼實現(xiàn)如下:getOrderInfoBykeys(queryInfo).then((res)=>{

constorderInfo=JSON.parse(res.data);

this.orders=orderInfo.list;

for(leti=0;i<this.orders.length;i++){

letorderDetail=JSON.parse(this.orders[i].orderDetail);//獲取訂單明細

this.menuItemTime.push(this.orders[i].orderTime);//訂單時間

letgoodsNameString=[];//當前時間的商品名稱

letgoodsCountString=[];//當前商品銷售數(shù)量

for(letj=0;j<orderDetail.length;j++){

goodsNameString.push(JSON.parse(orderDetail[j]).goodsName);

goodsCountString.push(JSON.parse(orderDetail[j]).goodsCount);

}

//將時間物品銷售數(shù)量三者放在數(shù)組中

this.menuItmeDetail.push([this.dateUtils(this.orders[i].orderTime),goodsNameString,goodsCountString]);}測試測試環(huán)境軟件的正常運行,與其測試平臺條件密不可分。為了了解系統(tǒng)的使用情況,以確認軟件的通用性。我們需要對軟件進行測試。測試環(huán)境表如表6-1所示:表6-1測試環(huán)境表服務器Tomcat8.0數(shù)據(jù)庫MySQL5.7操作系統(tǒng)Windows10開發(fā)語言Java后端開發(fā)框架Springboot+dubbo前端開發(fā)框架Vue+微信小程序瀏覽器谷歌瀏覽器測試實現(xiàn)(1)小程序用戶登錄模塊測試用戶打開“美食坊”小程序進入其首頁,在首頁的右上角會有一個登錄按鈕,通過點擊按鈕觸發(fā)微信授權(quán)登錄操作,通過授權(quán)后原先的登錄按鈕會顯示登錄成功的提示。測試功能如表6-2所示:表6-2小程序用戶登錄用例表編號測試操作預估結(jié)果測試結(jié)果1用戶打開小程序用戶能夠正常進入“美食坊”小程序中通過2點擊登錄按鈕跳出微信授權(quán)彈出框通過3通過授權(quán)小程序登錄按鈕處提示登錄成功通過測試的部分結(jié)果圖如圖6-1所示:圖6-1用戶登錄(2)用戶加入購物車模塊測試在用戶通過微信授權(quán)登錄“美食坊”小程序后,用戶可以通過首頁模塊中的商品列表或者分類模塊中顯示的商品進行選擇查看用戶想要的商品,點擊商品圖片會跳轉(zhuǎn)進入商品詳情頁中,在此可以選擇要購買的商品數(shù)量,然后點擊加入購物車即可,最后可以在底部導航欄中的購物車功能中查看剛才加入購物車的商品情況。用戶購物車用例表如表6-3所示:表6-3用戶購物車用例表編號測試操作預估結(jié)果測試結(jié)果1用戶登錄用戶通過微信授權(quán)成功登錄通過2選擇商品加入購物車點擊商品圖片進入商品詳情頁,并將商品加入購物車通過3購物車模塊查看通過導航欄中的購物車查看購物車中是否有加入的商品通過測試的部分結(jié)果圖如圖6-2所示:圖6-2用戶購物車(3)管理員添加新商品模塊測試管理員登錄商家后臺管理系統(tǒng)后進入商品添加頁面,在商品添加頁面添加商品的基本信息,有商品的類別、商品名稱、商品描述、商品價格、商品圖片,在選擇商品類別是如果現(xiàn)有的商品類別中沒有,可以在此頁面直接創(chuàng)建一個新的商品類別并進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論