基于微信小程序的生活生鮮超市的設計與實現(xiàn)_第1頁
基于微信小程序的生活生鮮超市的設計與實現(xiàn)_第2頁
基于微信小程序的生活生鮮超市的設計與實現(xiàn)_第3頁
基于微信小程序的生活生鮮超市的設計與實現(xiàn)_第4頁
基于微信小程序的生活生鮮超市的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

[12]。

第3章需求分析3.1系統(tǒng)概述本系統(tǒng)采用的是前后端分離,用戶端和配送員端采用的是微信小程序,后臺采用的是vue.js設計,所有的后端代碼采用的是IDEA中的SpringBoot框架開發(fā)的。數(shù)據(jù)庫采用的是NavicatforMySQL,內(nèi)網(wǎng)穿透工具采用小米球,網(wǎng)絡通信技術采用WebSocket技術,存儲圖片使用了阿里云的對象存儲OSS。整個體統(tǒng)分為四個角色,用戶、管理員、員工及配送員。用戶可以進行登錄、注冊、忘記密碼、授權(quán)登錄、用戶信息管理、地址管理、余額充值、積分兌換、優(yōu)惠券管理、瀏覽商品、查看商品詳情、搜索商品、下單、取消訂單、評價管理等功能。管理員有著登錄、商品管理、類目管理、員工管理、銷售統(tǒng)計、訂單管理等功能模塊。員工有登錄和商品管理及類目管理。配送員有登錄、個人信息模塊及接單送達訂單等功能。3.2系統(tǒng)業(yè)務流程分析本文根據(jù)生活生鮮超市系統(tǒng)的總體要求,對生活生鮮超市系統(tǒng)的業(yè)務流程進行分析。首先,作為生活生鮮超市系統(tǒng),分為三部分,用戶端一進入界面就展示各大類商品類目,再通過搜索或者導航欄里的按鈕查看別的信息。用戶端的角色細分為游客和用戶。游客只有瀏覽商品、搜索商品、查看商品詳情等信息;用戶在基于游客的基礎上還有加入購物車、地址管理、余額管理、訂單管理、積分兌換、個人信息管理等功能。配送員端僅用登錄、個人信息管理及接單送達功能。后臺分為員工和管理員。員工僅有商品管理、類目管理和訂單管理,管理員在員工的基礎上還有銷售統(tǒng)計情況及員工管理等功能。(1)生活生鮮超市系統(tǒng)用戶端業(yè)務流程分析游客進入到首頁后,可以看到一級商品類目的展示,可以通過搜索欄搜索關鍵詞查找商品信息,也可以直接點擊一級類目商品名稱去查看更多的商品信息,再點擊某一個商品可以看到更詳細的商品信息等,例如加入購物車、下單、查看訂單等功能,需要登錄才能擁有更多的權(quán)限功能。用戶在登錄頁輸入正確的相關信息,便可進行登錄操作,便可擁有個人信息管理、優(yōu)惠券管理、積分兌換、訂單管理、余額管理等功能的使用。生活生鮮超市系統(tǒng)的用戶端活動圖如下圖3-1所示。圖3-1生活生鮮超市用戶端活動圖(2)生活生鮮超市后臺業(yè)務流程分析該系統(tǒng)的后臺管理分為兩大角色,一個是員工,擁有商品管理、類目管理以及訂單管理等權(quán)限;另一個便是管理員,比員工擁有更多權(quán)限,在員工擁有的基礎權(quán)限上多了銷售統(tǒng)計管理和員工管理。后臺使用正確的賬號和密碼登錄成功后,判斷身份,如果是員工,則隱藏沒有的權(quán)限,例如銷售統(tǒng)計及員工管理被隱藏;如果是管理員,則顯示所有權(quán)限。生活生鮮超市系統(tǒng)的后臺流程如下圖3-2所示。圖3-2生活生鮮超市后臺流程(3)生活生鮮超市配送員端業(yè)務流程分析該系統(tǒng)的配送員端是給配送員使用的,配送員端只有一個配送員一個角色,功能也相對較少,只有登錄、個人信息管理以及接單送達等功能生活生鮮超市系統(tǒng)的配送員端流程如下圖3-3所示。圖3-3生活生鮮超市配送員端流程

