基于微信小程序的識(shí)圖購(gòu)物生鮮商城_第1頁(yè)
基于微信小程序的識(shí)圖購(gòu)物生鮮商城_第2頁(yè)
基于微信小程序的識(shí)圖購(gòu)物生鮮商城_第3頁(yè)
基于微信小程序的識(shí)圖購(gòu)物生鮮商城_第4頁(yè)
基于微信小程序的識(shí)圖購(gòu)物生鮮商城_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要目前,微信小程序由于具有快捷的獲取和傳播的特點(diǎn),并且容易被開(kāi)發(fā)者快速開(kāi)發(fā),已經(jīng)成為基于移動(dòng)應(yīng)用的開(kāi)發(fā)熱點(diǎn),在日常生活中得到了廣泛的應(yīng)用,也給人們的生活和工作帶來(lái)了極大的便利。本系統(tǒng)基于微信小程序來(lái)開(kāi)發(fā)識(shí)圖購(gòu)物生鮮商城,通過(guò)request接口實(shí)現(xiàn)與服務(wù)器端的實(shí)時(shí)交互;通過(guò)該系統(tǒng),用戶可以使用快速的識(shí)圖購(gòu)物功能,方便快捷。本文詳細(xì)的介紹了目前我國(guó)小程序的應(yīng)用現(xiàn)狀,分析了小程序開(kāi)發(fā)所需要的環(huán)境和技術(shù),確定了論文選用的技術(shù)和平臺(tái)。針對(duì)目前購(gòu)物過(guò)程中檢索不方便的問(wèn)題,論文提出了識(shí)圖購(gòu)物的解決方案。在小程序中,因?yàn)槭腔谖⑿牌脚_(tái)的,所以用戶在進(jìn)行注冊(cè)的時(shí)候,只需要通過(guò)request接口實(shí)現(xiàn)與微信賬號(hào)的綁定即可完成注冊(cè)。注冊(cè)完成之后,就可以使用小程序進(jìn)行購(gòu)物了,在購(gòu)物的過(guò)程中,可以通過(guò)識(shí)圖的方法快速的鎖定目標(biāo)產(chǎn)品,也可以通過(guò)關(guān)鍵詞檢索的方式進(jìn)行查看。系統(tǒng)采用tomcat服務(wù)器和MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)確保系統(tǒng)的穩(wěn)定運(yùn)行。經(jīng)測(cè)試表明,該小程序運(yùn)行穩(wěn)定,界面簡(jiǎn)潔且易于使用,擴(kuò)展性良好且維護(hù)性較好,達(dá)到了預(yù)期的設(shè)計(jì)要求。關(guān)鍵詞:微信小程序;識(shí)圖購(gòu)物;MySQL;Request

MapShoppinginFreshMarketBasedonWeChatAppletsAbstractAtpresent,WeChatappletshavebecomethehotspotbasedonmobileapplicationsduetothecharacteristicsofquickaccessanddisseminationandeasydevelopment.Theyarewidelyusedindailylifeandprovidegreatconveniencetopeople’slifeandwork.Thissystemdevelopsthemapshoppinginfreshmarketbyinteractingrequestinterfacewithserver.Userscanexperiencethefunctionofquickmapshoppingbyusingthesystem.ThispaperintroducestheapplicationstatusofappletsinChinaatpresentandanalyzestheenvironmentandtechnologyneededforapplets’development,anddeterminesthetechnologyandplatformselectedinthepaper.Fortheproblemofinconvenientretrievalinthecurrentshopping,thepaperputsforwardthesolutionofmapshopping.TheappletisbasedonWeChat,souserscancompletetheregistrationonlythroughthebindingofrequestinterfacewithWeChataccount.Aftertheregistration,peoplecanusetheapplettodoshopping.Intheprocessofshopping,peoplecanquicklyfindthetargetproductbyusingthewayofmaprecognitionorkeywordretrieval.ThesystemadoptstomcatserverandMySQLdatabasetoensurethestability.Thetestresultsshowthattheappletisstable,simpleandeasytouseandhasgoodexpansibilityandmaintainability,meetingtheexpecteddesignrequirements.Keywords:WeChatapplets;mapshopping;MySQL;request

