版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 基于微信平臺的校園微快遞系統(tǒng)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 軟件工程
2、 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p> 基于微信平臺的校園微快遞系統(tǒng)</p>
3、<p> 摘 要:近年來,隨著微信的普及,越來越多的人開始使用微信。校園商品、服務(wù)交易仍采用面對面線下交易方式,這種方式不但不靈活,而且不符合當(dāng)前這個(gè)信息化的時(shí)代。為了讓同學(xué)們更加快速,便捷的得到想要的商品、服務(wù)及快遞。設(shè)計(jì)并實(shí)現(xiàn)了“基于微信平臺的校園微快遞系統(tǒng)”,學(xué)生們可以通過微信訂購自己需要的商品、服務(wù)及微快遞,使得大學(xué)生活質(zhì)量有了一定的提高,讓大學(xué)校園邁入了一個(gè)新的臺階。</p><p>
4、 本設(shè)計(jì)說明書根據(jù)校園商品、服務(wù)及微快遞訂購的實(shí)際情況,詳細(xì)介紹了校園微快遞系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)流程。系統(tǒng)運(yùn)用軟件工程原理和開發(fā)方法,通過可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等步驟進(jìn)行分析和設(shè)計(jì),并采用Spring框架、JQuery以及MySQL 5.0等技術(shù)設(shè)計(jì)與實(shí)現(xiàn)。同時(shí),采用Eclipse作為開發(fā)工具進(jìn)行開發(fā)。系統(tǒng)能夠滿足商品、服務(wù)交易的基本要求,包括用戶管理、商店管理、商品、服務(wù)及快遞O2O交易的快捷化和信息化管理等模塊。<
5、;/p><p> 關(guān)鍵詞:微信開發(fā),Spring,AJAX,MySQL,HTML5</p><p> The campus micro express delivery system based on wechat platform </p><p> Abstract: In recent years, with the popularity of wechat
6、, more and more people began to use the wechat. Campus goods, services trade is still used at face line transactions, this approach is not only inflexible, but also does not meet the current era of information technology
7、. To make students more quickly and easily obtain goods, services and courier want. Design and realization of the "wechat platform based on campus micro express delivery system", students can order goods, servi
8、ce and micro e</p><p> The design specification based on the campus of goods, services and micro express delivery order, detailing the campus micro express delivery system design and implementation process.
9、System uses software engineering principles,development methods, through feasibility studies, requirements analysis, preliminary design, detailed design, analysis and design steps and use Spring framework, technical desi
10、gn, implementation of JQuery, MySQL 5.0 and so on. At the same time, the use of Eclipse as a deve</p><p> Key words: Wechat Development,Spring,AJAX,MySQL,HTML5</p><p><b> 目錄</b><
11、;/p><p><b> 引 言1</b></p><p> 第1章概 述2</p><p> 1.1 系統(tǒng)開發(fā)背景2</p><p> 1.2 系統(tǒng)研究目標(biāo)和內(nèi)容2</p><p> 第2章 可行性研究3</p><p> 2.1 技術(shù)可行性
12、3</p><p> 2.1.1 開發(fā)技術(shù)3</p><p> 2.1.2 開發(fā)環(huán)境5</p><p> 2.2 操作可行性5</p><p> 第3章 需求分析6</p><p> 3.1 功能概況描述6</p><p> 3.2 功能用例圖及活動(dòng)圖7<
13、/p><p> 第4章 概要設(shè)計(jì)15</p><p> 4.1 系統(tǒng)類圖與順序圖15</p><p> 4.2 數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)20</p><p> 4.2.1 基本實(shí)體表20</p><p> 4.2.2 數(shù)據(jù)庫表設(shè)計(jì)20</p><p> 第5章 詳細(xì)設(shè)計(jì)2
14、2</p><p> 5.1 開發(fā)準(zhǔn)備22</p><p> 5.2 用戶管理22</p><p> 5.2.1 商家注冊22</p><p> 5.2.2 普通用戶注冊24</p><p> 5.2.3 管理員,商家登錄25</p><p> 5.2.4 普通用戶登錄
15、26</p><p> 5.2.5 用戶管理28</p><p> 5.2.6 商家個(gè)人信息29</p><p> 5.2.7 普通用戶個(gè)人信息30</p><p> 5.3 商店信息管理32</p><p> 5.3.1 商店管理32</p><p> 5.3.2 商
16、店列表35</p><p> 5.4 商品信息管理36</p><p> 5.4.1 商品管理36</p><p> 5.4.2 商品列表38</p><p> 5.5 訂單信息管理39</p><p> 5.5.1 用戶訂單管理39</p><p> 5.6 校園
17、微快遞管理42</p><p> 5.6.1 快遞跑腿下單42</p><p> 5.6.2 快遞跑單查詢43</p><p> 5.6.3 快遞跑單簽收44</p><p> 第6章 系統(tǒng)測試與運(yùn)行46</p><p> 6.1 系統(tǒng)測試描述46</p><p>
18、6.2 用戶注冊測試46</p><p> 6.2.1 測試目的46</p><p> 6.2.2 測試過程及結(jié)果46</p><p> 6.3 用戶登錄測試47</p><p> 6.3.1 測試目的47</p><p> 6.3.2 測試過程及結(jié)果47</p><p&g
19、t; 6.4 創(chuàng)建商店測試48</p><p> 6.4.1 測試目的48</p><p> 6.4.2 測試過程及結(jié)果48</p><p> 6.5 微快遞跑單簽收測試48</p><p> 6.5.1 測試目的48</p><p> 6.5.2 測試過程及結(jié)果48</p>
20、<p><b> 結(jié)束語50</b></p><p><b> 參考文獻(xiàn)51</b></p><p><b> 致 謝52</b></p><p><b> 引 言</b></p><p> 使用微信進(jìn)行商品、服務(wù)及微快遞交易,
21、使得大學(xué)生活質(zhì)量提高,商家與用戶也能夠查詢最新商品信息及服務(wù)等。使得整個(gè)服務(wù)流程更加系統(tǒng)、規(guī)范,在提高大學(xué)生活質(zhì)量的同時(shí),也讓大學(xué)校園邁入了一個(gè)新的臺階。</p><p> 因此,開發(fā)一套結(jié)合線下商品、服務(wù)交易的校園微快遞系統(tǒng)是絕對必要的。本系統(tǒng)可以改變傳統(tǒng)的校園商品、服務(wù)及微快遞的交易方式,減少大量的交易成本,并可以更加方便的管理訂單。本系統(tǒng)設(shè)計(jì)開發(fā)使用B/S結(jié)構(gòu),利用Eclipse以及MySQL數(shù)據(jù)庫完成設(shè)
22、計(jì)開發(fā),部分頁面利用AJAX技術(shù)完成數(shù)據(jù)交互,利用SHA1加密技術(shù)保證用戶數(shù)據(jù)的安全。</p><p> 至此,本設(shè)計(jì)說明書著重介紹了校園微快遞系統(tǒng)的分析與設(shè)計(jì)過程,共分為6章。第1章概述,主要介紹了校園微快遞系統(tǒng)的開發(fā)背景、研究目標(biāo)和內(nèi)容;第2章可行性研究,主要介紹了系統(tǒng)技術(shù)和操作可行性;第3章需求分析,主要介紹了通過分析校園微快遞系統(tǒng)的功能用例圖、活動(dòng)圖等面向?qū)ο竽P停坏?章概要設(shè)計(jì),包括系統(tǒng)的類圖、順序圖
23、以及MySQL數(shù)據(jù)庫設(shè)計(jì)等內(nèi)容;第5章詳細(xì)設(shè)計(jì),主要介紹開發(fā)前的準(zhǔn)備以及各個(gè)功能的詳細(xì)設(shè)計(jì)過程;第6章系統(tǒng)測試運(yùn)行,主要介紹通過對本系統(tǒng)的運(yùn)行進(jìn)行測試,查看是否存在系統(tǒng)漏洞。</p><p><b> 概 述</b></p><p> 1.1 系統(tǒng)開發(fā)背景</p><p> 目前校園商品、服務(wù)交易仍采用面對面線下交易方式,這種方式不但
24、不靈活,而且不符合當(dāng)前這個(gè)信息化的時(shí)代。唯有結(jié)合線上的交易,采用O2O模式進(jìn)行交易,才能變得更加便捷可靠安全,同時(shí)也提高了同學(xué)們的生活質(zhì)量,因此開發(fā)校園微快遞系統(tǒng)顯得尤為重要。</p><p> 1.2 系統(tǒng)研究目標(biāo)和內(nèi)容</p><p> 面對當(dāng)前校園商品、服務(wù)交易的現(xiàn)狀,迫切需要一個(gè)信息化的校園微快遞系統(tǒng)來為大學(xué)生提供方便的服務(wù)。所以,開發(fā)該校園微快遞系統(tǒng)是滿足市場需求的。本系統(tǒng)
25、建立完善的業(yè)務(wù)流程和管理流程,用戶可以通過本系統(tǒng)方便的進(jìn)行交易,從而實(shí)現(xiàn)交易的便捷化。</p><p> 本系統(tǒng)采用B/S結(jié)構(gòu),基于其可管理性、易于部署、便于維護(hù)以及擴(kuò)展性等眾多優(yōu)點(diǎn),并且充分發(fā)揮該結(jié)構(gòu)的跨平臺能力,多層結(jié)構(gòu)的升級和擴(kuò)展的優(yōu)勢。因此,能夠很好地完成系統(tǒng)所要求的全部功能基本的要求。包括:用戶管理、商店管理、商品管理、下單、簽收訂單等功能。</p><p> 第2章 可行
26、性研究</p><p> 2.1 技術(shù)可行性</p><p> 2.1.1 開發(fā)技術(shù)</p><p><b> 微信開發(fā)</b></p><p> 微信[1]提供給開發(fā)者強(qiáng)大的API,使得微信開發(fā)者能夠通過微信公眾平臺很好的開發(fā)出優(yōu)秀訂閱號的公眾號及企業(yè)號,微信提供給開發(fā)者以下開發(fā)接口:</p>
27、<p> 接收和發(fā)送消息(包含文本消息、圖片消息、語音消息、視頻消息、小視頻消息、地理位置消息、鏈接消息、圖文消息)</p><p><b> 用戶管理</b></p><p><b> 自定義菜單管理</b></p><p><b> 數(shù)據(jù)統(tǒng)計(jì)接口</b></p>
28、<p><b> 微信JS-SDK</b></p><p><b> 微信小店接口</b></p><p><b> 微信卡劵接口</b></p><p><b> 微信智能接口等</b></p><p> 微信開發(fā)支持多種語言,包含J
29、ava、PHP、ASP.NET、Ruby、Python、Note.js等,本系統(tǒng)采用的Java語言進(jìn)行開發(fā)。</p><p><b> AJAX</b></p><p> AJAX[2](Asynchronous JavaScript And XML)是異步JavaScript和XML。AJAX是通過XmlHttpRequest對象完
30、成對服務(wù)器端的異步請求,頁面在不用重新加載的情況下,實(shí)現(xiàn)動(dòng)態(tài)刷新,進(jìn)而實(shí)現(xiàn)網(wǎng)頁的動(dòng)態(tài)化。在設(shè)計(jì)很多的動(dòng)態(tài)網(wǎng)頁時(shí),常使用AJAX來完成。</p><p><b> MVC 模式</b></p><p> MVC[3]即Model-View-Controller的縮寫,MVC是目前常用的軟件設(shè)計(jì)模式。MVC是將應(yīng)用程序關(guān)鍵功能和數(shù)據(jù)顯示分離開來,最后使用控制器確保前兩
31、部分的同步。使得數(shù)據(jù)操作和用戶界面可以單獨(dú)開發(fā),增強(qiáng)了程序的可維護(hù)性,減少開發(fā)周期。</p><p><b> HTML5</b></p><p> HTML 5[4]增強(qiáng)了Web 網(wǎng)頁的表現(xiàn)能力。并添加本地?cái)?shù)據(jù)庫等Web應(yīng)用的功能。HTML5通常是指HTML、CSS和JavaScript的整合。Firefox(火狐瀏覽器),IE9+版本,Chrome(谷歌瀏覽器
32、),Safari,Opera等瀏覽器都能夠?qū)TML5有很好的支持。</p><p><b> CSS</b></p><p> 級聯(lián)樣式表[5](Cascading Style Sheet)簡稱“CSS”,通常又稱為“風(fēng)格樣式表(Style Sheet)”,它是用來進(jìn)行網(wǎng)頁風(fēng)格設(shè)計(jì)的。通過設(shè)立樣式表,可以統(tǒng)一地控制HTML中各標(biāo)志的顯示屬性。級聯(lián)樣式表可以使人更
33、能有效地控制網(wǎng)頁外觀。</p><p> JavaScript</p><p> JavaScript[6]是一種很強(qiáng)大的網(wǎng)絡(luò)腳本語言,它具有相對的安全性。HTML網(wǎng)頁上添加動(dòng)態(tài)功能一般都使用它來實(shí)現(xiàn)。JavaScript 被數(shù)百萬計(jì)的網(wǎng)頁用來改進(jìn)設(shè)計(jì)、驗(yàn)證數(shù)據(jù)、動(dòng)態(tài)效果等功能。JavaScript同時(shí)也是一種常用于客戶端Web開發(fā)的腳本語言,各大瀏覽器對它都有較好的支持。</p
34、><p><b> JSON </b></p><p> JSON[7]一是種比較輕量的數(shù)據(jù)交換格式,因?yàn)樗S糜趥鬟f相對較少的數(shù)據(jù)。JSON與XML類似,對于 AJAX 應(yīng)用程序來說,JSON 比 XML 更快更易使用,一般常用eval()處理 JSON 字符串。JSON 可以將 JavaScript 中一組數(shù)據(jù)轉(zhuǎn)換為字符串,進(jìn)而在函數(shù)之間進(jìn)行快遞的傳遞數(shù)據(jù)。<
35、;/p><p><b> JQuery</b></p><p> JQuery[8]是一個(gè)優(yōu)秀的輕量級JavaScript 庫。它不僅兼容CSS3,還在各種瀏覽器中運(yùn)行穩(wěn)定。通過使用JQuery,可以方便的實(shí)現(xiàn)動(dòng)畫效果和AJAX數(shù)據(jù)交互等功能,JQuery在許多應(yīng)用中被廣泛的使用,網(wǎng)上有許多的案例和文檔資料,其學(xué)習(xí)門檻較低,很容易入門,系統(tǒng)開發(fā)者可以使用JQuery提
36、供的大量開發(fā)接口來完成自己的系統(tǒng)設(shè)計(jì)。</p><p> 2.1.2 開發(fā)環(huán)境</p><p> 本系統(tǒng)是在Windows 7操作系統(tǒng)下,使用微信對話框和內(nèi)置瀏覽器完成前臺顯示,后臺使用Firefox瀏覽器完成前臺顯示,系統(tǒng)運(yùn)行在Tomcat 7.0服務(wù)器上,使用MySQL作為數(shù)據(jù)庫搭建環(huán)境。本系統(tǒng)使用MVC開發(fā)模式,控制,視圖和邏輯層相互關(guān)聯(lián),但又相互獨(dú)立。</p>
37、<p> 2.2 操作可行性</p><p> 本系統(tǒng)嚴(yán)格按照校園商品、服務(wù)交易的正常流程開發(fā)。管理人員能夠快速上手,并通過統(tǒng)計(jì)直觀查看系統(tǒng)情況。在投入使用前,會(huì)由開發(fā)并能熟練操作本系統(tǒng)的工程人員對用戶群進(jìn)行專業(yè)系統(tǒng)的培訓(xùn)。在開發(fā)設(shè)計(jì)程序的過程中,使用直觀的界面和控件的文字,使得用戶充分理解系統(tǒng)功能,所以本系統(tǒng)的操作是完全可行的。</p><p><b> 第3
38、章 需求分析</b></p><p> 3.1 功能概況描述</p><p> 校園微快遞系統(tǒng)的主要任務(wù)是:使用權(quán)限來劃分和管理各個(gè)人員的功能,主要完成的是系統(tǒng)的規(guī)劃與功能、性能分析與實(shí)現(xiàn)、的劃分以及各個(gè)實(shí)現(xiàn)的功能等。校園微快遞系統(tǒng)主要功能需求:</p><p><b> 一、用戶信息管理</b></p>&l
39、t;p> 主要包括四個(gè)子功能:</p><p> 1.用戶信息添加:管理員通過添加用戶功能,填寫新用戶的姓名、密碼等完成新用戶的添加。</p><p> 2.用戶信息查詢:管理員通過輸入關(guān)鍵字對用戶信息進(jìn)行查詢。</p><p> 3.用戶信息修改:管理員通過修改功能對某個(gè)用戶的基本信息進(jìn)行修改。</p><p> 4.用戶信
40、息刪除:管理員通過刪除功能對已經(jīng)注冊的用戶進(jìn)行刪除。</p><p><b> 二.商店管理</b></p><p> 主要包括五個(gè)子功能:</p><p> 1.商店信息添加:管理員或商家通過添加功能,輸入商店基本信息,即可完成商店的添加。</p><p> 2.商店信息查詢:管理員或商家通過查詢功能,輸入關(guān)鍵
41、字對商店信息進(jìn)行查詢。</p><p> 3. 商店信息修改:管理員或商家通過修改功能,輸入商店信息進(jìn)行修改。</p><p> 4.商店信息審核:管理員通過審核功能,查看商店信息后,進(jìn)行審核。</p><p> 5.商店信息刪除:管理員或商家通過刪除功能對已經(jīng)添加的商店進(jìn)行刪除。</p><p><b> 商品管理<
42、/b></p><p> 主要包括五個(gè)子功能:</p><p> 1.商品信息添加:管理員或商家通過添加功能,輸入商品基本信息,完成商品的添加。</p><p> 2.商品信息查詢:管理員或商家通過查詢功能,輸入關(guān)鍵字對商品信息進(jìn)行查詢。</p><p> 3. 商品信息修改:管理員或商家通過修改功能,輸入商品信息進(jìn)行修改。&l
43、t;/p><p> 4.商品信息審核:管理員通過審核功能,查看商品信息后,進(jìn)行審核。</p><p> 5.商品信息刪除:管理員或商家通過刪除功能對已經(jīng)添加的商品進(jìn)行刪除。</p><p><b> 四、訂單管理</b></p><p> 主要包括四個(gè)子功能:</p><p> 1.訂單創(chuàng)建
44、:用戶根據(jù)自己的需求,選擇自己喜歡的商店、服務(wù)等,通過訂單創(chuàng)建功能進(jìn)行下單。</p><p> 2.訂單查詢:用戶根據(jù)自己的ID查詢自己已下訂單的狀態(tài)信息。</p><p> 3.訂單取消:用戶根據(jù)自己的需要,可在下單后對自己不想訂購的商品、服務(wù)或微快遞進(jìn)行取消。</p><p> 4. 訂單簽收:用戶根據(jù)自己是否收到商品,或,可以對訂單進(jìn)行簽收操作。<
45、/p><p> 3.2 功能用例圖及活動(dòng)圖</p><p><b> 1.總用例圖</b></p><p> 根據(jù)需求分析可以得出以下總的系統(tǒng)用例圖。</p><p> 圖 3-1 系統(tǒng)總用例圖</p><p><b> 子用例圖</b></p><
46、;p> 圖 3-2 用戶管理用例圖</p><p> 對應(yīng)用戶管理活動(dòng)圖如3-3所示。在用戶管理功能中,管理員可以選擇執(zhí)行四種操作,分別是:用戶添加,用戶查詢,用戶修改,用戶刪除。用戶注冊或綁定之后,管理員可以對用戶進(jìn)行查詢,修改,及刪除操作。同時(shí),用戶本身也可以對自已的個(gè)人信息進(jìn)行查看與修改操作。</p><p> 圖3-3用戶管理活動(dòng)圖</p><p&g
47、t; 圖 3-4 商店管理用例圖</p><p> 對應(yīng)商店管理活動(dòng)圖如3-5所示。在商店創(chuàng)建功能中,商家可以執(zhí)行創(chuàng)建商店。在創(chuàng)建商店之后,商家可以對商店進(jìn)行查看,修改,及刪除操作。在完成創(chuàng)建之后,商店需要通過管理員的審核方可顯示在微信端“校園微商城”頁面中。</p><p> 圖3-5商店管理活動(dòng)圖</p><p> 圖 3-6 商店審核用例圖</p
48、><p> 對應(yīng)商店審核活動(dòng)圖如3-7所示。在商店審核功能中,商家在完成商店創(chuàng)建后,管理員便可以查詢到該商店的信息,判定商店符合要求后,管理員就可以對商店進(jìn)行審核,商店一旦審核之后,就會(huì)顯示在“校園微商城”的頁面當(dāng)中了。若該商店不符合要求,則不進(jìn)行審核,當(dāng)然管理員也可以對商店信息進(jìn)行刪除操作。</p><p> 圖3-7商店審核活動(dòng)圖</p><p> 圖 3-8
49、 商品創(chuàng)建用例圖</p><p> 對應(yīng)商品創(chuàng)建活動(dòng)圖如3-9所示。在商品創(chuàng)建功能中,商家可以執(zhí)行商品創(chuàng)建。在創(chuàng)建商品之后,商家可以對商品進(jìn)行修改與刪除操作。在完成創(chuàng)建之后,商品需要通過管理員的審核方可顯示在“校園微商城”頁面中。</p><p> 圖3-9商品管理活動(dòng)圖</p><p> 圖 3-10 商品審核用例圖</p><p>
50、 對應(yīng)商品審核活動(dòng)圖如3-11所示。在商品審核功能中,商家在完成商品創(chuàng)建后,管理員便可以查詢到該商品,判定符合要求后,管理員就可以對商品進(jìn)行審核,商品一旦審核之后,就會(huì)顯示在“校園微商城”的頁面當(dāng)中了。若該商品不符合要求,則不進(jìn)行審核,當(dāng)然管理員也可以對商品信息進(jìn)行刪除操作。</p><p> 圖3-11商品管理活動(dòng)圖</p><p> 圖 3-12 訂單管理用例圖</p>
51、;<p> 對應(yīng)訂單創(chuàng)建活動(dòng)圖如3-13所示。在訂單管理功能中,用戶可以選擇執(zhí)行四種操作,分別是:創(chuàng)建訂單,查詢訂單,取消訂單,簽收訂單。在創(chuàng)建訂單之后,用戶可以對訂單進(jìn)行查詢,取消,及簽收操作。</p><p> 圖3-13訂單管理活動(dòng)圖</p><p><b> 第4章 概要設(shè)計(jì)</b></p><p> 4.1系統(tǒng)類
52、圖與順序圖</p><p><b> 1.系統(tǒng)登陸</b></p><p> 圖4-1 系統(tǒng)登陸類圖</p><p> 由4-1靜態(tài)類圖可以發(fā)現(xiàn),登陸過程中有兩個(gè)類進(jìn)行交互,分別是LoginController類和AccountService類, 進(jìn)一步可以得到順序圖,明確類與類之間的交互。如圖4-2所示。</p><
53、p> 圖4-2 登陸順序圖</p><p><b> 2.用戶信息管理</b></p><p> 圖4-3 用戶信息管理功能類圖</p><p> 由4-3靜態(tài)類圖可以發(fā)現(xiàn),用戶管理過程中有兩個(gè)類進(jìn)行交互,分別是UserController,User類, 進(jìn)一步可以得到順序圖,明確類與類之間的交互。如圖4-4所示。</p&g
54、t;<p> 圖4-4 用戶信息管理順序圖</p><p><b> 3.商店管理功能</b></p><p> 圖4-5 商店管理類圖</p><p> 由4-5靜態(tài)類圖可以發(fā)現(xiàn),商店管理過程中有三個(gè)類進(jìn)行交互,分別是BussinessController類,User類,Bussiness類,進(jìn)一步可以得到順序圖,明確類
55、與類之間的交互。如圖4-6所示。</p><p> 圖4-6 商店管理順序圖</p><p><b> 4.商品管理功能</b></p><p> 圖4-7 商品管理類圖</p><p> 由4-7靜態(tài)類圖可以發(fā)現(xiàn),商品管理過程中有兩個(gè)類進(jìn)行交互,分別是ProductController類,User類和Produ
56、ct類, 進(jìn)一步可以得到順序圖,明確類與類之間的交互。如圖4-8所示。</p><p> 圖4-8 商品管理順序圖</p><p><b> 5.訂單管理功能</b></p><p> 圖4-9 訂單管理類圖</p><p> 由4-9靜態(tài)類圖可以發(fā)現(xiàn),訂單管理過程中有兩個(gè)類進(jìn)行交互,分別是XorderContr
57、oller類,Xorder類,進(jìn)一步可以得到順序圖,明確類與類之間的交互。如圖4-10所示。</p><p> 圖4-10 訂單管理順序圖</p><p> 4.2數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)</p><p> 4.2.1 基本實(shí)體表[9]</p><p> 4.2.2 數(shù)據(jù)庫表設(shè)計(jì)[10] </p><p> 表4
58、-1用戶表主要字段</p><p> 表4-2 商店表主要字段</p><p> 表4-3 商品表主要字段</p><p> 表4-4 訂單表主要字段</p><p><b> 第5章 詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1開發(fā)準(zhǔn)備</b></p
59、><p> 本系統(tǒng)采用了Spring[11]框架開發(fā)了校園微快遞系統(tǒng)。本系統(tǒng)采用的是B/S模式,即瀏覽器/服務(wù)器模式。在對MySQL數(shù)據(jù)庫連接方面,會(huì)在application.properties配置文件中進(jìn)行配置相關(guān)的連接信息,當(dāng)系統(tǒng)發(fā)生改動(dòng)的時(shí)候,只需要簡單的修改application.properties配置文件的連接信息即可,增強(qiáng)了系統(tǒng)的可移植性。系統(tǒng)中會(huì)通過實(shí)體類來操作和數(shù)據(jù)庫相關(guān)的數(shù)據(jù),在代碼的耦合性方
60、面有了很好的提高。另外,由于本系統(tǒng)采用了MVC模式[12],利用Controller將Model與View分離,能夠很好地提高系統(tǒng)的開發(fā)效率,增強(qiáng)程序的可維護(hù)性和拓展性。</p><p> 將application.properties文件部分配置,用于連接數(shù)據(jù)庫文件:</p><p> #mysql database setting</p><p> jdb
61、c.driver=com.mysql.jdbc.Driver</p><p> jdbc.url=jdbc:mysql://localhost:3306/xet?useUnicode=true&characterEncoding=utf-8</p><p> jdbc.username=root</p><p> jdbc.password=12345
62、6</p><p><b> 5.2 用戶管理</b></p><p> 5.2.1 商家注冊</p><p><b> 1.界面設(shè)計(jì)</b></p><p> 商家可以在瀏覽器輸入www.xiaoetao.com,點(diǎn)擊注冊按鈕,填寫相應(yīng)信息后,即可完成注冊。</p><
63、p> 圖 5-1 商家注冊界面</p><p><b> 2.后臺處理與實(shí)現(xiàn)</b></p><p> 首先,通過控制器RegisterController 的registerForm()方法返回用戶注冊頁面,用戶正確填寫個(gè)人信息后,點(diǎn)擊“提交”按鈕,系統(tǒng)調(diào)用register()方法,使用隨機(jī)生成的salt并經(jīng)過1024次 sha-1 hash算法對用戶密
64、碼進(jìn)行加密后,將用戶信息存入數(shù)據(jù)庫中。</p><p> 后臺部分處理代碼: </p><p> /** 注冊用戶并寫入數(shù)據(jù)庫 */</p><p> @RequestMapping(method = RequestMethod.POST)</p><p> public String register(@Valid User use
65、r, RedirectAttributes redirectAttributes) {</p><p> // 調(diào)用注冊用戶方法,寫入數(shù)據(jù)庫</p><p> accountService.registerUser(user);</p><p> // 添加用戶名至前臺頁面</p><p> redirectAttributes.ad
66、dFlashAttribute("username", user.getLoginName());</p><p> // 返回至登錄頁面</p><p> return "redirect:/login";</p><p><b> }</b></p><p> /**
67、設(shè)定安全的密碼,生成隨機(jī)的salt并經(jīng)過1024次 sha-1 hash */</p><p> private void entryptPassword(User user) {</p><p> // 產(chǎn)生一個(gè)8位的隨機(jī)鹽</p><p> byte[] salt = Digests.generateSalt(SALT_SIZE);</p>
68、<p> // 對隨機(jī)鹽簡單進(jìn)行編碼方式的加密后存入實(shí)體類中</p><p> user.setSalt(Encodes.encodeHex(salt));</p><p> // 調(diào)用安全哈希算法,使用隨機(jī)鹽組合加密密碼</p><p> byte[] hashPassword = Digests.sha1(user.getPlainPasswo
69、rd().getBytes(), salt, HASH_INTERATIONS);</p><p> user.setPassword(Encodes.encodeHex(hashPassword));</p><p><b> }</b></p><p> 代碼 5-1 后臺商家注冊</p><p> 5.2.
70、2 普通用戶注冊</p><p><b> 1.界面設(shè)計(jì)</b></p><p> 普通用戶可使用手機(jī)微信關(guān)注“校園微快遞”公眾號(微信號:xywkd520)后,根據(jù)提示信息,輸入個(gè)人信息完成注冊。當(dāng)然,普通用戶也可以通過商家注冊方式完成注冊。</p><p> 圖 5-2 用戶注冊界面</p><p><b
71、> 2.后臺處理與實(shí)現(xiàn)</b></p><p> 用戶注冊通過控制器WechatController 的register()方法對用戶完成注冊,微信對話框端注冊主要是通過對用戶的text請求進(jìn)行解析并處理,最終返回XML的消息。</p><p> 后臺校驗(yàn)處理代碼: </p><p><b> /**</b></
72、p><p><b> * 普通用戶注冊.</b></p><p><b> */</b></p><p> public void register(){ </p><p> if(con.startsWith("綁定+")){</p><p> U
73、ser user = new User();</p><p> // 設(shè)定學(xué)校名稱</p><p> user.setSchoolName("江蘇理工學(xué)院");</p><p> con = con.substring(con.indexOf("+")+1);</p><p><b>
74、 try{</b></p><p> if(accountService.findUserByOpenid(FromName)!= null){</p><p> content = " 您好,您已成功綁定,請解綁原先信息再綁定,謝謝使用!\n 解綁格式:解綁";</p><p> return getBackXMLType
75、Text(toName, FromName, content);</p><p><b> }</b></p><p> }catch(Exception e){</p><p> e.printStackTrace();</p><p><b> }</b></p><
76、p> int flag=con.indexOf("+");</p><p> user.setName(bs);</p><p> flag=con.indexOf("+");</p><p> user.setLoginName(user.getStuNum());</p><p>
77、 accountService.registerUser(user);</p><p> ontent = "恭喜您綁定成功!";</p><p><b> }</b></p><p><b> }</b></p><p> 代碼 5-2 用戶注冊</p>
78、<p> 5.2.3 管理員,商家登錄</p><p><b> 1.界面設(shè)計(jì)</b></p><p> 管理員,或商家可以在瀏覽器輸入www.xiaoetao.com,填寫用戶名及密碼,點(diǎn)擊登錄按鈕,即可登錄到系統(tǒng)管理界面。</p><p> 圖 5-3管理員,或商家登錄界面</p><p><
79、b> 2.后臺處理與實(shí)現(xiàn)</b></p><p> 管理員,商家的登錄,系統(tǒng)會(huì)通過shiro[13]的FormAuthenticationFilter對用戶填寫的用戶名及密碼進(jìn)行判斷,如果成功則進(jìn)入系統(tǒng)管理頁面。</p><p> 后臺部分處理代碼: </p><p> <!-- Shiro 相關(guān)配置信息 --></p&g
80、t;<p> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"></p><p> <property name="securityManager" ref="securityManager&qu
81、ot; /></p><p> <property name="loginUrl" value="/login" /></p><p> <property name="successUrl" value="/" /></p><p> <pro
82、perty name="filterChainDefinitions"></p><p><b> <value></b></p><p> /login = authc</p><p> /wechat = anon </p><p> /mbhome/** = anon
83、 </p><p> /mblogin/** = anon</p><p> /mbuser/** = anon</p><p> /mbproduct/** = anon</p><p> /mbxorder/** = anon</p><p> /register/** = anon</p>
84、<p><b> </value></b></p><p> </property></p><p><b> </bean></b></p><p> 代碼 5-3 后臺管理員,商家登錄</p><p> 5.2.4 普通用戶登錄</
85、p><p><b> 1.界面設(shè)計(jì)</b></p><p> 普通用戶可使用用戶名(默認(rèn)用戶名為:學(xué)號)與密碼進(jìn)行登錄,登錄成功后即可進(jìn)行相關(guān)的操作。</p><p> 圖 5-4普通用戶登錄界面</p><p><b> 2.后臺處理與實(shí)現(xiàn)</b></p><p>
86、首先,后臺通過控制器MbLoginController 的login()方法返回登錄頁面,用戶點(diǎn)擊“登錄”按鈕后,后臺通過控制器中的myLogin()方法來處理用戶登錄,對用戶的用戶名及密碼進(jìn)行判斷后,正確則返回個(gè)人管理頁面。</p><p><b> 后臺處理代碼: </b></p><p> /** 用戶登錄,并記錄登錄標(biāo)記至sessionStorage */
87、</p><p> public void myLogin(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{</p><p> PrintWriter out = response.getWriter();</p><p>
88、 User user = new User();</p><p> // 獲取用戶的用戶名</p><p> String loginName = request.getParameter("loginName");</p><p> // 獲取用戶的密碼</p><p> String password = r
89、equest.getParameter("password");</p><p> user = accountService.findUserByLoginName(loginName);</p><p> // 判斷用戶是否存在及用戶名和密碼是否匹配</p><p> if(user != null && accoun
90、tService.loginPassword(user, loginName, password)){</p><p> Map<String, String> person = new HashMap<String, String>(); </p><p> person.put("userId", Encodes.encodeHex(u
91、ser.getId().toString().getBytes()));</p><p> JSONObject jsonObject = JSONObject.fromObject(person); </p><p> out.print(jsonObject);</p><p><b> }</b></p><
92、;p><b> else{</b></p><p> System.out.println("用戶不存在");</p><p> out.print("");</p><p><b> }</b></p><p><b> }<
93、/b></p><p> 代碼 5-4 后臺普通用戶登錄</p><p> 5.2.5 用戶管理</p><p><b> 1.界面設(shè)計(jì)</b></p><p> 管理員可在登錄后點(diǎn)擊右上角下拉框中的用戶管理進(jìn)入用戶管理界面,在界面中,用戶可以查看用戶的基本信息,并可對用戶進(jìn)行,修改,刪除等操作。</
94、p><p> 圖 5-5 用戶管理界面</p><p><b> 3.后臺處理與實(shí)現(xiàn)</b></p><p> 首先,通過控制器UserAdminController 的list()方法返回用戶管理列表頁面,同時(shí),頁面還提供了修改用戶和刪除用戶的功能。</p><p> 后臺校驗(yàn)處理代碼: </p>&
95、lt;p> /** 管理員查詢所有商家及普通用戶信息*/</p><p> public String list(Model model) {</p><p> List<User> users = accountService.getAllUser();</p><p> model.addAttribute("users&q
96、uot;, users);</p><p> return "account/adminUserList.jsp";</p><p><b> }</b></p><p><b> }</b></p><p> 代碼 5-5后臺用戶管理</p><p&
97、gt; 5.2.6 商家個(gè)人信息</p><p><b> 1.界面設(shè)計(jì)</b></p><p> 商家可在登錄后點(diǎn)擊右上角下拉框中的“個(gè)人信息”查看和修改自己的個(gè)人信息。</p><p> 圖 5-6 個(gè)人信息界面</p><p><b> 2.后臺處理與實(shí)現(xiàn)</b></p>
98、<p> 通過控制器ProfileController 的updateForm()方法來返回個(gè)人信息修改頁面,用戶修改完信息后,點(diǎn)擊“提交”按鈕,系統(tǒng)調(diào)用update()方法來處理修改請求,并更新數(shù)據(jù)庫個(gè)人信息。</p><p> 后臺校驗(yàn)處理代碼: </p><p> /** 對用戶信息進(jìn)行更新 */</p><p> @RequestMap
99、ping(method = RequestMethod.POST)</p><p> public String update(@Valid @ModelAttribute("user") User user,HttpServletRequest request) {</p><p> System.out.println("進(jìn)入更新");<
100、;/p><p> String RealPath = request.getSession().getServletContext().getRealPath("");</p><p> String userPath = RealPath+ "/static/images/user/"+user.getId();</p><p&
101、gt; System.out.println("地址"+userPath);</p><p> MultipartFile headImageFile = Fileupload.fileupload(request, userPath, "headImageFile","headImageFile.jpg");</p><p>
102、; MultipartFile identityImagesFile = Fileupload.fileupload(request, userPath, "identityImagesFile", "identityImagesFile.jpg");</p><p> user.setHeadImage("/static/images/user/"
103、+user.getId()+"/"+ "headImageFile.jpg");</p><p> user.setIdentityImages("/static/images/user/"+user.getId()+ "/"+"identityImagesFile.jpg");</p><p
104、> accountService.updateUser(user);</p><p> updateCurrentUserName(user.getName());</p><p> System.out.println("更新完畢");</p><p> return "redirect:/";</p&g
105、t;<p><b> }</b></p><p><b> }</b></p><p> 代碼 5-6后臺個(gè)人信息</p><p> 5.2.7 普通用戶個(gè)人信息</p><p><b> 1.界面設(shè)計(jì)</b></p><p>
106、 普通用戶可在“校園微快遞”公眾號中點(diǎn)擊“微菜單”上的“個(gè)人信息”查看自己的個(gè)人資料,或者可以點(diǎn)擊“微商城”進(jìn)入“校園微快遞”公眾號網(wǎng)頁端,點(diǎn)擊“我”查看個(gè)人信息。界面如圖5-7及5-8所示。</p><p> 圖 5-7 個(gè)人信息界面(微信對話框版) 圖 5-8 個(gè)人信息界面(微信網(wǎng)頁版)</p><p><b> 2.前臺頁面</b></p>
107、;<p> 前臺頁面主要使用HTML5+CSS+JS 及JQuery Moblie 完成,采用listview顯示用戶個(gè)人信息,前臺數(shù)據(jù)使用AJAX請求后臺數(shù)據(jù)獲得。</p><p> 1.前臺部分代碼: </p><p> <div data-role="content"></p><p> <ul da
108、ta-role="listview" data-theme="c"></p><p> <li>學(xué)校:<span id ="schoolName"></span></li></p><p> <li>學(xué)號:<span id ="stuNum&qu
109、ot;></span></li></p><p> <li>姓名:<span id ="name"></span></li></p><p> <li>宿舍號:<span id ="address"></span></p>
110、<p> <li>手機(jī)號:<span id ="phoneNum"></span></li></p><p> <li>積分:<span id ="credit"></span></li></p><p><b> </
111、ul></b></p><p><b> </div></b></p><p><b> </div></b></p><p><b> 前臺AJAX請求</b></p><p> $(function(){</p>
112、<p><b> $.ajax({</b></p><p> type:"POST",</p><p> url:"/mbuser/myinfo",</p><p> data:"userId="+userId,</p><p> com
113、plete:function(data){</p><p> jsonobj = data.responseText;</p><p> // 將json格式字符串處理成json對象數(shù)組</p><p> dataObj=eval("("+jsonobj+")");</p><p> // 對指
114、定id為schoolName的span添加數(shù)據(jù)</p><p> document.getElementById('schoolName').innerHTML=dataObj.schoolName;</p><p> document.getElementById('stuNum').innerHTML=dataObj.stuNum;</p>
115、;<p> document.getElementById('name').innerHTML=dataObj.name;</p><p> document.getElementById('credit').innerHTML=dataObj.credit;</p><p><b> }</b></p>
116、<p><b> });</b></p><p><b> });</b></p><p> 代碼 5-7 前臺個(gè)人信息</p><p><b> 3.后臺處理與實(shí)現(xiàn)</b></p><p> 微信對話框端通過用戶的按鈕請求處理,調(diào)用WechatCont
117、roller的userInfo()方法返回用戶個(gè)人信息。微信網(wǎng)頁端通過MbUserController的myinfo()方法返回用戶個(gè)人信息。</p><p><b> 后臺處理代碼:</b></p><p><b> 微信對話框端</b></p><p> User user = accountService.fi
118、ndUserByOpenid(FromName);</p><p> content = "個(gè)人信息\n 學(xué)校 : "+ user.getSchoolName() +"\n 姓名 : "+user.getName()+"\n 學(xué)號 : "+user.getStuNum() +"\n 收貨地址: " + user.getAdd
119、ress() +"\n 手機(jī)號 : " + user.getPhoneNum() +"\n 積分: "+user.getCredit();</p><p> returnStr = getBackXMLTypeText(toName, FromName, content);</p><p><b> 微信網(wǎng)頁端 </b>
120、;</p><p> /** 用戶個(gè)人信息查詢 */</p><p> public void myinfo(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{</p><p> PrintWriter out = res
121、ponse.getWriter();</p><p> User user = new User();</p><p> String userId = request.getParameter("userId");</p><p> userId = new String(userId);</p><p> if
122、(user != null){</p><p> Map<String, String> person = new HashMap<String, String>(); </p><p> person.put("schoolName", user.getSchoolName()); </p><p> pers
123、on.put("loginName",user.getLoginName());</p><p> person.put("name", user.getName()); </p><p> person.put("phoneNum",user.getPhoneNum());</p><p> pe
124、rson.put("openid",user.getOpenid());</p><p> person.put("credit",String.valueOf(user.getCredit()));</p><p> // 將Map類型的數(shù)據(jù)轉(zhuǎn)換成jsonObject類型的數(shù)據(jù)</p><p> JSONObject
125、jsonObject = JSONObject.fromObject(person); </p><p> out.print(jsonObject);</p><p><b> }</b></p><p><b> else{</b></p><p> out.print("
126、;");</p><p><b> }</b></p><p><b> }</b></p><p> 代碼 5-8后臺個(gè)人信息</p><p> 5.3 商店信息管理</p><p><b> 5.3.1商店管理</b></
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于微信平臺的校園微快遞系統(tǒng)
- 畢業(yè)論文——基于微信公眾平臺的學(xué)生自助服務(wù)系統(tǒng)
- 畢業(yè)論文 ——基于php+mysql的微信平臺圖書管理系統(tǒng)
- 畢業(yè)論文 ——基于php+mysql的微信平臺圖書管理系統(tǒng)
- 畢業(yè)論文范文——基于微信公眾號的課外培訓(xùn)平臺
- 畢業(yè)論文——基于php+mysql的微信公眾平臺的接口開發(fā)
- 畢業(yè)論文——基于php+mysql的微信公眾平臺的接口開發(fā)
- 畢業(yè)論文-基于php微信平臺的二維碼應(yīng)用
- 畢業(yè)論文-基于php微信平臺的二維碼應(yīng)用
- 畢業(yè)論文-幫幫網(wǎng)微信公眾平臺的設(shè)計(jì)與實(shí)現(xiàn)
- 基于php的微信web應(yīng)用開發(fā)-畢業(yè)論文
- 基于微信平臺的微警局系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 微信投票平臺設(shè)計(jì)與實(shí)現(xiàn)-南通大學(xué)畢業(yè)論文
- 畢業(yè)論文——微博系統(tǒng)
- 畢業(yè)論文企業(yè)微信營銷策略研究
- 畢業(yè)論文——微博系統(tǒng)
- 微博系統(tǒng)畢業(yè)論文
- 基于微信的校園信息服務(wù)平臺設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于微信平臺的微學(xué)習(xí)活動(dòng)設(shè)計(jì)研究
- 校園微信公眾平臺調(diào)查報(bào)告
評論
0/150
提交評論