汽車(chē)零售銷(xiāo)售網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
汽車(chē)零售銷(xiāo)售網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
汽車(chē)零售銷(xiāo)售網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
汽車(chē)零售銷(xiāo)售網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
汽車(chē)零售銷(xiāo)售網(wǎng)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)i第5章系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)5.1系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)概要數(shù)據(jù)庫(kù)為什么要設(shè)計(jì)?設(shè)計(jì)是為了讓整個(gè)項(xiàng)目的結(jié)構(gòu)更具穩(wěn)定性,代碼能更輕松;數(shù)據(jù)庫(kù)的設(shè)計(jì)就像造一座房子,有水泥、鋼筋、磚,我們可以根據(jù)自己的喜歡隨意設(shè)計(jì)么?肯定也是能的,但是你能保證你的任意妄為不會(huì)給之后的使用帶來(lái)安全隱患么?搭建數(shù)據(jù)庫(kù)也是一樣,需要在之前經(jīng)過(guò)深思熟慮后的思考再動(dòng)手。利用數(shù)據(jù)庫(kù)設(shè)計(jì)可以將網(wǎng)站管理系統(tǒng)的作用充分發(fā)揮[5]。在利用數(shù)據(jù)庫(kù)設(shè)計(jì)對(duì)網(wǎng)站進(jìn)行管理的過(guò)程中,可提升各方面信息資源的準(zhǔn)確性,無(wú)論是各個(gè)行業(yè)領(lǐng)域的網(wǎng)站開(kāi)發(fā),都可利用數(shù)據(jù)庫(kù)設(shè)計(jì)提供的數(shù)據(jù)信息支持提升運(yùn)行水平。利用數(shù)據(jù)庫(kù)設(shè)計(jì)可以確保網(wǎng)站管理系統(tǒng)的運(yùn)行穩(wěn)定性、運(yùn)行環(huán)境安全性、運(yùn)行效率高效性[12]。當(dāng)數(shù)據(jù)庫(kù)里的數(shù)據(jù)比較復(fù)雜的時(shí)候,一個(gè)良好的數(shù)據(jù)設(shè)計(jì)就能節(jié)省數(shù)據(jù)的存儲(chǔ)空間;保證數(shù)據(jù)的完整性;更重要的是能使開(kāi)發(fā)程序的實(shí)現(xiàn)變得簡(jiǎn)單。SpringShop系統(tǒng)總共涉及數(shù)據(jù)表7張,分別是用戶(hù)表、商品表,商品類(lèi)別表,訂單表,系統(tǒng)用戶(hù)關(guān)系表,購(gòu)物車(chē)表,后臺(tái)員工留言表等?;咀龅矫總€(gè)模塊都有其對(duì)應(yīng)的管理表。每張表都設(shè)有主鍵,每個(gè)字段都經(jīng)過(guò)考慮選擇合適的字段類(lèi)型、字段長(zhǎng)度等,用來(lái)提高表與表之間的聯(lián)系和數(shù)據(jù)的關(guān)聯(lián)性。數(shù)據(jù)庫(kù)的設(shè)計(jì)可以通過(guò)ER圖來(lái)展現(xiàn)數(shù)據(jù)庫(kù)E-R圖:圖4-2SpringShop管理系統(tǒng)ER圖在一般的系統(tǒng)中,經(jīng)常會(huì)使用到兩表或多表間有密切聯(lián)系。通過(guò)主鍵、外鍵進(jìn)行表表相連。本系統(tǒng)有使用到“二級(jí)聯(lián)動(dòng)”設(shè)計(jì)。二級(jí)聯(lián)動(dòng)數(shù)據(jù)表的設(shè)計(jì):表4-3 商品管理表表4-4 商品類(lèi)別表這兩張表存在關(guān)聯(lián)關(guān)系,是屬于關(guān)聯(lián)表。一對(duì)多,即一個(gè)類(lèi)別可對(duì)應(yīng)多個(gè)商品。商品表的是主表,類(lèi)別表是外表。商品表的category_id外鍵對(duì)應(yīng)類(lèi)別表的主鍵id,從而是兩表間具有關(guān)聯(lián)條件。所謂二級(jí)聯(lián)動(dòng),就是選定某個(gè)具體的類(lèi)別,會(huì)得到該類(lèi)別下的所有商品。不同類(lèi)別擁有不相同的商品數(shù)據(jù)。聯(lián)動(dòng)的設(shè)計(jì)簡(jiǎn)化了用戶(hù)的選擇操作,不用從一大堆雜亂無(wú)章的商品中去尋找自己感興趣的商品,通過(guò)類(lèi)別篩選可以更快速的定位到自己想找的商品,這種設(shè)計(jì)使得數(shù)據(jù)庫(kù)結(jié)構(gòu)上更穩(wěn)定簡(jiǎn)單,從而提高數(shù)據(jù)庫(kù)的可維護(hù)性。5.2數(shù)據(jù)庫(kù)詳細(xì)設(shè)計(jì)5.2.1數(shù)據(jù)庫(kù)總體設(shè)計(jì)圖5-1 SpringShop系統(tǒng)數(shù)據(jù)庫(kù)-所有表信息1SpringShop系統(tǒng)數(shù)據(jù)庫(kù)-具體單表的信息匯總:數(shù)據(jù)表名功能字段數(shù)c_user用戶(hù)基本信息記錄表11c_admin系統(tǒng)管理員記錄表10c_category商品分類(lèi)表7c_part商品信息表12c_message留言信息表6c_cart購(gòu)物車(chē)表6c_order訂單信息表115.2.2數(shù)據(jù)庫(kù)表詳細(xì)設(shè)計(jì)上述說(shuō)明了該系統(tǒng)使用的所有表及其字段的數(shù)目,下面介紹具體每張表的結(jié)構(gòu)信息。管理員表建表信息:--