目錄1.緒論 .緒論“互聯(lián)網(wǎng)+”在我國(guó)的應(yīng)用不斷增多,促使了各行各業(yè)在發(fā)展模式上的轉(zhuǎn)變。就從最基本的購(gòu)物而言,如今人們更多依賴于互聯(lián)網(wǎng)網(wǎng)上購(gòu)物,尤其對(duì)年輕人而言,這種購(gòu)物方式不僅節(jié)約了時(shí)間,還能在最短的時(shí)間內(nèi)查看到更多的產(chǎn)品,實(shí)現(xiàn)了足不出戶網(wǎng)羅天下商品的目的,并且這些商品的價(jià)格更加透明,“貨比三家”的購(gòu)物理念得到了真正實(shí)現(xiàn)。不僅如此,如今隨著智能手機(jī)的大量普及,移動(dòng)互聯(lián)網(wǎng)的發(fā)展速度更快。許多購(gòu)物平臺(tái)推出了自己的移動(dòng)端購(gòu)物應(yīng)用,使得人們的購(gòu)物更加便捷,隨時(shí)隨地就可以進(jìn)行購(gòu)物和商家交流等,并且可以通過(guò)識(shí)圖購(gòu)物的方式幫助人們快速獲取生活中的物品信息。其中微信小程序是微信社交式微商發(fā)展的一個(gè)新方向,微信小程序依靠其無(wú)需下載,即用即走的特點(diǎn)迅猛發(fā)展,在兩年多的發(fā)展中,就收獲了大量的忠實(shí)粉絲。微信小程序也提供很多的內(nèi)部接口,可以幫助開(kāi)發(fā)者在較短的時(shí)間內(nèi)容完成一款功能強(qiáng)大的小程序的開(kāi)發(fā)。正是因?yàn)橛辛巳绱硕嗟膬?yōu)點(diǎn),加之當(dāng)前人們對(duì)識(shí)圖購(gòu)物的迫切需求,本文以微信小程序?yàn)榍腥朦c(diǎn)和實(shí)現(xiàn)方式,設(shè)計(jì)和實(shí)現(xiàn)了一款識(shí)圖購(gòu)物生鮮商城,切實(shí)滿足人們便捷的購(gòu)物需求。1.1研究背景社交媒體在我國(guó)的發(fā)展起步較晚,但是發(fā)展速度很快,尤其隨著微信的出現(xiàn),社交平臺(tái)的發(fā)展可以說(shuō)是達(dá)到了巔峰。據(jù)數(shù)據(jù)統(tǒng)計(jì)表明,2019年度微信月活躍用戶量已經(jīng)突破11億,從其龐大的數(shù)據(jù)及占比可以發(fā)現(xiàn),微信在我們生活中已是必不可少的一部分。為了能夠更好的服務(wù)于用戶,在2012年8月微信推出了“微信公眾平臺(tái)”,可以說(shuō)是微信的服務(wù)面有了進(jìn)一步的提升,為中小型商戶的發(fā)展提供了新的機(jī)遇,無(wú)論是新媒體還是新零售,在微信平臺(tái)中都得到了有利的助力。面對(duì)如此龐大的客戶群體,騰訊于2017年推出了微信小程序。它的出現(xiàn)進(jìn)一步滿足了人們工作生活的需求,它省去了在PC端和APP端的復(fù)雜安裝,真正實(shí)現(xiàn)了即用即走,逐漸成為當(dāng)前我國(guó)中小型線下零售轉(zhuǎn)戰(zhàn)的舞臺(tái),提供了這些企業(yè)在新零售上的發(fā)展平臺(tái)。微信小程序特點(diǎn)明顯,首先正如“微信之父”張小龍所言,即用即走,無(wú)需下載也不需要安裝,操作便捷,掃碼或者獲得鏈接就可以打開(kāi)使用應(yīng)用,滿足了人們的便捷式應(yīng)用需求,打造了一款輕量級(jí)的應(yīng)用軟件。其次是微信小程序內(nèi)部提供了強(qiáng)大的接口支持,讓開(kāi)發(fā)者能夠快速的進(jìn)行開(kāi)發(fā),并且開(kāi)發(fā)成本較低。1.2國(guó)內(nèi)外現(xiàn)狀我國(guó)在網(wǎng)上購(gòu)物平臺(tái)的發(fā)展可以說(shuō)是近幾年的事情,尤其隨著淘寶購(gòu)物平臺(tái)的快速發(fā)展,人們逐漸開(kāi)始了在網(wǎng)上購(gòu)物的新體驗(yàn)。通過(guò)這些年來(lái)的發(fā)展,網(wǎng)絡(luò)購(gòu)物已經(jīng)成為了人們購(gòu)買物品的習(xí)慣。只要想到購(gòu)買物品,往往首先打開(kāi)電腦或者手機(jī)進(jìn)行搜尋,然后經(jīng)過(guò)貨比三家,快速下單,完成購(gòu)物。加之我國(guó)電商發(fā)展得到了物流快遞行業(yè)的發(fā)展支持,使得我國(guó)企業(yè)產(chǎn)品的銷售對(duì)電子商務(wù)平臺(tái)的依賴性更強(qiáng)。在我國(guó)當(dāng)前的電商平臺(tái)中,阿里巴巴的淘寶購(gòu)物網(wǎng)站、京東商城是比較有代表性的,他們的出現(xiàn)促使了我國(guó)網(wǎng)購(gòu)零售平臺(tái)的豐富發(fā)展。從淘寶商城的功能來(lái)看,包括了PC端和移動(dòng)端應(yīng)用。用戶可以通過(guò)快速注冊(cè)功能成為平臺(tái)會(huì)員,然后在平臺(tái)中搜索購(gòu)物,可以對(duì)購(gòu)買的物品進(jìn)行評(píng)價(jià),可以在線支付,可以和銷售方進(jìn)行溝通交流,可以完成購(gòu)物過(guò)程中把商品在購(gòu)物車中存放,可以在線下單和取消訂單等,并且近年來(lái)的發(fā)展逐漸向移動(dòng)端方向邁進(jìn),通常通過(guò)移動(dòng)端淘寶APP購(gòu)買同樣的商品會(huì)獲得更大力度的優(yōu)惠,這也代表了當(dāng)前電商平臺(tái)的發(fā)展方向。京東商城在發(fā)展中,更加注重產(chǎn)品購(gòu)買后的物流體驗(yàn),通過(guò)京東物流實(shí)現(xiàn)對(duì)客戶購(gòu)買物品的快速運(yùn)輸,尤其在京東擅長(zhǎng)的電器銷售中,提供了上門安裝服務(wù),使得在商城購(gòu)買的物品免除了后顧之憂。其實(shí),我國(guó)的許多電商發(fā)展思路是從國(guó)外類似平臺(tái)的發(fā)展中演化而來(lái)的,加上本地化創(chuàng)新,使得這樣的平臺(tái)在我國(guó)的發(fā)展速度很快。在國(guó)外電商平臺(tái)發(fā)展中有著許多的交易應(yīng)用。并且在歐美等發(fā)達(dá)國(guó)家中,他們更加注重對(duì)信用體系的建設(shè),從而使得電商平臺(tái)的發(fā)展有了更加安全的保障。美國(guó)是信息技術(shù)發(fā)展的引領(lǐng)者,該國(guó)的網(wǎng)絡(luò)電商平臺(tái)多且精準(zhǔn)。比如thredUP,它主要是面向婦女兒童實(shí)現(xiàn)商品銷售,努力打造的是對(duì)受眾群體的精準(zhǔn)營(yíng)銷。此外,另一個(gè)比較有代表性的平臺(tái)是Poshmark,它就如同我國(guó)的咸魚(yú)平臺(tái),在這里可以發(fā)布商品信息,尋找購(gòu)買者。但通??梢韵日业缴唐返馁?gòu)買者,然后進(jìn)行銷售活動(dòng)??梢栽谄脚_(tái)上發(fā)布商品圖片、文字信息等,實(shí)現(xiàn)對(duì)商品的宣傳和展示,促使交易快速達(dá)成。此外,也有針對(duì)國(guó)外華人提供精準(zhǔn)服務(wù)的APP應(yīng)用,其中華人生活A(yù)PP就是其中典型的代表,其創(chuàng)建辦者是華人,服務(wù)目標(biāo)是國(guó)外華人,更加準(zhǔn)確的說(shuō)是北美華人,通過(guò)提供更加符合這些人需求的物品,從而提升華人在這些國(guó)家的適應(yīng)度。因此,該應(yīng)用的商品交易達(dá)成度很高。通過(guò)對(duì)國(guó)內(nèi)外類似平臺(tái)的調(diào)查分析可以看出,國(guó)外在平臺(tái)發(fā)展上靈活性更高,客戶定位準(zhǔn)確,服務(wù)層次全面,并且創(chuàng)新性高。國(guó)內(nèi)在類似平臺(tái)的發(fā)展中,往往尋求行業(yè)領(lǐng)先,以大而全為其顯著特征,因此服務(wù)的精準(zhǔn)度存在問(wèn)題。因此,急需要推出更加靈活的購(gòu)物應(yīng)用,以滿足人們?nèi)諠u個(gè)性化的購(gòu)物需求。本文在研究中,以滿足我國(guó)電商平臺(tái)發(fā)展需求,推動(dòng)新零售發(fā)展為目標(biāo),打造微信小程序購(gòu)物新陣地,結(jié)合時(shí)下流行的識(shí)圖購(gòu)物的便捷性,為購(gòu)物者和銷售者打造新的連接橋梁。