3.3功能需求分析該系統(tǒng)主要圍繞的是四種角色來開發(fā),分別是用戶、配送員、員工和管理員。以這四種角色為出發(fā)點,做出系統(tǒng)的需求分析,具體如下:3.3.1用戶功能模塊用戶可以判斷是否有進行登錄,未進行登錄的分為游客和已登錄的分為用戶,各角色的用例場景描述如下:1)游客用例游客在系統(tǒng)登錄頁擁有用戶注冊、用戶登錄、忘記密碼、快捷登錄(該功能僅限于測試號使用),在主頁擁有搜索商品、瀏覽商品、查看商品詳情等功能。具體情況如圖3-3所示。圖3-3游客用例圖用戶注冊游客需要輸入唯一的賬號和密碼,在輸完賬號的時候需要異步驗證,如果該賬號已被注冊,需要重新輸入未注冊過的賬號才能完成注冊。忘記密碼游客需要先根據(jù)提示輸入賬號,立即進行異步驗證操作,判斷該賬號是否有綁定過郵箱,如果沒有綁定郵箱,需要輸入郵箱號再點擊獲取驗證碼,得到驗證碼后輸入后,判斷是否正確,正確便可進行下一步進行輸入新密碼,否則根據(jù)錯誤提示重新操作。用戶登錄游客在點擊購物車、個人信息、地址管理等功能都會跳轉(zhuǎn)到登錄頁面,需要在對應的框內(nèi)輸入對應的正確信息,便可完成登錄從而跳轉(zhuǎn)到個人中心頁面,就可以有更多的權(quán)限進行操作??旖莸卿浽摴δ軆H限于對測試號的用戶進行開放使用,快捷登錄前必須先獲取用戶信息、再通過手機號進行快捷登錄。搜索商品游客在首頁的搜索框可以根據(jù)商品名稱的關鍵詞進行模糊查詢,搜索相關的商品。瀏覽商品游客可在分類中根據(jù)一級類目和二級類目來瀏覽商品。查看商品詳情通過搜索到的商品或是分類中的商品,點擊商品,可以查看更多、更加詳細的商品信息。例如該商品的規(guī)格、數(shù)量、圖片等。2)用戶用例用戶在通過登錄之后,成為用戶,可以進行個人信息管理、管理地址、優(yōu)惠券管理、訂單管理等,詳情如圖3-4所示。圖3-4用戶用例圖搜索、瀏覽商品和游客的功能一樣,通過關鍵詞搜索商品,在分類里面通過一級類目和二級類目進行瀏覽商品。查看商品詳情和游客的功能一樣,通過搜索出來的商品或是分類里的商品進行點擊,查看更多更加詳細的商品信息。加入購物車用戶在瀏覽商品的時候,可以加入到購物車。下單用戶在下單的時候,在購物車里需要有個人的收貨地址信息,如果有優(yōu)惠券則可以使用能用的優(yōu)惠券,還能使用積分,下完一單后也可獲得相應的積分,提交訂單后可以立即支付金額,也可到訂單詳情頁支付金額(限20分鐘內(nèi)支付,否則將自動取消訂單)。取消訂單用戶可以在訂單詳情頁取消訂單;若20分鐘內(nèi)未支付對應的款項,則系統(tǒng)也會執(zhí)行自動取消訂單的操作;若是支付了訂單但是商品還未送出,也可取消訂單,其余情況一律不得取消訂單。余額充值用戶在余額頁里,可以選擇相應的需要充值的金額進行充值,點擊立即充值后出現(xiàn)一個二維碼,需要用到沙箱版的支付寶掃碼才能進行充值,支付寶充值后二維碼會立即消失,同時賬戶余額也會立馬改變。優(yōu)惠券管理用戶點擊優(yōu)惠券后,可以查看到優(yōu)惠券剩余的張數(shù),可以查看到優(yōu)惠券的滿減信息和優(yōu)惠券過期時間等重要信息。訂單管理訂單管理分為全部、待支付、待收貨、待評價及已評價來分類管理。個人信息管理用戶可以在個人信息頁面修改頭像、昵稱、性別、郵箱、密碼,綁定手機號、出生日期。手機號和出生日期只能綁定一次。密碼修改可以通過原密碼和郵箱驗證碼這兩種方式修改。地址管理用戶可以添加地址、修改地址、刪除地址還可以把某個地址設為默認地址。積分兌換用戶只有在下單的時候可以進行積分兌換,1元等于1積分,在使用的時候則是100積分抵用1元。3.3.2后臺管理員功能模塊1)員工通過員工的個人賬號密碼登錄進入后臺系統(tǒng)之后,可以對系統(tǒng)進行管理,詳情如圖3-5所示。圖3-5員工用例圖商品管理對商品進行添加、刪除、修改、下架、搜索過期商品顯示及庫存不足顯示等操作。還可以聯(lián)級、模糊查詢商品。類目管理對一級和二級類目進行添加、刪除、修改等操作。訂單管理訂單管理分為全部訂單、已送達、配送中、新訂單、已超時來分類管理。已送達、配送中、已超時這三類主要是用來查看哪些訂單處于什么狀態(tài);全部訂單主要是用來查看歷史訂單;新訂單就是對新訂單進行處理,最主要還是用來分配訂單,分配給某個配送員。這五類管理都能查看訂單詳情。2)管理員管理員通過特有的賬號密碼登錄進入后臺之后,對系統(tǒng)進行管理,詳情如圖3-6所示。圖3-6管理員用例圖商品管理和員工有著一樣的功能。也是對商品進行添加、刪除、修改、下架、搜索過期商品顯示及庫存不足顯示等操作。還可以聯(lián)級、模糊查詢商品。類目管理和員工有著一樣的功能。也是對一級類目及二級類目進行添加、刪除、修改等操作。訂單管理和員工有著一樣的功能。訂單管理分為全部訂單、已送達、配送中、新訂單、已超時來分類管理。已送達、配送中、已超時這三類主要是用來查看哪些訂單處于什么狀態(tài);全部訂單主要是用來查看歷史訂單;新訂單就是對新訂單進行處理,最主要還是用來分配訂單,分配給某個配送員。這五類管理都能查看訂單詳情。銷售統(tǒng)計主要根據(jù)單量、營收、銷量最佳這三個方面做統(tǒng)計,每一種統(tǒng)計又分為當天、指定時間區(qū)間、總共這三方面做統(tǒng)計,讓數(shù)據(jù)更直觀、更一目了然。員工管理對員工和配送員進行管理。3)配送員配送員通過個人賬號密碼登錄進入到配送員端小程序之后,對訂單進行配送,詳情如圖3-7所示。圖3-7配送員用例圖登錄配送員通過賬號密碼登入到配送員端小程序,進行更多操作。個人信息管理個人信息中可以直觀的看到當天、每月、總共配送了多少的單量,還可以修改個人頭像、聯(lián)系電話、住址、郵箱號、性別等操作。接單、配送在首頁無需手動刷新頁面,可以立馬看到訂單信息,根據(jù)訂單信息完成配送。