--Tablestructureforc_admin

--

--Tablestructureforc_admin

--

DROPTABLEIFEXISTS`c_admin`;

CREATETABLE`c_admin`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`username`varchar(50)NOTNULLDEFAULT'',

`email`varchar(60)CHARACTERSETutf8NOTNULLDEFAULT''COMMENT'賬號(hào)',

`password`varchar(255)CHARACTERSETutf8NOTNULLDEFAULT'',

`avatar`varchar(255)NOTNULLDEFAULT'',

`phone`char(15)NOTNULLDEFAULT'',

`status`tinyint(2)unsignedNOTNULLDEFAULT'1',

`last_login_time`int(10)unsignedNOTNULLDEFAULT'0',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8mb4COMMENT='管理員表';商品類(lèi)別表建表信息:--Tablestructureforc_category

--

DROPTABLEIFEXISTS`c_category`;

--Tablestructureforc_category

--

DROPTABLEIFEXISTS`c_category`;

CREATETABLE`c_category`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`pid`int(10)unsignedNOTNULLDEFAULT'1',

`category_name`varchar(50)CHARACTERSETutf8NOTNULLDEFAULT'',

`category_bg`varchar(255)NOTNULLDEFAULT'',

`status`tinyint(2)unsignedNOTNULLDEFAULT'1'COMMENT'1:正常;2:禁用',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=13DEFAULTCHARSET=utf8mb4COMMENT='零件類(lèi)型表';商品信息表建表信息:

--

--Tablestructureforc_part

--

DROPTABLEIFEXISTS`c_part`;--

--Tablestructureforc_part

--

DROPTABLEIFEXISTS`c_part`;

CREATETABLE`c_part`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`p_name`varchar(255)NOTNULLDEFAULT''COMMENT'零件名',

`p_pics`varchar(500)NOTNULLDEFAULT''COMMENT'商品配圖',

`p_detail`varchar(1000)NOTNULLDEFAULT''COMMENT'商品描述',

`category_id`int(10)unsignedNOTNULLDEFAULT'0'COMMENT'商品分類(lèi)id',

`num`int(10)unsignedNOTNULLDEFAULT'0',

`price`decimal(10,2)unsignedNOTNULLDEFAULT'0.00'COMMENT'單價(jià)',

`discount`varchar(20)NOTNULLDEFAULT''COMMENT'折扣后的價(jià)格',

`is_popular`tinyint(1)unsignedNOTNULLDEFAULT'0'COMMENT'1:推薦;0:不推薦',

`status`tinyint(2)unsignedNOTNULLDEFAULT'0'COMMENT'0:未上架;1:上架;2:下架',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=12DEFAULTCHARSET=utf8mb4COMMENT='零件表';用戶(hù)信息表建表信息:--

