




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE1超市管理系統分析與設計——以O2O的線上超市管理系統為例目錄TOC\o"1-3"\h\u25834摘要 117446第1章緒論 27786(一)系統開發背景及目標 2327421.系統開發背景 2169092.系統開發的目標 224950(二)系統的主要功能和特點 316013第2章系統規劃 328984(一)初步需求分析 361011.系統描述 3179382.系統對象行為分析 431568(二)總體結構 426920(三)可行性研究 4201211.經濟可行性 4190172.操作可行性 526719第3章系統分析 523326(一)系統功能分析 5231841.系統參與者分析 5228092.用例圖 569293.用例規約 716354(二)概念數據建模和對象關系建模 1726354(三)動態建模 22287141.順序圖 22236752.活動圖 2613832第4章系統設計 2727283(一)系統總體設計 2729516(二)系統詳細設計 27266901.數據庫設計 275490(三)I/O設計 35320931.后臺索引頁 35317662.商品增加頁 3635013.小程序索引頁 3623574第5章系統實現 428702(一)系統實現 4219660(二)系統測試 43263661.測試內容 43225292.測試結論 4522494總結 4627270參考文獻 47摘要本文主要研究傳統零售商店在電商趨勢沖擊下如何轉型的問題,目的在于幫助傳統零售商店線上功能的實現。在研究O2O線上超市管理系統情況的基礎上,從實際情況出發,采用面向對象方法、B/S結構和python開發語言,基于pycharm開發平臺、微信開發者工具、SQL數據庫,完成對系統的設計和實現。系統主要分成兩大部分,一、前臺購物模塊:這一模塊主要通過微信小程序來實現,顧客通過這一微信小程序可以瀏覽、查看商品信息,可以將商品添加到購物車,可以完成對商品的線上支付,可以對商品進行評價,可以申請售后服務。二、后臺管理模塊:這一模塊主要通過網頁來實現,管理員在這一后臺模塊可以通過儀表盤查看超市的各種總營業數據、可以通過賬號管理修改新增賬號信息、可以通過商品管理對商品及商品分類進行增刪改查、可以通過會員列表查看會員評價及部分個人信息、可以通過訂單管理對訂單狀態進行修改,達到備貨發貨的效果、可以通過統計管理查看超市各種詳細營業數據。本文介紹了系統從設計到怎么實現的過程,內容有系統背景、系統開發目的及意義、開發工具選擇、系統需求分析、系統功能分析、系統總體設計、系統詳細設計,并對過程中遇到的問題和解決方法進行總結。關鍵詞:O2O;B/S模式;超市;微信小程序;面向對象PAGE43第1章緒論(一)系統開發背景及目標1.系統開發背景在近幾年的時間里,電子商務在中國發展得如火如荼,在一定程度改變人們生活方式、購物習慣的同時,也對線下實體店產生了沖擊,甚至引發了人們對實體店存亡的討論。但我覺得無店鋪的電子商務只是在影響著實體店的傳統經營模式(好地段+好裝修+好進店率+好體驗+好成交率),并不會影響實體店的存亡。中團網副總裁劉新成就曾說過:“門店實體店不會消失,網絡不可能取代實體店”。其實從古至今,無論時代如何變化,本質意義上的實體店是一直存在的,只是主流的經營模式在不斷改變,或許只是你我不曾留意而已,從最開始的流動小攤、流動集市、固定門店、官方旗艦店到現在的體驗店,這些從本質意義上來說都是實體店的不同存在形式[1]。O2O即OnlineToOffline,是線上/線下的意思,這個商業概念最早出現于美國,是指將線下的消費需求與互聯網進行結合。簡單點來說就是通過在線支付的方式,消費者和經營店家在線上已經完成了初步的交易活動,也就是讓互聯網成為線下商務機會的交易前臺。通過這個新的商業模式,實體店可以打破傳統經營理念帶來的一些弊端,同時也吸收了來自電商的一些經營優勢,從而在這個飛速發展的互聯網時代走出一條屬于實體店的出路。所以鑒于實體店的優勢及O2O商業模式發展趨勢的研究分析,本課題以O2O的線上超市管理系統設計與實現作為我的畢業設計主題。設計一個線上線下選購、體驗感好、在線支付、線下取貨等功能的超市管理系統,以小小的力量推動O2O商業模式的發展。2.系統開發的目標設計的系統主要運用于傳統的零售型超市,系統在對超市的商品進行信息錄入,可以讓顧客在線瀏覽商品,在線進行支付,把原先的傳統單線業務流程進行分割,讓顧家可以隨時隨地進行商品瀏覽,把業務流程進行多線并進,如原先的超市購物要先進入店面,然后再選購商品,然后支付。但有了系統,顧客可以利用移動端在任何時間及任何空間進行商品的選購、支付,然后可以由商家進行打包,顧客到店即取(甚至可以由商家進行配送)。這樣可以幫助實體超市突破時間空間的限制。同時把種類繁多的商品以新的方式展示給顧客,方便顧客的挑選,注重顧客購物體驗。也在超市、顧客間搭起了一個橋梁,可以讓超市收集到顧客脫敏的購物數據,也讓顧客知道超市有什么,同時各種促銷活動可以線下、線上同時開展,傳播人群更廣。通過這些業務場景的實現來幫助一些傳統銷售模式的零售超市實體店完成轉型。(二)系統的主要功能和特點系統設計理念基于O2O模式,主要結合傳統的零售型超市,來完成在線上下單,線下取貨、送貨的購物流程。系統本質是一個購物管理系統,所以必須考慮顧客的購物體驗,因此系統需要擁有完善的購物流程、良好的操作界面來保證顧客在選購商品時的購物體驗。首先后臺管理系統為管理員提供驗證登陸功能,因為不開放注冊功能,賬號新增只能通過管理員的賬號管理來實現,系統也應向管理員提供基礎的商品管理功能、訂單管理功能,管理員可以通過商品管理功能對商品進行增刪改查,此功能可以實現商家對商品的操作。也可以通過訂單管理功能對訂單進行查詢修改,以實現購物流程中商家備貨的業務需求[2]。在微信小程序系統中,系統作為一個購物平臺,應能支撐完整的購物業務流程。因此系統應有登陸注冊功能、商品展示查詢功能、商品下單功能、和核心的在線支付功能,這四個主要功能支撐著系統最核心的購物流程。第2章系統規劃(一)初步需求分析1.系統描述多數傳統的零售超市只專于線下購物,業務流程是單線性的,顧客只能在特定時間地點先到店進行商品瀏覽、商品選擇、商品選購、商品支付。對顧客購物行為存在時間性,空間性的約束,購物行為只能在線下進行。于是需要一個系統來補充傳統零售超市的線上功能,滿足人們日漸改變的購物需求。前臺系統支持顧客在任何時間地點進行線上商品瀏覽、商品收藏、在線支付,可以在去往商店的途中已經完成購物,也可以選擇在家等待配送,同時在超市與顧客中搭起一道橋梁,方便超市對顧客購物行為作個性化的分析,改善顧客留存率問題。后臺管理系統可以協助管理員對超市商品進行管理,也對經營數據進行可視化統計。2.系統對象行為分析系統對象:管理員、顧客。管理員管理員通過登陸名、密碼進行驗證登陸,通過驗證進入后臺管理系統索引頁,索引頁顯示可視化超市營業數據,通過功能導航欄可以在不同功能模塊間進行切換,點擊賬號管理可以返回賬號數據,然后對賬號進行新增,修改,刪除,恢復行為,點擊商品管理對商品、商品分類進行增刪改查行為,點擊訂單管理對訂單進行查詢、發貨行為,點擊統計管理對營業數據進行查詢行為。顧客顧客通過微信端有注冊登陸的行為,通過微信的授權登陸,進入購物界面進行選購行為,通過查詢商品,進入商品詳情頁,了解商品信息,對滿意的商品加入購物車,然后下單購買,去到個人頁面查看訂單信息及狀態,當商品發貨時,可以確認收貨或退款。(二)總體結構系統主體采用python+Flask搭建,采用面向對象方法的編程思路進行編程,系統遵循MVC(ModelViewController)模式。本次系統前端分成顧客購物界面、后臺管理界面。顧客購物界面通過微信小程序實現,后臺管理界面通過html+css的布局以及JS的渲染實現。后端采用python+Flask實現。(三)可行性研究1.經濟可行性基于O2O的線上超市管理系統使用微信端和網頁端兩大端口作為購物、管理的操作,對電腦配置及移動端的要求都不高,同時系統開發過程中的大部分工具均是免費使用,可在網上、官網尋得,因此經濟上可行[3]。2.操作可行性系統的研發約耗費1人4月的工作量,采用微信小程序開發及Python工具,目前微信小程序開發已經趨于成熟,并具有完整的開發手冊。同時網上有較多的優秀電商平臺經驗可以學習,所以開發該系統不具有不可克服的因素,因此系統開發可行。第3章系統分析(一)系統功能分析1.系統參與者分析通過對基于O2O的線上超市管理系統業務需求分析,分析出系統對象有兩個:顧客、管理員。(1)顧客圖3.1系統參與者顧客(2)管理者圖3.2系統參與者管理者2.用例圖為了在表述在系統中參與者的總體需求及系統提供的功能和服務,故用用例圖來簡單直觀地表述參與者與系統進行了哪些交互。顧客在前端系統能體驗的功能有登陸注冊、用戶信息管理、地址管理、訂單管理因此確定用例用戶注冊、用戶驗證、查看用戶信息、修改用戶信息、新增地址、修改地址、刪除地址、新建訂單、查看訂單信息、退貨。圖3.1顧客用例圖 管理員在后臺管理系統能體驗的主要功能有登陸功能、賬號管理、用戶信息管理、管理員訂單管理、商品分類管理、商品管理。因此確定用例驗證登陸、密鑰加密、新增賬號、賬號凍結、恢復賬號、查看用戶信息、修改用戶信息、查看訂單信息、訂單狀態修改、訂單通知、新增商品分類、修改商品分類、刪除商品分類、新增商品、商品信息修改、下架商品[4]。圖3.2管理員用例圖3.用例規約表3.1顧客注冊系統規約用例名稱顧客注冊系統主參與者顧客層次海平面利益相關者顧客前置條件顧客訪問微信小程序端最低保證回滾未完成的事務成功保證顧客成功注冊觸發器顧客點擊微信授權登陸按鈕主要的成功情節:1.顧客成功完成注冊,并登陸系統擴展:a顧客不點擊授權登陸1.a.1停留在授權登陸界面表3.2顧客登陸系統規約用例名稱顧客登陸系統主參與者顧客層次海平面利益相關者顧客前置條件顧客訪問微信小程序端并已完成注冊最低保證回滾未完成的事務成功保證顧客成功登陸系統觸發器顧客點擊微信授走吧,去逛逛按鈕主要的成功情節:1.顧客成功登陸系統擴展:1.a顧客不點擊登陸1.a.1停留在小程序登陸界面表3.3查看用戶信息規約用例名稱查看用戶信息主參與者顧客、管理員層次海平面利益相關者顧客、管理員前置條件用戶成功登陸系統、查看用戶信息最低保證回滾未完成的事務成功保證用戶成功查看個人信息觸發器用戶進入個人中心主要的成功情節:1.用戶進入個人信息界面,系統根據登錄的用戶獲取該用戶的基本信息并展示到界面上。擴展:1.a用戶信息顯示不完整1.a.1刷新界面1.a.2重新加載該界面表3.4修改用戶信息規約用例名稱修改用戶信息主參與者顧客、管理員層次海平面利益相關者顧客、管理員前置條件用戶成功登陸系統、用戶查看個人信息最低保證回滾未完成的事務成功保證用戶成功修改個人信息觸發器用戶進入個人中心主要的成功情節:用戶進入個人信息修改界面,系統根據登錄的用戶獲取該用戶的基本信息并展示到界面上。用戶根據情況編輯個人信息并點擊保存。用戶個人信息成功保存。擴展:1.a用戶信息顯示不完整1.a.1刷新界面1.a.2重新加載該界面2.a保存時必要字段未填寫2.a.1保存失敗,提示用戶某字段不能為空3.a數據保存失敗3.a.1回滾次用例操作,回到上一個操作頁面3.a.2提醒用戶數據保存失敗,請重試表3.5新增地址規約用例名稱新增地址主參與者顧客層次海平面利益相關者顧客前置條件用戶成功登陸系統、查看個人地址信息最低保證回滾未完成的事務成功保證顧客成功新增地址觸發器顧客點擊新增地址按鈕主要的成功情節:顧客輸入聯系人姓名、電話號碼、地址顧客確認信息無誤點擊保存按鈕顧客成功增加新地址擴展:a地址新增不成功1.a.1刷新界面1.a.2跳轉到上一個操作頁面2.a保存時必要字段未填寫2.a.1保存失敗,提示某些字段不能為空3.a數據保存失敗3.a.1回滾次用例操作,回到上一個操作頁面3.a.2提醒顧客系統繁忙,請重試表3.6刪除地址規約用例名稱刪除地址主參與者顧客層次海平面利益相關者顧客前置條件用戶成功登陸系統、查看個人地址信息最低保證回滾未完成的事務成功保證顧客成功刪除地址觸發器顧客點擊刪除地址按鈕主要的成功情節:1.地址信息被刪除擴展:1.a地址刪除失敗1.a.1刷新界面2.a.2提醒顧客系統繁忙,請重試表3.7新建訂單規約用例名稱新建訂單主參與者顧客層次海平面利益相關者顧客前置條件用戶成功登陸系統、查看商品信息或查看購物車最低保證回滾未完成的事務成功保證顧客成功下單觸發器顧客點擊提交訂單按鈕主要的成功情節:1.顧客成功提交訂單擴展:1.a訂單提交失敗1.a.1刷新界面2.a.2提醒顧客系統繁忙,請重試表3.8查看訂單信息規約用例名稱查看訂單信息主參與者顧客、管理員層次海平面利益相關者顧客、管理員前置條件用戶成功登陸系統、查看商品信息或查看購物車最低保證回滾未完成的事務成功保證顧客成功下單觸發器顧客點擊提交訂單按鈕主要的成功情節:1.顧客成功提交訂單擴展:1.a訂單提交失敗1.a.1刷新界面2.a.2提醒顧客系統繁忙,請重試表3.9取消未支付訂單規約用例名稱取消未支付訂單主參與者顧客層次海平面利益相關者顧客前置條件用戶成功登陸系統、查看未支付訂單信息最低保證回滾未完成的事務成功保證顧客成功取消訂單觸發器顧客點擊提交訂單按鈕主要的成功情節:顧客查看未支付訂單信息顧客點擊確定取消訂單按鈕顧客成功取消未支付訂單擴展:1.取消未支付訂單失敗1.a.1刷新界面2.a.2提醒顧客系統繁忙,請重試表3.10提交退貨申請規約用例名稱提交退貨申請主參與者顧客層次海平面利益相關者顧客前置條件用戶成功登陸系統、查看訂單信息最低保證回滾未完成的事務成功保證顧客成功提交退貨申請觸發器顧客點擊確定退貨按鈕主要的成功情節:顧客查看已支付訂單信息2.顧客點擊確定退貨按鈕3.顧客成功提交退貨申請擴展:1.a提交退貨申請失敗1.a.1刷新界面2.a.2提醒顧客系統繁忙,請重試表3.11管理員登陸系統規約用例名稱管理員登陸系統主參與者管理員層次海平面利益相關者管理員前置條件管理員訪問后臺管理登陸端最低保證回滾未完成的事務成功保證管理員成功登陸系統觸發器管理員點擊登陸按鈕主要的成功情節:管理員登陸系統擴展:1.a用戶名不存在1.a.1提示管理員用戶名或密碼錯誤2.a.2刷新界面2.a密碼不正確2.a.1提示管理員用戶名或密碼錯誤2.a.2刷新界面1.b用戶名或密碼為空1.b.1提示管理員請輸入正確的用戶名或密碼1.b.2刷新界面表3.12新增賬號規約用例名稱新增賬號主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看賬號列表、管理員具有賬號管理權限最低保證回滾未完成的事務成功保證管理員成功新增賬號觸發器管理員點擊新增賬號按鈕主要的成功情節:管理員點擊新增賬號填寫完整信息點擊確定保存賬號成功新增擴展:1.a用戶名已存在1.a.1提示管理員用戶名已存在,請重新輸入新的用戶名1.b部分必填信息為空1.b.1提示管理員有必填信息為空,請補充1.c數據保存失敗1.c.1提醒系統繁忙,請重試1.c.2刷新界面表3.13賬號凍結規約用例名稱賬號凍結主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看賬號列表、管理員具有賬號管理權限最低保證回滾未完成的事務成功保證管理員成功凍結賬號觸發器管理員點擊確定賬號凍結按鈕主要的成功情節:管理員點擊賬號凍結按鈕賬號凍結成功擴展:1.a賬號狀態修改失敗1.a.1提示管理員系統繁忙,請重試1.a.2刷新界面表3.14新增商品分類規約用例名稱新增商品分類主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品分類列表最低保證回滾未完成的事務成功保證管理員成功新增商品分類觸發器管理員點擊新增商品分類按鈕主要的成功情節:管理員點擊新增商品分類按鈕填寫正確的商品分類信息,點擊保存新增商品分類成功擴展:1.a商品分類信息填寫不完整1.a.1提示管理員輸入完整信息1.b商品分類信息添加失敗1.b.1提示管理員系統繁忙,請重試1.b.2刷新界面表3.15修改商品分類規約用例名稱修改商品分類主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品分類列表最低保證回滾未完成的事務成功保證管理員成功修改商品分類觸發器管理員點擊修改商品分類按鈕主要的成功情節:管理員點擊修改商品分類按鈕填寫正確的商品分類信息,點擊保存修改商品分類成功擴展:1.a修改商品分類信息填寫不完整1.a.1提示管理員輸入完整信息1.b修改商品分類信息失敗1.b.1提示管理員系統繁忙,請重試1.b.2刷新界面表3.16刪除商品分類規約用例名稱刪除商品分類主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品分類列表最低保證回滾未完成的事務成功保證管理員成功刪除商品分類觸發器管理員點擊刪除商品分類按鈕主要的成功情節:管理員點擊刪除商品分類按鈕刪除商品分類成功擴展:1.a刪除商品分類信息失敗1.a.1提示管理員系統繁忙,請重試1.a.2刷新界面表3.17新增商品規約用例名稱新增商品主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品列表最低保證回滾未完成的事務成功保證管理員成功新增商品觸發器管理員點擊新增商品按鈕主要的成功情節:管理員點擊新增商品按鈕填寫正確的商品分類信息,點擊保存新增商品成功擴展:1.a商品信息填寫不完整1.a.1提示管理員輸入完整信息1.b商品信息添加失敗1.b.1提示管理員系統繁忙,請重試1.b.2刷新界面表3.18商品信息修改規約用例名稱商品信息修改主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品列表最低保證回滾未完成的事務成功保證管理員成功修改商品信息觸發器管理員點擊修改商品信息按鈕主要的成功情節:管理員點擊修改商品信息按鈕填寫正確的商品信息,點擊保存修改商品信息成功擴展:1.a修改商品信息填寫不完整1.a.1提示管理員輸入完整信息1.b修改商品信息失敗1.b.1提示管理員系統繁忙,請重試1.b.2刷新界面表3.19刪除商品分類規約用例名稱刪除商品分類主參與者管理員層次海平面利益相關者管理員前置條件用戶成功登陸系統、管理員查看商品分類列表最低保證回滾未完成的事務成功保證管理員成功刪除商品分類觸發器管理員點擊刪除商品分類按鈕主要的成功情節:管理員點擊刪除商品分類按鈕刪除商品分類成功擴展:1.a刪除商品分類信息失敗1.a.1提示管理員系統繁忙,請重試1.a.2刷新界面(二)概念數據建模和對象關系建模(1)訂單管理對訂單的業務場景進行分析,顧客對商品進行選購后進行下單,此時需要一個新建一個在線訂單來對顧客進行關聯,而一次只能新建一個訂單,但訂單中的商品是不固定的,因此不能直接用在線訂單對商品進行關聯,這樣一個在線訂單只能關聯一個商品,這個時候需要一個中間表來進行關聯,解決在線訂單表的擁有多個商品信息的需求,創建一個訂單詳情表,訂單詳情表通過商品id,在線訂單表id進行關聯,一個訂單詳情表只能有一個商品,但一張在線訂單表可以有多個訂單詳情表,這樣利用這四張表,就可以滿足訂單管理中訂單業務需求[5]。顧客表member的屬性:(id,nickname,mobile,sex,avatar,salt,reg_ip,status,updated_time,created_time),會員表主要用于系統對不同顧客的識別。表3.20在線訂單表是核心數據表字段名稱數據類型主鍵/外鍵空/非空默認值說明idint主鍵非空訂單IDorder_snvarchar(255)非空訂單號member_idint外鍵非空會員IDtotal_pricedecimal(10,2)非空訂單總價yun_pricedecimal(10,2)非空運費pay_pricedecimal(10,2)非空實付金額pay_snvarchar(255)非空支付單號prepay_idvarchar(255)非空預支付交易會話標識notevarchar(255)非空訂單備注statusint非空訂單狀態express_statusint非空物流狀態express_address_idint非空物流地址IDexpress_infovarchar(255)非空物流信息comment_statusint非空評價狀態pay_timedatetime非空支付時間updated_timedatetime非空訂單更新時間created_timedatetime非空訂單創建時間商品詳情表pay_order_item的屬性:pay_order_item(id,goods_id,pay_order_id,member_id,quantity,price,note,status,updated_time,created_time)其中id用主鍵,goods_id、pay_orde_id為外鍵,gooods_id用于對商品表的綁定,從而知道商品信息。pay_orde_id用于在線訂單表的綁定,從而確定這個商品詳情表屬于那個在線訂單表。在線訂單表與商品詳情表是一對多的關系,商品詳情表與商品表是一對一的關系。商品表goods的屬性:goods(id,cat_id,name,price,main_image,summary,stock,tags,status,month_count,total_count,view_count,updated_time,created_time),其中id為主鍵,商品表用于商品信息的存放,然后通過商品詳情表的綁定來確定商品信息。這樣通過四張表的綁定,系統就能得知是這張訂單屬于那一個顧客,而這張訂單又有什么商品,總金額多少、收貨地址在那[6]。圖3.3訂單管理類圖(2)顧客收貨地址管理顧客收貨地址管理主要通過顧客表、顧客收貨地址表實現。表3.21顧客表member的屬性屬性名數據類型說明idint會員表主鍵nicknamevarchar顧客昵稱mobilevarchar顧客手機號碼sexvarchar顧客性別avatarvarchar顧客頭像saltvarchar密碼加鹽reg_ipvarchar注冊IP地址statusvarchar會員賬號狀態,如:已激活、未激活、已凍結等updated_timetimestamp最近一次更新時間created_timetimestamp創建時間顧客收貨地址表member_address的屬性member_address(id,member_id,nickname,mobile,province_id,province_str,city_id,city_str,area_id,area_str,address,status,is_default,updated_time,created_time),其中id為主鍵,member_id為外鍵,用于對顧客表的綁定,來確定這張收貨地址表屬于那個顧客。而顧客表與顧客收貨地址表是一對多的關系[7]。這樣通過這兩張表就可以實現一個顧客有多個地址,并且進行與之對應的管理功能。圖3.4顧客收貨地址管理類圖(3)購物車管理購物車管理主要通過顧客表、購物車表、商品表實現。顧客表member的屬性:(id,nickname,mobile,sex,avatar,salt,reg_ip,status,updated_time,created_time),顧客表主要用于系統對不同顧客的識別。購物車表member_cart的屬性:member_cart(id,member_id,goods_id,quantity,updated_time,created_time),其中id為主鍵,member_id、goods_id為外鍵,member_id用于顧客表的綁定,goods_id用于商品表的綁定。購物車表與顧客是一對一的關系,購物車與商品表是一對多的關系。商品表goods的屬性:goods(id,cat_id,name,price,main_image,summary,stock,tags,status,month_count,total_count,view_count,updated_time,created_time),其中id為主鍵,商品表用于商品信息的存放,然后通過購物車的綁定來確定商品信息。通過這三張表的綁定,就可以實現顧客對購物的管理,可以知道購物車表屬于那個顧客,顧客的購物車里有那些商品[7]。圖3.5購物車管理類圖(三)動態建模1.順序圖顧客購物順序圖圖3.6顧客購物時序圖新增商品時序圖圖3.7新增商品時序圖小程序授權登陸時序圖圖3.8小程序授權登陸時序圖
2.流程圖圖3.9訂單活動圖第4章系統設計(一)系統總體設計圖4.1系統總體功能圖(二)系統詳細設計1.數據庫設計本系統數據庫采用的是關系型數據庫模式。數據字典如下:管理員表(user)nametypedefaultcommentuidbigint(20)unsigned(非空)管理員IDnicknamevarchar(100)用戶名mobilevarchar(20)手機號碼emailvarchar(100)郵箱sextinyint(1)0性別1男2女0沒填寫avatarvarchar(64)頭像keylogin_namevarchar(20)登錄用戶名login_pwdvarchar(32)密碼login_saltvarchar(32)加密隨機秘鑰powerint(1)11:普通,2:超級statustinyint(4)1賬號狀態1有效0無效updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間成員表(member)nametypedefaultcommentidint(11)unsigned(非空)nicknamevarchar(100)顧客名mobilevarchar(11)顧客手機號碼sextinyint(1)0性別1男2女0沒填寫avatarvarchar(200)顧客頭像saltvarchar(32)隨機saltreg_ipvarchar(100)注冊ipstatustinyint(1)1狀態1:有效0:無效updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間商品表(goods)nametypedefaultcommentidint(11)unsigned(非空)cat_idint(11)0分類idnamevarchar(100)商品名稱pricedecimal(10,2)0售賣金額main_imagevarchar(100)主圖summaryvarchar(10000)描述stockint(11)0庫存量tagsvarchar(200)tag關鍵字,以","連接statustinyint(1)1狀態1:有效0:無效total_countint(11)0總銷量comment_countint(11)0總評論量updated_timetimestamp0000-00-0000:00:00最后更新時間created_timetimestamp0000-00-0000:00:00最后插入時間商品分類表(goods_cat)nametypedefaultcommentidint(11)unsigned(非空)namevarchar(50)類別名稱weighttinyint(4)1權重statustinyint(1)1狀態1:有效0:無效updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間商品銷售情況表(goods_sale_change_log)nametypedefaultcommentidint(11)unsigned(非空)goods_idint(11)0商品idquantityint(11)0售賣數量pricedecimal(10,2)0售賣金額member_idint(11)0顧客idcreated_timetimestamp0000-00-0000:00:00售賣時間數據庫存變更表(goods_stock_change_log)nametypedefaultcommentidint(11)unsigned(非空)goods_idint(11)(非空)商品idunitint(11)0變更多少total_stockint(11)0變更之后總量notevarchar(100)備注字段created_timedatetime0000-00-0000:00:00插入時間顧客收貨地址表(member_address)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0顧客idnicknamevarchar(20)收貨人姓名mobilevarchar(11)收貨人手機號碼province_idint(11)0省idprovince_strvarchar(50)省名稱city_idint(11)0城市idcity_strvarchar(50)市名稱area_idint(11)0區域idarea_strvarchar(50)區域名稱addressvarchar(100)詳細地址statustinyint(1)1狀態1:有效0:無效is_defaulttinyint(1)0默認地址updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間購物車表(member_cart)nametypedefaultcommentidint(11)unsigned(非空)member_idbigint(20)0顧客idgoods_idint(11)0商品idquantityint(11)0數量updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間在線購買訂單表(pay_order)nametypedefaultcommentidint(11)unsignedorder_snvarchar(40)隨機訂單號member_idbigint(11)0會員idtotal_pricedecimal(10,2)0訂單應付金額yun_pricedecimal(10,2)0運費金額pay_pricedecimal(10,2)0訂單實付金額pay_snvarchar(128)第三方流水號prepay_idvarchar(128)第三方預付idnotetext備注信息statustinyint(4)01:支付完成,0:無效,-1:申請退款,-2:拒絕售后,-9:同意售后,-8:待支付express_statustinyint(4)0快遞狀態,-8待支付-7已付款待發貨1:確認收貨0:失敗express_address_idint(11)0快遞地址idexpress_infovarchar(1000)快遞信息comment_statustinyint(1)0評論狀態pay_timetimestamp0000-00-0000:00:00付款到賬時間updated_timetimestamp0000-00-0000:00:00最近一次更新時間created_timetimestamp0000-00-0000:00:00插入時間訂單詳情表(pay_order_item)nametypedefaultcommentidint(11)unsignedpay_order_idint(11)0訂單idmember_idbigint(11)0顧客idquantityint(11)1購買數量默認1份pricedecimal(10,2)0商品總價格:售價*數量goods_idint(11)0商品表idnotetext備注信息statustinyint(1)1狀態:1:成功0失敗updated_timetimestamp0000-00-0000:00:00最近一次更新時間created_timetimestamp0000-00-0000:00:00插入時間商品售賣日統計表(stat_daily_goods)nametypedefaultcommentidint(11)unsigneddatedategoods_idint(11)商品idtotal_countint(11)售賣總數量total_pay_moneydecimal(10,2)總售賣金額updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間顧客日統計表(stat_daily_membe)nametypedefaultcommentidint(11)unsigneddatedate日期member_idint(11)0顧客idtotal_pay_moneydecimal(10,2)0當日付款總金額updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間全站日統計表(stat_daily_site)nametypedefaultcommentidint(11)unsigneddatedate日期total_pay_moneydecimal(10,2)當日應收總金額total_member_countint(11)顧客總數total_new_member_countint(11)當日新增顧客數total_order_countint(11)當日訂單數total_shared_countint(11)updated_timetimestamp0000-00-0000:00:00最后一次更新時間created_timetimestamp0000-00-0000:00:00插入時間第三方登錄綁定關系表(oauth_member_bind)nametypedefaultcommentidint(11)unsigned(非空)member_idvarchar(20)0顧客idclient_typevarchar(20)0客戶端來源類型。qq,weibo,weixintypetinyint(3)0類型type1:wechatopenidvarchar(80)第三方idunionidvarchar(100)extratext額外字段updated_timetimestamp0000-00-0000:00:00最后更新時間created_timetimestamp0000-00-0000:00:00插入時間用戶訪問記錄表(app_access_log)nametypedefaultcommentidint(11)unsigned(非空)uidvarchar(20)0uidreferer_urltinyint(3)當前訪問的refertarget_urlvarchar(80)訪問的urlquery_paramsvarchar(100)get和post參數uatext訪問uaiptimestamp0000-00-0000:00:00訪問ipnotetimestamp0000-00-0000:00:00json格式備注字段created_time圖象表(images)nametypedefaultcommentidint(11)unsigned(非空)file_keyvarchar(60)0文件名created_timetinyint(3)插入時間顧客評價表(member_comments)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0會員idgoods_idsvarchar(200)商品idspay_order_idint(11)訂單idscoretinyint(4)評分contentvarchar(200)評論內容created_timetimestamp插入時間售后表(member_service)nametypedefaultcommentidint(11)unsigned(非空)member_idint(11)0會員idgoods_idsvarchar(200)商品idstypeint(11)1:退換貨,2:退款退貨,3退款不退貨contenttinyint(4)售后原因created_timetimestamp插入時間(三)I/O設計1.后臺索引頁考慮到系統有著眾多的功能,所以需要一個固定的功能索引欄來存放功能,然后功能索引欄還要有一個與之對應的詳細功能欄,一個個人中心按鍵用于個人管理,一個用于查詢搜索的輸入框,一個數據列表用于展現數據,每次數據上應有著與之對應的相關操作鍵。頁面元素:功能欄、詳細功能欄、個人中心按鍵、查詢框、數據列表、數據操作按鍵。圖4.2索引頁設計圖2.商品增加頁在索引中用到的功能欄,詳細功能欄,個人中心按鍵布局不變,增加的頁面元素主要是信息的輸入框。設計圖:圖4.3增加商品頁設計圖3.小程序索引頁頁面元素:推薦商品、搜索框、商品分類欄、商品、功能欄。頁面布局中因為手機屏幕是豎長方形,所以布局應為從上至下,商品為主要的信息所以應當放在頁面的中間,并且采用2*2的布局不斷延伸,推薦商品則應單獨放在顯眼的最上方,并且要有足夠的位置顯示,功能欄雖然重要,但顧客的注意力不應放在功能欄上,所以放在最下方[8]。圖4.4小程序索引頁設計圖
效果圖圖4.5后臺管理系統登陸界面圖4.6管理后臺主界面圖4.7商品管理界面圖4.8新增商品界面(85%縮放)圖4.9小程序授權登陸界面圖4.10小程序首頁界面第5章系統實現(一)系統實現本次系統的實現得利于有階段性的規劃及大量便利工具的使用。在系統分析階段,功能分析、畫圖、UML建模等通過WPS的流程圖功能實現。在數據庫設計階段用mysql可視化工具SQLyog進行數據表的創建修改,從而完成實現數據庫的設計。在頁面設計階段使用pycharm和微信開發者工具進行頁面編寫,不斷地優化用戶界面,從而完成頁面開發設計。在系統編碼階段,也是通過pycharm和微信開發者工具來進行代碼編寫、調試、修改BUG等,從而完成系統代碼的編寫[9]。管理員后臺登陸/注冊功能實現登陸功能接口在頁面輸入的數據有效性正確后,接口接收兩個參數,login_name和login_pwd,數據以POST方式傳遞,接口通過resp={'code':200,'msg':'登錄成功','data':{}}來判斷數據的正確性,先根據login_name參數判斷數據庫是否存在此賬號,然后通過UserService()接口login_pwd參數與賬號login_salt進行加密結合生成login_salt,與該賬號下的login_salt作正確性比較,最后進行賬號狀態status的判斷在上面的所有判斷中當有一個判斷不正確則resp['code']=-1然后提前進行返回,通過所有判斷條件時code依然是200,返回resp和賬號id,提示登陸成功然后進行頁面跳轉,進入到后臺管理系統首頁中,完成登陸功能。個人信息編輯接口先判斷request.method是否為GET,是則將部分個人信息返回至個人信息編輯頁的輸入框,不是則定義resp={'code':200,'msg':'操作成功~','data':{}},然后獲取nickname和email參數,然后分別對兩參數的有效性進行判斷,通過有效性判斷則進行數據修改,返回resp,提示操作成功~,刷新界面,完成個人信息修改功能。修改密碼接口接收原密碼(old_password)、新密碼(new_password)兩個參數,進行數據有效性及原密碼正確性判斷,不通過其中的一個判斷則提前返回,通過全判斷,進行數據庫操作,返回resp,提示操作成功,刷新界面,完成修改密碼功能。退出接口刪除AUTH_COOKIE_NAME,然后進行登陸界面的跳轉,完成退出功能。商品管理功能實現商品索引接口、商品分類索引接口先獲取關鍵字(mix_kw)、狀態(status),商品分類(status)三個參數,然后從商品表中獲取符合這三個參數的商品數據,再通過分布接口iPagination(params)把商品數據進行展示,商品列表、商品分類列表功能完成。商品新增及修改、商品分類新增及修改接口先對request.method進行GET判斷,是則返回商品信息至商品信息修改頁,否則定義resp={'code':200,'msg':'操作成功~~','data':{}},然后獲取輸入框信息,對信息的有效性進行判斷,有誤則code更改為-1并提前返回,無誤則進行數據庫操作,返回resp,提示操作成功,商品新增及修改、商品分類及修改功能完成。商品信息、商品分類信息接口獲取商品id(商品分類id),定義reback_url=UrlManager.buildUrl("/goods/index")判斷id有效性,商品(商品分類)是否存在,不通過判斷則返回reback_url,跳轉回索引頁,通過商品id獲得商品購買記錄,商品庫存變更記錄,及其他商品信息,返回到前端頁面展現,商品信息、商品分類信息功能完成[10]。商品、商品分類刪除恢復接口先定義resp={'code':200,'msg':'操作成功~~','data':{}},獲取id、cat參數,進行數據有效性判斷,有誤則對code、msg進行修改,提前返回并提示相關信息,無誤則判斷act的值,值為remove則將status更改為0,為recover則將status更改為1,然后進行數據庫操作,返回resp,刷新頁面,商品、商品分類刪除功能完成。(二)系統測試1.測試內容前臺購物模塊:用戶注冊、用戶驗證、查看用戶信息、修改用戶信息、新增地址、修改地址、刪除地址、新建訂單、查看訂
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論