第4章系統(tǒng)設計4.1系統(tǒng)整體架構(gòu)該系統(tǒng)主要是為了一些上班族、寶媽族、沒空出門或是懶得出門買菜的人而設計,因為現(xiàn)在很多人都比較喜歡在小程序下單或是在app下單,比較方便。尤其是下雨的時候,騎電動車著實很不方便,既要拿商品還要穿戴雨衣騎車比較危險,而且去超市買菜還要浪費時間,所以在該系統(tǒng)的小程序下單后,30分鐘內(nèi)就能收到商品,讓用戶減免出行時間。4.2系統(tǒng)功能模塊設計整個系統(tǒng)圍繞著四種角色(用戶、員工、配送員、管理員)展開,其中用戶判斷是否有登錄分為游客和用戶。游客模塊包含了用戶注冊、登錄、忘記密碼、快捷登錄(僅限于測試號使用)、搜索商品、瀏覽商品及查看商品詳情等功能;用戶模塊包含了加入購物車、下單、取消訂單、個人信息管理、地址管理、積分兌換、余額充值、優(yōu)惠券管理、訂單管理等;員工模塊包含商品管理、類目管理、訂單管理等功能;配送員模塊包含了個人信息管理、接單配送等;管理員模塊包含了商品管理、類目管理、訂單管理、銷售統(tǒng)計、員工管理等功能。具體的功能如圖4-1所示。圖4-1功能結(jié)構(gòu)圖4.2.1用戶模塊本部分涵蓋了注冊、登錄、忘記密碼、快捷登錄(僅限于測試號)、余額充值、優(yōu)惠券管理、積分兌換、地址管理、個人信息管理、加入購物車、下單、取消訂單、訂單管理等主要功能。(1)注冊進入注冊頁面后,需要先填寫用戶ID,點擊別的地方后會立即異步驗證是否被注冊,如果該ID存在則提示“該用戶ID已被注冊”,如果沒被注冊就繼續(xù)填寫昵稱、密碼等信息。注冊功能的活動圖如圖4-2所示。圖4-2注冊活動圖(2)登錄通過用戶的個人賬號密碼進行登錄。登錄功能的活動圖如圖4-3所示。圖4-3登錄活動圖(3)忘記密碼進入到忘記密碼,首先輸入用戶ID,輸入完后立即異步判斷該用戶是否有綁定郵箱,如果綁定了郵箱只有獲取驗證碼即可,如果沒有綁定郵箱就需要輸入郵箱,驗證碼輸入校驗對了之后點擊下一步就可以輸入新密碼了。忘記密碼活動圖如圖4-4所示。圖4-4忘記密碼活動圖(4)快捷登錄(僅限于測試號)在登錄頁面使用快捷登錄,需要先獲取用戶信息,再通過手機號授權(quán)登錄即可。(5)余額充值進入余額充值界面,選擇需要充值的金額,點擊立即充值,出現(xiàn)二維碼,再拿出沙箱版支付寶掃碼進行支付,支付成功后二維碼消失,賬戶余額立即發(fā)生改變。(6)優(yōu)惠券管理點擊優(yōu)惠券,即可看到優(yōu)惠券的滿減詳情、過期日期、優(yōu)惠券張數(shù)等詳細信息。(7)積分兌換積分兌換只有在用戶下單的時候,才能兌換,商品1元等于1積分。(8)地址管理在個人頁中,點擊地址管理,可以清楚看到有幾條收貨地址信息,可以添加一條地址信息,可以把某一條地址信息設置為默認地址,點擊某一條地址信息可以修改或是刪除。(9)個人信息管理在個人頁面可以管理頭像、性別等基本信息。手機號和生日只可以綁定一次不可二次修改,只有郵箱可以進行多次綁定。修改密碼有種方式,一種是知道原密碼可以進行修改,另一種是通過郵箱驗證碼修改密碼,使用這種方法的前提是該用戶綁定了郵箱,否則無法使用這一方法修改密碼。利用舊密碼改密活動圖如圖4-5所示;利用郵箱驗證碼改密活動圖如圖4-6所示。圖4-5利用舊密碼改密活動圖圖4-6利用郵箱驗證碼改密碼活動圖(10)加入購物車在分類的頁面、搜索的頁面以及商品詳情頁面都可以把需要的商品加入購物車,可以進行數(shù)量疊加或是減少操作,當購物車中的商品僅剩一件時只能刪除,可以向左滑動刪除也可以通過多選刪除。(11)下單用戶在購物車中可以進行多選商品購買,點擊去結(jié)算(需要有地址,如果沒有需要先添加一個地址),可以直觀的查看地址信息、商品信息、金額等。如果有能用的優(yōu)惠券也可以使用優(yōu)惠券,此次訂單金額超過18元則可以免配送費,否則需要多支付6元的配送費,如果賬戶有足夠的積分,也可以進行積分抵現(xiàn)(100積分等于1元)。還可以給本次訂單進行備注。檢查好無誤后可以直接去支付下單。取消訂單取消訂單有兩種。第一種是訂單提交了,但是沒有支付款項,20分鐘后將自動取消訂單。第二種是屬于手動取消訂單,訂單如果未支付,20分鐘以內(nèi)可以手動取消訂單,如果訂單已支付了,但是訂單還沒配送,也可以進行取消訂單,其余情況都不能取消訂單。訂單管理訂單管理分為五類,分別是全部、待支付、待收貨、待評價、已評價。每一種分類都點擊某一筆訂單查看訂單詳情。如果訂單已結(jié)束,可以在待評價內(nèi)找到該筆訂單進行評價,評價好了可以在已評價分類找到并點擊查看評價,就可以看到自己的評價內(nèi)容。4.2.2后臺管理員模塊1)員工模塊該模塊包括商品管理、類目管理、訂單管理等功能。(1)商品管理員工可以對商品進行添加、刪除、修改、下架等簡易的操作,可以對商品進行分類查詢,例如根據(jù)一級類目和二級類目查詢,也可以聯(lián)合搜索功能進行模糊分類查詢;還能只用搜索來進行模糊查詢。如果有商品的庫存不足了或是商品過期了,可以根據(jù)庫存預警和過期商品這兩分類來查看具體詳情。(2)類目管理員工可以對一級和二級類目進行管理操作。(3)訂單管理訂單管理可以分為五類來管理,分別是全部訂單、已送達、配送中、新訂單、已超時。全部訂單主要是用來查看歷史訂單這種情況;已送達、配送中、已超時是用來查看詳情;新訂單是用來通過點擊訂單詳情,給配送員分配訂單。2)管理員模塊管理員模塊在基于員工權(quán)限的基礎上還有銷售統(tǒng)計和員工管理這兩大功能。(1)銷售統(tǒng)計銷售統(tǒng)計分為三類,分別是單量統(tǒng)計、營收統(tǒng)計、銷量最佳統(tǒng)計,每一種分類還有三個小分類,分類是當天、指定、總共,例如單量統(tǒng)計,可以清楚的看到當天的單量情況,指定時間區(qū)間的單量情況,總共的單量情況。營收統(tǒng)計是用來查看收入情況,銷量最佳統(tǒng)計是用來查看哪件商品賣的最好。通過銷售統(tǒng)計,可以更加直觀的顯示出需要的數(shù)據(jù)。(2)員工管理管理員可以對店員和配送員進行管理。3)配送員模塊配送員模塊以配送為主,所以僅有個人信息管理和接單配送這兩大功能。(1)個人信息管理在個人中心,可以直觀的看出當天、本月以及總共配送的單量情況和管理基本信息。(2)接單配送在首頁可以自動接單,訂單上顯示配送重要信息。等把訂單送達后點擊送達,該訂單將完成。4.3數(shù)據(jù)庫設計本次系統(tǒng)的數(shù)據(jù)庫設計主要包含有賬戶表、地址表、商品表、優(yōu)惠券表、個人優(yōu)惠券表、員工表、評價表、圖片表、一級類目表、二級類目表、訂單表、訂單詳情表、購物車表和用戶表。4.3.1概念結(jié)構(gòu)設計本系統(tǒng)E-R圖,如圖4-7所示:圖4-7生活生鮮超市系統(tǒng)實體E-R圖賬戶表主要用于存放用戶的賬戶數(shù)據(jù)。圖4-8賬戶表地址表是用來存儲用戶的收貨地址信息。圖4-9地址表商品表是用來儲存商品詳細信息。圖4-10商品表優(yōu)惠券表用來儲存優(yōu)惠券的具體信息。圖4-11優(yōu)惠券表個人優(yōu)惠券表主要存儲個人的優(yōu)惠券信息。圖4-12個人優(yōu)惠券表員工表主要用于存儲員工和配送員的信息。圖4-13員工表評價表主要用于儲存用戶的訂單評價信息。圖4-14評價表圖片表主要用來儲存商品圖片信息。圖4-15圖片表一級類目表主要用于儲存商品一級類目信息。圖4-16一級類目表二級類目表主要用于存放商品二級類目信息。圖4-17二級類目表訂單表主要用于存放訂單信息。圖4-18訂單表訂單詳情表主要用于存放單筆訂單的詳細信息。圖4-19訂單詳情表購物車表用于用戶的購物車存放商品的信息。圖4-20購物車表用戶表用于儲存用戶的信息。圖4-21用戶表