2.需求分析2.1功能需求2.1.1業(yè)務(wù)流程分析通過(guò)本文的研究旨在為廣大購(gòu)物者提供一款更加易于使用的微客戶端小程序,提供識(shí)圖購(gòu)物功能,幫助購(gòu)物者實(shí)現(xiàn)更加便捷的購(gòu)物體驗(yàn)。在系統(tǒng)研究中需要完成三方面的開(kāi)發(fā)工作,一是微信小程序的開(kāi)發(fā),無(wú)需下載安裝即開(kāi)即用;二是服務(wù)器端應(yīng)用程序的開(kāi)發(fā),可以發(fā)布小程序中所有的商品信息;三是系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)和實(shí)現(xiàn)。在本系統(tǒng)的開(kāi)發(fā)中主要的業(yè)務(wù)流程是如圖2-1。圖2-1業(yè)務(wù)流程圖當(dāng)購(gòu)物者打開(kāi)該小程序以后,程序會(huì)對(duì)用戶的身份進(jìn)行識(shí)別,確定購(gòu)物者是否是第一次訪問(wèn)系統(tǒng),如果是,那么系統(tǒng)會(huì)對(duì)用戶進(jìn)行相關(guān)信息的獲取,用戶需要對(duì)小程序的獲取請(qǐng)求進(jìn)行授權(quán)。如果不是第一次打開(kāi)應(yīng)用,那么用戶就可以在小程序中搜尋要購(gòu)買的物品,包括添加購(gòu)物、瀏覽商品、下訂單、清空購(gòu)物車以及結(jié)算處理等。當(dāng)用戶的購(gòu)物流程完成以后,系統(tǒng)中會(huì)形成對(duì)應(yīng)的歷史訂單記錄信息,便于后續(xù)用戶進(jìn)行查詢。小程序會(huì)在用戶購(gòu)物環(huán)節(jié)中對(duì)用戶的身份進(jìn)行判斷,防止出現(xiàn)錯(cuò)誤。尤其在結(jié)算付款環(huán)節(jié),如果檢查到用戶還沒(méi)有進(jìn)行授權(quán),那么程序會(huì)進(jìn)行提示,并由用戶完成相應(yīng)的操作許可。2.1.2系統(tǒng)數(shù)據(jù)流分析在識(shí)圖購(gòu)物生鮮商城小程序中,數(shù)據(jù)流包括三個(gè)部分,即小程序本地手機(jī)緩存、應(yīng)用程序服務(wù)器以及微信服務(wù)器。通過(guò)小程序本地手機(jī)緩存可以存放用戶的購(gòu)物信息,提供購(gòu)物者更加快速的查看體驗(yàn)。通過(guò)應(yīng)用程序服務(wù)器則是提供購(gòu)物者商品信息。通過(guò)微信服務(wù)器則是提供小程序的其他功能,包括購(gòu)物者微信信息的獲取、支付功能等。在圖2-2中把這三個(gè)核心的系統(tǒng)數(shù)據(jù)流程進(jìn)行了表述。圖2-2系統(tǒng)業(yè)務(wù)數(shù)據(jù)流圖當(dāng)用戶打開(kāi)識(shí)圖購(gòu)物生鮮商城微信小程序后,程序會(huì)對(duì)用戶的身份進(jìn)行獲取。在得到授權(quán)后,用戶開(kāi)始瀏覽商城中的商品信息。該小程序中主要完成客戶信息的處理、商品信息的處理以及訂單信息的處理等。當(dāng)用戶提交購(gòu)買請(qǐng)求以后,會(huì)通過(guò)顯示層提交用戶請(qǐng)求,程序接收這些用戶請(qǐng)求,并通過(guò)控制器實(shí)現(xiàn)對(duì)用戶請(qǐng)求的響應(yīng),由程序接收用戶請(qǐng)求和進(jìn)行下一步處理,若購(gòu)物過(guò)程結(jié)束,則進(jìn)行支付;若還沒(méi)有結(jié)束,那么可以通過(guò)購(gòu)物車實(shí)現(xiàn)商品購(gòu)買信息的本地保存。如果需要向應(yīng)用程序服務(wù)器發(fā)起交互,則由系統(tǒng)的模型層構(gòu)建和數(shù)據(jù)庫(kù)操作之間的聯(lián)系,并對(duì)數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)調(diào)取或者更新操作,其中用到了數(shù)據(jù)層的處理程序。2.1.3系統(tǒng)總體功能分析微信小程序的核心目標(biāo)是提供服務(wù)更加精準(zhǔn)、使用更加便捷的購(gòu)物體驗(yàn)。因此,在本文的研究中對(duì)系統(tǒng)的定位是生鮮商品銷售。具體是果蔬品類的銷售服務(wù),以線上果蔬銷售和線下實(shí)體店結(jié)合方式進(jìn)行。程序中提供識(shí)圖購(gòu)物功能,充分借助微信平臺(tái)中用戶資源,實(shí)現(xiàn)銷售行為的達(dá)成。通過(guò)對(duì)系統(tǒng)功能進(jìn)行整合,提升系統(tǒng)中功能使用的高效性,系統(tǒng)功能以圖2-3中的六大核心功能模塊需求為主。圖2-3小程序客戶端整體功能結(jié)構(gòu)圖1、用戶登錄功能。實(shí)現(xiàn)小程序訪問(wèn)時(shí)獲取用戶微信信息的用戶授權(quán),并允許用戶對(duì)其中細(xì)節(jié)內(nèi)容進(jìn)行必要補(bǔ)充,比如送貨地址、聯(lián)系方式等。2、商品信息展示功能。實(shí)現(xiàn)小程序中對(duì)果蔬產(chǎn)品的信息展示,包括詳細(xì)信息以及廣告顯示等。3、商品分類功能。實(shí)現(xiàn)對(duì)銷售商品的分類管理,便于用戶按照商品分類進(jìn)行商品信息的查找。4、購(gòu)物車功能。通過(guò)該功能實(shí)現(xiàn)對(duì)購(gòu)物者商品信息的暫存,便于用戶對(duì)購(gòu)買商品進(jìn)行查看以及最終下單。5、下單結(jié)算功能。生產(chǎn)小程序中的購(gòu)物訂單,并且支持訂單信息管理和最終支付結(jié)算。6、個(gè)人信息管理功能。可以對(duì)用戶的個(gè)人信息進(jìn)行管理,可以對(duì)歷史訂單記錄進(jìn)行查看等。2.2性能需求(1)響應(yīng)需求:對(duì)于簡(jiǎn)單的業(yè)務(wù)操作而言,系統(tǒng)的響應(yīng)時(shí)間要控制在5s以內(nèi),能夠快速的對(duì)用戶的操作請(qǐng)求作出響應(yīng)。(2)擴(kuò)展性需求:隨著業(yè)務(wù)的不斷優(yōu)化和改進(jìn),系統(tǒng)要能夠順應(yīng)這種變化的需求,能夠適應(yīng)環(huán)境的變化。(3)實(shí)用性需求:小程序開(kāi)發(fā)的最終目的是向用戶提供便利性,所以實(shí)用性是該系統(tǒng)的最基本的需求,要向用戶提供簡(jiǎn)單的操作界面,能夠針對(duì)不同的問(wèn)題作出科學(xué)合理的響應(yīng)。(4)維護(hù)性需求:要想持續(xù)穩(wěn)定的向用戶提供信息服務(wù),就需要不斷的對(duì)系統(tǒng)進(jìn)行維護(hù)升級(jí),所以該系統(tǒng)要具有一定的維護(hù)性。2.3可行性分析2.3.1技術(shù)可行性目前,微信這一個(gè)平臺(tái)已經(jīng)非常的成熟和穩(wěn)定,微信給小程序的應(yīng)用提供了良好的環(huán)境基礎(chǔ)。在對(duì)小程序進(jìn)行開(kāi)發(fā)的時(shí)候,選用Java語(yǔ)言和Tomcat服務(wù)器技術(shù),本人在校期間學(xué)習(xí)過(guò)這方面的知識(shí),并且在實(shí)習(xí)的過(guò)程中也參與了一些應(yīng)用小程序的開(kāi)發(fā),具有一定的實(shí)踐經(jīng)驗(yàn)。所以,在技術(shù)方面,識(shí)圖購(gòu)物生鮮商城小程序的開(kāi)發(fā)是可行的。2.3.2經(jīng)濟(jì)可行性微信平臺(tái)提供了免費(fèi)的服務(wù)接口,Java語(yǔ)言開(kāi)源免費(fèi),所以在該系統(tǒng)的研究中,基本不需要投入成本。然而,該系統(tǒng)研發(fā)完成之后,可以給人們帶來(lái)極大的便利,能夠方便人們足不出戶就可以進(jìn)行識(shí)圖購(gòu)物,對(duì)于商家而言,可以節(jié)省一大部分的廣告費(fèi)和實(shí)體運(yùn)營(yíng)費(fèi),在經(jīng)濟(jì)方面,該程序的研發(fā)具有非常重要的意義。2.3.3操作可行性目前,幾乎每個(gè)人都注冊(cè)了微信,都能夠熟練的使用微信,微信小程序不需下載安裝,應(yīng)用非常的方便,在操作方面是可行的。2.4技術(shù)介紹2.4.1微信小程序微信小程序近年來(lái)的發(fā)展尤為迅速,通過(guò)小程序,可以向用戶提供便捷的服務(wù),在智能手機(jī)端,通過(guò)微信就可以連接小程序進(jìn)行使用,而不需要安裝任何的插件或者是應(yīng)用程序。用戶要想使用小程序的話,只需要使用微信的掃一掃功能或者獲得小程序的鏈接,就能夠打開(kāi)使用小程序;通過(guò)小程序的使用歷史及收藏的小程序,在微信的上方就可以找到并進(jìn)入,用戶再次訪問(wèn)的時(shí)候,只需要通過(guò)微信進(jìn)入即可,這種方式不但方便快捷,而且對(duì)客戶端的要求不高,運(yùn)行速度非常的快,不會(huì)對(duì)智能手機(jī)產(chǎn)生很大的消耗。在對(duì)微信小程序進(jìn)行開(kāi)發(fā)的時(shí)候,經(jīng)常使用到一種框架,那就是MINA框架,該框架是向小程序的開(kāi)發(fā)人員提供專業(yè)的服務(wù)的,通過(guò)該框架可以實(shí)現(xiàn)文件的傳輸、網(wǎng)絡(luò)的實(shí)時(shí)通信、任務(wù)的并發(fā)處理以及數(shù)據(jù)的安全防護(hù)等??梢哉f(shuō),通過(guò)MINA框架給小程序的上層開(kāi)發(fā),提供了全套的JavaScriptAPI,這樣就能夠通過(guò)小程序來(lái)實(shí)現(xiàn)一些應(yīng)用功能的開(kāi)發(fā)和實(shí)現(xiàn)。MINA框架向軟件開(kāi)發(fā)人員提供了多項(xiàng)選擇,可以在眾多的編程語(yǔ)言中選擇合適的,比如:WXML、WXSS語(yǔ)言等。MINA框架基于JavaScript的邏輯層來(lái)進(jìn)行服務(wù)的處理,該框架也分為了三層,分別是:視圖層、邏輯層和數(shù)據(jù)層,圖2-4給出了框架架構(gòu)圖。圖2-4微信MINA框架架構(gòu)圖2.4.2開(kāi)發(fā)環(huán)境介紹小程序的運(yùn)行是依賴于微信的,不需要安裝任何的軟件和應(yīng)用程序。為了滿足開(kāi)發(fā)人員的需要,微信官方向開(kāi)發(fā)人員提供了專業(yè)的小程序的開(kāi)發(fā)工具——微信開(kāi)發(fā)者工具,這一工具不僅不依賴于操作系統(tǒng),而且使用非常的方便快捷。微信小程序服務(wù)器端采用的是Tomcat服務(wù)器,開(kāi)發(fā)語(yǔ)言選用的是PHP,數(shù)據(jù)庫(kù)服務(wù)器選用的是MySQL,下面對(duì)所用到的相關(guān)的開(kāi)發(fā)工具進(jìn)行簡(jiǎn)單的介紹。Tomcat包括了服務(wù)器(Server)可以進(jìn)行靈活的打開(kāi)或者關(guān)閉、容器(Container)以及連接器(Connector)等。該服務(wù)器配置工具開(kāi)源且免費(fèi),在訪問(wèn)用戶量需求不大的中小型企業(yè)應(yīng)用中可以很好的提供服務(wù)。服務(wù)器程序運(yùn)行后占用的資源很少,可以更好的支持應(yīng)用系統(tǒng)運(yùn)行,實(shí)現(xiàn)對(duì)動(dòng)靜態(tài)網(wǎng)頁(yè)的良好支持。在JSP動(dòng)態(tài)網(wǎng)頁(yè)編程中,Servlet運(yùn)行在服務(wù)器端應(yīng)用程序中,能夠?qū)g覽器端用戶的訪問(wèn)請(qǐng)求進(jìn)行處理,起傳遞信息的作用,也就使扮演一個(gè)傳輸者的角色。Servlet位于網(wǎng)絡(luò)服務(wù)器內(nèi)部的服務(wù)器端。與傳統(tǒng)的命令行模式啟動(dòng)的Java程序不同的是,Servlet需要由網(wǎng)絡(luò)服務(wù)器來(lái)進(jìn)行加載,因此需要有JVM的支持能力。PHP是一種通用開(kāi)源腳本語(yǔ)言,又叫做超文本預(yù)處理器。PHP語(yǔ)法吸收了C語(yǔ)言,Java和Perl的特征。入門門檻較低,學(xué)習(xí)難度不大且用途十分廣泛,在萬(wàn)維網(wǎng)開(kāi)發(fā)領(lǐng)域有很強(qiáng)的適用性。PHP的語(yǔ)言的與眾不同的地方在于,它可以比其他語(yǔ)言更快地執(zhí)行動(dòng)態(tài)網(wǎng)頁(yè),PHP語(yǔ)言被看作是一種多用途的腳本語(yǔ)言,在進(jìn)行互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開(kāi)發(fā)的時(shí)候,可以很好的與其他語(yǔ)言所開(kāi)發(fā)的應(yīng)用程序進(jìn)行數(shù)據(jù)交互,從而極大的提升了系統(tǒng)的可擴(kuò)展性。通過(guò)良好的軟件系統(tǒng)架構(gòu)設(shè)計(jì),可以實(shí)現(xiàn)與Java程序、.net程序的相互通信,從而在極短的時(shí)間內(nèi)完成系統(tǒng)的擴(kuò)展。并且相應(yīng)的應(yīng)用系統(tǒng)具有良好的跨平臺(tái)性以及可移植性,可以幫助企業(yè)在控制成本投入的同時(shí)取得更好的開(kāi)發(fā)效果。MySQL數(shù)據(jù)庫(kù)是一款體積小、響應(yīng)速度好以及大數(shù)據(jù)量處理能力強(qiáng)的關(guān)系型數(shù)據(jù)庫(kù)。借助該數(shù)據(jù)庫(kù)管理系統(tǒng)可以很好的實(shí)現(xiàn)對(duì)識(shí)圖購(gòu)物生鮮商城中各種數(shù)據(jù)的安全存儲(chǔ)和管理。

