国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫)

這篇具有很好參考價(jià)值的文章主要介紹了【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

基于Vue、Springboot、Mysql的前后端分離的電商管理系統(tǒng),不僅功能完善,還有詳細(xì)課設(shè)報(bào)告供查看,這不收藏起來,源碼和論文獲取見文末結(jié)尾
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼
【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼

【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼

【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫),vue.js,spring boot,數(shù)據(jù)庫,mysql,前端,課設(shè),源碼

部分報(bào)告內(nèi)容如下(省略圖片)文章來源地址http://www.zghlxwxcb.cn/news/detail-691458.html


```c
目錄
1 引言	4
1.1 編寫目的	4
1.2 項(xiàng)目背景	4
1.3 參考資料	4
2 總體設(shè)計(jì)	4
2.1 需求概述	4
2.2 軟件結(jié)構(gòu)	5
3 模塊設(shè)計(jì)	6
3.1 模塊基本信息	6
3.1.1 商品管理模塊	6
3.1.2 商品分類模塊	6
3.1.3 訂單管理模塊	6
3.1.4用戶管理模塊	6
3.1.5 購物車管理模塊	6
3.2 模塊處理邏輯	7
4 UML建模	9
4.1 類圖	9
4.2 時(shí)序圖	10
4.3用例圖	10
4.4 活動(dòng)圖	11
4.5 組件圖	11
4.6 部署圖	11
5 數(shù)據(jù)庫設(shè)計(jì)	12
5.1 ER圖表	12
5.2 表設(shè)計(jì)	13
5.2.1 地址表	13
5.2.2 頭像表	13
5.2.3 輪播圖表	14
5.2.4 購物車表	14
5.2.5 分類表	15
5.2.6 商品表	15
5.2.7 商品規(guī)格關(guān)聯(lián)表	16
5.2.8 圖標(biāo)表	17
5.2.9 圖標(biāo)分類關(guān)聯(lián)表	17
5.2.10 訂單商品關(guān)聯(lián)表	17
5.2.11 規(guī)格表	18
5.2.12 系統(tǒng)文件表	18
5.2.13 用戶表	19
5.2.14 訂單表	20
6 接口設(shè)計(jì)	21
6.1 外部接口	21
6.1.1 登錄界面	21
6.1.2 注冊(cè)界面	22
6.1.3 商城首頁	23
6.1.4 個(gè)人信息界面	24
6.1.5 購物車界面	26
6.1.6 地址信息界面	27
6.1.7 訂單界面	28
6.1.8 管理員界面	30
6.1.9 輪播圖管理界面	31
6.1.10 訂單管理界面	32
6.1.11 商品分類管理界面	34
6.1.12 用戶管理界面	36
6.1.13 統(tǒng)計(jì)界面	38
6.2 內(nèi)部接口	39
6.2.1 登錄接口	39
6.2.2 注冊(cè)接口	39
6.2.3 地址管理接口	39
6.2.4 頭像管理接口	41
6.2.5 輪播圖管理接口	42
6.2.6 購物車管理接口	43
6.2.7 分類管理接口	44
6.2.8 文件管理接口	45
6.2.9 商品管理接口	47
6.2.10 圖標(biāo)管理接口	49
6.2.11 收入分析管理接口	50
6.2.12 訂單管理接口	51
6.2.13 角色管理接口	53
6.2.14 用戶管理接口	53
7 性能	55
7.1 精度	55
7.2 時(shí)間特性	55
7.3 靈活性	55
8 測(cè)試	55

1 引言
1.1 編寫目的
根據(jù)需求分析文檔確定的需求,為系統(tǒng)開發(fā)提供更為詳細(xì)、精確、可行的設(shè)計(jì)方案。在該文檔中,我們將具體闡述系統(tǒng)各個(gè)階段的設(shè)計(jì)方案,包括系統(tǒng)架構(gòu)、模塊劃分、數(shù)據(jù)庫設(shè)計(jì)、界面設(shè)計(jì)等細(xì)節(jié)內(nèi)容,以確保開發(fā)人員能夠準(zhǔn)確理解和實(shí)現(xiàn)每一個(gè)階段的開發(fā)。同時(shí),該文檔也需要提供詳細(xì)的系統(tǒng)運(yùn)行流程,通訊協(xié)議,算法實(shí)現(xiàn)、數(shù)據(jù)結(jié)構(gòu)的說明等,以方便開發(fā)人員寫出可靠的代碼。另外,在系統(tǒng)維護(hù)時(shí),該文檔也作為重要依據(jù),提供系統(tǒng)各模塊的設(shè)計(jì)原則、開發(fā)要求、版本升級(jí)策略等,以確保系統(tǒng)可維護(hù)、可擴(kuò)展、可重用性、安全性等方面要求得以滿足。因此,該文檔的編寫應(yīng)該全面考慮因素,并盡可能確保其具有清晰性、可讀性和易于理解性,以便于開發(fā)人員理解、協(xié)作和實(shí)現(xiàn)。

1.2 項(xiàng)目背景
該電子商城系統(tǒng)是針對(duì)線上購物市場(chǎng)的一款應(yīng)用系統(tǒng),通過結(jié)合Spring Boot和Vue技術(shù)實(shí)現(xiàn)了商品管理、商品分類、訂單管理、用戶管理、購物車管理等相關(guān)功能。系統(tǒng)旨在為買家提供一個(gè)方便快捷、高效、可靠的購物服務(wù)。

1.3 參考資料
[1] 林曉斌. Java企業(yè)級(jí)開發(fā)實(shí)戰(zhàn)[M]. 第二版. 北京: 人民郵電出版社, 2017.
[2] 鄧俊輝. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京: 清華大學(xué)出版社, 2018.
[3] 劉偉. SpringBoot企業(yè)級(jí)應(yīng)用開發(fā)實(shí)戰(zhàn)[M]. 北京: 電子工業(yè)出版社, 2017.
[4] 張磊, 馬俊昭, 王麗華,. Vue.js實(shí)戰(zhàn)[M]. 北京: 人民郵電出版社, 2017.
[5] 鄭海波, 金丹華, 張曼. 電子商務(wù)系統(tǒng)設(shè)計(jì)[M]. 北京: 清華大學(xué)出版社, 2009.
2 總體設(shè)計(jì)
2.1 需求概述
(1)商品管理模塊:實(shí)現(xiàn)了商品的基本信息錄入、圖片上傳、狀態(tài)管理等相關(guān)功能。
(2)商品分類模塊:實(shí)現(xiàn)了分類的增刪改查、分類層級(jí)管理、商品分類的關(guān)聯(lián)等功能。
(3)訂單管理模塊:實(shí)現(xiàn)了訂單的查詢、創(chuàng)建、刪除、退貨等功能。
(4)用戶管理模塊:實(shí)現(xiàn)了用戶的注冊(cè)、登錄、密碼找回、個(gè)人信息修改和查詢等功能。
(5)購物車管理模塊:實(shí)現(xiàn)了添加商品、刪除商品、調(diào)整數(shù)量、結(jié)算等功能。

2.2 軟件結(jié)構(gòu)
 
描述:以上的軟件結(jié)構(gòu)圖,采用了四層架構(gòu)設(shè)計(jì),不同層之間通過依賴關(guān)系進(jìn)行交互。展示層采用Vue.js框架來實(shí)現(xiàn),應(yīng)用層處理各種請(qǐng)求并調(diào)用服務(wù)層來處理具體業(yè)務(wù)邏輯,領(lǐng)域?qū)迂?fù)責(zé)封裝業(yè)務(wù)邏輯,基礎(chǔ)設(shè)施層負(fù)責(zé)管理底層資源,如數(shù)據(jù)庫和緩存等。該軟件結(jié)構(gòu)圖體現(xiàn)了高內(nèi)聚低耦合的設(shè)計(jì)原則,有利于系統(tǒng)的可維護(hù)性和可擴(kuò)展性。

3 模塊設(shè)計(jì)
3.1 模塊基本信息
3.1.1 商品管理模塊
模塊描述:負(fù)責(zé)對(duì)商品進(jìn)行增刪改查等基本操作,包括商品信息的錄入、維護(hù)和展示,商品圖片的上傳、展示和刪除,商品狀態(tài)的管理等功能。
3.1.2 商品分類模塊
模塊描述:負(fù)責(zé)商品分類的管理,包括商品分類的層級(jí)關(guān)系維護(hù)、新增、修改、刪除等基本操作。
3.1.3 訂單管理模塊
模塊描述:負(fù)責(zé)訂單相關(guān)的基礎(chǔ)操作,包括訂單的查詢、創(chuàng)建、刪除等功能。
3.1.4用戶管理模塊
模塊描述:負(fù)責(zé)用戶信息相關(guān)功能,包括用戶注冊(cè)、登錄、個(gè)人信息維護(hù)等操作。
3.1.5 購物車管理模塊
模塊描述:負(fù)責(zé)購物車的管理,包括加入購物車、調(diào)整商品數(shù)量、刪除商品、結(jié)算等基本操作。
3.2 模塊處理邏輯
 

以上流程圖是用戶在購物車界面添加商品的操作流程。首先查詢?cè)撋唐肥欠褚呀?jīng)在購物車中,若已存在,則調(diào)整該商品的數(shù)量,否則添加該商品至購物車。最后返回添加或調(diào)整的結(jié)果信息。這個(gè)流程設(shè)計(jì)簡(jiǎn)潔,易于理解。

 
以上流程圖是用戶提交訂單的操作流程。首先檢查所有商品的庫存是否充足,若充足則創(chuàng)建訂單并扣除庫存,否則返回庫存不足錯(cuò)誤信息。然后生成訂單號(hào)和支付信息,完成支付,返回支付結(jié)果,更新訂單狀態(tài)為已支付,最后生成返回信息。這個(gè)流程設(shè)計(jì)清晰明了,覆蓋了電商系統(tǒng)中訂單的基本操作。

 
以上流程圖是用戶在購物車中刪除商品的操作流程。首先查詢?cè)撋唐肥欠裨谫徫镘囍?,若存在則從購物車中刪除該商品,否則返回未找到商品錯(cuò)誤信息。最后生成刪除結(jié)果信息并返回給用戶。這個(gè)流程設(shè)計(jì)簡(jiǎn)潔明了,有效實(shí)現(xiàn)了購物車中刪除商品的功能。

 
以上流程圖是用戶上傳商品圖片的操作流程。用戶上傳圖片后,服務(wù)器接受到上傳請(qǐng)求并根據(jù)圖片大小和格式生成存儲(chǔ)路徑。然后將圖片存儲(chǔ)至指定路徑,并生成存儲(chǔ)成功信息返回給用戶。這個(gè)流程設(shè)計(jì)簡(jiǎn)單清晰,有利于實(shí)現(xiàn)圖片上傳的功能。
4 UML建模
4.1 類圖
 

4.2 時(shí)序圖
 
4.3 用例圖
 
4.4 活動(dòng)圖
 
4.5 組件圖
 
4.6 部署圖
 
5 數(shù)據(jù)庫設(shè)計(jì)
5.1 ER圖表
 
5.2 表設(shè)計(jì)
5.2.1 地址表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
link_user	varchar(255)	聯(lián)系人
link_address	varchar(255)	地址
link_phone	varchar(255)	電話
user_id	bigint(0)	所屬用戶

5.2.2 頭像表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
type	varchar(255)	類型
size	bigint(0)	大小
url	varchar(255)	地址
md5	varchar(255)	Md5值

5.2.3 輪播圖表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
good_id	bigint(0)	對(duì)應(yīng)的商品id
show_order	int(0)	播放順序

5.2.4 購物車表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
count	int(0)	數(shù)量
create_time	datetime(0)	加入時(shí)間
good_id	bigint(0)	商品id
standard	varchar(255)	規(guī)格
user_id	bigint(0)	用戶id

5.2.5 分類表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
name	varchar(255)	類別名稱

5.2.6 商品表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
name	varchar(255)	商品名稱
description	varchar(1600)	描述
discount	double(10, 2)	折扣
sales	bigint(0)	銷量
sale_money	double(10, 2)	銷售額
category_id	bigint(0)	分類id
imgs	varchar(255)	商品圖片
create_time	datetime(0)	創(chuàng)建時(shí)間
recommend	tinyint(1)	是否推薦。0不推薦,1推薦
is_delete	tinyint(1)	是否刪除,0未刪除,1刪除

5.2.7 商品規(guī)格關(guān)聯(lián)表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
good_id	bigint(0)	商品id
value	varchar(255)	規(guī)格
price	decimal(10, 2)	價(jià)格
store	bigint(0)	庫存

5.2.8 圖標(biāo)表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
value	varchar(255)	圖標(biāo)的識(shí)別碼

5.2.9 圖標(biāo)分類關(guān)聯(lián)表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
category_id	bigint(0)	分類id
icon_id	bigint(0)	圖標(biāo)id

5.2.10 訂單商品關(guān)聯(lián)表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
order_id	bigint(0)	訂單id
good_id	bigint(0)	商品id
count	int(0)	數(shù)量
standard	varchar(1600)	規(guī)格

5.2.11 規(guī)格表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
goodId	bigint(0)	商品id
value	varchar(255)	商品規(guī)格
price	decimal(10, 2)	該規(guī)格的價(jià)格
store	bigint(0)	該規(guī)格的庫存

5.2.12 系統(tǒng)文件表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
name	varchar(255)	文件名稱
type	varchar(255)	文件類型
size	bigint(0)	大小
url	varchar(255)	文件路徑
is_delete	tinyint(1)	是否刪除
enable	tinyint(1)	是否啟用
md5	varchar(255)	md5值

5.2.13 用戶表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
username	varchar(255)	用戶名
password	varchar(255)	密碼
nickname	varchar(255)	昵稱
email	varchar(255)	郵箱
phone	varchar(255)	手機(jī)號(hào)碼
address	varchar(1600)	地址
avatar_url	varchar(255)	頭像鏈接

5.2.14 訂單表
數(shù)據(jù)名稱	數(shù)據(jù)類型	數(shù)據(jù)描述
id	bigint(0)	主鍵
order_no	varchar(255)	訂單號(hào)
total_price	decimal(10, 2)	總價(jià)
user_id	bigint(0)	用戶id
link_user	varchar(255)	聯(lián)系人
link_phone	varchar(255)	聯(lián)系電話
link_address	varchar(255)	地址
state	varchar(255)	訂單狀態(tài)
create_time	datetime(0)	創(chuàng)建時(shí)間

6 接口設(shè)計(jì)
6.1 外部接口
6.1.1 登錄界面
 
<div class="title">
        <b>登錄在線商城</b>
      </div>
      <div style="margin-top: 30px">
        <el-form label-width="70px">
          <el-form-item label="用戶名">
            <el-input v-model.trim="user.username" aria-required="true"></el-input>
          </el-form-item>
          <el-form-item label="密碼" style="margin-top: 25px">
            <el-input v-model.trim="user.password" show-password aria-required="true"></el-input>
          </el-form-item>
          <el-form-item style="margin: 30px 80px">
            <el-button type="success" @click="onSubmit">登錄</el-button>
            <el-button @click="$router.push('/register')">注冊(cè)</el-button>
          </el-form-item>
        </el-form>
      </div>

6.1.2 注冊(cè)界面
 
<div class="title">
        <b>注 冊(cè)</b>
      </div>
      <div style="margin-top: 30px">
        <el-form label-width="70px">
          <el-form-item label="用戶名">
            <el-input v-model.trim="user.username" aria-required="true"></el-input>
          </el-form-item>
          <el-form-item label="密碼" style="margin-top: 25px">
            <el-input v-model.trim="user.password" show-password aria-required="true"></el-input>
          </el-form-item>
          <el-form-item label="確認(rèn)密碼" style="margin-top: 25px">
            <el-input v-model.trim="user.confirmPassword" show-password aria-required="true"></el-input>
          </el-form-item>
          <el-form-item style="margin: 30px 80px">
            <el-button type="success" @click="onSubmit">注冊(cè)</el-button>
            <el-button @click="$router.push('/login')">返回</el-button>
          </el-form-item>
        </el-form>
      </div>

6.1.3 商城首頁
 

  <el-container style="height: 100%;width:100%;">
    <el-header style="background-color: white">
      <Navagation :user="user"
                  :role="role"
                  :login-status="loginStatus"
      ></Navagation>
    </el-header>

    <el-main style="background-color: lightgrey;width:100%;">

      <router-view />
    </el-main>

  </el-container>

6.1.4 個(gè)人信息界面
 

<el-card class="card">
    <div style="text-align: center; margin-bottom: 30px">
      <b>修改個(gè)人信息</b>
    </div>

    <el-form label-width="60px">
      <el-form-item label="頭像">
        <el-upload
          class="avatar-uploader"
          :action="baseApi + '/avatar'"
          :headers="token"
          :show-file-list="false"
          :on-success="handleAvatarSuccess"
        >
          <img
            v-if="form.avatarUrl"
            :src="baseApi + form.avatarUrl"
            class="avatar"
          />
          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
        </el-upload>
      </el-form-item>

      <el-form-item label="昵稱">
        <el-input v-model="form.nickname" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="電話">
        <el-input v-model="form.phone" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="郵箱">
        <el-input v-model="form.email" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="地址">
        <el-input v-model="form.address" autocomplete="off"></el-input>
      </el-form-item>
      <el-button
        type="primary"
        style="margin-left: 190px; margin-top: 20px"
        @click="save"
        >確 定</el-button
      >
    </el-form>
    <el-popover placement="right" width="200" trigger="click">
      <el-form>
        <el-form-item label="新密碼">
          <el-input
            type="password"
            v-model="resetPsw.newPassword"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item label="確認(rèn)密碼">
          <el-input
            type="password"
            v-model="resetPsw.confirmPassword"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-button size="mini" type="primary" @click="toResetPassword"
          >確 定</el-button
        >
      </el-form>
      <el-button
        slot="reference"
        type="warning"
        style="margin-left: 190px; margin-top: 20px"
        @click="resetPsw = { newPassword: '', confirmPassword: '' }"
        >重置密碼</el-button
      >
    </el-popover>
  </el-card>

6.1.5 購物車界面
 

<div style="width: 55%;height:100%;margin: 20px auto">
  <div v-if="carts.length === 0" class="empty-box">
    <span style="font-family: 華文彩云;font-size: 40px" >購物車是空的哦</span>
  </div>
  <template v-for="cart in carts">
    <cart-item :cart="cart" @delete="delItem" :key="cart.id" style="margin-bottom: 10px"></cart-item>
  </template>
</div>

6.1.6 地址信息界面
 

<el-dialog title="地址信息" :visible.sync="dialogFormVisible">
        <el-form label-width="90px" style="padding: 0 60px">
          <el-form-item label="聯(lián)系人">
            <el-input v-model="address.linkUser" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="聯(lián)系電話">
            <el-input v-model="address.linkPhone" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="地址">
            <el-input
              v-model="address.linkAddress"
              autocomplete="off"
            ></el-input>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button @click="dialogFormVisible = false">取 消</el-button>
          <el-button type="primary" @click="saveAddress">確 定</el-button>
        </div>
      </el-dialog>

6.1.7 訂單界面
 

<div class="header" style="padding-left: 25px;">
    <span style="line-height: 40px">{{order.create_time}}</span>
    <span style="line-height: 40px;margin-left: 30px">訂單編號(hào): {{order.order_no}}</span>
  </div>
  <div class="body">
    <div style="display: inline-block;margin-right: 20px">
      <router-link :to="'goodview/'+order.good_id">
        <img :src="baseApi + order.imgs" style="width: 100px;height:100px">
      </router-link>
    </div>
    <div style="display: inline-block;line-height: 40px" >
      <table>
        <tr>
          <th>商品</th>
          <th>規(guī)格</th>
          <th>數(shù)量</th>
          <th>總價(jià)</th>
          <th>收貨人</th>
          <th>訂單狀態(tài)</th>
        </tr>
        <tr>
          <a :href="'goodview/'+order.good_id">
            <td>{{order.good_name}}</td>
          </a>
          <td>{{order.standard}}</td>
          <td>{{order.count}}</td>
          <td>{{order.total_price}}</td>
          <el-popover
              placement="bottom-start"
              width="200"
              trigger="hover"
              :content=address>
            <td slot="reference" style="color: #42b983">{{ order.link_user }}</td>
          </el-popover>
<!--          訂單狀態(tài)-->
          <template v-if="order.state==='已發(fā)貨'">
            <td style="color: #42b983">{{order.state}}</td>
            <td>
              <el-button style="margin-left: 20px;" size="mini" type="primary" @click="receive">確認(rèn)收貨</el-button>
            </td>
          </template>

          <template v-else-if="order.state==='已收貨'">
            <td style="color: #42b983"><a class="el-icon-check"></a>{{order.state}}</td>
          </template>

          <template v-else-if="order.state==='已支付'">
            <td style="color: #3b62f8"> {{order.state}}</td>
            <td>
              <el-button size="mini" type="info" plain disabled>等待發(fā)貨</el-button>
            </td>
          </template>

          <template v-else>
            <td>{{order.state}}</td>
            <td>
              <el-button style="margin-left: 20px" size="mini" type="success" @click="pay">去支付</el-button>
            </td>
          </template>

        </tr>
      </table>
    </div>
  </div>
6.1.8 管理員界面
 

  <div style="height: 100%">
    <el-container style="height: 100%">
      <!--      側(cè)邊欄-->
      <el-aside
        :width="sideWidth + 'px'"
        style="background-color: rgb(238, 241, 246); height: 100%"
      >
        <Aside :is-collapse="isCollapse"></Aside>
      </el-aside>

      <el-container>
        <!--        導(dǎo)航欄-->
        <el-header
          style="border-bottom: 1px solid #ccc; background-color: aliceblue"
        >
          <Header
            :collapse-icon="collapseIcon"
            :collapse-title="collapseTitle"
            @collapse="handleCollapse"
            :user="user"
          ></Header>
        </el-header>

        <el-main :class="{bk: $route.path=='/manage/home'}">
          <router-view @refresh="getUser" />
        </el-main>
      </el-container>
    </el-container>
  </div>

6.1.9 輪播圖管理界面
 

<div>
      <el-table :data="tableData" border stripe style="width: 80%;margin: 2px auto">
        <el-table-column label="商品">
          <template slot-scope="scope">
            <a :href="'/goodView/'+scope.row.goodId">{{scope.row.goodName}}</a>
          </template>
        </el-table-column>
        <el-table-column  label="圖片" >
          <template   slot-scope="scope">
            <img :src="baseApi + scope.row.img" width="300" height="185" />
          </template>
        </el-table-column>
        <el-table-column prop="showOrder" label="輪播順序"></el-table-column>

        <el-table-column
            fixed="right"
            label="操作"
            width="200">
          <template slot-scope="scope">
            <el-button type="primary" icon="el-icon-edit" circle  @click="edit(scope.row)"></el-button>
            <el-popconfirm
                @confirm="del(scope.row.id)"
                title="確定刪除?"
            >
              <el-button type="danger" icon="el-icon-delete" circle slot="reference" style="margin-left: 10px"></el-button>
            </el-popconfirm>
          </template>
        </el-table-column>
      </el-table>
    </div>
6.1.10 訂單管理界面
 

<el-table :data="tableData" border stripe style="width: 100%">
      <el-table-column prop="id" label="ID" width="50" sortable> </el-table-column>
      <el-table-column prop="orderNo" label="訂單編號(hào)" width="200"></el-table-column>
      <el-table-column prop="totalPrice" label="總價(jià)" width="100"></el-table-column>
      <el-table-column prop="userId" label="下單人id" width="100"></el-table-column>
      <el-table-column prop="linkUser" label="聯(lián)系人" width="150"></el-table-column>
      <el-table-column prop="linkPhone" label="聯(lián)系電話"></el-table-column>
      <el-table-column prop="linkAddress" label="送貨地址" width="300"></el-table-column>
      <el-table-column prop="state" label="狀態(tài)" width="100">
        <template slot-scope="scope">
          <el-tag type="success" v-if="scope.row.state==='已支付'">{{scope.row.state}}</el-tag>
          <el-tag type="primary" v-if="scope.row.state==='已發(fā)貨'">{{scope.row.state}}</el-tag>
          <el-tag type="info" v-if="scope.row.state==='已收貨'">{{scope.row.state}}</el-tag>
        </template>
      </el-table-column>
      <el-table-column prop="createTime" label="下單時(shí)間"></el-table-column>
      <el-table-column
          fixed="right"
          label="操作"
          width="200">
        <template slot-scope="scope">
          <el-button type="primary" size="mini"  @click="showDetail(scope.row)">詳情</el-button>
          <el-popconfirm
              @confirm="delivery(scope.row)"
              title="確定發(fā)貨嗎?"
              v-if="scope.row.state==='已支付'"
          >
            <el-button type="primary" size="mini" slot="reference" style="margin-left: 10px">發(fā)貨</el-button>
          </el-popconfirm>
        </template>
      </el-table-column>
    </el-table>

6.1.11 商品分類管理界面
 

<el-table :data="icons" stripe>
        <!-- 下級(jí)分類表-->
        <el-table-column type="expand" label="下級(jí)分類" width="100px">
          <template slot-scope="scope">
            <el-table
              :data="scope.row.categories"
              :header-cell-style="{ background: '#cbefea', color: 'black' }"
            >
              <el-table-column label="分類id" prop="id"></el-table-column>
              <el-table-column label="分類名稱" prop="name"></el-table-column>
              <el-table-column label="操作">
                <template slot-scope="scope">
                  <el-button
                    type="primary"
                    size="mini"
                    @click="handleEditCategory(scope.row)"
                    >修改</el-button
                  >

                  <el-popconfirm
                    @confirm="deleteCategory(scope.row)"
                    title="確定刪除?"
                  >
                    <el-button
                      type="danger"
                      size="mini"
                      slot="reference"
                      >刪除</el-button
                    >
                  </el-popconfirm>
                </template>
              </el-table-column>
            </el-table>
          </template>
          <!---->
        </el-table-column>
        <el-table-column label="id" prop="id" width="60px"></el-table-column>
        <el-table-column label="icon">
          <template slot-scope="scope">
            <i class="iconfont" v-html="scope.row.value"></i>
          </template>
        </el-table-column>

        <el-table-column fixed="right" label="操作" width="200">
          <template slot-scope="scope">
            <el-button
              type="primary"
              icon="el-icon-edit"
              circle
              @click="handleEditIcon(scope.row)"
            ></el-button>
            <el-button
              type="success"
              icon="el-icon-plus"
              circle
              @click="handleAddCategory(scope.row)"
            ></el-button>

            <el-popconfirm
              @confirm="deleteIcon(scope.row.id)"
              title="確定刪除?"
            >
              <el-button
                type="danger"
                icon="el-icon-delete"
                circle
                slot="reference"
                style="margin-left: 10px"
              ></el-button>
            </el-popconfirm>
          </template>
        </el-table-column>
      </el-table>

6.1.12 用戶管理界面
 

<el-table
      :data="tableData"
      background-color="black"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection"></el-table-column>
      <el-table-column prop="id" label="id" width="100"></el-table-column>
      <el-table-column
        prop="username"
        label="賬號(hào)"
        width="150"
      ></el-table-column>
      <el-table-column label="身份" width="150">
        <template slot-scope="scope">
          <span v-if="scope.row.role === 'user'">用戶</span>
          <span v-if="scope.row.role === 'admin'">管理員</span>
        </template>
      </el-table-column>
      <el-table-column
        prop="nickname"
        label="昵稱"
        width="180"
      ></el-table-column>
      <el-table-column prop="phone" label="電話" width="180"></el-table-column>
      <el-table-column prop="email" label="郵箱" width="180"></el-table-column>
      <el-table-column
        prop="address"
        label="地址"
        width="350"
      ></el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" type="success" @click="handleEdit(scope.row)"
            >編輯</el-button
          >
          <el-button
            size="mini"
            type="danger"
            @click="handleDelete(scope.row.id)"
            >刪除</el-button
          >
        </template>
      </el-table-column>
    </el-table>

6.1.13 統(tǒng)計(jì)界面
 

<el-tabs v-model="activeName" @tab-click="handleClick">
      <el-card
        style="
          display: inline-block;
          margin-left: 50px;
          margin-top: 30px;
          font-weight: bold;
          font-size: 22px;
          color: #ffb02a;
        "
        >¥總計(jì):{{ total | numFilter }}</el-card
      >
      <!--      柱狀圖-->
      <el-tab-pane label="各類收入柱狀圖" name="bar">
        <div
          id="bar"
          style="width: 1200px; height: 500px; margin: auto auto"
        ></div>
      </el-tab-pane>
      <!--      餅圖-->
      <el-tab-pane label="各類收入餅圖" name="pie">
        <div
          id="pie"
          style="width: 600px; height: 600px; margin: 10px auto"
        ></div>
      </el-tab-pane>
      <!--  本周收入折線圖-->
      <el-tab-pane label="本周收入" name="line1">
        <div
          id="weekLine"
          style="width: 900px; height: 500px; margin: 10px auto"
        ></div>
      </el-tab-pane>
      <!-- 本月收入折線圖-->
      <el-tab-pane label="本月收入" name="line2">
        <div
          id="monthLine"
          style="width: 1500px; height: 500px; margin: 10px auto"
        ></div>
      </el-tab-pane>
    </el-tabs>

6.2 內(nèi)部接口
6.2.1 登錄接口
@PostMapping("/login")
public Result login(@RequestBody LoginForm loginForm) {
    UserDTO dto = userService.login(loginForm);
    return Result.success(dto);
}

6.2.2 注冊(cè)接口
@PostMapping("/register")
public Result register(@RequestBody LoginForm loginForm) {
    User user = userService.register(loginForm);
    return Result.success(user);
}

6.2.3 地址管理接口
/*
查詢
*/
@GetMapping("/{userId}")
public Result findAllById(@PathVariable Long userId) {
    return Result.success(addressService.findAllById(userId));
}

@GetMapping
public Result findAll() {
    List<Address> list = addressService.list();
    return Result.success(list);
}


/*
保存
*/
@PostMapping
public Result save(@RequestBody Address address) {
    boolean b = addressService.saveOrUpdate(address);
    if(b){
        return Result.success();
    }else{
        return Result.error(Constants.CODE_500,"保存地址失敗");
    }

}

@PutMapping
public Result update(@RequestBody Address address) {
    addressService.updateById(address);
    return Result.success();
}

/*
刪除
*/
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
    addressService.removeById(id);
    return Result.success();
}
6.2.4 頭像管理接口
//上傳頭像
@PostMapping()
public Result uploadAvatar(@RequestParam MultipartFile file){
    System.out.println("uploadAvatar====>");
    String url = avatarService.upload(file);
    return Result.success(url);
}
//根據(jù)文件名下載文件,即文件的url
@GetMapping("/{fileName}")
public void download(@PathVariable String fileName, HttpServletResponse response){
    avatarService.download(fileName,response);
}
//根據(jù)文件id刪除文件
@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable int id){
    int i = avatarService.delete(id);
    if(i == 1){
        return Result.success();
    }else{
        return Result.error(Constants.CODE_500,"刪除失敗");
    }
}
//查詢
@GetMapping("/page")
public Result selectPage(@RequestParam int pageNum,
                         @RequestParam int pageSize){
    int index = (pageNum - 1) * pageSize;
    List<Avatar> avatars = avatarService.selectPage(index, pageSize);
    int total = avatarService.getTotal();
    HashMap<String, Object> map = new HashMap<>();
    map.put("records",avatars);
    map.put("total",total);
    return Result.success(map);
}

6.2.5 輪播圖管理接口
/*
查詢
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Long id) {
    return Result.success(carouselService.getById(id));
}

@GetMapping
public Result findAll() {
    List<Carousel> list = carouselService.getAllCarousel();
    return Result.success(list);
}

/*
保存
*/
@Authority(AuthorityType.requireAuthority)
@PostMapping
public Result save(@RequestBody Carousel carousel) {
    Good good = goodService.getById(carousel.getGoodId());
    if(good == null) {
        return Result.error("400", "商品id錯(cuò)誤,未查詢到商品id = " + carousel.getGoodId());
    }
    carouselService.saveOrUpdate(carousel);
    return Result.success();
}
@Authority(AuthorityType.requireAuthority)
@PutMapping
public Result update(@RequestBody Carousel carousel) {
    Good good = goodService.getById(carousel.getGoodId());
    if(good == null) {
        return Result.error("400", "商品id錯(cuò)誤,未查詢到商品id = " + carousel.getGoodId());
    }
    carouselService.updateById(carousel);
    return Result.success();
}

/*
刪除
*/
@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
    carouselService.removeById(id);
    return Result.success();
}

6.2.6 購物車管理接口
/*
查詢
*/
//根據(jù)購物車id查詢
@GetMapping("/{id}")
public Result selectById(@PathVariable Long id) {
    return Result.success(cartService.getById(id));
}
//查找所有用戶的購物車
@GetMapping
public Result findAll() {
    List<Cart> list = cartService.list();
    return Result.success(list);
}
//查找某個(gè)用戶的購物車
@GetMapping("/userid/{userId}")
public Result selectByUserId(@PathVariable Long userId) {
    return Result.success(cartService.selectByUserId(userId)) ;
}

/*
保存
*/
@PostMapping
public Result save(@RequestBody Cart cart) {
    cart.setCreateTime(DateUtil.now());
    cartService.saveOrUpdate(cart);
    return Result.success();
}

@PutMapping
public Result update(@RequestBody Cart cart) {
    cartService.updateById(cart);
    return Result.success();
}

/*
刪除
*/
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
    cartService.removeById(id);
    return Result.success();
}

6.2.7 分類管理接口
/*
查詢
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Long id) {
    return Result.success(categoryService.getById(id));
}

@GetMapping
public Result findAll() {
    List<Category> list = categoryService.list();
    return Result.success(list);
}

/*
保存
*/
@PostMapping
public Result save(@RequestBody Category category) {
    categoryService.saveOrUpdate(category);
    return Result.success();
}

/**
 *  新增下級(jí)分類 + 上下級(jí)分類關(guān)聯(lián)
 *
 * @param category 下級(jí)分類
 * @return 結(jié)果
 */
@PostMapping("/add")
public Map<String, Object> add(@RequestBody Category category) {
    categoryService.add(category);
    return BaseApi.success();
}

@Authority(AuthorityType.requireAuthority)
@PutMapping
public Result update(@RequestBody Category category) {
    categoryService.updateById(category);
    return Result.success();
}


/**
 * 刪除分類
 *
 * @param id id
 * @return 結(jié)果
 */
@Authority(AuthorityType.requireAuthority)
@GetMapping("/delete")
public Map<String, Object> delete(@RequestParam("id") Long id) {
    return categoryService.delete(id);
}

6.2.8 文件管理接口
//上傳文件
@PostMapping("/upload")
public Result upload(@RequestParam MultipartFile file){
    String url = fileService.upload(file);
    return Result.success(url);
}

//根據(jù)文件名下載文件,即文件的url
@GetMapping("/{fileName}")
public void download(@PathVariable String fileName, HttpServletResponse response){
    fileService.download(fileName,response);
}
//根據(jù)文件id刪除文件
@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/{id}")
public Result deleteById(@PathVariable int id){
    int i = fileService.fakeDelete(id);
    if(i == 1){
        return Result.success();
    }else{
        return Result.error(Constants.CODE_500,"刪除失敗");
    }
}
//批量刪除文件
@Authority(AuthorityType.requireAuthority)
@PostMapping("/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids){
    for (Integer id : ids) {
        int i = fileService.fakeDelete(id);
        if(i != 1){
            return Result.error(Constants.CODE_500,"刪除文件:"+fileService.getById(id).getName()+"時(shí)失敗,刪除已終止");
        }
    }
    return Result.success();
}

@Authority(AuthorityType.requireAuthority)
@GetMapping("/enable")
public Result changeEnable(@RequestParam int id,@RequestParam boolean enable){
    int i = fileService.changeEnable(id, enable);
    if(i == 0){
        return Result.error(Constants.CODE_500,"修改失敗");
    }else {
        return Result.success();
    }

}
//查詢
@GetMapping("/page")
public Result selectPage(@RequestParam int pageNum,
                       @RequestParam int pageSize,
                       @RequestParam(required = false) String fileName){

    IPage<MyFile> myFileIPage = fileService.selectPage(pageNum, pageSize, fileName);
    return Result.success(myFileIPage);
}

6.2.9 商品管理接口
@Authority(AuthorityType.requireAuthority)
@PostMapping
public Result save(@RequestBody Good good) {
    System.out.println(good);
    return Result.success(goodService.saveOrUpdateGood(good));
}

@Authority(AuthorityType.requireAuthority)
@PutMapping
public Result update(@RequestBody Good good) {
    goodService.update(good);
    return Result.success();
}

@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
    goodService.deleteGood(id);
    return Result.success();
}

@GetMapping("/{id}")
public Result findById(@PathVariable Long id) {
    return Result.success(goodService.getGoodById(id));
}

//獲取商品的規(guī)格信息
@GetMapping("/standard/{id}")
public Result getStandard(@PathVariable int id) {
    return Result.success(goodService.getStandard(id));
}
//查詢推薦商品,即recommend=1
@GetMapping
public Result findAll() {

    return Result.success(goodService.findFrontGoods());
}
//查詢銷量排行
@GetMapping("/rank")
public Result getSaleRank(@RequestParam int num){
    return Result.success(goodService.getSaleRank(num));
}
//保存商品的規(guī)格信息
@PostMapping("/standard")
public Result saveStandard(@RequestBody List<Standard> standards, @RequestParam int goodId) {
    //先刪除全部舊記錄
    standardService.deleteAll(goodId);
    //然后插入新記錄
    for (Standard standard : standards) {
        standard.setGoodId(goodId);
        if(!standardService.save(standard)){
            return Result.error(Constants.CODE_500,"保存失敗");
        }
    }
    return Result.success();
}

//刪除商品的規(guī)格信息
@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/standard")
public Result delStandard(@RequestBody Standard standard) {
    boolean delete = standardService.delete(standard);
    if(delete) {
        return Result.success();
    }else {
        return Result.error(Constants.CODE_500,"刪除失敗");
    }
}

//修改商品的推薦字段
@Authority(AuthorityType.requireAuthority)
@GetMapping("/recommend")
public Result setRecommend(@RequestParam Long id,@RequestParam Boolean isRecommend){
    return Result.success(goodService.setRecommend(id,isRecommend));
}

@GetMapping("/page")
public Result findPage(
                        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
                        @RequestParam(required = false, defaultValue = "10") Integer pageSize,
                        @RequestParam(required = false, defaultValue = "") String searchText,
                        @RequestParam(required = false) Integer categoryId) {

    return Result.success(goodService.findPage(pageNum,pageSize,searchText,categoryId));
}
@GetMapping("/fullPage")
public Result findFullPage(
        @RequestParam(required = false, defaultValue = "1") Integer pageNum,
        @RequestParam(required = false, defaultValue = "10") Integer pageSize,
        @RequestParam(required = false, defaultValue = "") String searchText,
        @RequestParam(required = false) Integer categoryId) {

    return Result.success(goodService.findFullPage(pageNum,pageSize,searchText,categoryId));
}

6.2.10 圖標(biāo)管理接口
/*
查詢
*/
@GetMapping("/{id}")
public Result findById(@PathVariable Long id) {
    return Result.success(iconService.getById(id));
}

@GetMapping
public Result findAll() {
    List<Icon> list = iconService.getIconCategoryMapList();
    return Result.success(list);
}


/*
保存
*/
@Authority(AuthorityType.requireAuthority)
@PostMapping
public Result save(@RequestBody Icon icon) {
    iconService.saveOrUpdate(icon);
    return Result.success();
}

@Authority(AuthorityType.requireAuthority)
@PutMapping
public Result update(@RequestBody Icon icon) {
    iconService.updateById(icon);
    return Result.success();
}

/*
 *刪除
 */
@Authority(AuthorityType.requireAuthority)
@GetMapping("/delete")
public Map<String, Object> delete(@RequestParam("id") Long id) {
    return iconService.deleteById(id);
}

6.2.11 收入分析管理接口
@GetMapping("/chart")
public Result getChart(){
    return Result.success(incomeService.getChart());
}
@GetMapping("/week")
public Result getWeekIncome(){
    return Result.success(incomeService.getWeekIncome());
}

@GetMapping("/month")
public Result getMonthIncome(){
    return Result.success(incomeService.getMonthIncome());
}

6.2.12 訂單管理接口
/*
查詢
*/
@GetMapping("/userid/{userid}")
public Result selectByUserId(@PathVariable int userid) {
    return Result.success(orderService.selectByUserId(userid));
}
@GetMapping("/orderNo/{orderNo}")
public Result selectByOrderNo(@PathVariable String orderNo) {
    return Result.success(orderService.selectByOrderNo(orderNo));
}
@GetMapping
public Result findAll() {
    List<Order> list = orderService.list();
    return Result.success(list);
}

/*
分頁查詢
*/
@GetMapping("/page")
public Result findPage(@RequestParam int pageNum,
                       @RequestParam int pageSize,
                       String orderNo,String state){
    IPage<Order> orderPage = new Page<>(pageNum,pageSize);
    QueryWrapper<Order> orderQueryWrapper = new QueryWrapper<>();
    orderQueryWrapper.ne("state","待付款");
    if(!Util.isEmptyString(state)){
        orderQueryWrapper.eq("state",state);
    }
    if(!Util.isEmptyString(orderNo)){
        orderQueryWrapper.like("order_no",orderNo);
    }

    orderQueryWrapper.orderByDesc("create_time");
    return Result.success(orderService.page(orderPage,orderQueryWrapper));
}
/*
保存
*/
@PostMapping
public Result save(@RequestBody Order order) {
    String orderNo = orderService.saveOrder(order);
    return Result.success(orderNo);

}
//支付訂單
@GetMapping("/paid/{orderNo}")
public Result payOrder(@PathVariable String orderNo){
    orderService.payOrder(orderNo);
    return Result.success();
}
//發(fā)貨
@Authority(AuthorityType.requireAuthority)
@GetMapping("/delivery/{orderNo}")
public Result delivery(@PathVariable String orderNo){
    orderService.delivery(orderNo);
    return Result.success();
}
//確認(rèn)收貨
@GetMapping("/received/{orderNo}")
public Result receiveOrder(@PathVariable String orderNo){
    if(orderService.receiveOrder(orderNo)){
        return Result.success();
    }
    else {
        return Result.error(Constants.CODE_500,"確認(rèn)收貨失敗");
    }
}
@PutMapping
public Result update(@RequestBody Order order) {
    orderService.updateById(order);
    return Result.success();
}

/*
刪除
*/
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
    orderService.removeById(id);
    return Result.success();
}
6.2.13 角色管理接口
@PostMapping("/role")
public Result getUserRole(){
    User currentUser = TokenUtils.getCurrentUser();
    return Result.success(currentUser.getRole());
}

6.2.14 用戶管理接口
@GetMapping("/userinfo/{username}")
public Result getUserInfoByName(@PathVariable String username) {
    User one = userService.getOne(username);
    return Result.success(one);
}

@GetMapping("/userid")
public long getUserId() {
    return TokenUtils.getCurrentUser().getId();
}

@GetMapping("/user/")
public Result findAll() {
    List<User> list = userService.list();
    return Result.success(list);
}

@PostMapping("/user")
public Result save(@RequestBody User user) {

    return userService.saveUpdate(user);
}

@Authority(AuthorityType.requireAuthority)
@DeleteMapping("/user/{id}")
public Result deleteById(@PathVariable int id) {
    boolean isSuccessful = userService.removeById(id);
    if (isSuccessful) {
        return Result.success();
    } else {
        return Result.error(Constants.CODE_500, "刪除失敗");
    }
}

@Authority(AuthorityType.requireAuthority)
@PostMapping("/user/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids) {
    boolean isSuccessful = userService.removeBatchByIds(ids);
    if (isSuccessful) {
        return Result.success();
    } else {
        return Result.error(Constants.CODE_500, "刪除失敗");
    }
}

@GetMapping("/user/page")
public Result findPage(@RequestParam int pageNum,
                       @RequestParam int pageSize,
                       String id,
                       String username,
                       String nickname) {
    IPage<User> userPage = new Page<>(pageNum, pageSize);
    QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
    if (!Util.isEmptyString(id)) {
        userQueryWrapper.like("id", id);
    }
    if (!Util.isEmptyString(username)) {
        userQueryWrapper.like("username", username);
    }
    if (!Util.isEmptyString(nickname)) {
        userQueryWrapper.like("nickname", nickname);
    }
    userQueryWrapper.orderByDesc("id");
    System.out.println("============" + TokenUtils.getCurrentUser());
    return Result.success(userService.page(userPage, userQueryWrapper));
}
/**
 * 重置密碼
 *
 * @param id          用戶id
 * @param newPassword 新密碼
 * @return 結(jié)果
 */
@GetMapping("/user/resetPassword")
public Result resetPassword(@RequestParam String id, @RequestParam String newPassword) {
    userService.resetPassword(id, newPassword);
    return Result.success();
}

7 性能
7.1 精度
要按照嚴(yán)格的數(shù)據(jù)格式輸入,不能輸入非法字符,否則系統(tǒng)不給予響應(yīng)進(jìn)行處理,查詢時(shí)要保證準(zhǔn)確率為100%,所有包含查詢關(guān)鍵字的書籍都應(yīng)能查到,不能有遺漏。

7.2 時(shí)間特性
(1)響應(yīng)時(shí)間:用戶任意操作后5秒內(nèi)系統(tǒng)給予反饋信息。
(2)更新處理時(shí)間:由系統(tǒng)運(yùn)行狀態(tài)來決定。
(3)數(shù)據(jù)的轉(zhuǎn)換和傳送時(shí)間:能夠在20秒內(nèi)完成。

7.3 靈活性
當(dāng)需求發(fā)生某些變化時(shí),該軟件的基本操作、數(shù)據(jù)結(jié)構(gòu)、運(yùn)行環(huán)境等等基本不會(huì)發(fā)生變化,只是對(duì)系統(tǒng)的數(shù)據(jù)庫的文件和記錄進(jìn)行處理,就可以滿足需求。
8 測(cè)試
功能點(diǎn)	測(cè)試用例	輸出結(jié)果
商品管理	添加商品成功	商品成功添加到商品列表
商品管理	編輯商品信息成功	商品信息更新成功
商品管理	刪除商品成功	商品成功從商品列表中刪除
商品管理	刪除商品失敗(該商品已被訂單引用)	提示該商品已被訂單引用,無法刪除
商品分類	添加分類成功	分類成功添加到分類列表
商品分類	添加分類失敗(分類名重復(fù))	提示分類名已存在
商品分類	編輯分類信息成功	分類信息更新成功
商品分類	編輯分類信息失?。ǚ诸惷貜?fù))	提示分類名已存在
商品分類	刪除分類成功	分類成功從分類列表中刪除
商品分類	刪除分類失?。ㄔ摲诸愊掠猩唐罚?提示該分類下有商品,無法刪除
訂單管理	查看訂單詳細(xì)信息	成功顯示訂單的詳細(xì)信息
用戶管理	添加管理員成功	管理員成功添加到管理員列表
用戶管理	添加管理員失?。ㄓ脩裘汛嬖冢?提示用戶名已存在
用戶管理	編輯管理員信息成功	管理員信息更新成功
用戶管理	編輯管理員信息失敗(用戶名已存在)	提示用戶名已存在
用戶管理	刪除管理員成功	管理員成功從管理員列表中刪除
用戶管理	刪除管理員失?。ㄔ摴芾韱T是唯一管理員)	提示該管理員是唯一管理員,無法刪除
用戶管理	添加普通買家用戶成功	用戶成功添加到用戶列表
用戶管理	添加普通買家用戶失?。ㄓ脩裘汛嬖冢?提示用戶名已存在
用戶管理	編輯普通買家用戶信息成功	用戶信息更新成功
用戶管理	刪除普通買家用戶成功	用戶成功從用戶列表中刪除
用戶管理	查看用戶購物車商品	成功顯示用戶購物車商品
購物車管理	添加商品到購物車成功	商品成功添加到購物車
購物車管理	添加商品到購物車失?。ㄔ撋唐芬呀?jīng)在購物車中)	提示該商品已經(jīng)在購物車中
購物車管理	從購物車刪除商品成功	商品成功從購物車中刪除
購物車管理	從購物車刪除商品失敗(該商品不在購物車中)	提示該商品不在購物車中

源碼論文百度云鏈接:
https://pan.baidu.com/s/13gLzEkDN_AGD4-oOUNUUsw?pwd=nzn9 
提取碼:nzn9 
鏈接失效可加我:cynm-2233獲取。

到了這里,關(guān)于【051】基于Vue、Springboot電商管理系統(tǒng)(含源碼、詳細(xì)論文、數(shù)據(jù)庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于springboot+vue的醫(yī)院信息管理系統(tǒng)

    基于springboot+vue的醫(yī)院信息管理系統(tǒng)

    ?全網(wǎng)粉絲20W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)? ?? 文末獲取項(xiàng)目下載方式 ?? 一、項(xiàng)目背景介紹: 醫(yī)院管理系統(tǒng)從整個(gè)社會(huì)實(shí)踐過程來看,對(duì)醫(yī)院進(jìn)行

    2024年02月04日
    瀏覽(20)
  • 基于Springboot+Vue實(shí)現(xiàn)的宿舍管理系統(tǒng)

    基于Springboot+Vue實(shí)現(xiàn)的宿舍管理系統(tǒng)

    前言 : ????在現(xiàn)代教育環(huán)境中,學(xué)生宿舍的管理顯得尤為重要,需要一套能夠快速響應(yīng)、靈活適應(yīng)的管理系統(tǒng)。我們的系統(tǒng)采用了SpringBoot作為后端框架,為您提供了穩(wěn)定可靠的服務(wù)端支持,確保系統(tǒng)在各種情況下都能夠高效運(yùn)行。同時(shí),借助Vue作為前端框架,我們?cè)O(shè)計(jì)了

    2024年02月21日
    瀏覽(18)
  • 基于SpringBoot Vue自習(xí)室管理系統(tǒng)

    基于SpringBoot Vue自習(xí)室管理系統(tǒng)

    大家好?!我是Dwzun。很高興你能來閱讀我,我會(huì)陸續(xù)更新Java后端、前端、數(shù)據(jù)庫、項(xiàng)目案例等相關(guān)知識(shí)點(diǎn)總結(jié),還為大家分享優(yōu)質(zhì)的實(shí)戰(zhàn)項(xiàng)目,本人在Java項(xiàng)目開發(fā)領(lǐng)域有多年的經(jīng)驗(yàn),陸續(xù)會(huì)更新更多優(yōu)質(zhì)的Java實(shí)戰(zhàn)項(xiàng)目,希望你能有所收獲,少走一些彎路,向著優(yōu)秀 程序員

    2024年01月20日
    瀏覽(25)
  • 【開源】基于Vue+SpringBoot的人事管理系統(tǒng)

    【開源】基于Vue+SpringBoot的人事管理系統(tǒng)

    基于JAVA+Vue+SpringBoot+MySQL的人事管理系統(tǒng),包含了職位模塊、職稱模塊、員工請(qǐng)假模塊、員工留言模塊、員工薪資模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,人事管理系統(tǒng)基于角色的訪問控

    2024年02月03日
    瀏覽(25)
  • 基于SpringBoot Vue博物館管理系統(tǒng)

    基于SpringBoot Vue博物館管理系統(tǒng)

    大家好?!我是Dwzun。很高興你能來閱讀我,我會(huì)陸續(xù)更新Java后端、前端、數(shù)據(jù)庫、項(xiàng)目案例等相關(guān)知識(shí)點(diǎn)總結(jié),還為大家分享優(yōu)質(zhì)的實(shí)戰(zhàn)項(xiàng)目,本人在Java項(xiàng)目開發(fā)領(lǐng)域有多年的經(jīng)驗(yàn),陸續(xù)會(huì)更新更多優(yōu)質(zhì)的Java實(shí)戰(zhàn)項(xiàng)目,希望你能有所收獲,少走一些彎路,向著優(yōu)秀 程序員

    2024年01月20日
    瀏覽(33)
  • 基于Springboot+Vue的計(jì)算機(jī)房管理系統(tǒng)

    基于Springboot+Vue的計(jì)算機(jī)房管理系統(tǒng)

    ?全網(wǎng)粉絲20W+,csdn特邀作者、博客專家、CSDN新星計(jì)劃導(dǎo)師、java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺(tái)優(yōu)質(zhì)作者、專注于Java技術(shù)領(lǐng)域和畢業(yè)項(xiàng)目實(shí)戰(zhàn)? ?? 文末獲取項(xiàng)目下載方式 ?? 一、項(xiàng)目背景介紹: 計(jì)算機(jī)房管理系統(tǒng)在現(xiàn)代教育機(jī)構(gòu)和企業(yè)中扮演著重

    2024年02月15日
    瀏覽(14)
  • N-130基于springboot,vue校園社團(tuán)管理系統(tǒng)

    N-130基于springboot,vue校園社團(tuán)管理系統(tǒng)

    開發(fā)工具:IDEA 服務(wù)器:Tomcat9.0, jdk1.8 項(xiàng)目構(gòu)建:maven 數(shù)據(jù)庫:mysql5.7 系統(tǒng)分前后臺(tái),項(xiàng)目采用前后端分離 前端技術(shù):vue+elementUI 服務(wù)端技術(shù):springboot+mybatis-plus 本系統(tǒng)分學(xué)生、社長(zhǎng)、管理員三個(gè)角色,功能如下: 一、學(xué)生(用戶)功能包括:? 1.登錄、注冊(cè)、首頁、修改密碼

    2024年02月08日
    瀏覽(26)
  • 【開源】基于Vue+SpringBoot的公司貨物訂單管理系統(tǒng)

    【開源】基于Vue+SpringBoot的公司貨物訂單管理系統(tǒng)

    基于JAVA+Vue+SpringBoot+MySQL的公司貨物訂單管理系統(tǒng)包含了客戶管理模塊、商品維護(hù)模塊、供應(yīng)商管理模塊和訂單管理模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,公司貨物訂單管理系統(tǒng)基于角

    2024年02月04日
    瀏覽(38)
  • 【開源】基于Vue+SpringBoot的CRM客戶管理系統(tǒng)

    【開源】基于Vue+SpringBoot的CRM客戶管理系統(tǒng)

    基于JAVA+Vue+SpringBoot+MySQL的CRM客戶管理系統(tǒng),包含了客戶管理、客戶分析、商品管理、客戶跟蹤、客戶消費(fèi)模塊,還包含系統(tǒng)自帶的用戶管理、部門管理、角色管理、菜單管理、日志管理、數(shù)據(jù)字典管理、文件管理、圖表展示等基礎(chǔ)模塊,CRM客戶管理系統(tǒng)基于角色的訪問控制,

    2024年02月02日
    瀏覽(28)
  • 【開源】基于Vue和SpringBoot的超市商品管理系統(tǒng)

    【開源】基于Vue和SpringBoot的超市商品管理系統(tǒng)

    項(xiàng)目編號(hào): S 001 ,文末獲取源碼。 color{red}{項(xiàng)目編號(hào):S001,文末獲取源碼。} 項(xiàng)目編號(hào): S 001 ,文末獲取源碼。 隨著社會(huì)的發(fā)展,人們的生活水平不斷地提高,超市遍布城市各個(gè)社區(qū),它們繁榮了社會(huì)經(jīng)濟(jì),也便利了人們的生活,是人們生活中不可缺少的一部份。顧客需要

    2024年02月01日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包