4.3.2系統(tǒng)表結(jié)構(gòu)設計賬戶表用于存儲用戶的賬戶數(shù)據(jù)資料。包含有賬戶ID、支付密碼、鹽值、余額、積分等字段。如表4-22所示:表4-22賬戶表(account)序號列名數(shù)據(jù)類型主鍵允許空說明1account_idvarchar(20)是否賬戶ID2passwordvarchar(255)否支付密碼3saltvarchar(10)否鹽值4balancedecimal否余額5integralint否積分地址表儲存的是用戶用來收貨的地址信息,包括ID、地址是否默認、標簽、收貨人姓名、收貨電話、地址詳情、用戶ID等字段。如表4-23所示。表4-23地址表(address)序號列名數(shù)據(jù)類型主、外鍵允許空說明1address_idint主否地址ID2isDefaulttinyint(4)否地址是否默認3tagvarchar(10)是標簽4namevarchar(10)否收貨人姓名5phonevarchar(12)否收貨電話6detailsvarchar(255)否地址詳情7user_idvarchar(20)外否用戶ID商品表主要用于儲存商品的信息,包括ID、商品ID、商品名稱、數(shù)量、單價、邏輯刪除、商品描述、保存方式、生產(chǎn)地、保質(zhì)期、規(guī)格、生產(chǎn)日期、過期日期、二級類目編號、等字段。如表4-24所示。表4-24商品表(commodity)序號列名數(shù)據(jù)類型主、外鍵允許空說明1idint主否ID2c_idvarchar(20)否商品ID3namevarchar(20)否商品名稱4quantityint是數(shù)量5pricedecimal(10,2)否單價6specsvarchar(10)否規(guī)格續(xù)表4-247q_g_periodvarchar(11)否保質(zhì)期8p_o_productionvarchar(50)是生產(chǎn)地9save_modevarchar(10)是保存方式10descriptionvarchar(255)是商品描述11production_datedatetime否生產(chǎn)日期12expiration_datedatetime否過期時間13two_categoryvarchar(20)外否二級類目編號14deletedint否邏輯刪除優(yōu)惠券表主要用于存放優(yōu)惠券信息,含有優(yōu)惠券ID、優(yōu)惠券名稱、滿減金額、減的金額、時長等字段。如表4-25所示。表4-25優(yōu)惠券表(coupon)序號列名數(shù)據(jù)類型主鍵允許空說明1coupon_idvarchar(20)是否優(yōu)惠券ID2namevarchar(20)否優(yōu)惠券名稱3amount_fullint否滿減金額4amount_reduceint否減的金額5limited_timeint否時長個人優(yōu)惠券表主要用于存放個人的優(yōu)惠券信息,包括ID、優(yōu)惠券ID、用戶ID、領取時間、過期時間等字段。如表4-26所示。表4-26個人優(yōu)惠券表(coupon_user)序號列名數(shù)據(jù)類型主、外鍵允許空說明1idint主否ID2coupon_idvarchar(20)外否優(yōu)惠券ID3user_idvarchar(20)外否用戶ID4collection_timedatetime否領取時間5expiration_timedatetime否過期時間員工表主要用于存放員工和配送員信息,含有ID、用戶名、密碼、鹽值、昵稱、角色、性別、郵箱、電話、住址、頭像路徑、邏輯刪除等字段。如表4-27所示。表4-27員工表(employee)序號列名數(shù)據(jù)類型主鍵允許空說明1idint是否ID2usernamevarchar(50)否用戶名續(xù)表4-273passwordvarchar(100)否密碼4saltvarchar(15)否鹽值5nicknamevarchar(50)否昵稱6jurisdictionvarchar(10)否角色7sexvarchar(5)是性別8emailvarchar(50)是郵箱9telvarchar(12)否電話10addressvarchar(100)否住址11iconvarchar(255)是頭像路徑12deletedint否邏輯刪除評價表用于存儲用戶訂單評價信息,包括ID、訂單ID、商品ID、商品名稱、商品圖片、商品規(guī)格、評分、評價內(nèi)容等字段。如表4-28所示。表4-28評價表(evaluate)序號列名數(shù)據(jù)類型主、外鍵允許空說明1idint主否ID2order_idvarchar(255)外否訂單ID3commodity_idvarchar(20)外否商品ID4commodity_namevarchar(50)否商品名稱5commodity_imagevarchar(255)否商品圖片6commodity_specsvarchar(20)否商品規(guī)格7scoreint否評分8contentvarchar(255)是評價內(nèi)容圖片表主要用于存放商品的圖片,包括ID、圖片路徑、圖片名稱、圖片是否為首頁、圖片大小、商品ID等字段。如表4-29所示。表4-29圖片表(image)序號列名數(shù)據(jù)類型主、外鍵允許空說明1idint主否ID2imageUrlvarchar(100)否圖片路徑3imageNamevarchar(255)否圖片名稱4imageIndexint否圖片是否為首頁5imageSizevarchar(255)否圖片大小6c_idvarchar(20)外否商品ID一級類目表主要用于存放商品的一級類目信息,包括一級類目編號、一級類目名稱、圖片路徑等字段。如表4-30所示。表4-30一級類目表(one_category)序號列名數(shù)據(jù)類型主鍵允許空說明1c_one_idvarchar(20)是否一級類目編號2one_namevarchar(20)否一級類目名稱3image_urlvarchar(255)否圖片路徑二級類目表主要用于存放商品的二級類目信息,包括二級類目編號、二級類目名稱、一級類目編號等字段。如表4-31所示。表4-31二級類目表(two_category)序號列名數(shù)據(jù)類型主、外鍵允許空說明1c_two_idvarchar(20)主否二級類目編號2two_namevarchar(20)否二級類目名稱3c_one_idvarchar(20)外否一級類目編號訂單表用于存放訂單信息,包括訂單ID、商品總件數(shù)、總金額、備注、下單時間、完成時間、商家接單時間、訂單狀態(tài)、支付狀態(tài)、優(yōu)惠券金額、積分金額、超時訂單是否有返還優(yōu)惠券、邏輯刪除、訂單是否被評價、配送員ID、地址ID、用戶ID等字段。如表4-32所示。表4-32訂單表(orders)序號列名數(shù)據(jù)類型主、外鍵允許空說明1order_idvarchar(255)主否訂單ID2quantityint否商品總件數(shù)3moneydecimal(10,2)否總金額4remarksvarchar(255)是備注5order_timedatetime否下單時間6completion_timedatetime是完成時間7receiving_timedatetime是商家接單時間8orderStatusvarchar(10)是訂單狀態(tài)9payStatusvarchar(10)否支付狀態(tài)10couponMoneyint是優(yōu)惠券金額11isIntegralMoneyint是積分金額12isReturnCouponint是超時訂單是否有返還優(yōu)惠券續(xù)表4-3213evaluate_idvarchar(255)是訂單是否被評價14peisongyuan_idvarchar(50)外是配送員ID15address_idvarchar(20)外是地址ID16user_idvarchar(20)外否用戶ID17deletedint否邏輯刪除訂單詳情表用于存儲訂單的詳細信息,包括ID、訂單ID、商品ID、購買時的單價、購買的數(shù)量等字段。如表4-33所示。表4-33訂單詳情表(order_details)序號列名數(shù)據(jù)類型主、外鍵允許空說明1idvarchar(255)主否ID2order_idvarchar(255)外否訂單ID3commodity_idvarchar(255)外否商品ID4pricedecimal(10,2)否購買時的單價5quantityint否購買的數(shù)量購物車表用于儲存購物車里商品的信息,包括商品ID、用戶ID、數(shù)量等字段。如表4-34所示。表4-34購物車表(shopping_cart)序號列名數(shù)據(jù)類型主鍵允許空說明1commodity_idvarchar(20)是否商品ID2user_idvarchar(20)是否用戶ID3-quantityint否數(shù)量用戶表用于儲存用戶的基本信息,包括用戶ID、昵稱、密碼、鹽值、性別、生日、手機號、郵箱、頭像、邏輯刪除等字段。如表4-35所示。表4-35用戶表(user)序號列名數(shù)據(jù)類型主鍵允許空說明1user_idvarchar(20)是否用戶ID2nicknamevarchar(10)否昵稱3passwordvarchar(50)否密碼4saltvarchar(10)否鹽值5sexvarchar(5)是性別6birthdaydatetime是生日7phonevarchar(20)否手機號續(xù)表4-358emailvarchar(20)是郵箱9avatarvarchar(255)是頭像10deletedint否邏輯刪除