--Tablestructureforc_user

--

DROPTABLEIFEXISTS`c_user`;--

--Tablestructureforc_user

--

DROPTABLEIFEXISTS`c_user`;

CREATETABLE`c_user`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`uname`varchar(50)NOTNULLDEFAULT'',

`email`varchar(60)NOTNULLDEFAULT'',

`phone`varchar(100)NOTNULLDEFAULT'',

`code`char(6)NOTNULLDEFAULT'',

`avatar`varchar(255)NOTNULLDEFAULT'',

`password`varchar(255)NOTNULLDEFAULT'',

`address`varchar(255)NOTNULLDEFAULT'',

`status`tinyint(2)unsignedNOTNULLDEFAULT'1'COMMENT'1:正常;2:禁用',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=utf8mb4COMMENT='用戶(hù)表';購(gòu)物車(chē)表建表信息:--

--Tablestructureforc_cart

--

DROPTABLEIFEXISTS`c_cart`;--

--Tablestructureforc_cart

--

DROPTABLEIFEXISTS`c_cart`;

CREATETABLE`c_cart`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`part_id`int(10)unsignedNOTNULLDEFAULT'0',

`num`int(10)unsignedNOTNULLDEFAULT'1',

`user_id`int(10)unsignedNOTNULLDEFAULT'0',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=23DEFAULTCHARSET=utf8mb4;6、訂單表建表信息:--

--Tablestructureforc_order

--

--Tablestructureforc_order

--

DROPTABLEIFEXISTS`c_order`;

CREATETABLE`c_order`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`user_id`int(10)unsignedNOTNULLDEFAULT'0',

`part_id`int(10)unsignedNOTNULLDEFAULT'0',

`price`decimal(10,2)unsignedNOTNULLDEFAULT'0.00',

`nums`int(10)unsignedNOTNULLDEFAULT'0',

`discount`decimal(10,2)unsignedNOTNULLDEFAULT'0.00',

`total`decimal(10,2)unsignedNOTNULLDEFAULT'0.00',

`address`varchar(255)NOTNULLDEFAULT'',

`status`tinyint(1)unsignedNOTNULLDEFAULT'1'COMMENT'訂單狀態(tài)',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8mb4COMMENT='訂單表';留言表建表信息:--

--Tablestructureforc_message

--

DROPTABLEIFEXISTS`c_message`;--

--Tablestructureforc_message

--

DROPTABLEIFEXISTS`c_message`;

