1 緒論
1.1 研究背景
1.2研究意義
1.3論文結構與章節安排
2?微信小程序的零食盒子系統分析
2.1 可行性分析
2.2 系統流程分析
2.2.1?數據流程
3.3.2?業務流程
2.3?系統功能分析
2.3.1 功能性分析
2.3.2 非功能性分析
2.4?系統用例分析
2.5本章小結
3 微信小程序的零食盒子總體設計
3.1 系統架構設計
3.2?系統功能模塊設計
3.2.1整體功能模塊設計
3.2.2用戶模塊設計
3.2.3?評論管理模塊設計
3.2.4商城管理模塊設計
3.2.5訂單管理模塊設計
3.3 數據庫設計
3.3.1 數據庫概念結構設計
3.3.2 數據庫邏輯結構設計
表access_token (登陸訪問時長)
表address (收貨地址:)
表auth (用戶權限管理)
表cart (購物車)
表collect (收藏)
表comment (評論)
表consumer_users (消費用戶)
表forum (論壇)
表forum_type (論壇分類)
表goods (商品信息)
表goods_type (商品類型)
表hits (用戶點擊)
表logistics_delivery (物流配送)
表notice (公告)
表order (訂單)
表praise (點贊)
表slides (輪播圖)
表snack_classification (零食分類)
表snack_labels (零食標簽)
表snack_mall (零食商城)
表snack_products (零食商品)
表upload (文件上傳)
表user (用戶賬戶:用于保存用戶登錄信息)
表user_group (用戶組:用于用戶前端身份和鑒權)
3.4本章小結
4?微信小程序的零食盒子詳細設計與實現
4.1用戶功能模塊
4.1.1 前臺首頁界面
4.1.2注冊界面
4.1.3 登錄界面
4.1.4聯系方式界面
4.1.5?收貨地址界面
4.1.6?產品詳情界面
4.1.7?我的訂單界面
4.2管理員功能模塊
4.2.1用戶管理界面
4.2.2后臺首頁管理界面
4.2.3零食標簽管理界面
4.2.3系統公告管理界面
4.2.4?商城管理界面
5系統測試
5.1系統測試的目的
5.2?系統測試用例
5.3?系統測試結果
結論
參考文獻
致 ?謝
本研究旨在利用微信小程序平臺,設計并實現一款名為“零食盒子”的在線零食訂購服務平臺。隨著現代生活節奏加快,人們對方便、多樣化的零食消費需求不斷增加。傳統的零食購買方式存在購買渠道受限、購物體驗不便等問題,因此開發一款便捷高效的在線零食訂購平臺具有重要意義。
“零食盒子”小程序涵蓋了零食商品展示、購物車管理、訂單支付等核心功能模塊,用戶可以通過小程序瀏覽各類零食產品,便捷選購,快速完成在線支付下單。該系統整合了微信支付功能,實現了安全、便捷的支付流程,同時通過智能推薦算法為用戶提供個性化的零食推薦服務,滿足用戶不同口味和喜好。
經過系統設計與實現,本“零食盒子”小程序展現出穩定性高、操作簡便的特點,為用戶提供了便捷、快速的零食訂購體驗。未來,將繼續優化小程序功能,拓展零食種類和品牌合作,提升用戶體驗和社交分享功能,以進一步提高用戶粘性和平臺活躍度。通過持續創新和優化,“零食盒子”小程序將為用戶提供更多選擇、更便捷的購物體驗,推動零食行業的線上發展,滿足消費者對零食購買的多樣化需求,促進零食市場的繁榮發展。
關鍵詞:基于微信小程序的零食盒子的設計與實現;Java技術;MYSQL;springboot框架;
Abstract
This study aims to design and implement an online snack ordering service platform called "Snack Box" using the WeChat mini program platform. With the acceleration of modern life pace, people's demand for convenient and diversified snack consumption is constantly increasing. The traditional way of purchasing snacks has problems such as limited purchasing channels and inconvenient shopping experience. Therefore, developing a convenient and efficient online snack ordering platform is of great significance.
The "Snack Box" mini program covers core functional modules such as snack product display, shopping cart management, and order payment. Users can browse various snack products through the mini program, make convenient purchases, and quickly complete online payment orders. The system integrates WeChat payment functions, achieving a safe and convenient payment process. At the same time, it provides personalized snack recommendation services to users through intelligent recommendation algorithms, meeting their different tastes and preferences.
After system design and implementation, this "Snack Box" mini program exhibits high stability and easy operation, providing users with a convenient and fast snack ordering experience. In the future, we will continue to optimize the functions of mini programs, expand the variety of snacks and brand cooperation, enhance user experience and social sharing functions, in order to further improve user stickiness and platform activity. Through continuous innovation and optimization, the "Snack Box" mini program will provide users with more choices and a more convenient shopping experience, promote the online development of the snack industry, meet the diverse needs of consumers for snack purchases, and promote the prosperous development of the snack market.
Keywords:Design and Implementation of Snack Box Based on WeChat Mini Program; Java technology; MYSQL; Springboot framework; Restaurant system
1 緒論
隨著現代社會的快節奏生活和消費升級趨勢,零食作為一種方便、快捷的食品消費形式,逐漸成為人們日常生活中不可或缺的一部分。然而,傳統的零食購買方式存在著諸多問題,如購買渠道受限、購物體驗不便等,無法滿足消費者多樣化、個性化的需求。在這一背景下,利用微信小程序開發在線零食訂購平臺具有重要意義。
微信小程序作為一種便捷、快速的移動應用形式,具有強大的用戶基礎和便捷的社交分享功能,為消費者提供了便捷、高效的購物體驗。通過微信小程序平臺,消費者可以隨時隨地瀏覽、選擇并購買喜愛的零食產品,實現線上支付和快速配送,極大地豐富了零食購買的方式和體驗。因此,開發基于微信小程序的在線零食訂購平臺不僅是對傳統零食購買方式的一種創新和突破,也是滿足現代消費者多樣化、個性化需求的重要舉措。
通過這一研究,將為零食行業的現代化發展提供新的機遇和可能性。在線零食訂購平臺的建立不僅可以拓展零食銷售渠道,提升消費者的購物便捷性和體驗,還能促進零食行業的數字化轉型,推動零食市場的多元化發展。因此,借助微信小程序開發在線零食訂購平臺具有重要的現實意義和市場潛力。
本研究旨在基于微信小程序開發一款在線零食訂購平臺的設計與實現,具有重要的實踐意義和社會影響。首先,隨著消費者對生活品質和口味多樣性需求的不斷提升,傳統的零食購買方式已無法滿足現代消費者的需求。因此,通過開發便捷、快捷的在線零食訂購平臺,可以提升消費者的購物體驗,滿足他們對多樣化零食的追求,促進零食市場的多元化發展。
其次,本研究將通過微信小程序這一便捷的移動應用平臺,為零食行業的數字化轉型提供新的可能性。在線零食訂購平臺的建立不僅可以優化零食供應鏈管理,提高零食品牌的曝光和銷售渠道,還可以促進零食產業鏈的優化和升級,推動零食產業向智能化、數字化方向發展。
此外,基于微信小程序的在線零食訂購平臺還能夠促進小微零食品牌的發展,帶動零食產業的創新和發展。通過平臺的搭建,小微零食品牌可以更便捷地與消費者進行互動和交流,提升品牌知名度和市場份額,推動零食產業的良性競爭和可持續發展。
綜上所述,基于微信小程序的在線零食訂購平臺的設計與實現不僅能夠提升消費者的購物體驗,推動零食行業的數字化轉型,還能促進小微零食品牌的發展,助力零食產業的創新和升級,具有重要的實踐意義和社會價值。
論文將分層次經行編排,除去論文摘要致謝文獻參考部分,正文部分還會對網站需求做出分析,以及闡述大體的設計和實現的功能,最后羅列部分調測記錄,論文主要架構如下:
第一章:引言。第一章主要介紹了課題研究的背景,研究意義和本文的研究內容與主要工作。
第二章:系統需求分析。第二章主要從系統的用戶、功能等方面進行需求分析。
第三章:系統設計。第三章主要對系統框架、系統功能模塊、數據庫進行功能設計。
第四章:系統實現。第四章主要介紹了系統框架搭建、系統界面的實現。
第五章:系統測試。第五章主要對系統的部分界面進行測試并對主要功能進行測試
2?微信小程序的零食盒子系統分析
系統分析是開發一個項目的先決條件,通過系統分析可以很好的了解系統的主體用戶的基本需求情況,同時這也是項目的開發的原因。進而對系統開發進行可行性分析,通常包括技術可行性、經濟可行性等,可行性分析同時也是從項目整體角度進行的分析。然后就是對項目的具體需求進行分析,分析的手段一般都是通過用戶的用例圖來實現。下面是詳細的介紹。
經濟可行性在此僅代表網站的運維成本,開發成本不在此考慮。
目前該模式下的微信小程序的零食盒子的數量日益增多,網購變得平民化普及化用戶人數呈上升趨勢,當用戶人數龐大了,運維成本可以由廣告費進行填補,包括開發成本。
所以經濟可行性沒有問題。
(2)操作可行性:
此次項目設計參考了幾個該模式下網站的開發案例,對他們的操作界面分析,將眾多案例結合在一起,突出以人為本簡化操作,所以具有基本計算機知識的人都會操作本項目。
因此操作可行性也沒有問題。
(3)技術可行性:
技術可行性指的是對于搭建框架的可行性,以及有更優秀的技術出現時系統的技術更新換代的納新性如何,開發時間成本費用比如何。
現有的Java技術能夠迎合所有電子商務系統的搭建。開發這個微信小程序的零食盒子的時候我采用了Java+MYSQL用以運行整體程序。
綜上所述技術可行性也沒有問題。
(4)法律可行性:
從開發者角度來看,Java和MYSQL是網上開源且免費的,在知識產權方面不會產生任何法律糾紛。
從用戶使用角度來看,只要不再系統上販賣違禁品,對系統做出條約協議,杜絕非法支付即可。
綜上所述法律可行性也沒有問題。
微信小程序的零食盒子主要的目的就是實現對商品的在線選購,圖2-1就是系統的數據流圖。
圖2-1商品購買操作展開圖
分析完系統的數據流,接下來我們來看系統的業務流程,圖2-2就是業務流程圖:
圖2-2業務流程圖
按照微信小程序的零食盒子的角色,我劃分為了消費用戶和管理員管理模塊這兩大部分。
消費用戶管理模塊:
(1)用戶注冊登錄:用戶注冊為會員并登錄微信小程序的零食盒子;用戶對個人基本信息的增刪改查,比如修改資料,修改密碼。
(2)用戶查看零食商城:用戶進行產品信息的閱覽,通過發現喜歡的產品后可以立即購買+加入購物車+評論+收藏。
(3)聯系方式:用戶點擊聯系方式查看系統公告列表中的網站公告、關于我們、聯系方式、網站介紹等信息。
(4)購物車:用戶對喜歡的商品可以加購,在購物車里面,可以查看到所有加購的商品,支持對商品數量的更改、刪除商品,可以進行選擇購買。
(5)社區論壇:用戶進行發布內容,可對發布內容點贊和收藏。
(6)收貨地址:點擊“我的”按鈕的時候就會顯示出自己的收貨地址信息,支持對收貨地址的增刪改查操作。
(7)我的訂單:用戶在提交訂單后,可以對提交的訂單進行管理。
(8)訂單配送:用戶可查看配送狀態、簽收狀態信息。
管理員管理模塊:
(1)登錄:管理員在后臺可以輸入用戶名+密碼進行登錄,管理員的用戶名和密碼是在數據庫中直接設定好的。
(2)后臺首頁:管理員可以查看后臺首頁展示的商品銷售金額、商品銷售數量等統計圖信息。
(3)系統用戶:管理員可以對前臺上注冊過的用戶信息進行管控,也可以對管理員信息進行管控。
(4)零食標簽管理:管理員可以對零食標簽管理信息進行添加,可以查看零食標簽管理列表中的某一信息詳情,可以對零食標簽管理列表進行查詢和刪除操作。
(5)系統管理:管理員點擊“系統管理”菜單可以對首頁展示的輪播圖進行增刪改查。
(6)系統公告管理:管理員點擊“系統公告管理”菜單可以對系統公告進行增刪改查。
(7)交流管理:管理員點擊“交流管理”菜單能夠對其下子菜單社區論壇和論壇分類進行增刪改查。
(8)商城管理:綜合管理所屬微信小程序的零食盒子中的所有的零食商城、分類列表、訂單列表、訂單配送以及用戶提交的信息進行增刪改查。
微信小程序的零食盒子的非功能性需求比如微信小程序的零食盒子的安全性怎么樣,可靠性怎么樣,性能怎么樣,可拓展性怎么樣等。具體可以表示在如下3-1表格中:
表3-1微信小程序的零食盒子非功能需求表
安全性 | 主要指微信小程序的零食盒子數據庫的安裝,數據庫的使用和密碼的設定必須合乎規范。 |
可靠性 | 可靠性是指微信小程序的零食盒子能夠安裝用戶的指示進行操作,經過測試,可靠性90%以上。 |
性能 | 性能是影響微信小程序的零食盒子占據市場的必要條件,所以性能最好要佳才好。 |
可擴展性 | 比如數據庫預留多個屬性,比如接口的使用等確保了系統的非功能性需求。 |
易用性 | 用戶只要跟著微信小程序的零食盒子的頁面展示內容進行操作,就可以了。 |
可維護性 | 微信小程序的零食盒子開發的可維護性是非常重要的,經過測試,可維護性沒有問題 |
通過2.3功能的分析,得出了本微信小程序的零食盒子的用例圖:
消費用戶角色用例如圖2-3所示。
圖2-3?微信小程序的零食盒子消費用戶角色用例圖
web后臺管理上的管理員是維護整個微信小程序的零食盒子中所有數據信息的。
管理員角色用例如圖2-4所示。
本章主要通過對微信小程序的零食盒子的可行性分析、流程分析、功能需求分析、系統用例分析,確定整個微信小程序的零食盒子要實現的功能。同時也為微信小程序的零食盒子的代碼實現和測試提供了標準。
本章主要討論的內容包括微信小程序的零食盒子的功能模塊設計、數據庫系統設計。
本微信小程序的零食盒子從架構上分為三層:表現層(UI)、業務邏輯層(BLL)以及數據層(DL)。
圖3-1微信小程序的零食盒子系統架構設計圖
表現層(UI):又稱UI層,主要完成本微信小程序的零食盒子的UI交互功能,一個良好的UI可以打打提高用戶的用戶體驗,增強用戶使用本微信小程序的零食盒子時的舒適度。UI的界面設計也要適應不同版本的微信小程序的零食盒子以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用戶進行交互操作時必須要得到與之相符的交互結果,這就要求表現層要與業務邏輯層進行良好的對接。
業務邏輯層(BLL):主要完成本微信小程序的零食盒子的數據處理功能。用戶從表現層傳輸過來的數據經過業務邏輯層進行處理交付給數據層,系統從數據層讀取的數據經過業務邏輯層進行處理交付給表現層。
數據層(DL):由于本微信小程序的零食盒子的數據是放在服務端的mysql數據庫中,因此本屬于服務層的部分可以直接整合在業務邏輯層中,所以數據層中只有數據庫,其主要完成本微信小程序的零食盒子的數據存儲和管理功能。
在上一章節中主要對系統的功能性需求和非功能性需求進行分析,并且根據需求分析了本微信小程序的零食盒子中的用例。那么接下來就要開始對本微信小程序的零食盒子的架構、主要功能和數據庫開始進行設計。微信小程序的零食盒子根據前面章節的需求分析得出,其總體設計模塊圖如圖3-2所示。
圖3-2?微信小程序的零食盒子功能模塊圖
后臺管理者能夠實現對前臺注冊的用戶增刪改查操作,用戶模塊結構圖如下圖:
圖3-3會員用戶模塊結構圖
微信小程序的零食盒子是一個交流性質的公開平臺,用戶可以在平臺上交流,增加用戶之間的互動性。但是同時也為了更好的規范留言的內容,給予管理員刪除不合適的言論的功能,所以需要專門設計一個評論管理模塊,具體的結構圖如下:
圖3-4評論模塊結構圖
微信小程序的零食盒子是中需要存儲不少商品信息,其模塊功能結構,具體的結構圖如下:
圖3-5商城模塊結構圖
微信小程序的零食盒子最重要的一個功能就是購買,其模塊功能結構,具體的結構圖如下:
圖3-5訂單模塊結構圖
數據庫設計一般包括需求分析、概念模型設計、數據庫表建立三大過程,其中需求分析前面章節已經闡述,概念模型設計有概念模型和邏輯結構設計兩部分。
下面是整個微信小程序的零食盒子中主要的數據庫表總E-R實體關系圖。
圖3-6?微信小程序的零食盒子總E-R關系圖
下面根據微信小程序的零食盒子的數據庫總E-R關系圖可以得出微信小程序的零食盒子需要很多E-R圖,在此羅列出來一些主要的數據庫E-R模型圖。
圖3-7消費用戶信息E-R關系圖
圖3-8零食商城信息E-R關系圖
圖3-9?訂單信息E-R關系圖
圖3-10?地址信息E-R關系圖
圖3-11?物流配送E-R關系圖
通過上一小節中微信小程序的零食盒子中總E-R關系圖上得出一共需要創建很多個數據表。在此我主要羅列幾個主要的數據庫表結構設計。
表access_token (登陸訪問時長)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | token_id | int | 10 | 0 | N | Y | 臨時訪問牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 臨時訪問牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大壽命:默認2小時 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用戶編號: |
表address (收貨地址:)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | address_id | int | 10 | 0 | N | Y | 收貨地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手機: | |
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]用戶獲取其他與用戶相關的數據 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
9 | default | bit | 1 | 0 | N | N | 0 | 默認判斷 |
表auth (用戶權限管理)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | auth_id | int | 10 | 0 | N | Y | 授權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 | 頁面標題: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路徑: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳轉方式: |
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 | 跨表導航名稱: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表導航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表cart (購物車)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | cart_id | int | 10 | 0 | N | Y | 購物車ID: | |
2 | title | varchar | 64 | 0 | Y | N | 標題: | |
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 | 創建時間: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
7 | state | int | 10 | 0 | N | N | 0 | 狀態:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 單價: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原價: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 總價: |
11 | num | int | 10 | 0 | N | N | 1 | 數量: |
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]用于產品規格描述 |
表collect (收藏)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
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 | 來源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
6 | title | varchar | 255 | 0 | Y | N | 標題: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表comment (評論)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | comment_id | int | 10 | 0 | N | Y | 評論ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 評論人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回復評論ID:空為0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 內容: | |
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 | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
9 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
表consumer_users (消費用戶)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | consumer_users_id | int | 10 | 0 | N | Y | 消費用戶ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用戶姓名 | |
3 | gender | varchar | 64 | 0 | Y | N | 性別 | |
4 | snack_recommendations | varchar | 64 | 0 | Y | N | 零食推薦 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通過 | 審核狀態 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用戶ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表forum (論壇)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | forum_id | mediumint | 8 | 0 | N | Y | 論壇id | |
2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用戶ID |
4 | nickname | varchar | 16 | 0 | Y | N | 昵稱:[0,16] | |
5 | praise_len | int | 10 | 0 | Y | N | 0 | 點贊數 |
6 | hits | int | 10 | 0 | N | N | 0 | 訪問數 |
7 | title | varchar | 125 | 0 | N | N | 標題 | |
8 | keywords | varchar | 125 | 0 | Y | N | 關鍵詞 | |
9 | description | varchar | 255 | 0 | Y | N | 描述 | |
10 | url | varchar | 255 | 0 | Y | N | 來源地址 | |
11 | tag | varchar | 255 | 0 | Y | N | 標簽 | |
12 | img | text | 65535 | 0 | Y | N | 封面圖 | |
13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
16 | avatar | varchar | 255 | 0 | Y | N | 發帖人頭像: | |
17 | type | varchar | 64 | 0 | N | N | 0 | 論壇分類:[0,1000]用來搜索指定類型的論壇帖 |
表forum_type (論壇分類)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分類ID:[0,10000] | |
2 | name | varchar | 16 | 0 | N | N | 分類名稱:[2,16] | |
3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述該分類的作用 | |
4 | url | varchar | 255 | 0 | Y | N | 外鏈地址:[0,255]如果該分類是跳轉到其他網站的情況下,就在該URL上設置 | |
5 | father_id | smallint | 5 | 0 | N | N | 0 | 上級分類ID:[0,32767] |
6 | icon | varchar | 255 | 0 | Y | N | 分類圖標: | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表goods (商品信息)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 產品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 標題:[0,125]用于產品和html的<title>標簽中 | |
3 | img | text | 65535 | 0 | Y | N | 封面圖:用于顯示于產品列表頁 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于產品規格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原價:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 賣價:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 銷量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品庫存 |
9 | type | varchar | 64 | 0 | N | N | 商品分類: | |
10 | hits | int | 10 | 0 | N | N | 0 | 點擊量:[0,1000000000]訪問這篇產品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:產品的主體內容 | |
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 | 創建時間: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定義字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
表goods_type (商品類型)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分類ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上級分類ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名稱: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 圖標: | |
6 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
7 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表hits (用戶點擊)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | hits_id | int | 10 | 0 | N | Y | 點贊ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 點贊人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
5 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
表logistics_delivery (物流配送)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 訂單號 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名稱 | |
4 | purchase_quantity | varchar | 64 | 0 | Y | N | 購買數量 | |
5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易總額 |
6 | the_date_of_issuance | date | 10 | 0 | Y | N | 發貨日期 | |
7 | delivery_number | varchar | 30 | 0 | Y | N | 配送訂單 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用戶 |
9 | shipping_address | varchar | 64 | 0 | Y | N | 收貨地址 | |
10 | delivery_status | varchar | 64 | 0 | Y | N | 配送狀態 | |
11 | signing_status | varchar | 64 | 0 | Y | N | 簽收狀態 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
13 | contact_name | varchar | 255 | 0 | Y | N | 聯系人名字 | |
14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表notice (公告)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 標題: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表order (訂單)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | order_id | int | 10 | 0 | N | Y | 訂單ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 訂單號: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 32 | 0 | Y | N | 商品標題: | |
5 | img | varchar | 255 | 0 | Y | N | 商品圖片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 價格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原價: |
8 | num | int | 10 | 0 | N | N | 1 | 數量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 總價: |
10 | norms | varchar | 255 | 0 | Y | N | 規格: | |
11 | type | varchar | 64 | 0 | N | N | 未分類 | 商品分類: |
12 | contact_name | varchar | 32 | 0 | Y | N | 聯系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 聯系人郵箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 聯系人手機: | |
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 | 創建時間: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于產品規格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 訂單狀態:待付款,待發貨,待簽收,已簽收,待退款,已退款,已拒絕,已完成 |
23 | remark | text | 65535 | 0 | Y | N | 訂單備注 | |
24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 發貨狀態:未配送,已配送 |
25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
表praise (點贊)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | praise_id | int | 10 | 0 | N | Y | 點贊ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 點贊人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
5 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 點贊狀態:1為點贊,0已取消 |
表slides (輪播圖)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | slides_id | int | 10 | 0 | N | Y | 輪播圖ID: | |
2 | title | varchar | 64 | 0 | Y | N | 標題: | |
3 | content | varchar | 255 | 0 | Y | N | 內容: | |
4 | url | varchar | 255 | 0 | Y | N | 鏈接: | |
5 | img | varchar | 255 | 0 | Y | N | 輪播圖: | |
6 | hits | int | 10 | 0 | N | N | 0 | 點擊量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
表snack_classification (零食分類)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | snack_classification_id | int | 10 | 0 | N | Y | 零食分類ID | |
2 | snack_classification | varchar | 64 | 0 | Y | N | 零食分類 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表snack_labels (零食標簽)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | snack_labels_id | int | 10 | 0 | N | Y | 零食標簽ID | |
2 | snack_labels | varchar | 64 | 0 | Y | N | 零食標簽 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表snack_mall (零食商城)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | snack_mall_id | int | 10 | 0 | N | Y | 零食商城ID | |
2 | snack_labels | varchar | 64 | 0 | Y | N | 零食標簽 | |
3 | snack_specifications | varchar | 64 | 0 | Y | N | 零食規格 | |
4 | manufacturer | varchar | 64 | 0 | Y | N | 生產廠商 | |
5 | praise_len | int | 10 | 0 | N | N | 0 | 點贊數 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
7 | cart_title | varchar | 125 | 0 | Y | N | 標題:[0,125]用于產品html的標簽中 | |
8 | cart_img | text | 65535 | 0 | Y | N | 封面圖:用于顯示于產品列表頁 | |
9 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于產品規格描述 | |
10 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原價:[1] |
11 | cart_price | double | 8 | 2 | N | N | 0.00 | 賣價:[1] |
12 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品庫存 |
13 | cart_type | varchar | 64 | 0 | N | N | 未分類 | 商品分類: |
14 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:產品的主體內容 | |
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 | 創建時間 |
21 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表snack_products (零食商品)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | snack_products_id | int | 10 | 0 | N | Y | 零食商品ID | |
2 | snack_name | varchar | 64 | 0 | Y | N | 零食名稱 | |
3 | snack_classification | varchar | 64 | 0 | Y | N | 零食分類 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | snack_specifications | varchar | 64 | 0 | Y | N | 零食規格 | |
6 | manufacturer | varchar | 64 | 0 | Y | N | 生產廠商 | |
7 | details_introduction | text | 65535 | 0 | Y | N | 詳情介紹 | |
8 | hits | int | 10 | 0 | N | N | 0 | 點擊數 |
9 | praise_len | int | 10 | 0 | N | N | 0 | 點贊數 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推薦 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間 |
表upload (文件上傳)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | upload_id | int | 10 | 0 | N | Y | 上傳ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 訪問路徑 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路徑 | |
5 | display | varchar | 255 | 0 | Y | N | 顯示順序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父級ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夾 | |
8 | type | varchar | 32 | 0 | Y | N | 文件類型 |
表user (用戶賬戶:用于保存用戶登錄信息)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用戶ID:[0,8388607]用戶獲取其他與用戶相關的數據 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 賬戶狀態:[0,10](1可用|2異常|3已凍結|4已注銷) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用戶組:[0,32767]決定用戶身份和權限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登錄時間: |
5 | phone | varchar | 11 | 0 | Y | N | 手機號碼:[0,11]用戶的手機號碼,用于找回密碼時或登錄時 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手機認證:[0,1](0未認證|1審核中|2已認證) |
7 | username | varchar | 16 | 0 | N | N | 用戶名:[0,16]用戶登錄時所用的賬戶名稱 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵稱:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密碼:[0,32]用戶登錄所需的密碼,由6-16位數字或英文組成 | |
10 | | varchar | 64 | 0 | Y | N | 郵箱:[0,64]用戶的郵箱,用于找回密碼時或登錄時 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 郵箱認證:[0,1](0未認證|1審核中|2已認證) |
12 | avatar | varchar | 255 | 0 | Y | N | 頭像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 針對獲取用戶信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
15 | vip_level | varchar | 255 | 0 | Y | N | 會員等級 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 會員折扣 |
表user_group (用戶組:用于用戶前端身份和鑒權)
編號 | 名稱 | 數據類型 | 長度 | 小數位 | 允許空值 | 主鍵 | 默認值 | 說明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用戶組ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 顯示順序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名稱:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述該用戶組的特點或權限范圍 | |
5 | source_table | varchar | 255 | 0 | Y | N | 來源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 來源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 來源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注冊位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 創建時間: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新時間: |
整個微信小程序的零食盒子的需求分析主要對系統總體架構以及功能模塊的設計,通過建立E-R模型和數據庫邏輯系統設計完成了數據庫系統設計。
4?微信小程序的零食盒子詳細設計與實現
微信小程序的零食盒子的詳細設計與實現主要是根據前面的微信小程序的零食盒子的需求分析和微信小程序的零食盒子的總體設計來設計頁面并實現業務邏輯。主要從微信小程序的零食盒子界面實現、業務邏輯實現這兩部分進行介紹。
當進入微信小程序的零食盒子的時候,首先映入眼簾的是系統的導航欄,下面是輪播圖以及系統內容,其主界面展示如下圖4-1所示。
圖4-1?前臺首頁界面圖
不是微信小程序的零食盒子中正式用戶的是可以在線進行注冊的,如果你沒有本微信小程序的零食盒子的賬號的話,添加“注冊”,當填寫上自己的賬號+密碼+確認密碼+昵稱+郵箱+手機號等后再點擊“注冊”按鈕后將會先驗證輸入的有沒有空數據,再次驗證密碼和確認密碼是否是一樣的,最后驗證輸入的賬戶名和數據庫表中已經注冊的賬戶名是否重復,只有都驗證沒問題后即可用戶注冊成功。其用用戶注冊界面展示如下圖4-2所示。
圖4-2?前臺注冊界面圖
注冊邏輯代碼如下:
/**
?????* 注冊
?????* @param user
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(@RequestBody User user) {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????query.put("username",user.getUsername());
????????List list = service.select(query, new HashMap<>()).getResultList();
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????user.setUserId(null);
????????user.setPassword(service.encryption(user.getPassword()));
????????service.save(user);
????????return success(1);
}
微信小程序的零食盒子中的前臺上注冊后的用戶是可以通過自己的賬戶名和密碼進行登錄的,當用戶輸入完整的自己的賬戶名和密碼信息并點擊“登錄”按鈕后,將會首先驗證輸入的有沒有空數據,再次驗證輸入的賬戶名+密碼和數據庫中當前保存的用戶信息是否一致,只有在一致后將會登錄成功并自動跳轉到微信小程序的零食盒子的首頁中;否則將會提示相應錯誤信息,用戶登錄界面如下圖4-3所示。
圖4-3登錄界面圖
登錄的邏輯代碼如下所示。
/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執行登錄接口]");
????????String username = data.get("username");
????????String email = data.get("email");
????????String phone = data.get("phone");
????????String password = data.get("password");
????????List resultList = null;
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.select(map, new HashMap<>()).getResultList();
????????}else{
????????????return error(30000, "賬號或密碼不能為空");
????????}
????????if (resultList == null || password == null) {
????????????return error(30000, "賬號或密碼不能為空");
????????}
????????//判斷是否有這個用戶
????????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.select(groupMap, new HashMap<>()).getResultList();
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());
????????????if (res==null){
????????????????return error(30000,"用戶不存在");
????????????}
????????????if (!res.equals("已通過")){
????????????????return error(30000,"該用戶審核未通過");
????????????}
????????}
????????//查詢用戶狀態
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態,不能登錄");
????????}
????????String md5password = service.encryption(password);
????????if (byUsername.getPassword().equals(md5password)) {
????????????// 存儲Token到數據庫
????????????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, "賬號或密碼不正確");
????????}
}
用戶點擊聯系方式查看系統公告列表中的網站公告、關于我們、聯系方式、網站介紹等信息。界面如下圖4-4所示。
圖4-4系統公告列表界面圖
當用戶點擊“收貨地址”右后,就回去顯示出目前現有的地址,也可以添加新的地址,界面如下圖4-5所示。
圖4-5收貨地址界面圖
當訪客點擊了任意商品后將會進入該款商品的詳情界面,可以了解到該商品的圖片信息、商品信息、價錢信息等,同時可以對該商品進行加購+立即購買+收藏+點贊+評論,產品詳情展示頁面如圖4-6所示。
?????????????????????????
圖4-6?產品詳情界面圖
當用戶點擊“我的訂單”鏈接后就進入自己購買的訂單的界面展示,界面如下圖4-7所示。
圖4-7?我的訂單界面圖
微信小程序的零食盒子中的管理人員是可以對前臺注冊的用戶進行管理的,也可以對管理員進行管控。界面如下圖4-8所示。

用戶管理管理關鍵代碼如下:
?@PostMapping("/set")
@Transactional
????public Map<String, Object> set(HttpServletRequest request) throws IOException {
????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
????????return success(1);
????}
管理員可以查看后臺首頁展示的商品銷售金額、商品銷售數量等統計圖信息。后臺首頁界面如下圖4-9所示。

圖4-9后臺首頁界面圖
管理員可以對零食標簽管理信息進行添加,可以查看零食標簽管理列表中的某一信息詳情,可以對零食標簽管理列表進行查詢和刪除操作。零食標簽管理界面如下圖4-9所示。

圖4-10零食標簽管理界面圖
管理員點擊“系統公告管理”菜單可以查看到系統中的所有系統公告信息,對已經存在的系統公告,管理員可以修改,也可以添加新的系統公告或者刪除系統公告。界面如下圖4-11所示。

圖4-11系統公告界面圖
綜合管理所屬微信小程序的零食盒子中的所有的零食商城、分類列表、訂單列表、訂單配送以及用戶提交的信息進行增刪改查。

5系統測試
系統開發到了最后一個階段那就是系統測試,系統測試對軟件的開發其實是非常有必要的。因為沒什么系統一經開發出來就可能會盡善盡美,再厲害的系統開發工程師也會在系統開發的時候出現紕漏,系統測試能夠較好的改正一些bug,為后期系統的維護性提供很好的支持。通過系統測試,開發人員也可以建立自己對系統的信心,為后期的系統版本的跟新提供支持。
系統測試包括:用戶登錄功能測試、商品展示功能測試、商品添加、商品搜索、密碼修改功能測試,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1?用戶登錄功能測試表
用例名稱 | 用戶登錄系統 |
目的 | 測試用戶通過正確的用戶名和密碼可否登錄功能 |
前提 | 未登錄的情況下 |
測試流程 | 1) 進入登錄頁面 2) 輸入正確的用戶名和密碼 |
預期結果 | 用戶名和密碼正確的時候,跳轉到登錄成功界面,反之則顯示錯誤信息,提示重新輸入 |
實際結果 | 實際結果與預期結果一致 |
商品查看功能測試:
表5-2?商品查看功能測試表
用例名稱 | 商品查看 |
目的 | 測試商品查看功能 |
前提 | 用戶登錄 |
測試流程 | 點擊商品列表 |
預期結果 | 可以查看到所有商品信息 |
實際結果 | 實際結果與預期結果一致 |
管理員添加商品界面測試:
表5-3?管理員添加商品界面測試表
用例名稱 | 商品發布測試用例 |
目的 | 測試商品發布功能 |
前提 | 賣家用戶正常登錄情況下 |
測試流程 | 1)點擊商品信息管理就,然后點擊添加后并填寫信息。 2)點擊進行提交。 |
預期結果 | 提交以后,頁面首頁會顯示新的商品信息? |
實際結果 | 實際結果與預期結果一致 |
商品搜索功能測試:
表5-4商品搜索功能測試表
用例名稱 | 商品搜索測試 |
目的 | 測試商品搜索功能 |
前提 | 無 |
測試流程 | 1)在搜索框填入搜索關鍵字。 2)點擊搜索按鈕。 |
預期結果 | 頁面顯示包含有搜索關鍵字的商品 |
實際結果 | 實際結果與預期結果一致 |
密碼修改功能測試:
表5-5 密碼修改功能測試表
用例名稱 | 密碼修改測試用例 |
目的 | 測試管理員密碼修改功能 |
前提 | 管理員用戶正常登錄情況下 |
測試流程 | 1)管理員密碼修改并完成填寫。 2)點擊進行提交。 |
預期結果 | 使用新的密碼可以登錄 |
實際結果 | 實際結果與預期結果一致 |
通過編寫微信小程序的零食盒子的測試用例,已經檢測完畢用戶登錄模塊、商品查看模塊、商品添加模塊、商品搜索模塊、密碼修改功能測試,通過這5大模塊為微信小程序的零食盒子的后期推廣運營提供了強力的技術支撐。
在本研究中,通過基于微信小程序開發的在線零食訂購平臺的設計與實現,取得了一系列有益的成果。首先,該平臺為消費者提供了便捷、快速的零食購買途徑,滿足了現代消費者對購物便捷性和多樣化選擇的需求。用戶可以通過微信小程序隨時隨地瀏覽、選購各類零食產品,并實現在線支付和配送服務,大大提升了消費者的購物體驗和便利性。
其次,該在線零食訂購平臺的建立推動了零食行業的數字化轉型和發展。通過引入微信小程序平臺,零食銷售商得以拓展在線銷售渠道,增強了品牌曝光度和市場競爭力。消費者與零食品牌之間的互動和交流也得到促進,為零食行業帶來了更多商機和合作機會,推動了零食市場的創新與發展。
最后,本研究的成果不僅具有重要的商業意義,更為零食行業的現代化發展和消費者生活品質提升做出了積極貢獻。通過微信小程序在線零食訂購平臺的實現,為消費者提供了更便捷、高效的購物方式,為零食行業注入了新的活力和動力。未來,我們將繼續優化平臺功能,拓展合作伙伴關系,提升用戶體驗和服務質量,致力于打造一個更加智能、便捷的在線零食購物平臺,促進零食行業的創新發展,實現零食消費與數字化科技的完美融合,助力消費者享受更美好、便利的零食購物體驗。
[2]李國. 休閑零食為市場帶來濃濃年味[N]. 工人日報, 2024-02-06 (007).
[3]陳晴. 休閑零食龍頭良品鋪子換帥 楊銀芬董事長、總經理“一肩挑”[N]. 每日經濟新聞, 2023-11-29 (007).
[4]休閑零食產業刮起“健康風”[N]. 中國食品報, 2023-11-14 (007).
[5]Ghoshal A . Oracle’s MySQL HeatWave gets Vector Store, generative AI features [J]. InfoWorld.com, 2023,
[6]二三線城市釋放零食品類銷售新潛力[N]. 中國食品報, 2023-08-08 (007).
[7]肖偉. 旅游旺季來臨 零食行業如何抓住機遇? [J]. 中國食品工業, 2023, (13): 10.
[8]李宇杰. 基于微服務架構的電商微信小程序的設計與實現[D]. 華東師范大學, 2023.
[9]陳嬌,楊欣,韓艷等. 基于微信小程序的校園綜合服務化線上商城的研究與探索 [J]. 中阿科技論壇(中英文), 2022, (04): 102-106.
[10]Hejing W . Commerce Middle Office Management System Based on Springboot [J]. International Journal of Advanced Network, Monitoring and Controls, 2022, 7 (2): 32-45.
[11]李常寶. 基于微信小程序的電子商城的設計與開發 [J]. 呂梁教育學院學報, 2021, 38 (03): 133-136.
[12]樂普. 休閑零食銷售暴漲:左手薯片、右手辣條 [J]. 中國食品工業, 2021, (16): 91-92.
[13]周文. 三只松鼠股份有限公司營銷策略研究[D]. 云南大學, 2021.
[14]胡楊林. 基于微服務和小程序的電子商城設計與實現[D]. 西北大學, 2021.
[15]馬靜. 基于微信小程序的購物商城系統的設計與實現 [J]. 微型電腦應用, 2021, 37 (03): 31-34.
[16]付雯婷,毛桂津. 在校大學生線上零食消費習慣研究——以武漢東湖學院大學生為例 [J]. 科技風, 2018, (13): 208+213.
[17]康嬌蘭. 基于微信小程序的區塊鏈商城系統的設計與實現[D]. 華中科技大學, 2021.
[18]徐偉,李剛,王星等. 基于微信小程序的校園服務平臺設計與研究 [J]. 信息與電腦(理論版), 2020, 32 (10): 97-99.
[19]胡瑩瑩. 線上零食業銷售前景分析 [J]. 環渤海經濟瞭望, 2020, (04): 56-57.
[20]李平,李明芮,張慧敏. 大學生群體零食消費微信公眾平臺推廣研究 [J]. 綏化學院學報, 2019, 39 (12): 122-125.
致 ?謝
逝者如斯夫,不舍晝夜。轉眼間,大學生活便已經接近尾聲,人面對著離別與結束,總是充滿著不舍與茫然,我亦如此,仍記得那年秋天,我迫不及待的提前一天到了學校,面對學校巍峨的大門,我心里充滿了期待:這里,就是我新生活的起點嗎?那天,陽光明媚,學校的歡迎儀式很熱烈,我面對著一個個對著我微笑的同學,仿佛一縷縷陽光透過胸口照進了我心里,同時,在那天我認識可愛的室友,我們攜手共同度過了這難忘的兩年。如今,我望著這篇論文的致謝,不禁又要問自己:現在,我們就要說再見了嗎?
感慨莫名,不知所言。遙想當初剛來學校的時候,心里總是想著工科學校會過于板正,會缺乏一些柔情,當時心里甚至有一點點排斥,但是隨著我對學校的慢慢認識與了解,我才認識到了她的美麗,她的柔情,并且慢慢的喜歡上了這個校園,但是時間太快了,快到我還沒有好好體會她的美麗便要離開了,但是她帶給我的回憶,永遠不會離開我,也許真正離開那天我的眼里會滿含淚水,我不是因為難過,我只是想將她的樣子映在我的淚水里,刻在我的心里。最后,感謝我的老師們,是你們教授了我們知識與做人的道理;感謝我的室友們,是你們陪伴了我如此之久;感謝每位關心與支持我的人。
少年,追風趕月莫停留,平荒盡處是春山。
免費領取項目源碼,請關注?點贊收藏并私信博主,謝謝~