3.概要設(shè)計(jì)3.1項(xiàng)目總體架構(gòu)在該程序的研究過(guò)程中,分為三大部分,分別是:客戶端、服務(wù)器和數(shù)據(jù)管理,其中,客戶端主要是通過(guò)“MINA”框架來(lái)實(shí)現(xiàn)的,該框架提供了豐富的組件,用戶可以根據(jù)需要直接使用。在對(duì)系統(tǒng)的體系架構(gòu)進(jìn)行設(shè)計(jì)的時(shí)候,采用的是MVC設(shè)計(jì)模式,通過(guò)這種模式,可以向前端用戶提供良好的購(gòu)物體驗(yàn)。而服務(wù)器端則采用的是ThinkPHP5來(lái)向前端提供應(yīng)用服務(wù)的,采用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)向前臺(tái)提供數(shù)據(jù)支持。ThinkPHP5對(duì)于服務(wù)器而言,是一個(gè)外部的框架,通過(guò)這一框架,可以向前端用戶提供良好的交互體驗(yàn),可以將選購(gòu)的物品放入到購(gòu)物車,可以對(duì)購(gòu)物車進(jìn)行編輯維護(hù),可以對(duì)提交的訂單進(jìn)行支付或跟蹤管理。小程序可以通過(guò)本地服務(wù)器來(lái)提高業(yè)務(wù)處理效率,除此之外,大部分的業(yè)務(wù)功能還是需要在服務(wù)器端來(lái)完成的,主要就是通過(guò)API接口來(lái)實(shí)現(xiàn)交互。MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)則主要就是向程序提供數(shù)據(jù)支持的,MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)需要與TP5相互配合來(lái)完成數(shù)據(jù)的共同管理。圖3-1給出了系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)描述。圖3-1系統(tǒng)總體架構(gòu)圖3.2項(xiàng)目開(kāi)發(fā)方法及環(huán)境部署在對(duì)該系統(tǒng)進(jìn)行開(kāi)發(fā)的時(shí)候,采用的是面向?qū)ο蟮脑O(shè)計(jì)思想和方法,面向?qū)ο蟮脑O(shè)計(jì)方法有很多的優(yōu)點(diǎn),比如:封裝性、繼承性等,通過(guò)封裝技術(shù),可以將業(yè)務(wù)邏輯進(jìn)行封裝處理,這樣可以大大的提高了模塊的內(nèi)聚性,只需要通過(guò)接口向外提供服務(wù),利于程序后續(xù)的維護(hù)和升級(jí)。在對(duì)系統(tǒng)的解決方案進(jìn)行設(shè)計(jì)的時(shí)候,面向?qū)ο蟮脑O(shè)計(jì)方法無(wú)疑是最好的選擇,通過(guò)面向?qū)ο蟮姆椒?,可以將一些基礎(chǔ)的業(yè)務(wù)進(jìn)行封裝處理,這樣不僅可以提高了代碼的復(fù)用性,而且還提高了程序的開(kāi)發(fā)效率。比如:在對(duì)用戶進(jìn)行身份校驗(yàn)的時(shí)候,不管在任何的情況下對(duì)用戶進(jìn)行身份校驗(yàn)的話,都是一樣的業(yè)務(wù)邏輯處理,所以,我們就可以將這一業(yè)務(wù)邏輯進(jìn)行封裝,這樣不管在任何的業(yè)務(wù)處理是進(jìn)行身份校驗(yàn),只需要通過(guò)接口調(diào)用封裝好的方法即可。從系統(tǒng)維護(hù)性的角度而言,通過(guò)封裝技術(shù),可以將內(nèi)部邏輯進(jìn)行封裝處理,讓系統(tǒng)需要升級(jí)或維護(hù)的時(shí)候,只需要對(duì)相關(guān)的模塊進(jìn)行邏輯處理即可,而不需要大動(dòng)干戈,對(duì)所有的模塊都進(jìn)行處理。在該程序開(kāi)發(fā)的過(guò)程中,選用的開(kāi)發(fā)工具和技術(shù)都是開(kāi)源免費(fèi)的,這些軟件只需要按安裝一次就可以,對(duì)于客戶端而言,并不需要安裝任何的軟件,也不需要進(jìn)行相關(guān)的配置,只需要通過(guò)微信掃一掃關(guān)注之后就可以訪問(wèn)使用。通過(guò)對(duì)比了常用的軟件開(kāi)發(fā)工具以及開(kāi)發(fā)技術(shù)之后,決定采用PHPstorm來(lái)開(kāi)發(fā)后臺(tái)服務(wù)器的PHP代碼,在數(shù)據(jù)庫(kù)訪問(wèn)方面,使用的是Navicat確保前端與后臺(tái)的實(shí)時(shí)連接,數(shù)據(jù)庫(kù)管理方面,選用的是MySQL。3.3各功能模塊分析3.3.1用戶登錄程序基于微信平臺(tái)開(kāi)發(fā),用戶登錄系統(tǒng)的時(shí)候,一般使用微信賬號(hào)登錄,當(dāng)用戶使用微信賬號(hào)掃一掃識(shí)別小程序的時(shí)候,這時(shí)候就將微信賬號(hào)與小程序進(jìn)行了綁定,當(dāng)再次訪問(wèn)小程序的時(shí)候,會(huì)自動(dòng)的獲取微信賬號(hào),通過(guò)身份識(shí)別,進(jìn)入到小程序進(jìn)行業(yè)務(wù)功能的使用。3.3.2商品分類導(dǎo)航識(shí)圖購(gòu)物生鮮商城向用戶提供了很多中產(chǎn)品,為了方便用戶的檢索,在小程序中按照類型將產(chǎn)生進(jìn)行分類管理。這樣,用戶在選擇產(chǎn)品的時(shí)候,可以逐級(jí)的篩選,能夠提高信息檢索的效率。3.3.3智慧識(shí)圖智慧識(shí)圖有兩個(gè)入口,“識(shí)別體驗(yàn)”入口進(jìn)入后,小程序會(huì)自動(dòng)調(diào)取攝像頭,點(diǎn)擊識(shí)別后會(huì)獲得圖片,將圖片的base64編碼作為參數(shù),調(diào)用百度算法進(jìn)行識(shí)別,最后獲得結(jié)果,再將結(jié)果作為關(guān)鍵字進(jìn)行查找,跳轉(zhuǎn)到商品列表;“選擇圖庫(kù)識(shí)別”進(jìn)入后,可以選擇圖片直接進(jìn)行編碼,再進(jìn)行后續(xù)操作。3.3.4模糊搜索商品當(dāng)用戶需要對(duì)產(chǎn)品進(jìn)行檢索的時(shí)候,可以通過(guò)模糊檢索的方式,在檢索功能框中,用戶輸入關(guān)鍵詞,系統(tǒng)就會(huì)采用模糊查詢的方式,先通過(guò)中文分詞器,將關(guān)鍵字進(jìn)行分詞,再根據(jù)所得的分詞與已發(fā)布的商品名稱進(jìn)行關(guān)鍵字匹配,搜索到符合用戶要求的商品,快捷高效。3.3.5熱門商品推薦根據(jù)商品的銷量,按照從高到低的排序,依次排列在首頁(yè)下方的商品列表中,為購(gòu)物需求不明確的客戶進(jìn)行商品的推薦,提高交易量。3.3.6商品購(gòu)買用戶選擇了自己喜歡的商品之后,就可以提交訂單進(jìn)行支付處理,在小程序中進(jìn)行支付的時(shí)候,可以根據(jù)自己的情況,選擇適合的方式進(jìn)行支付。用戶可以在小程序查看自己提交過(guò)的所有的訂單信息,后臺(tái)管理員也會(huì)接收到訂單信息。3.3.7商品購(gòu)物車功能用戶在選購(gòu)產(chǎn)品的時(shí)候,可能一次性需要購(gòu)買很多的產(chǎn)品,不可能每一個(gè)產(chǎn)品都提交一個(gè)訂單,所以提供了購(gòu)物車功能,用戶可以將選擇的產(chǎn)品添加到購(gòu)物車,選擇完成之后,再統(tǒng)一的提交訂單。3.3.8訂單管理用戶通過(guò)小程序提交了訂單之后,可以對(duì)自己提交的所有的訂單進(jìn)行跟蹤。后臺(tái)管理員在對(duì)訂單進(jìn)行處理之后,訂單的狀態(tài)會(huì)自動(dòng)的更新,必要的時(shí)候,可以以信息推送的方式將訂單的狀態(tài)變化情況推送給用戶。3.4數(shù)據(jù)庫(kù)設(shè)計(jì)3.4.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)按照系統(tǒng)數(shù)據(jù)庫(kù)概念設(shè)計(jì),在系統(tǒng)中如果要借助數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)管理,需要對(duì)數(shù)據(jù)實(shí)體進(jìn)行獲取,明確實(shí)體之間的關(guān)系,還需要對(duì)實(shí)體所具有的屬性進(jìn)行分析,便于后期進(jìn)行數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。業(yè)務(wù)處理過(guò)程中,不同的業(yè)務(wù)之間都具有一定的關(guān)系,所以業(yè)務(wù)所產(chǎn)生的這些實(shí)體之間也具有一定的關(guān)系,一般采用E-R圖來(lái)對(duì)概念模型進(jìn)行設(shè)計(jì)。E-R模型用E-R圖表示,屬性則是對(duì)實(shí)體特性的描述。在系統(tǒng)設(shè)計(jì)當(dāng)中數(shù)據(jù)庫(kù)起著決定性的因素。具體來(lái)說(shuō):1、商品實(shí)體用來(lái)記錄程序中展示的所有商品的基本信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-2。圖3-2商品信息實(shí)體圖2、用戶實(shí)體該實(shí)體主要用來(lái)記錄在程序中注冊(cè)過(guò)的所有的用戶信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-3。圖3-3用戶信息實(shí)體圖3、訂單實(shí)體該實(shí)體主要是用來(lái)記錄用戶所提交的所有的訂單信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-4。圖3-4訂單信息實(shí)體圖4、用戶地址為了購(gòu)物的方便,用戶可以將常用的一些地址維護(hù)到程序中,當(dāng)需要提交訂單的時(shí)候,只需要選擇地址即可,所以一個(gè)用戶可能對(duì)應(yīng)多個(gè)地址,用戶地址實(shí)體就是用來(lái)記錄這些信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-5。圖3-5用戶地址信息實(shí)體圖5、訂單商品用戶在提交訂單的時(shí)候,一個(gè)訂單可能包含有很多的商品,所以該實(shí)體主要就是用來(lái)記錄每一個(gè)訂單中所包含的商品的信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-6。圖3-6訂單商品信息實(shí)體圖6、商品分類為了方便維護(hù)和管理,為了方便用戶的商品檢索,需要將商品進(jìn)行分類管理,商品分類實(shí)體主要就是用來(lái)記錄這些分類信息的,其屬性結(jié)構(gòu)設(shè)計(jì)見(jiàn)圖3-7。圖3-7商品分類信息實(shí)體圖得出了以上的實(shí)體之后,通過(guò)對(duì)這些實(shí)體之間的關(guān)系進(jìn)行分析,可以得出系統(tǒng)的E-R圖,見(jiàn)圖3-9。圖3-9系統(tǒng)總體E-R圖3.4.2數(shù)據(jù)庫(kù)表詳細(xì)設(shè)計(jì)獲取了系統(tǒng)的E-R圖之后,還需要將其轉(zhuǎn)換為數(shù)據(jù)庫(kù)表,論文選用的是MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)實(shí)現(xiàn)對(duì)這些數(shù)據(jù)表的維護(hù)和管理的,部分表結(jié)構(gòu)的設(shè)計(jì)如下:(1)商品信息表表3SEQ表格\*ARABIC\s11商品信息表數(shù)據(jù)名稱數(shù)據(jù)含義goods_id商品IDgoods_name商品名稱category_id分類idcontent商品詳情goods_price商品單價(jià)goods_image商品圖片goods_stock庫(kù)存create_time創(chuàng)建時(shí)間update_time更新時(shí)間(2)用戶信息表表32用戶信息表數(shù)據(jù)名稱數(shù)據(jù)含義user_id用戶iduser_name用戶昵稱logon_time注冊(cè)時(shí)間up_time更新時(shí)間delet_time刪除時(shí)間remarks備注(3)訂單信息表表33訂單信息表數(shù)據(jù)名稱數(shù)據(jù)含義order_id訂單IDorder_no訂單編號(hào)續(xù)表1-3pay_time支付時(shí)間order_totale訂單總額delivery_time發(fā)貨時(shí)間receipt_status收貨狀態(tài)receipt_time收貨時(shí)間order_status訂單狀態(tài)user_id用戶idcreate_time創(chuàng)建時(shí)間update_time更新時(shí)間(4)收獲地址表表34收獲地址表數(shù)據(jù)名稱數(shù)據(jù)含義address_id主鍵IDuser_id用戶IDname姓名phone電話province省city市area縣區(qū)full_address詳細(xì)地址delete_time刪除時(shí)間update_time更新時(shí)間(5)訂單商品表表35訂單商品表數(shù)據(jù)名稱數(shù)據(jù)含義order_id訂單IDgoods_id商品IDnumber數(shù)量續(xù)表3-5delete_time刪除時(shí)間update_time更新時(shí)間