CREATETABLE`c_message`(

`id`int(10)unsignedNOTNULLAUTO_INCREMENT,

`user_id`int(10)unsignedNOTNULLDEFAULT'0',

`msg`varchar(255)NOTNULLDEFAULT'',

`status`tinyint(1)unsignedNOTNULLDEFAULT'1',

`created_at`int(10)unsignedNOTNULLDEFAULT'0',

`updated_at`int(10)unsignedNOTNULLDEFAULT'0',

PRIMARYKEY(`id`)

)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;5.2.3數(shù)據(jù)庫(kù)連接SpringShop系統(tǒng)是利用phpMyAdmin設(shè)計(jì)的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)設(shè)計(jì)好之后,當(dāng)我們使用數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),首先要與數(shù)據(jù)庫(kù)建立連接,進(jìn)行通信。在Yaf框架下,我們與數(shù)據(jù)庫(kù)建立連接也變得很簡(jiǎn)單。我們采用PDO擴(kuò)展,首先獲取數(shù)據(jù)庫(kù)配置,然后使用PDO進(jìn)行連接。數(shù)據(jù)庫(kù)的基本配置本系統(tǒng)放在Yaf框架下的配置文件Conf文件夾下的application.ini中。具體配置信息如下:圖5-9 數(shù)據(jù)庫(kù)配置信息其中配置信息表示:Type:SQL服務(wù)器類(lèi)型;Host:數(shù)據(jù)庫(kù)的名字或IP地址,因?yàn)楸緳C(jī)在本地部署的服務(wù)器,所以為localhost,或者本地環(huán)回地址;Port:MySQL服務(wù)器端口為3306;User:數(shù)據(jù)庫(kù)用戶(hù)名;Pwd:用戶(hù)密碼;Name:數(shù)據(jù)庫(kù)名字;Db_prefix:數(shù)據(jù)庫(kù)的表前綴。PDO連接數(shù)據(jù)庫(kù):圖5-10 PDO連接數(shù)據(jù)庫(kù)信息連接數(shù)據(jù)庫(kù)首先在application.ini文件里獲取數(shù)據(jù)庫(kù)的基本配置,通過(guò)Yaf的getConfig()方法即可獲取到application.ini文件所有的配置信息,從而獲取到數(shù)據(jù)庫(kù)配置信息;再通過(guò)PDO進(jìn)行連接通信。這里把數(shù)據(jù)庫(kù)連接封裝成connSql()函數(shù)。5.3網(wǎng)站界面設(shè)計(jì)SpringShop系統(tǒng)的界面都是本著簡(jiǎn)潔大方的風(fēng)格進(jìn)行設(shè)計(jì)的。前端界面主打黑白色調(diào),給人以干凈、大方的感受,后端主要走黑白灰的簡(jiǎn)潔工作風(fēng)路線(xiàn)。前后臺(tái)在色彩上的選擇都是以近似色的色階進(jìn)行選取,不會(huì)給人太突兀的感覺(jué),整個(gè)系統(tǒng)使用下來(lái)不會(huì)有太大的視覺(jué)疲勞的感受[3]。該系統(tǒng)已經(jīng)設(shè)計(jì)完畢,所有的功能都能正常使用,下面用一些系統(tǒng)的界面截圖進(jìn)行介紹。5.3.1前臺(tái)界面及介紹SpringShop前臺(tái)的登錄界面:圖5-11 系統(tǒng)前臺(tái)的登錄頁(yè)前臺(tái)登錄是通過(guò)郵箱加密碼的方式進(jìn)行登錄,如果是第一次登錄的用戶(hù),則默認(rèn)自動(dòng)注冊(cè)賬戶(hù)。非第一次登錄的用戶(hù)直接使用郵箱加設(shè)置的密碼進(jìn)行登錄,如果忘記密碼可以通過(guò)點(diǎn)擊忘記密碼按鈕,通過(guò)提供郵箱賬號(hào),系統(tǒng)會(huì)發(fā)一封帶有重置密碼鏈接的郵件到郵件賬號(hào)的郵箱,用戶(hù)通過(guò)重置密碼鏈接進(jìn)行密碼重設(shè)。SpringShop導(dǎo)航顯示:圖5-12 系統(tǒng)前臺(tái)的導(dǎo)航顯示頁(yè)SpringShop首頁(yè)界面顯示:圖5-13 系統(tǒng)前臺(tái)首頁(yè)-1系統(tǒng)首頁(yè)的首屏主要是展示一些大促銷(xiāo)或者想重點(diǎn)推的商品。圖5-14 系統(tǒng)前臺(tái)首頁(yè)-2系統(tǒng)首頁(yè)第二屏展示商品分類(lèi),及促銷(xiāo)商品信息。圖5-15 系統(tǒng)前臺(tái)首頁(yè)-3系統(tǒng)首頁(yè)第三屏,顯示熱門(mén)活動(dòng)商品及商城合作品牌的列表。SpringShop某個(gè)類(lèi)別下商品列表界面顯示:圖5-16 系統(tǒng)前臺(tái)某類(lèi)別下商品信息列表該界面左側(cè)顯示上方某一大類(lèi)別下的二級(jí)分類(lèi),中間顯示類(lèi)別下的商品列表。列表顯示商品名、商品簡(jiǎn)要的信息及商品原價(jià)和商品給的折扣價(jià)。該頁(yè)面的商品列表上方還統(tǒng)計(jì)了該類(lèi)別下的商品總數(shù)及可以根據(jù)商品上新時(shí)間、商品價(jià)格進(jìn)行商品顯示排序。列表下方是分頁(yè)處理,當(dāng)某個(gè)分類(lèi)下的商品一屏顯示不完,可以通過(guò)上下翻頁(yè)進(jìn)行展示。SpringShop某個(gè)具體商品的詳情頁(yè):圖5-17 商品詳情頁(yè)商品詳情頁(yè):主要以商品圖片、商品名、商品原價(jià)、及折扣后的價(jià)格還有商品的一些促銷(xiāo)口號(hào)信息為主。商品圖片根據(jù)后臺(tái)上傳的數(shù)量可以進(jìn)行自動(dòng)輪播滾動(dòng)顯示。還有一個(gè)添加商品到購(gòu)物車(chē)的功能,添加后的商品可以在購(gòu)物車(chē)?yán)镞M(jìn)行結(jié)算。SpringShop購(gòu)物車(chē)界面:圖5-18 購(gòu)物車(chē)界面購(gòu)物車(chē)界面:主要展示購(gòu)物車(chē)?yán)锷唐窋?shù)量、購(gòu)物車(chē)?yán)锏纳唐妨斜砑百?gòu)物車(chē)?yán)锏娜可唐房們r(jià)與可以享受的折扣信息。通過(guò)商品圖右上角的×按鈕,可以對(duì)購(gòu)物車(chē)?yán)锏纳唐愤M(jìn)行移除操作,移除后的商品不會(huì)進(jìn)行結(jié)算。通過(guò)點(diǎn)擊checkout結(jié)算按鈕,進(jìn)入到結(jié)算頁(yè)面,進(jìn)行商品的結(jié)算。SpringShop商品結(jié)算頁(yè):圖5-19 商品結(jié)算頁(yè)商品結(jié)算頁(yè)左側(cè)欄是結(jié)算地址的填寫(xiě)表單,右側(cè)是結(jié)算商品信息、商品價(jià)格及選擇付款方式還有一個(gè)下單按鈕,點(diǎn)擊placeorder按鈕及完成商品下單功能,完成下單之后購(gòu)物車(chē)會(huì)被請(qǐng)空。SpringShopContact頁(yè):圖5-20 Contact頁(yè)Contact頁(yè)面:主要是展示公司的建筑物位置信息及聯(lián)系方式。5.3.2系統(tǒng)后臺(tái)管理界面及介紹SpringShop后臺(tái)登錄頁(yè):圖5-21 后臺(tái)登錄頁(yè)publicfunctionisAdmin($params)

