

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 基于微信平臺的校園微快遞系統(tǒng)</p><p> 所在學院 </p><p> 專業(yè)班級 軟件工程
2、 </p><p> 學生姓名 學號 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 </p><p> 基于微信平臺的校園微快遞系統(tǒng)</p>
3、<p> 摘 要:近年來,隨著微信的普及,越來越多的人開始使用微信。校園商品、服務交易仍采用面對面線下交易方式,這種方式不但不靈活,而且不符合當前這個信息化的時代。為了讓同學們更加快速,便捷的得到想要的商品、服務及快遞。設計并實現(xiàn)了“基于微信平臺的校園微快遞系統(tǒng)”,學生們可以通過微信訂購自己需要的商品、服務及微快遞,使得大學生活質(zhì)量有了一定的提高,讓大學校園邁入了一個新的臺階。</p><p>
4、 本設計說明書根據(jù)校園商品、服務及微快遞訂購的實際情況,詳細介紹了校園微快遞系統(tǒng)的設計和實現(xiàn)流程。系統(tǒng)運用軟件工程原理和開發(fā)方法,通過可行性研究、需求分析、概要設計、詳細設計等步驟進行分析和設計,并采用Spring框架、JQuery以及MySQL 5.0等技術設計與實現(xiàn)。同時,采用Eclipse作為開發(fā)工具進行開發(fā)。系統(tǒng)能夠滿足商品、服務交易的基本要求,包括用戶管理、商店管理、商品、服務及快遞O2O交易的快捷化和信息化管理等模塊。<
5、;/p><p> 關鍵詞:微信開發(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)研究目標和內(nèi)容2</p><p> 第2章 可行性研究3</p><p> 2.1 技術可行性
12、3</p><p> 2.1.1 開發(fā)技術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 功能用例圖及活動圖7<
13、/p><p> 第4章 概要設計15</p><p> 4.1 系統(tǒng)類圖與順序圖15</p><p> 4.2 數(shù)據(jù)結構與數(shù)據(jù)庫設計20</p><p> 4.2.1 基本實體表20</p><p> 4.2.2 數(shù)據(jù)庫表設計20</p><p> 第5章 詳細設計2
14、2</p><p> 5.1 開發(fā)準備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 商家個人信息29</p><p> 5.2.7 普通用戶個人信息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)測試與運行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 測試過程及結果46</p><p> 6.3 用戶登錄測試47</p><p> 6.3.1 測試目的47</p><p> 6.3.2 測試過程及結果47</p><p&g
19、t; 6.4 創(chuàng)建商店測試48</p><p> 6.4.1 測試目的48</p><p> 6.4.2 測試過程及結果48</p><p> 6.5 微快遞跑單簽收測試48</p><p> 6.5.1 測試目的48</p><p> 6.5.2 測試過程及結果48</p>
20、<p><b> 結束語50</b></p><p><b> 參考文獻51</b></p><p><b> 致 謝52</b></p><p><b> 引 言</b></p><p> 使用微信進行商品、服務及微快遞交易,
21、使得大學生活質(zhì)量提高,商家與用戶也能夠查詢最新商品信息及服務等。使得整個服務流程更加系統(tǒng)、規(guī)范,在提高大學生活質(zhì)量的同時,也讓大學校園邁入了一個新的臺階。</p><p> 因此,開發(fā)一套結合線下商品、服務交易的校園微快遞系統(tǒng)是絕對必要的。本系統(tǒng)可以改變傳統(tǒng)的校園商品、服務及微快遞的交易方式,減少大量的交易成本,并可以更加方便的管理訂單。本系統(tǒng)設計開發(fā)使用B/S結構,利用Eclipse以及MySQL數(shù)據(jù)庫完成設
22、計開發(fā),部分頁面利用AJAX技術完成數(shù)據(jù)交互,利用SHA1加密技術保證用戶數(shù)據(jù)的安全。</p><p> 至此,本設計說明書著重介紹了校園微快遞系統(tǒng)的分析與設計過程,共分為6章。第1章概述,主要介紹了校園微快遞系統(tǒng)的開發(fā)背景、研究目標和內(nèi)容;第2章可行性研究,主要介紹了系統(tǒng)技術和操作可行性;第3章需求分析,主要介紹了通過分析校園微快遞系統(tǒng)的功能用例圖、活動圖等面向?qū)ο竽P停坏?章概要設計,包括系統(tǒng)的類圖、順序圖
23、以及MySQL數(shù)據(jù)庫設計等內(nèi)容;第5章詳細設計,主要介紹開發(fā)前的準備以及各個功能的詳細設計過程;第6章系統(tǒng)測試運行,主要介紹通過對本系統(tǒng)的運行進行測試,查看是否存在系統(tǒng)漏洞。</p><p><b> 概 述</b></p><p> 1.1 系統(tǒng)開發(fā)背景</p><p> 目前校園商品、服務交易仍采用面對面線下交易方式,這種方式不但
24、不靈活,而且不符合當前這個信息化的時代。唯有結合線上的交易,采用O2O模式進行交易,才能變得更加便捷可靠安全,同時也提高了同學們的生活質(zhì)量,因此開發(fā)校園微快遞系統(tǒng)顯得尤為重要。</p><p> 1.2 系統(tǒng)研究目標和內(nèi)容</p><p> 面對當前校園商品、服務交易的現(xiàn)狀,迫切需要一個信息化的校園微快遞系統(tǒng)來為大學生提供方便的服務。所以,開發(fā)該校園微快遞系統(tǒng)是滿足市場需求的。本系統(tǒng)
25、建立完善的業(yè)務流程和管理流程,用戶可以通過本系統(tǒng)方便的進行交易,從而實現(xiàn)交易的便捷化。</p><p> 本系統(tǒng)采用B/S結構,基于其可管理性、易于部署、便于維護以及擴展性等眾多優(yōu)點,并且充分發(fā)揮該結構的跨平臺能力,多層結構的升級和擴展的優(yōu)勢。因此,能夠很好地完成系統(tǒng)所要求的全部功能基本的要求。包括:用戶管理、商店管理、商品管理、下單、簽收訂單等功能。</p><p> 第2章 可行
26、性研究</p><p> 2.1 技術可行性</p><p> 2.1.1 開發(fā)技術</p><p><b> 微信開發(fā)</b></p><p> 微信[1]提供給開發(fā)者強大的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)計接口</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語言進行開發(fā)。</p><p><b> AJAX</b></p><p> AJAX[2](Asynchronous JavaScript And XML)是異步JavaScript和XML。AJAX是通過XmlHttpRequest對象完
30、成對服務器端的異步請求,頁面在不用重新加載的情況下,實現(xiàn)動態(tài)刷新,進而實現(xiàn)網(wǎng)頁的動態(tài)化。在設計很多的動態(tài)網(wǎng)頁時,常使用AJAX來完成。</p><p><b> MVC 模式</b></p><p> MVC[3]即Model-View-Controller的縮寫,MVC是目前常用的軟件設計模式。MVC是將應用程序關鍵功能和數(shù)據(jù)顯示分離開來,最后使用控制器確保前兩
31、部分的同步。使得數(shù)據(jù)操作和用戶界面可以單獨開發(fā),增強了程序的可維護性,減少開發(fā)周期。</p><p><b> HTML5</b></p><p> HTML 5[4]增強了Web 網(wǎng)頁的表現(xiàn)能力。并添加本地數(shù)據(jù)庫等Web應用的功能。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”,通常又稱為“風格樣式表(Style Sheet)”,它是用來進行網(wǎng)頁風格設計的。通過設立樣式表,可以統(tǒng)一地控制HTML中各標志的顯示屬性。級聯(lián)樣式表可以使人更
33、能有效地控制網(wǎng)頁外觀。</p><p> JavaScript</p><p> JavaScript[6]是一種很強大的網(wǎng)絡腳本語言,它具有相對的安全性。HTML網(wǎng)頁上添加動態(tài)功能一般都使用它來實現(xiàn)。JavaScript 被數(shù)百萬計的網(wǎng)頁用來改進設計、驗證數(shù)據(jù)、動態(tài)效果等功能。JavaScript同時也是一種常用于客戶端Web開發(fā)的腳本語言,各大瀏覽器對它都有較好的支持。</p
34、><p><b> JSON </b></p><p> JSON[7]一是種比較輕量的數(shù)據(jù)交換格式,因為它常用于傳遞相對較少的數(shù)據(jù)。JSON與XML類似,對于 AJAX 應用程序來說,JSON 比 XML 更快更易使用,一般常用eval()處理 JSON 字符串。JSON 可以將 JavaScript 中一組數(shù)據(jù)轉(zhuǎn)換為字符串,進而在函數(shù)之間進行快遞的傳遞數(shù)據(jù)。<
35、;/p><p><b> JQuery</b></p><p> JQuery[8]是一個優(yōu)秀的輕量級JavaScript 庫。它不僅兼容CSS3,還在各種瀏覽器中運行穩(wěn)定。通過使用JQuery,可以方便的實現(xiàn)動畫效果和AJAX數(shù)據(jù)交互等功能,JQuery在許多應用中被廣泛的使用,網(wǎng)上有許多的案例和文檔資料,其學習門檻較低,很容易入門,系統(tǒng)開發(fā)者可以使用JQuery提
36、供的大量開發(fā)接口來完成自己的系統(tǒng)設計。</p><p> 2.1.2 開發(fā)環(huán)境</p><p> 本系統(tǒng)是在Windows 7操作系統(tǒng)下,使用微信對話框和內(nèi)置瀏覽器完成前臺顯示,后臺使用Firefox瀏覽器完成前臺顯示,系統(tǒng)運行在Tomcat 7.0服務器上,使用MySQL作為數(shù)據(jù)庫搭建環(huán)境。本系統(tǒng)使用MVC開發(fā)模式,控制,視圖和邏輯層相互關聯(lián),但又相互獨立。</p>
37、<p> 2.2 操作可行性</p><p> 本系統(tǒng)嚴格按照校園商品、服務交易的正常流程開發(fā)。管理人員能夠快速上手,并通過統(tǒng)計直觀查看系統(tǒng)情況。在投入使用前,會由開發(fā)并能熟練操作本系統(tǒng)的工程人員對用戶群進行專業(yè)系統(tǒng)的培訓。在開發(fā)設計程序的過程中,使用直觀的界面和控件的文字,使得用戶充分理解系統(tǒng)功能,所以本系統(tǒng)的操作是完全可行的。</p><p><b> 第3
38、章 需求分析</b></p><p> 3.1 功能概況描述</p><p> 校園微快遞系統(tǒng)的主要任務是:使用權限來劃分和管理各個人員的功能,主要完成的是系統(tǒng)的規(guī)劃與功能、性能分析與實現(xiàn)、的劃分以及各個實現(xiàn)的功能等。校園微快遞系統(tǒng)主要功能需求:</p><p><b> 一、用戶信息管理</b></p>&l
39、t;p> 主要包括四個子功能:</p><p> 1.用戶信息添加:管理員通過添加用戶功能,填寫新用戶的姓名、密碼等完成新用戶的添加。</p><p> 2.用戶信息查詢:管理員通過輸入關鍵字對用戶信息進行查詢。</p><p> 3.用戶信息修改:管理員通過修改功能對某個用戶的基本信息進行修改。</p><p> 4.用戶信
40、息刪除:管理員通過刪除功能對已經(jīng)注冊的用戶進行刪除。</p><p><b> 二.商店管理</b></p><p> 主要包括五個子功能:</p><p> 1.商店信息添加:管理員或商家通過添加功能,輸入商店基本信息,即可完成商店的添加。</p><p> 2.商店信息查詢:管理員或商家通過查詢功能,輸入關鍵
41、字對商店信息進行查詢。</p><p> 3. 商店信息修改:管理員或商家通過修改功能,輸入商店信息進行修改。</p><p> 4.商店信息審核:管理員通過審核功能,查看商店信息后,進行審核。</p><p> 5.商店信息刪除:管理員或商家通過刪除功能對已經(jīng)添加的商店進行刪除。</p><p><b> 商品管理<
42、/b></p><p> 主要包括五個子功能:</p><p> 1.商品信息添加:管理員或商家通過添加功能,輸入商品基本信息,完成商品的添加。</p><p> 2.商品信息查詢:管理員或商家通過查詢功能,輸入關鍵字對商品信息進行查詢。</p><p> 3. 商品信息修改:管理員或商家通過修改功能,輸入商品信息進行修改。&l
43、t;/p><p> 4.商品信息審核:管理員通過審核功能,查看商品信息后,進行審核。</p><p> 5.商品信息刪除:管理員或商家通過刪除功能對已經(jīng)添加的商品進行刪除。</p><p><b> 四、訂單管理</b></p><p> 主要包括四個子功能:</p><p> 1.訂單創(chuàng)建
44、:用戶根據(jù)自己的需求,選擇自己喜歡的商店、服務等,通過訂單創(chuàng)建功能進行下單。</p><p> 2.訂單查詢:用戶根據(jù)自己的ID查詢自己已下訂單的狀態(tài)信息。</p><p> 3.訂單取消:用戶根據(jù)自己的需要,可在下單后對自己不想訂購的商品、服務或微快遞進行取消。</p><p> 4. 訂單簽收:用戶根據(jù)自己是否收到商品,或,可以對訂單進行簽收操作。<
45、/p><p> 3.2 功能用例圖及活動圖</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> 對應用戶管理活動圖如3-3所示。在用戶管理功能中,管理員可以選擇執(zhí)行四種操作,分別是:用戶添加,用戶查詢,用戶修改,用戶刪除。用戶注冊或綁定之后,管理員可以對用戶進行查詢,修改,及刪除操作。同時,用戶本身也可以對自已的個人信息進行查看與修改操作。</p><p> 圖3-3用戶管理活動圖</p><p&g
47、t; 圖 3-4 商店管理用例圖</p><p> 對應商店管理活動圖如3-5所示。在商店創(chuàng)建功能中,商家可以執(zhí)行創(chuàng)建商店。在創(chuàng)建商店之后,商家可以對商店進行查看,修改,及刪除操作。在完成創(chuàng)建之后,商店需要通過管理員的審核方可顯示在微信端“校園微商城”頁面中。</p><p> 圖3-5商店管理活動圖</p><p> 圖 3-6 商店審核用例圖</p
48、><p> 對應商店審核活動圖如3-7所示。在商店審核功能中,商家在完成商店創(chuàng)建后,管理員便可以查詢到該商店的信息,判定商店符合要求后,管理員就可以對商店進行審核,商店一旦審核之后,就會顯示在“校園微商城”的頁面當中了。若該商店不符合要求,則不進行審核,當然管理員也可以對商店信息進行刪除操作。</p><p> 圖3-7商店審核活動圖</p><p> 圖 3-8
49、 商品創(chuàng)建用例圖</p><p> 對應商品創(chuàng)建活動圖如3-9所示。在商品創(chuàng)建功能中,商家可以執(zhí)行商品創(chuàng)建。在創(chuàng)建商品之后,商家可以對商品進行修改與刪除操作。在完成創(chuàng)建之后,商品需要通過管理員的審核方可顯示在“校園微商城”頁面中。</p><p> 圖3-9商品管理活動圖</p><p> 圖 3-10 商品審核用例圖</p><p>
50、 對應商品審核活動圖如3-11所示。在商品審核功能中,商家在完成商品創(chuàng)建后,管理員便可以查詢到該商品,判定符合要求后,管理員就可以對商品進行審核,商品一旦審核之后,就會顯示在“校園微商城”的頁面當中了。若該商品不符合要求,則不進行審核,當然管理員也可以對商品信息進行刪除操作。</p><p> 圖3-11商品管理活動圖</p><p> 圖 3-12 訂單管理用例圖</p>
51、;<p> 對應訂單創(chuàng)建活動圖如3-13所示。在訂單管理功能中,用戶可以選擇執(zhí)行四種操作,分別是:創(chuàng)建訂單,查詢訂單,取消訂單,簽收訂單。在創(chuàng)建訂單之后,用戶可以對訂單進行查詢,取消,及簽收操作。</p><p> 圖3-13訂單管理活動圖</p><p><b> 第4章 概要設計</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),登陸過程中有兩個類進行交互,分別是LoginController類和AccountService類, 進一步可以得到順序圖,明確類與類之間的交互。如圖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),用戶管理過程中有兩個類進行交互,分別是UserController,User類, 進一步可以得到順序圖,明確類與類之間的交互。如圖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),商店管理過程中有三個類進行交互,分別是BussinessController類,User類,Bussiness類,進一步可以得到順序圖,明確類
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),商品管理過程中有兩個類進行交互,分別是ProductController類,User類和Produ
56、ct類, 進一步可以得到順序圖,明確類與類之間的交互。如圖4-8所示。</p><p> 圖4-8 商品管理順序圖</p><p><b> 5.訂單管理功能</b></p><p> 圖4-9 訂單管理類圖</p><p> 由4-9靜態(tài)類圖可以發(fā)現(xiàn),訂單管理過程中有兩個類進行交互,分別是XorderContr
57、oller類,Xorder類,進一步可以得到順序圖,明確類與類之間的交互。如圖4-10所示。</p><p> 圖4-10 訂單管理順序圖</p><p> 4.2數(shù)據(jù)結構與數(shù)據(jù)庫設計</p><p> 4.2.1 基本實體表[9]</p><p> 4.2.2 數(shù)據(jù)庫表設計[10] </p><p> 表4
58、-1用戶表主要字段</p><p> 表4-2 商店表主要字段</p><p> 表4-3 商品表主要字段</p><p> 表4-4 訂單表主要字段</p><p><b> 第5章 詳細設計</b></p><p><b> 5.1開發(fā)準備</b></p
59、><p> 本系統(tǒng)采用了Spring[11]框架開發(fā)了校園微快遞系統(tǒng)。本系統(tǒng)采用的是B/S模式,即瀏覽器/服務器模式。在對MySQL數(shù)據(jù)庫連接方面,會在application.properties配置文件中進行配置相關的連接信息,當系統(tǒng)發(fā)生改動的時候,只需要簡單的修改application.properties配置文件的連接信息即可,增強了系統(tǒng)的可移植性。系統(tǒng)中會通過實體類來操作和數(shù)據(jù)庫相關的數(shù)據(jù),在代碼的耦合性方
60、面有了很好的提高。另外,由于本系統(tǒng)采用了MVC模式[12],利用Controller將Model與View分離,能夠很好地提高系統(tǒng)的開發(fā)效率,增強程序的可維護性和拓展性。</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.界面設計</b></p><p> 商家可以在瀏覽器輸入www.xiaoetao.com,點擊注冊按鈕,填寫相應信息后,即可完成注冊。</p><
63、p> 圖 5-1 商家注冊界面</p><p><b> 2.后臺處理與實現(xiàn)</b></p><p> 首先,通過控制器RegisterController 的registerForm()方法返回用戶注冊頁面,用戶正確填寫個人信息后,點擊“提交”按鈕,系統(tǒng)調(diào)用register()方法,使用隨機生成的salt并經(jīng)過1024次 sha-1 hash算法對用戶密
64、碼進行加密后,將用戶信息存入數(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、設定安全的密碼,生成隨機的salt并經(jīng)過1024次 sha-1 hash */</p><p> private void entryptPassword(User user) {</p><p> // 產(chǎn)生一個8位的隨機鹽</p><p> byte[] salt = Digests.generateSalt(SALT_SIZE);</p>
68、<p> // 對隨機鹽簡單進行編碼方式的加密后存入實體類中</p><p> user.setSalt(Encodes.encodeHex(salt));</p><p> // 調(diào)用安全哈希算法,使用隨機鹽組合加密密碼</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.界面設計</b></p><p> 普通用戶可使用手機微信關注“校園微快遞”公眾號(微信號:xywkd520)后,根據(jù)提示信息,輸入個人信息完成注冊。當然,普通用戶也可以通過商家注冊方式完成注冊。</p><p> 圖 5-2 用戶注冊界面</p><p><b
71、> 2.后臺處理與實現(xiàn)</b></p><p> 用戶注冊通過控制器WechatController 的register()方法對用戶完成注冊,微信對話框端注冊主要是通過對用戶的text請求進行解析并處理,最終返回XML的消息。</p><p> 后臺校驗處理代碼: </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> // 設定學校名稱</p><p> user.setSchoolName("江蘇理工學院");</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.界面設計</b></p><p> 管理員,或商家可以在瀏覽器輸入www.xiaoetao.com,填寫用戶名及密碼,點擊登錄按鈕,即可登錄到系統(tǒng)管理界面。</p><p> 圖 5-3管理員,或商家登錄界面</p><p><
79、b> 2.后臺處理與實現(xiàn)</b></p><p> 管理員,商家的登錄,系統(tǒng)會通過shiro[13]的FormAuthenticationFilter對用戶填寫的用戶名及密碼進行判斷,如果成功則進入系統(tǒng)管理頁面。</p><p> 后臺部分處理代碼: </p><p> <!-- Shiro 相關配置信息 --></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.界面設計</b></p><p> 普通用戶可使用用戶名(默認用戶名為:學號)與密碼進行登錄,登錄成功后即可進行相關的操作。</p><p> 圖 5-4普通用戶登錄界面</p><p><b> 2.后臺處理與實現(xiàn)</b></p><p>
86、首先,后臺通過控制器MbLoginController 的login()方法返回登錄頁面,用戶點擊“登錄”按鈕后,后臺通過控制器中的myLogin()方法來處理用戶登錄,對用戶的用戶名及密碼進行判斷后,正確則返回個人管理頁面。</p><p><b> 后臺處理代碼: </b></p><p> /** 用戶登錄,并記錄登錄標記至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.界面設計</b></p><p> 管理員可在登錄后點擊右上角下拉框中的用戶管理進入用戶管理界面,在界面中,用戶可以查看用戶的基本信息,并可對用戶進行,修改,刪除等操作。</
94、p><p> 圖 5-5 用戶管理界面</p><p><b> 3.后臺處理與實現(xiàn)</b></p><p> 首先,通過控制器UserAdminController 的list()方法返回用戶管理列表頁面,同時,頁面還提供了修改用戶和刪除用戶的功能。</p><p> 后臺校驗處理代碼: </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 商家個人信息</p><p><b> 1.界面設計</b></p><p> 商家可在登錄后點擊右上角下拉框中的“個人信息”查看和修改自己的個人信息。</p><p> 圖 5-6 個人信息界面</p><p><b> 2.后臺處理與實現(xiàn)</b></p>
98、<p> 通過控制器ProfileController 的updateForm()方法來返回個人信息修改頁面,用戶修改完信息后,點擊“提交”按鈕,系統(tǒng)調(diào)用update()方法來處理修改請求,并更新數(shù)據(jù)庫個人信息。</p><p> 后臺校驗處理代碼: </p><p> /** 對用戶信息進行更新 */</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("進入更新");<
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后臺個人信息</p><p> 5.2.7 普通用戶個人信息</p><p><b> 1.界面設計</b></p><p>
106、 普通用戶可在“校園微快遞”公眾號中點擊“微菜單”上的“個人信息”查看自己的個人資料,或者可以點擊“微商城”進入“校園微快遞”公眾號網(wǎng)頁端,點擊“我”查看個人信息。界面如圖5-7及5-8所示。</p><p> 圖 5-7 個人信息界面(微信對話框版) 圖 5-8 個人信息界面(微信網(wǎng)頁版)</p><p><b> 2.前臺頁面</b></p>
107、;<p> 前臺頁面主要使用HTML5+CSS+JS 及JQuery Moblie 完成,采用listview顯示用戶個人信息,前臺數(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>學校:<span id ="schoolName"></span></li></p><p> <li>學號:<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>手機號:<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 前臺個人信息</p><p><b> 3.后臺處理與實現(xiàn)</b></p><p> 微信對話框端通過用戶的按鈕請求處理,調(diào)用WechatCont
117、roller的userInfo()方法返回用戶個人信息。微信網(wǎng)頁端通過MbUserController的myinfo()方法返回用戶個人信息。</p><p><b> 后臺處理代碼:</b></p><p><b> 微信對話框端</b></p><p> User user = accountService.fi
118、ndUserByOpenid(FromName);</p><p> content = "個人信息\n 學校 : "+ user.getSchoolName() +"\n 姓名 : "+user.getName()+"\n 學號 : "+user.getStuNum() +"\n 收貨地址: " + user.getAdd
119、ress() +"\n 手機號 : " + user.getPhoneNum() +"\n 積分: "+user.getCredit();</p><p> returnStr = getBackXMLTypeText(toName, FromName, content);</p><p><b> 微信網(wǎng)頁端 </b>
120、;</p><p> /** 用戶個人信息查詢 */</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后臺個人信息</p><p> 5.3 商店信息管理</p><p><b> 5.3.1商店管理</b></
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于微信平臺的校園微快遞系統(tǒng)
- 畢業(yè)論文——基于微信公眾平臺的學生自助服務系統(tǒng)
- 畢業(yè)論文 ——基于php+mysql的微信平臺圖書管理系統(tǒng)
- 畢業(yè)論文 ——基于php+mysql的微信平臺圖書管理系統(tǒng)
- 畢業(yè)論文范文——基于微信公眾號的課外培訓平臺
- 畢業(yè)論文——基于php+mysql的微信公眾平臺的接口開發(fā)
- 畢業(yè)論文——基于php+mysql的微信公眾平臺的接口開發(fā)
- 畢業(yè)論文-基于php微信平臺的二維碼應用
- 畢業(yè)論文-基于php微信平臺的二維碼應用
- 畢業(yè)論文-幫幫網(wǎng)微信公眾平臺的設計與實現(xiàn)
- 基于php的微信web應用開發(fā)-畢業(yè)論文
- 基于微信平臺的微警局系統(tǒng)設計與實現(xiàn).pdf
- 微信投票平臺設計與實現(xiàn)-南通大學畢業(yè)論文
- 畢業(yè)論文——微博系統(tǒng)
- 畢業(yè)論文企業(yè)微信營銷策略研究
- 畢業(yè)論文——微博系統(tǒng)
- 微博系統(tǒng)畢業(yè)論文
- 基于微信的校園信息服務平臺設計與實現(xiàn).pdf
- 基于微信平臺的微學習活動設計研究
- 校園微信公眾平臺調(diào)查報告
評論
0/150
提交評論