4.詳細(xì)設(shè)計(jì)本文所研究的小程序與其它的購(gòu)物平臺(tái)最大的區(qū)別在于能夠通過(guò)識(shí)圖的方式能夠快速的識(shí)別物品,檢索出類似的商品供用戶選擇。在對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)的時(shí)候,不僅需要注意這些功能性方面的設(shè)計(jì),還需要注意小程序運(yùn)行界面的布局設(shè)計(jì),采用MINA框架來(lái)對(duì)運(yùn)行界面進(jìn)行設(shè)計(jì),確保操作界面的美觀大方。整個(gè)程序運(yùn)行的過(guò)程中,要確保前臺(tái)與后臺(tái)的實(shí)時(shí)連接,微信小程序客戶端與本地服務(wù)器和微信服務(wù)器中API邏輯接口的支持,實(shí)現(xiàn)對(duì)業(yè)務(wù)邏輯的處理;為了能夠提高智慧識(shí)圖的準(zhǔn)確性,系統(tǒng)調(diào)用的百度算法,不僅簡(jiǎn)單好用,而且準(zhǔn)確度比較高;產(chǎn)生的業(yè)務(wù)邏輯信息存儲(chǔ)在數(shù)據(jù)庫(kù)中統(tǒng)一維護(hù)和管理,設(shè)計(jì)選用MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)。為了確保程序前臺(tái)的業(yè)務(wù)邏輯的交互設(shè)計(jì),系統(tǒng)采用MVC設(shè)計(jì)模式來(lái)進(jìn)行不同模塊的設(shè)計(jì)處理。為了能夠滿足用戶的日常購(gòu)物需要,將系統(tǒng)分為了5大模塊,每一個(gè)模塊內(nèi)部對(duì)業(yè)務(wù)邏輯進(jìn)行封裝處理,通過(guò)接口完成模塊間的交互,下面采用時(shí)序圖、流程圖等來(lái)對(duì)具體的功能模塊的詳細(xì)設(shè)計(jì)給出描述。4.1客戶端與服務(wù)器的交互設(shè)計(jì)識(shí)圖購(gòu)物小程序通過(guò)前端接收用戶的操作請(qǐng)求,在對(duì)用戶的操作請(qǐng)求進(jìn)行處理的時(shí)候,以wxml文件的形式來(lái)對(duì)信息進(jìn)行包裝處理的,將wxml文件傳輸給業(yè)務(wù)邏輯層之后,對(duì)其進(jìn)行解析處理,客戶端與服務(wù)器的交互原理見(jiàn)圖4-1。圖4-1客戶端與服務(wù)器交互原理圖當(dāng)用戶通過(guò)小程序提交操作請(qǐng)求的時(shí)候,客戶端小程序會(huì)將請(qǐng)求進(jìn)行封裝,封裝成js類文件,并使用HTTP協(xié)議進(jìn)行信息的發(fā)送,當(dāng)服務(wù)器API端接收到操作請(qǐng)求的時(shí)候,將封裝后的請(qǐng)求進(jìn)行解析處理,得到最終的操作請(qǐng)求,并在服務(wù)器端執(zhí)行,將執(zhí)行后的結(jié)果記錄到數(shù)據(jù)庫(kù)中,并且服務(wù)器會(huì)先將結(jié)果返回到j(luò)s文件的請(qǐng)求函數(shù)中。在整個(gè)的業(yè)務(wù)處理過(guò)程中,如果涉及到的具體的業(yè)務(wù)數(shù)據(jù)信息,都是以wxml文件的形式進(jìn)行記錄和傳輸?shù)模@些數(shù)據(jù)信息最終在前臺(tái)界面以信息列表的形式顯示。上面以靜態(tài)類的方式來(lái)對(duì)交互過(guò)程進(jìn)行描述的,在實(shí)際的業(yè)務(wù)處理過(guò)程中,不同的頁(yè)面以及不同的類之間都是動(dòng)態(tài)交互的,這就需要使用控制器來(lái)進(jìn)行動(dòng)態(tài)的調(diào)度管理。當(dāng)客戶端用戶提交操作請(qǐng)求的時(shí)候,首先,需要獲取到用戶的動(dòng)作也就是用戶的操作請(qǐng)求,然后在根據(jù)具體的操作請(qǐng)求,調(diào)用相關(guān)的方法,響應(yīng)用戶的操作請(qǐng)求。在對(duì)用戶的操作請(qǐng)求進(jìn)行獲取的時(shí)候,是通過(guò)wxml的相關(guān)屬性來(lái)進(jìn)行定義和獲取的,當(dāng)用戶發(fā)出某個(gè)操作請(qǐng)求的時(shí)候,一般以event事件的形式進(jìn)行交互處理。視圖層接收到了用戶的操作請(qǐng)求之后,需要調(diào)用js文件來(lái)對(duì)相關(guān)的事件進(jìn)行相應(yīng)處理,并通過(guò)HTTP協(xié)議將請(qǐng)求發(fā)送給服務(wù)器端的API接口,將最終的處理結(jié)果反饋給js文件,并在前臺(tái)界面顯示。4.2客戶端的MVC模式設(shè)計(jì)MVC是一種成熟的軟件領(lǐng)域的設(shè)計(jì)模式,MVC由三部分組成,分別是:Model、View和Controller。通過(guò)這三個(gè)部分,也就將應(yīng)用系統(tǒng)分為了三層,分別是:表示層、業(yè)務(wù)層和數(shù)據(jù)層,這三個(gè)層次相互獨(dú)立,又相互協(xié)作,共同來(lái)完成完整業(yè)務(wù)的處理。通過(guò)MVC軟件開(kāi)發(fā)模式可以更好的實(shí)現(xiàn)軟件的耦合度,使得軟件在不改變其他部分的情況就可以通過(guò)單獨(dú)開(kāi)發(fā)層的轉(zhuǎn)變進(jìn)行實(shí)現(xiàn)。通過(guò)MVC進(jìn)行軟件開(kāi)發(fā),不會(huì)因?yàn)槌绦虻淖儎?dòng)而調(diào)整全部,這在傳統(tǒng)軟件開(kāi)發(fā)中幾乎是不可能做到的。而在MVC模式中則可以進(jìn)行分別調(diào)整,比如用戶視圖發(fā)生變化可以只改動(dòng)視圖,模型處理則只調(diào)整模型層的處理代碼。這種變化使得程序人員的處理效率以及準(zhǔn)確性得到了改善。按照這種設(shè)計(jì)思想,系統(tǒng)中的視圖層(View)包括的程序文件是.wxml和.wxss為后綴的文件,在控制器層(Controller)中用到的是.js文件,而在模型層(Model)中只需要處理好model.js文件即可。系統(tǒng)中的配置文件則通過(guò).json文件進(jìn)行管理。于是,小程序就可以通過(guò)前端的顯示層對(duì)用戶的請(qǐng)求進(jìn)行接收和簡(jiǎn)單處理,然后通過(guò)控制器做出具體的響應(yīng),然后根據(jù)邏輯處理需求選擇對(duì)應(yīng)的模型進(jìn)行數(shù)據(jù)的處理,從而實(shí)現(xiàn)了用戶和系統(tǒng)服務(wù)器的交互。該小程序總體上的運(yùn)行原理可以通過(guò)圖4-2中的結(jié)構(gòu)進(jìn)行表示。圖4-2小程序客戶端的MVC模式設(shè)計(jì)原理圖其中,在模型層中的數(shù)據(jù)處理是通過(guò)網(wǎng)絡(luò)向服務(wù)器中的應(yīng)用程序發(fā)起的接口交互,然后通過(guò)服務(wù)端的應(yīng)用程序獲取MySQL中的數(shù)據(jù),并根據(jù)需要進(jìn)行數(shù)據(jù)的添加或者處理。在服務(wù)器端完成數(shù)據(jù)的響應(yīng)以后,通過(guò)API再把數(shù)據(jù)返回到微信小程序,并通過(guò)前端的View層把處理結(jié)果顯示出來(lái)。在系統(tǒng)開(kāi)發(fā)中通過(guò)這樣的方式實(shí)現(xiàn)了前后端的分離,確保了各個(gè)部分單獨(dú)負(fù)責(zé)系統(tǒng)中數(shù)據(jù)的顯示或者處理,使得程序的耦合度得到了降低,并且由于有了這種清晰的系統(tǒng)結(jié)構(gòu),也使得程序的后續(xù)維護(hù)變得簡(jiǎn)答。當(dāng)需要對(duì)系統(tǒng)進(jìn)行功能升級(jí)的時(shí)候,可以按照相同的流程對(duì)系統(tǒng)進(jìn)行完善。4.3客戶端用戶Token管理機(jī)制設(shè)計(jì)在傳統(tǒng)的網(wǎng)站系統(tǒng)中,用戶在網(wǎng)站中進(jìn)行商品的購(gòu)買需要其登錄系統(tǒng)來(lái)完成。網(wǎng)站會(huì)對(duì)用戶的登錄信息進(jìn)行驗(yàn)證,并記錄下用戶的個(gè)人信息。通常會(huì)通過(guò)cookie的方式進(jìn)行保存。在其他一些APP應(yīng)用中也是一樣的道理。但是在微信小程序中則不同。該程序中是通過(guò)Token令牌機(jī)制來(lái)對(duì)用戶的身份進(jìn)行標(biāo)識(shí)和管理的。通過(guò)圖4-3中的時(shí)序圖可以看出該小程序中用戶登錄和Token的獲取過(guò)程。圖4-3用戶獲取token令牌時(shí)序圖在該小程序中,用戶登錄小程序時(shí)會(huì)獲取其微信賬號(hào)信息,微信則會(huì)通過(guò)wx.login()方法來(lái)為用戶的登錄做出響應(yīng),并產(chǎn)生唯一的code碼,這時(shí)候小程序會(huì)和開(kāi)發(fā)者服務(wù)器建立連接,并發(fā)送該code碼。并由服務(wù)器借助getToken()方法向微信服務(wù)器發(fā)送相關(guān)信息,并由從微信服務(wù)器中獲取響應(yīng)。這時(shí)候返回的數(shù)據(jù)中會(huì)帶有兩個(gè)重要的參數(shù)信息,分別是用戶id、session_key。其中用戶id是用戶身份的標(biāo)識(shí),并且是唯一的。在服務(wù)器端把該參數(shù)保存下來(lái),如果用戶登錄就會(huì)自動(dòng)對(duì)應(yīng)該標(biāo)識(shí)??紤]到該數(shù)據(jù)的安全性,通常會(huì)把該數(shù)值保存為一定時(shí)效性的token令牌。這樣只要用戶訪問(wèn)微信小程序,就會(huì)自動(dòng)和開(kāi)發(fā)者服務(wù)器中保存的用戶id進(jìn)行對(duì)應(yīng),并完成認(rèn)證和判斷過(guò)程。從而確保了訪問(wèn)用戶的安全性,如果系統(tǒng)中沒(méi)有對(duì)應(yīng)的數(shù)據(jù),那么該用戶需要向微信服務(wù)器進(jìn)行申請(qǐng)。具體的驗(yàn)證路程可以通過(guò)圖4-4中的內(nèi)容進(jìn)行表示。該Token令牌會(huì)保存到小程序客戶端的緩存中,如果程序校驗(yàn)過(guò)程中發(fā)生錯(cuò)誤,需要用戶再次進(jìn)行Token的獲取。但是考慮到在實(shí)際業(yè)務(wù)進(jìn)行過(guò)程中,小程序會(huì)頻繁的發(fā)生各種業(yè)務(wù),比如在線支付、下訂單操作等,因此可以通過(guò)創(chuàng)建一個(gè)全局基類的方式實(shí)現(xiàn)對(duì)Token的統(tǒng)一管理。圖4-4客戶端token管理機(jī)制流程圖5.軟件功能及核心代碼5.1小程序首頁(yè)功能用戶打開(kāi)小程序后看到下圖的系統(tǒng)首頁(yè),在此可以對(duì)生鮮商品進(jìn)行搜索,可以通過(guò)識(shí)圖體驗(yàn)進(jìn)行購(gòu)物。圖5-1商城首頁(yè)具體代碼如下:index.wxml<viewclass="container"><scroll-viewbindscroll="scroll"scroll-top="{{scrollTop}}"scroll-y="true"style="position:absolute;top:0;left:0;right:0;bottom:0;"><blockwx:for="{{items}}"wx:for-item="item"wx:for-index="item_key"wx:key="this"><!--搜索框--><blockwx:if="{{item.type==='search'}}"><includesrc="components/search/search.wxml"/></block><!--banner輪播--><blockwx:if="{{item.type==='banner'}}"><includesrc="components/banner/banner.wxml"/></block></block> <viewclass='index-container'style="width:100%;height:{{height}}px"><viewclass="btn-arearecognition"style="text-align:center;"><buttontype="default"style="width:320rpx;display:inline-block;margin-right:20rpx;"bindtap="goRecognition">識(shí)別體驗(yàn)</button><buttontype="default"style="width:320rpx;display:inline-block;margin-left:20rpx;"bindtap="chooseImage">選擇圖庫(kù)識(shí)別</button></view></view><!--商品推薦--><viewclass="recommended-index-list"><viewclass="title-headerb-ft-cf-32col-3">新品推薦</view></view><viewclass="index_sale"><scroll-viewscroll-x="true"><navigatorhover-class="none"style="display:inline-block;"url="../goods/index?goods_id={{item.goods_id}}"wx:for="{{newest}}"wx:key="this"><viewclass="column"><viewclass="sale_img"><imagemode="aspectFill"src="{{item.image[0].file_path}}"></image></view><viewclass="contentonelist-hidden"><text>{{item.goods_name}}</text></view><textclass="pricecol-mf-30">¥{{item.spec[0].goods_price}}</text></view></navigator></scroll-view></view><!--猜您喜歡--><viewclass="title-hrbg"style="margin-top:10rpx"><textclass="cont"><textclass="iconfonticon-huocol-m"></text>猜您喜歡</text><viewclass="hr"></view></view><viewclass="category-list"><navigatorclass="listb-f"hover-class="none"url="../goods/index?goods_id={{item.goods_id}}"wx:for="{{best}}"wx:key="this"><viewclass="left"><viewclass="img"><imageclass="goodsImg"mode="scaleToFill"src="{{item.image[0].file_path}}"></image></view></view><viewclass="right"><viewclass="cont"><textclass="f-30titletwolist-hiddenm-top10">{{item.goods_name}}</text><textclass="pricef-34col-mf-w">¥{{item.spec[0].goods_price}}</text></view></view></navigator></view><!--底線--><viewclass="title-footerp-r"><textclass="f-24col-9cont">我是有底線的</text><viewclass="hr"></view></view></scroll-view><!--返回頂部--><viewbindtap="goTop"class="widget-goTop"wx:if="{{floorstatus}}"><textclass="iconfonticon-fanhuidingbu"></text></view></view>5.2監(jiān)聽(tīng)攝像頭和識(shí)別蘋(píng)果核心功能用戶調(diào)用識(shí)圖功能以后,可以打開(kāi)手機(jī)中的拍攝攝像頭,然后進(jìn)行拍照。這樣程序就會(huì)調(diào)用百度算法對(duì)拍攝內(nèi)容進(jìn)行識(shí)別,實(shí)現(xiàn)界面效果如下:圖5-2識(shí)圖界面具體代碼如下:recognition.js//pages/recognition/recognition.jsimportupngfrom'../../UPNG.js'Page({data:{height:'360',width:'20',status:false,scanStatus:'none',msg:"請(qǐng)點(diǎn)擊識(shí)別圖片",src:'',listener:null,isReuqest:false,canvasWidth:'10',canvasHeight:'10',},onLoad:function(options){this.ctx=wx.createCameraContext(); wx.getSystemInfo({success:res=>{this.setData({height:res.windowHeight*0.8,width:res.windowWidth});}});},stopScan:function(){this.setData({scanStatus:'none'});},onShow:function(){this.setData({msg:'請(qǐng)點(diǎn)擊識(shí)別圖片'}); this.status=false;},error:function(e){this.setData({msg:'打開(kāi)攝像頭失敗,請(qǐng)重新識(shí)別'});},searchPhoto:function(imageBase64){letthat=this; varinfo=wx.getStorageSync("info"); varaccess_token=info.access_token;wx.request({url:'/rest/2.0/image-classify/v1/classify/ingredient?access_token='+access_token,data:{image:imageBase64, top_num:5},header:{'content-type':'application/x-www-form-urlencoded'//默認(rèn)值},method:'POST',success(res){console.log(res);//返回識(shí)別結(jié)果that.setData({isReuqest:false});if(res.data.result&&res.data.result.length>0) { varlist=res.data.result; if(list.length>0) { wx.showToast({ title:'識(shí)別'+res.data.result[0].name+'成功', icon:"none", duration:500 })//跳轉(zhuǎn)到商品列表 setTimeout(()=>{ ('gotowebar'); wx.navigateTo({ url:'/pages/category/list?search='+res.data.result[0].name }); },500); } }},fail(err){console.log(err)that.status=false;that.setData({msg:'識(shí)別失敗,請(qǐng)點(diǎn)擊重試',isReuqest:false});}})},transformArrayBufferToBase64:function(frame){constdata=newUint8ClampedArray(frame.data);this.setData({isReuqest:true});letpngData=upng.encode([frame.data],frame.width,frame.height,16,0);letbase64=wx.arrayBufferToBase64(pngData);this.searchPhoto(base64)},takePhoto:function(e){ //constcontext=wx.createCameraContext() console.log(this.ctx); varthat=this; //獲取攝像頭圖片 this.ctx.takePhoto({ success:function(res){ console.log(res); wx.getFileSystemManager().readFile({ filePath:res.tempImagePath, encoding:"base64", success:function(res){ console.log(res.data);//返回base64編碼結(jié)果,但是圖片的話沒(méi)有data:image/pngthat.searchPhoto(res.data); } }) } });}})5.3后臺(tái)核心功能在后臺(tái)有對(duì)應(yīng)的管理功能,可以實(shí)現(xiàn)對(duì)用戶、商品以及訂單信息的管理等。在下圖中是商品管理頁(yè)面,可以新增生鮮商品,可以對(duì)其信息進(jìn)行編輯,也可以刪除一些無(wú)效的商品內(nèi)容。圖5-3商品管理界面對(duì)商品的內(nèi)容進(jìn)行編輯,除了填寫(xiě)商品的一些基本信息,名稱、圖片、價(jià)格等等,還可以在下方使用編輯器對(duì)商品的詳情進(jìn)行描述圖5-4商品詳情界面商品分類管理,可以對(duì)商品類別進(jìn)行添加、刪除、修改等操作,方便對(duì)小程序中商品的類別進(jìn)行管理圖5-5商品分類管理對(duì)商品的類別進(jìn)行添加,要注意類別一定要對(duì)應(yīng)正確的上級(jí)分類,根據(jù)生活習(xí)慣,合理的對(duì)分類進(jìn)行排序。圖5-6添加商品分類