{

try{

publicfunctionisAdmin($params)

{

try{

$sql='selectid,passwordfromc_adminwhereemail=:emaillimit1';

$stmt=$this->pdo->prepare($sql);

$stmt->bindParam(':email',$params['email']);

$res=$stmt->execute();

if($res){

$data=$stmt->fetch(PDO::FETCH_ASSOC);

if($data){

if(password_verify($params['password'],$data['password'])){

returnarray(1,$data['id']);

}else{

returnarray(2,'密碼錯(cuò)誤');

}

}

}

returnarray(0,'用戶(hù)不存在');

}catch(Exception$e){

var_dump($e->getMessage());

returnfalse;

}

}圖5-22 用戶(hù)登錄處理過(guò)程 SpringShop后臺(tái)登錄失敗顯示:圖5-23 后臺(tái)登錄-非管理員賬戶(hù)顯示頁(yè)登錄失敗頁(yè):指使用了錯(cuò)誤的管理員賬戶(hù)登錄,會(huì)跳轉(zhuǎn)到錯(cuò)誤提示頁(yè),從而無(wú)法進(jìn)入系統(tǒng)。SpringShop后臺(tái)主頁(yè):圖5-24 后臺(tái)管理系統(tǒng)主頁(yè)該頁(yè)面主要是顯示一些匯總數(shù)據(jù):今日訂單總數(shù)、今日新用戶(hù)數(shù),總共的訂單數(shù)及總用戶(hù)數(shù);還有后臺(tái)管理員間的留言板功能;還有最新的訂單簡(jiǎn)要的數(shù)據(jù)展示。相關(guān)的后臺(tái)信息列表分頁(yè)顯示采用Ajax獲取數(shù)據(jù)的方式,以局部刷新的形式進(jìn)行展示動(dòng)態(tài)數(shù)據(jù)。具體實(shí)現(xiàn)代碼如下:$(document).on('click','.add-message',function(){

varmessage=$('.input-cont>.message-info').val();

$.ajax({

type:'post',

url:'/Home/Index/leaveMessage',

data:{

message:message

},

dataType:'json',

success:function(data){

if(data.code>0){

vardata=data.result;

varstr='<liclass="out">'+

'<imgclass="avatar"alt="留言者頭像"src="'+data["avatar"]+'"/>'+

'<divclass="message">'+

'<spanclass="arrow"></span>'+

'<ahref="javascript:;"class="name">'+data['username']+'</a>'+

'<spanclass="datetime">at'+data['created_at']+'</span>'+

'<spanclass="body">'+data['msg']+'</span>'

'</div>'+

'</li>';

$('.chats').append(str);

$('.input-cont>.message-info').val("");

}else{

alert(data.message);

}

},

error:function(){

alert('Errorwasoccured!');

}

});

});

});對(duì)返回的數(shù)據(jù)進(jìn)行了封裝,具體封裝類(lèi)response及其靜態(tài)方法代碼如下:<?php