第5章系統(tǒng)實現(xiàn)5.1用戶端功能模塊實現(xiàn)5.1.1用戶注冊進入首頁后,如果還沒登錄,例如點擊購物車、加入購物車、地址管理、個人信息管理等這些頁面都會自動跳轉(zhuǎn)到登錄頁面中,或點擊登錄。輸入完用戶ID后會自動驗證該用戶ID是否被注冊,如果被注冊了會提示“該用戶ID已被注冊”,如圖5-1所示。接著按要求輸入昵稱和密碼,密碼需要6到10為數(shù)字與字母的組合。若沒有別的錯誤信息提示,然后點擊“注冊”,就會出現(xiàn)“注冊成功”的提示框,然后進入登錄頁面。若還有別的錯誤信息,就不能完成注冊,必須依次按錯誤提示信息進行修改。用戶注冊功能如圖5-1所示:圖5-1用戶注冊界面注冊功能主要代碼如下:Stringsalt=SaltUtils.getSalt(8);Md5HashhashPassword=newMd5Hash(user.getPassword(),salt,1024);user.setPassword(hashPassword.toHex());user.setSalt(salt);IntegeruserNum=userMapper.insert(user);tringsaltPay=SaltUtils.getSalt(8);Md5HashhashPasswordPay=newMd5Hash("123456",saltPay,1024);Accountaccount=newAccount(user.getUserId(),hashPasswordPay.toHex(),saltPay,0);5.1.2用戶登錄在登錄頁中,有兩種登錄方式,一種是通過賬號密碼登錄,另一種是快捷登錄(僅限于測試號使用)。第一種需要登錄,必須輸入正確的賬號密碼。第二種其實是通過手機號登錄,由于微信小程序獲取手機號不能個人賬戶使用,只能測試號或企業(yè)使用。測試號使用快捷登錄時需要先獲取用戶信息,能獲取到手機號加密信息,再點擊手機號授權(quán)登錄,這邊也能獲取到手機號解密的信息,再把手機號加密、解密信息發(fā)送到后端解密,返回回手機號后,再次發(fā)送登錄請求即可登錄。若該手機號未被綁定,第一次快捷登錄即是注冊并直接登錄。用戶登錄頁面如圖5-2所示:圖5-2用戶登錄頁面登錄功能主要代碼如下:HashMap<String,Object>hashMap=newHashMap<>();Useruser_id=userService.getOne(newQueryWrapper<User>().eq("user_id",userID));if(user_id!=null){Stringsalt=user_id.getSalt();Md5HashhashPassword=newMd5Hash(password,salt,1024);if(hashPassword.toHex().equals(user_id.getPassword())){hashMap.put("user",user_id.getUserId());returnResult.success(hashMap);}else{returnResult.error("密碼錯誤");}}else{returnResult.error("賬號錯誤");}5.1.3忘記密碼在登錄頁,點擊忘記密碼,就可以進入忘記密碼頁面。先輸入用戶ID,判斷該用戶是否有綁定郵箱,若沒有綁定郵箱,需要先綁定郵箱,才能發(fā)送驗證碼;若該用戶綁定過郵箱則無需填寫郵箱號,可以直接發(fā)送驗證碼。按下發(fā)送驗證碼,然后鍵入驗證碼,首先檢查,如果有錯誤的話要再發(fā)一次,若校驗通過就點擊下一步輸入新密碼,即可完成改密操作。忘記密碼頁面如圖5-3所示:圖5-3忘記密碼頁面忘記密碼功能主要代碼如下:Stringsalt=SaltUtils.getSalt(8);Md5HashhashPassword=newMd5Hash(password,salt,1024);user.setPassword(hashPassword.toHex());user.setSalt(salt);Integernum=userMapper.updateByPrimaryKeySelective(user);returnResult.success(num>0?"重置成功":"重置失敗");5.1.4個人信息管理在個人資料頁按下您的頭像或昵稱,可以修改頭像、昵稱、郵箱、性別;手機號和生日只能綁定一次不得修改。修改密碼的方法有兩種,一種是用原始的密碼,一種是用郵箱的隨機驗證碼。個人信息如圖5-4所示。修改密碼如圖5-5所示:圖5-4個人信息頁面圖5-5修改密碼頁面修改信息功能主要代碼如下:try{user.setUpdateTime(sdf.parse(sdf.format(date)));}catch(ParseExceptione){e.printStackTrace();}intnum=userMapper.updateByPrimaryKeySelective(user);returnResult.success(num>0?"success":"error");5.1.5地址管理在“我的”頁點擊地址管理圖標,進入地址管理頁面,可以把某一條地址設為默認地址,可以添加地址,點擊某一條地址信息可以進行修改地址、刪除地址。如圖5-6所示:圖5-6地址管理頁面添加地址功能主要代碼如下:List<Address>addressList=addressMapper.selectList(newQueryWrapper<Address>().eq("user_id",address.getUserId()));if(addressList.size()==0){address.setIsDefault(true);intnum=addressMapper.insert(address);returnResult.success(num>0?"success":"error");}else{address.setIsDefault(false);intnum=addressMapper.insert(address);returnResult.success(num>0?"success":"error");}5.1.6購物車進入到購物車頁面中,可以管理自己的購物車,例如刪除商品、給商品的數(shù)量添加或減少,在分類商品里或是商品詳情里都可以把商品添加到購物車,加入購物車如圖5-7所示。在下單前可以勾選想要的商品進行下單。下單前勾選如圖5-8所示:圖5-7加入購物車頁面圖5-8購物車頁面加入購物車功能主要代碼如下:List<ShoppingCart>shoppingCarts=shoppingCartMapper.selectList(newQueryWrapper<ShoppingCart>().eq("user_id",shoppingCart.getUserId()));for(ShoppingCartcart:shoppingCarts){if(cart.getCommodityId().equals(shoppingCart.getCommodityId())){ShoppingCartshoppingCart1=newShoppingCart();shoppingCart1.setQuantity(cart.getQuantity()+1);shoppingCart1.setCommodityId(cart.getCommodityId());shoppingCart1.setUserId(cart.getUserId());update=shoppingCartMapper.updateByPrimaryKeySelective(shoppingCart1);flag=true;}}5.1.7訂單下單把需要的商品都挑選好后,點擊去結(jié)算,跳轉(zhuǎn)到訂單填寫頁面。訂單填寫如圖5-9所示。可以重新選擇過地址、查看商品具體詳情等。訂單如果未滿18元,需要而外再多支付6元,結(jié)算抵扣金額有優(yōu)惠券和積分兩種抵扣形式,還能給訂單填寫備注,如圖5-9所示。圖5-9訂單填寫頁面下單功能主要代碼如下:Accountaccount1=accountMapper.selectByPrimaryKey(orderDTO.getCartList().get(0).getUserId());Accountaccount=newAccount();account.setAccountId(orderDTO.getCartList().get(0).getUserId());account.setUpdateTime(sdf.parse(sdf.format(date)));Stringstr=String.valueOf(Math.floor(money));account.setIntegral(account1.getIntegral()-Integer.valueOf(orderDTO.getIntegral())*500+Integer.valueOf(str.substring(0,str.indexOf('.'))));accountMapper.updateByPrimaryKeySelective(account);5.1.8取消訂單訂單如果突然不想要了,可以取消訂單。一種是,如果訂單未支付可以在下單后的20分鐘內(nèi)取消訂單,如果超過了20分鐘訂單還沒支付,系統(tǒng)將會自動取消訂單;另一種是,訂單下單了,但是還沒配送,在此情形下,也可以取消訂單。取消訂單如圖5-10所示。圖5-10取消訂單取消訂單功能主要代碼如下:account.setAccountId(oneAccount.getAccountId());account.setUpdateTime(sdf.parse(sdf.format(date)));Stringstr=String.valueOf(Math.floor(Double.valueOf(String.valueOf(ord.getMoney()))));if(ord.getIsIntegralMoney()>0)account.setIntegral(oneAccount.getIntegral()+500*ord.getIsIntegralMoney()-Integer.valueOf(str.substring(0,str.indexOf('.'))));else{account.setIntegral(oneAccount.getIntegral()-Integer.valueOf(str.substring(0,str.indexOf('.'))));}accountMapper.updateByPrimaryKeySelective(account);5.1.9訂單管理進入到我的訂單頁面,類別有全部、待支付、待收貨、待評價和已評價。全部這一類主要是用來查看所有信息、歷史訂單之類的,查看訂單的具體信息;待支付是用來支付還沒支付訂單的;待收貨是查看哪些訂單還沒收到貨;待評價是用來查看哪些訂單沒有進行評價,可以進行評價;已評價是用來查看已經(jīng)評價好的訂單信息。我的訂單如圖5-11所示:圖5-11我的訂單5.1.10瀏覽、搜索、查看商品詳情進入系統(tǒng)后,使用者可以在類別中瀏覽商品,瀏覽商品如圖5-12所示??梢栽谒褜谥墟I入關鍵詞進行搜尋,搜索商品如圖5-13所示。按下商品可以查看商品的具體詳情,查看商品如圖5-14所示。圖5-12瀏覽商品圖5-13搜索商品圖5-14查看商品詳情5.1.11余額充值進入余額充值頁面,可以直觀的看到賬戶余額。充值前需要選擇需要充值的金額,再點擊充值,出現(xiàn)二維碼后,使用沙箱版支付寶進行掃碼充值,充值成功后二維碼會消失,賬戶余額會立即發(fā)生變化。余額充值如圖5-15所示。圖5-15余額充值前端發(fā)起充值主要代碼如下:request('/account/balanceRecharge',{money:this.data.amount,accountID:wx.getStorageSync('userID')},'GET').then(resp=>{this.setData({payPhotoPath:resp.data})})5.2配送員模塊實現(xiàn)5.2.1配送員信息管理配送員可以查看當天、本月以及總共的單量情況??梢孕薷念^像、昵稱、性別、郵箱、電話、地址等信息。個人信息資料管理如圖5-16所示。圖5-16個人信息資料管理5.2.2接單配送配送員在首頁進行接單,訂單上有著收貨人姓名、收貨電話、地址、預計送達時間等重要相關信息。當訂單送達到用戶手上后,即可點擊送達,完成訂單。若訂單配送超時,系統(tǒng)將給用戶送一張滿39減5的優(yōu)惠券,以表示歉意。接單配送如圖5-17所示。圖5-17接單配送配送功能主要代碼如下:HashMap<String,String>map=newHashMap<>();map.put("message","訂單已完成");map.put("orderID",orderID);ObjectMapperom=newObjectMapper();Stringjson=null;try{json=om.writeValueAsString(map);}catch(JsonProcessingExceptione){e.printStackTrace();}webSocket.sendMessage(arrayList,json);webSocket.sendMessage(selectOne.getUserId(),"訂單已完成");5.3后臺管理模塊實現(xiàn)5.3.1商品管理員工或管理員登入后臺系統(tǒng)后,點擊商品管理,即可添加商品、修改商品、搜索商品、下架商品、刪除商品等基本操作。商品管理界面如圖5-18所示:圖5-18商品管理界面5.3.2類目管理員工或管理員登入后臺系統(tǒng)后,點擊類目管理,即可添加類目、修改類目等基本操作。類目管理頁面如圖5-19所示:圖5-19類目管理頁面5.3.3訂單管理員工或管理員登入到后臺系統(tǒng)后,點擊訂單管理,可以對訂單進行管理。訂單管理分為五類,分別是全部訂單、已送達、配送中、新訂單、已超時。全部訂單是用來查看歷史訂單;已送達、已超時、配送中主要是用來查看哪些階段有什么訂單;新訂單主要是用來給配送員分配訂單的。訂單分配如圖5-20所示。這些訂單都可以查看訂單詳情,除了一些基本信息還有訂單的評價情況。訂單管理如圖5-21所示,訂單詳情如圖5-21所示。圖5-20訂單分配圖5-21訂單管理圖5-22訂單詳情訂單分配主要代碼如下:HashMap<String,String>map=newHashMap<>();map.put("message","訂單已完成");map.put("orderID",orderID);ObjectMapperom=newObjectMapper();Stringjson=null;try{json=om.writeValueAsString(map);}catch(JsonProcessingExceptione){e.printStackTrace();}webSocket.sendMessage(arrayList,json);webSocket.sendMessage(selectOne.getUserId(),"訂單已完成");5.3.4銷售統(tǒng)計管理員登入后臺系統(tǒng)后,點擊銷售統(tǒng)計,可以看到根據(jù)三大類的數(shù)據(jù),分別是單量統(tǒng)計、營收統(tǒng)計、銷量最佳統(tǒng)計,而每一類又劃分為當天、指定時間區(qū)間以及總共來查詢數(shù)據(jù)??梢砸荒苛巳坏目吹礁嗟臄?shù)據(jù)。銷售統(tǒng)計如圖所示。圖5-23銷售統(tǒng)計5.3.5員工管理當管理員登錄到后臺后,可以對店員和配送員進行增加、刪除、修改等操作。員工管理頁面如圖5-16所示:圖5-23員工管理頁面

總結(jié)通過這一次的畢業(yè)設計,加深了我對物聯(lián)網(wǎng)技術的了解,從最開始的背景現(xiàn)狀到最后的系統(tǒ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

提交評論