6.系統(tǒng)測(cè)試6.1測(cè)試目的對(duì)于一個(gè)系統(tǒng)而言,系統(tǒng)的測(cè)試是必不可少的階段,在測(cè)試的過(guò)程中,不僅可以驗(yàn)證系統(tǒng)是否滿足了日常的業(yè)務(wù)需要,而且還能夠發(fā)現(xiàn)存在的問(wèn)題,在對(duì)系統(tǒng)進(jìn)行測(cè)試的時(shí)候,要循環(huán)測(cè)試,避免修改問(wèn)題的過(guò)程中又引發(fā)了新的問(wèn)題。軟件測(cè)試的目的就是發(fā)現(xiàn)系統(tǒng)中存在的BUG,以便進(jìn)行及時(shí)更正。當(dāng)前對(duì)軟件測(cè)試的重視程度非常高,畢竟它關(guān)系到軟件的成熟度問(wèn)題、質(zhì)量問(wèn)題。軟件測(cè)試是一個(gè)不可或缺且冗長(zhǎng)的階段,檢驗(yàn)測(cè)試系統(tǒng)的可靠性和功能實(shí)現(xiàn)情況,以便實(shí)現(xiàn)對(duì)系統(tǒng)的質(zhì)量考察和評(píng)估。應(yīng)用系統(tǒng)在開(kāi)發(fā)和運(yùn)行的過(guò)程中受很多因素的影響,系統(tǒng)開(kāi)發(fā)完成之后,需要在特定的環(huán)境下測(cè)試通過(guò)之后才能夠部署應(yīng)用,系統(tǒng)測(cè)試的目的不單單是發(fā)現(xiàn)問(wèn)題,更重要的是驗(yàn)證系統(tǒng)的設(shè)計(jì)是否符合日常的業(yè)務(wù)操作需要。調(diào)試的過(guò)程主要就是編程人員對(duì)自己負(fù)責(zé)代碼的部分進(jìn)行測(cè)試的過(guò)程,而測(cè)試涵蓋了整個(gè)的系統(tǒng)。在測(cè)試過(guò)程中一旦發(fā)現(xiàn)了問(wèn)題,就必須對(duì)這些問(wèn)題進(jìn)行緊急處理,讓系統(tǒng)可以穩(wěn)定長(zhǎng)久的使用。調(diào)試與測(cè)試在系統(tǒng)研發(fā)過(guò)程中所占的比例非常大,這就說(shuō)明了測(cè)試工作是至關(guān)重要的,必須確定了測(cè)試計(jì)劃,明確測(cè)試目的,找出錯(cuò)誤進(jìn)行完善。6.2測(cè)試方法根據(jù)實(shí)際的測(cè)試工作的需要,將整個(gè)的測(cè)試工作分為為了五個(gè)階段來(lái)完成。每一個(gè)測(cè)試階段所采用的測(cè)試方法不同,但總體而言可以將測(cè)試方法分為黑盒測(cè)試和白盒測(cè)試。(1)黑盒測(cè)試主要是將整個(gè)系統(tǒng)看著是一個(gè)黑色的盒子,外部的用戶是看不到盒子內(nèi)部的結(jié)構(gòu)的,黑盒測(cè)試一般用于功能測(cè)試,并且黑盒測(cè)試一般是由系統(tǒng)的實(shí)際用戶或者是專業(yè)的測(cè)試人員來(lái)完成的。是指完全不考慮程序的里面結(jié)構(gòu)和特性的情況下,測(cè)試軟件的外部特征,要對(duì)其進(jìn)行輸入和輸出的測(cè)試,不僅要提供準(zhǔn)確的輸入,還要對(duì)錯(cuò)誤的輸入進(jìn)行測(cè)試。(2)白盒測(cè)試則相反,將系統(tǒng)看的是一個(gè)白色透明的盒子,外部的用戶可以清楚的查看內(nèi)部的結(jié)構(gòu)設(shè)計(jì),白盒測(cè)試一般用于性能測(cè)試,并且白盒測(cè)試一般是由系統(tǒng)的研發(fā)人員來(lái)完成的,在一定意義上,白盒法也是窮舉測(cè)試。6.3系統(tǒng)測(cè)試在對(duì)系統(tǒng)進(jìn)行測(cè)試的時(shí)候,嚴(yán)格的按照軟件工程的思想,從需求分析開(kāi)始就展開(kāi)了對(duì)系統(tǒng)的測(cè)試,測(cè)試內(nèi)容比較多,這里僅以一些重要功能的測(cè)試為例來(lái)對(duì)具體的測(cè)試用例進(jìn)行描述。(1)識(shí)圖功能測(cè)試用例使用不同的圖片進(jìn)行商品的識(shí)別,設(shè)計(jì)了試圖功能測(cè)試用例。見(jiàn)表6-1。表6-1識(shí)圖功能測(cè)試用例用例ID操作描述測(cè)試數(shù)據(jù)期望結(jié)果測(cè)試結(jié)果123456商品識(shí)別商品識(shí)別商品識(shí)別商品識(shí)別商品識(shí)別商品識(shí)別土豆白菜蘋(píng)果香蕉葡萄西紅柿識(shí)別正確識(shí)別正確識(shí)別正確識(shí)別正確識(shí)別正確識(shí)別正確符合符合符合符合符合符合(2)搜索功能測(cè)試用例使用不同的關(guān)鍵詞進(jìn)行搜索,系統(tǒng)需要返回給用戶與關(guān)鍵詞相關(guān)的商品列表,搜索功能測(cè)試用例見(jiàn)表6-2。表6-2搜索功能測(cè)試用例用例ID操作描述測(cè)試數(shù)據(jù)期望結(jié)果測(cè)試結(jié)果123456商品搜索商品搜索商品搜索商品搜索商品搜索商品搜索菜西紅柿好吃精品香蕉葡萄土豆搜索出相關(guān)商品列表搜索出相關(guān)商品列表搜索出相關(guān)商品列表搜索出相關(guān)商品列表搜索出相關(guān)商品列表搜索出相關(guān)商品列表符合符合符合符合符合符合(3)商品詳情測(cè)試用例對(duì)多個(gè)商品點(diǎn)擊查看詳情,觀察數(shù)量的加減,詳情顯示等是否正確,商品詳情測(cè)試用例見(jiàn)表6-3。表6-3商品詳情測(cè)試用例用例ID操作描述測(cè)試數(shù)據(jù)期望結(jié)果測(cè)試結(jié)果123456查看商品詳情查看商品詳情查看商品詳情查看商品詳情查看商品詳情查看商品詳情西紅柿詳情土豆詳情葡萄詳情精品香蕉詳情白菜詳情菠蘿詳情商品詳情展示正確商品詳情展示正確商品詳情展示正確商品詳情展示正確商品詳情展示正確商品詳情展示正確符合符合符合符合符合符合(4)購(gòu)物車功能測(cè)試用例添加多個(gè)商品到購(gòu)物車,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論