classresponse{

constERRO_CODE=-100;

constSUCC_CODE=100;

constEXP_CODE=-600;

constNO_LOGIN=-500;

constLACK_PARAM=-200;

publicstaticfunctionresult($result=array(),$msg="",$code=self::SUCC_CODE)

{

$data=array('result'=>$result,'message'=>$msg,'code'=>$code);

header("Access-Control-Allow-Origin:*");

echojson_encode($data);

exit;

}

publicstaticfunctionerror($msg='操作失敗',$code=self::ERRO_CODE)

{

if(!is_numeric($code)){

return'';

}

$data=array('code'=>$code,'message'=>$msg);

header("Access-Control-Allow-Origin:*");

echojson_encode($data);

exit;

}

publicstaticfunctionsucc($msg='操作成功',$code=self::SUCC_CODE,$result=array()){

$res=array('code'=>$code,'message'=>$msg,'result'=>$result);

header("Access-Control-Allow-Origin:*");

echojson_encode($res);

exit;

}publicstaticfunctionerr_occur_exp($msg="系統(tǒng)執(zhí)行異常,請(qǐng)重試~",$code=self::EXP_CODE){

if(!is_numeric($code)){

return"";

}

header("Access-Control-Allow-Origin:*");

$data=array('code'=>$code,'message'=>$msg);

echojson_encode($data);

exit;

}

publicstaticfunctionerr_lack_param($msg="缺失參數(shù)~",$code=self::LACK_PARAM){

if(!is_numeric($code)){

return"";

}

header("Access-Control-Allow-Origin:*");

$data=array('message'=>$msg,'code'=>$code);

echojson_encode($data);

exit;

}

publicstaticfunctionerr_no_login($msg="用戶(hù)未登錄~",$code=self::NO_LOGIN){

if(!is_numeric($code)){

return"";

}

header("Access-Control-Allow-Origin:*");

$data=array('message'=>$msg,'code'=>$code);

echojson_encode($data);

exit;

}

}使用封裝的類(lèi),使得返回的數(shù)據(jù)有了更直觀的理解。后臺(tái)取數(shù)據(jù)使用PDO:publicfunctiongetPartList($params)

{

try{

$sql='selectp.id,p.p_name,p_pics,p_detail,p.num,p.price,c.category_name,p.is_popular,p.discount,p.status,p.updated_atfromc_partp,c_categorycwherep.category_id=c.id';

if(isset($params['p_name'])&&$params['p_name']){

$sql.="andp.p_namelike'%".$params['p_name']."%'";

}

if(isset($params['status'])&&$params['status']){

$sql.='andp.status='.$params['status'];

}

if(isset($params['category_id'])&&$params['category_id']){

$sql.='andp.category_id='.$params['category_id'];

}

$sql.='orderbyp.iddesc';

$stmt=$this->pdo->prepare($sql);

$res=$stmt->execute();

if($res){

$arr=$stmt->fetchAll(PDO::FETCH_ASSOC);

return$arr;

}

returnfalse;

}catch(Exception$e){

var_dump($e->getMessage());

returnfalse;

}

}商品信息頁(yè):圖5-25 商品信息頁(yè)該界面展示后臺(tái)管理員添加商品數(shù)據(jù)后的列表顯示,可支持?jǐn)?shù)據(jù)篩選。新增商品信息相關(guān)彈窗顯示效果圖:圖5-26 新增商品信息彈窗-1圖5-27 編輯商品信息彈窗-2商品描述字段使用的是簡(jiǎn)單輕巧的WangEditor插件,可以對(duì)商品描述的文字進(jìn)行樣式的控制。商品配圖可支持上傳多個(gè)圖片。圖5-28 商品分類(lèi)列表頁(yè)圖5-29 新增商品分類(lèi)彈窗SpringShop訂單管理模塊界面:圖5-30 訂單數(shù)據(jù)列表頁(yè)用戶(hù)管理頁(yè):圖5-31 用戶(hù)管理列表頁(yè)用戶(hù)管理頁(yè)主要是用戶(hù)的基本信息的管理。對(duì)用戶(hù)在公司的狀態(tài)對(duì)其賬號(hào)進(jìn)行錄入、編輯等操作。管理員用戶(hù)管理頁(yè):圖5-32 管理員用戶(hù)管理列表頁(yè)管理員信息修改頁(yè):圖5-33 管理員信息修改頁(yè)該頁(yè)面主要是補(bǔ)充管理員信息,可以修改頭像、聯(lián)系方式等第6章系統(tǒng)測(cè)試6.1測(cè)試目的一個(gè)系統(tǒng)要正式發(fā)布上線(xiàn),首先得經(jīng)過(guò)一系列的測(cè)試,才能給用戶(hù)使用,測(cè)試的目的必須確保系統(tǒng)的整體功能正常使用;確保整個(gè)的系統(tǒng)流程能走通同時(shí)也能達(dá)到期望的結(jié)果;作為一個(gè)商城網(wǎng)站還得確保系統(tǒng)安全性。通過(guò)測(cè)試,不斷完善系統(tǒng),在功能都實(shí)現(xiàn)的基礎(chǔ)上,不斷提升用戶(hù)體驗(yàn)。6.2測(cè)試方法 軟件測(cè)試是使用人工或自動(dòng)的手段來(lái)運(yùn)行或測(cè)定某個(gè)軟件系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿(mǎn)足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。

從是否關(guān)心軟件內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)的角度劃分,測(cè)試方法主要有白盒測(cè)試和黑盒測(cè)試。白盒測(cè)試方法主要有代碼檢査法、靜態(tài)結(jié)構(gòu)分析法、靜態(tài)質(zhì)量度量法、邏輯覆蓋法、基本路徑測(cè)試法、域測(cè)試、符號(hào)測(cè)試、路徑覆蓋和程序變異。黑盒測(cè)試方法主要包括等價(jià)類(lèi)劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法、判定表驅(qū)動(dòng)法、正交試驗(yàn)設(shè)計(jì)法、功能圖法、場(chǎng)景法等。6.3測(cè)試原則木桶原理:在測(cè)試的過(guò)程中,遇到再小的問(wèn)題,也不可得過(guò)且過(guò),應(yīng)該正視每一個(gè)問(wèn)題,不然系統(tǒng)有可能會(huì)因這個(gè)小問(wèn)題而產(chǎn)生不可估量的后果。Bug的80-20原則:一般情況下,在分析、設(shè)計(jì)、實(shí)現(xiàn)系統(tǒng)的過(guò)程中能夠發(fā)現(xiàn)和避免80%的Bug,而專(zhuān)門(mén)的系統(tǒng)測(cè)試過(guò)程中又能找出其余Bug中的80%,最后的5%的Bug可能只有在用戶(hù)的大范圍、長(zhǎng)時(shí)間使用后才會(huì)顯現(xiàn)出來(lái)。因?yàn)闇y(cè)試只能夠保證盡可能多地發(fā)現(xiàn)錯(cuò)誤,無(wú)法保證能夠發(fā)現(xiàn)所有的錯(cuò)誤。6.4功能測(cè)試本次測(cè)試主要針對(duì)系統(tǒng)可能出現(xiàn)的bug選取一系列合適的用例測(cè)試。部分系統(tǒng)測(cè)試結(jié)果展示如下:網(wǎng)站后臺(tái)管理員登錄功能測(cè)試:測(cè)試賬號(hào):正常賬號(hào):xyq@正常密碼:123123測(cè)試一:賬號(hào)正常,密碼錯(cuò)誤的情況下:xyq@密碼:123321登錄賬號(hào)密碼錯(cuò)誤時(shí)顯示:圖6-1 功能測(cè)試

溫馨提示

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

評(píng)論

0/150

提交評(píng)論