基于PHP的微信商城的設(shè)計實現(xiàn)分析_第1頁
基于PHP的微信商城的設(shè)計實現(xiàn)分析_第2頁
基于PHP的微信商城的設(shè)計實現(xiàn)分析_第3頁
基于PHP的微信商城的設(shè)計實現(xiàn)分析_第4頁
基于PHP的微信商城的設(shè)計實現(xiàn)分析_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE.z.年月日目錄摘要IABSTRACTII1緒論11.1研究的背景、目的和意義11.2國外文獻綜述11.3研究的主要容22需求分析與可行性研究42.1市場定位分析42.2可行性分析42.3需求目標42.3.1概述42.3.2商城整體說明53系統(tǒng)解決方案63.1設(shè)計方案的論證63.1.1設(shè)計方案的選擇63.1.2工具的選擇63.2設(shè)計方案的說明73.2.1系統(tǒng)總體描述73.2.2系統(tǒng)角色類型73.2.3系統(tǒng)規(guī)劃83.2.4預(yù)期目的93.2.5技術(shù)要求94系統(tǒng)詳細設(shè)計104.1系統(tǒng)模塊架構(gòu)104.2系統(tǒng)功能說明104.2.1系統(tǒng)登錄模塊104.2.2盒子設(shè)置模塊114.2.3盒子容更改模塊124.2.4盒子管理員模塊134.2.5根本商城功能模塊144.3數(shù)據(jù)字典155系統(tǒng)實現(xiàn)185.1模塊實現(xiàn)的理論根底185.2系統(tǒng)登錄模塊的實現(xiàn)185.3設(shè)置學校信息模塊的實現(xiàn)185.4盒子選貨模塊的實現(xiàn)225.4.1選貨模塊225.4.2選貨后編輯及提交模塊235.5管理員審核模塊275.6人人商城到盒子模塊的跳轉(zhuǎn)295.7雙支付接入296系統(tǒng)測試306.1概述306.2系統(tǒng)測試用例306.3測試總結(jié)327完畢語33參考文獻34致35-.z.摘要隨著電商的不斷開展和新老電商品牌的更新?lián)Q代,電商行業(yè)似乎已經(jīng)進入一個飽和的階段,另一方面,其以淘寶京東為大的壟斷性質(zhì)也越創(chuàng)造顯。傳統(tǒng)電商的模式現(xiàn)在很難再開展出來新興門戶了,但是,電商現(xiàn)在的覆蓋面還不是百分百的,有很多有待開發(fā)的"藍海〞正亟待接入互聯(lián)網(wǎng),所以在傳統(tǒng)電商的根底上,開發(fā)出一套新的商業(yè)模式,避開當下電商"領(lǐng)頭羊〞的鋒芒,是一種比較好的創(chuàng)業(yè)方法。而商城盒子就是這樣一種模式,它是先消費后付款的,所以可以到達傳統(tǒng)電子商城不可能到達的時效性和便捷性。其開展前景是巨大的,完全可以開展成一個集粉絲活潑度和用戶消費量于一身的平臺。本設(shè)計課題的任務(wù)就是基于傳統(tǒng)商城的模式給商城盒子定制開發(fā)出來一套專用的電子商城模式,讓用戶的體驗更好,商家的入駐和管理也更方便。采用了PHP作為后臺開發(fā)語言,HTML+JS+CSS作為前端開發(fā)語言,遵守微信的開發(fā)規(guī),完成了零食盒子的根本功能,系統(tǒng)運行流暢,可以正常使用。關(guān)鍵詞:電商;PHP;微信ABSTRACTWiththecontinuousdevelopmentofelectricityandnewandoldelectricbusinessbrandreplacement,electricityindustryseemstohaveenteredasaturatedstage,ontheotherhand,itsTaobaoJingdonglargemonopolynatureismoreandmoreobvious.Thetraditionalelectricbusinessmodelisnowdifficulttodevelopoutofthenewportal,buttheelectricitybusinessisnownot100%coverage,therearemanytobedeveloped"BlueOcean"isurgentlytoaccesstheInternet,sothebasisofthetraditionalelectricitybusinessOnthedevelopmentofanewbusinessmodel,toavoidthecurrentleaderintheedgeofelectricity,isabetterwaytostart.Themallbo*issuchamodel,usingthefirstpaymentafterthepaymentmodel,toachievethetraditionale-mallcannotachievethetimelinessandconvenience.Itsdevelopmentprospectsarehuge,canbedevelopedintoasetoffanactivityanduserconsumptioninaplatform.Thetaskofthisdesigntaskisbasedonthetraditionalmallmodeltothemalltocustomizethedevelopmentofasetofdedicatede-mallmodel,sothatuserse*periencebetter,businessmensettledandmanagementisalsomoreconvenient.UsingPHPasabackgrounddevelopmentlanguage,HTML+JS+CSSasafront-enddevelopmentlanguage,toplywiththedevelopmentofWeChatnorms,thepletionofthebasicfunctionsofthesnackbo*,thesystemrunssmoothly,canbeusednormally.Keywords:electricitybusiness,PHP,WeChat-.z.1緒論1.1研究的背景、目的和意義當代,互聯(lián)網(wǎng)開展迅速,基于互聯(lián)網(wǎng)而產(chǎn)生的應(yīng)用正在改變?nèi)藗兊纳頪1],電子商務(wù)作為一種新的消費形式,以各種出眾的開發(fā)語言為動力[2],正在以其勢如破竹之勢,迅速改變的人們的生活。互聯(lián)網(wǎng)繼續(xù)只用于做信息的話,顯然是大材小用了,互聯(lián)網(wǎng)應(yīng)該為人們帶來更多的便利。在信息化興旺的國家,一些商家門戶,如沃爾瑪?shù)榷祭孟冗M的開發(fā)框架[3]紛紛開展了自己的網(wǎng)上業(yè)務(wù)。本世紀初的一份調(diào)查就早早說明:網(wǎng)上購物從誕生之初就已經(jīng)被現(xiàn)代家庭承受并且慢慢成為現(xiàn)代家庭的習慣,而PHP作為開發(fā)電子商城的主要開發(fā)語言,其開發(fā)框架也在不斷增加[4]。有資料說明:2001年,越來越多的商家開場在網(wǎng)上銷售自己的商品[5],中國網(wǎng)民中的31.6%都在網(wǎng)上買過商品,大約有1060人,在當時這個比例已經(jīng)很接近興旺國家。2003年全年,我國的網(wǎng)上商城上交易額比2002年上升了190%,而近期的開展速度更是令人咂舌,從淘寶網(wǎng)里程碑式的雙十一開場,每一年,網(wǎng)上購物都在刷新交易金額記錄,2016年底,淘寶網(wǎng)更是拿出了日交易額1207億的駭人成績。由此可見,短短的幾十年,開展是如此迅速,"網(wǎng)上創(chuàng)業(yè)〞已經(jīng)從當初的山野小徑變成了當今的商業(yè)開展高速大道。在國,大規(guī)模網(wǎng)上銷售平臺都已成形并且不斷有新興事物的出現(xiàn),而移動端代替了電腦端之后,變化更大[6]?;ヂ?lián)網(wǎng)在中國已經(jīng)改變了人民的生活和工作方式。而當前,網(wǎng)上商城看似已經(jīng)被幾大巨頭所壟斷,但是其待開掘資源還是有很多的,比方京東的逆境存亡就是一個很好的例子。我們應(yīng)該在新形式下抓住機遇,隨著用戶的習慣來開掘和優(yōu)化技術(shù),讓網(wǎng)絡(luò)可以更好的造福人民。全球經(jīng)濟一體化是個大趨勢,大力開展網(wǎng)絡(luò),是全球經(jīng)濟一體化最有效的推動力。開展與創(chuàng)新是并存的,只有不斷有創(chuàng)新的開展,才是良性的,所以開發(fā)一個有針對性的新形式的網(wǎng)上商城是很值得一試的。1.2國外文獻綜述雖然業(yè)對電子商務(wù)的研究非常多,但是其針對性和深度都多少有點欠缺或者不太吻合本次研究,因此本節(jié)將對此進展總結(jié)和深入研究。Abraham曾經(jīng)對印度51家企業(yè)進展過專門的研究,很明顯,接入了網(wǎng)上營銷的公司的績效要比沒有接入的好的多。Michelle和Gabrielle利用波特的競爭優(yōu)勢框架模型,針對電子商務(wù)對旅游業(yè)的影響做了深入研究,發(fā)現(xiàn)其對旅游業(yè)帶來的效益也是巨大的。而Cecilia〔2006〕也對"運營本錢和電子商務(wù)"進展了深入研究,結(jié)果是電子商務(wù)的作用是積極的。LefebvreLouis-A對B2B和中小企業(yè)收益進展了研究之后,認為中小企業(yè)也非常適合接入電子商務(wù)。C.Freund和D.Weinhold的研究工程是電子商務(wù)對國際貿(mào)易的影響,他們研究了56個國家得出了最終結(jié)論:電子商務(wù)剛出現(xiàn)的前兩年,對國際貿(mào)易影響甚微,但是平均從第三年開場,國際總貿(mào)易流將會因為電子商務(wù)發(fā)生顯著變化。董佳〔2011〕在"國際貿(mào)易與電子商務(wù)"一文中指出,電子商務(wù)在國際貿(mào)易組成中是重要的一局部。她的結(jié)論是電子商務(wù)的快速開展是國際貿(mào)易快速開展的重要推動力,跟上電子商務(wù)的開展步伐,既是機遇也是挑戰(zhàn)。1.3研究的主要容零食盒子是一種新的消費模式,采用線上線下結(jié)合的消費模式,線下消費,線上付款。對于線下,其形式是:放一個盒子到學生宿舍,這個盒子歸宿舍的人所共享,盒子運營商放固定數(shù)量的商品進盒子,用戶消費的時候,直接拿盒子里的東西,然后往盒子里丟錢,自己找零,盒子運營商定期去維護盒子里的商品,是一種只適用于大學校園的高自覺、高素質(zhì)人群的消費模式。而這次我的開發(fā)任務(wù)是,將這個模式轉(zhuǎn)移到線上,對用戶而言,在用戶端盒子模塊就相當于自己的一個"收藏夾〞,用戶可以定義這個"收藏夾〞里放什么東西,后臺商家收到用戶的自定義信息之后,將會上門把客戶選擇的商品放進盒子里,這個過程是免費的,因為用戶還沒有產(chǎn)生真正的消費。在線下,實體紙箱盒子就是用戶可以隨時消費的"寢室超市〞,其消費流程很簡單,從盒子里拿東西,在"收藏夾〞〔線上盒子模塊〕快速找到商品進展線上付款,一切基于誠信。微信已經(jīng)通過它的大數(shù)據(jù)改變了當下的廣告營銷市場[7],而且因為它的輕量化和跨平臺化,所以沒有選擇APP開發(fā),避開了開發(fā)攻堅,安卓IOS雙平臺同步,軟件推廣三大難題,在電子商務(wù)開展的過程中,微信是一個很好的營銷平臺[8]。整個商城是基于微擎版人人商城的二次開發(fā),我的開發(fā)任務(wù)就是對人人商城進展數(shù)據(jù)庫和代碼邏輯分析,然后完成零食盒子的功能開發(fā)以及盒子數(shù)據(jù)庫和人人商城數(shù)據(jù)庫的融合,相當于在一塊打了地基的土地上蓋房子,用成熟的底層寫自己的邏輯模塊。2需求分析與可行性研究2.1市場定位分析主打線上零食盒子的微信商城的構(gòu)建初始目標是在校大學生,針對于在校大學生的消費能力,微信商城在具有自己特色的同時應(yīng)當適應(yīng)大學生的消費需求。因此,以零食作為切入點,加上日用品,文具辦公用品,以及各類生活效勞,可以很快的占領(lǐng)大局部學生市場。同時,商品的保質(zhì)保量,以及別的電子商城無法比較的配送速度,會讓粉絲的粘性大大增加。2.2可行性分析商城的建立需要有效勞器資源,公司資質(zhì)〔用來申請、認證微信效勞號〕,商品倉庫,配送員開銷。這些開銷加在一起,與實體店的前期投入相比,大約只是實體店的十分之一。所以其在經(jīng)濟上是完全可行的。商城不牽扯到侵權(quán),其在法律上是可行的。對于網(wǎng)頁開發(fā)來說,PHP是比較流行的開發(fā)語言,而且網(wǎng)上有著海量的PHP開源程序,其中不乏優(yōu)質(zhì)源代碼,所以,沒有必要從頭開場寫底層功能,只需要拿成熟技術(shù)做底層,然后自己做定制二次開發(fā)就可以了,所以,其在技術(shù)上是完全可行的。由于人人商城的操作以及后續(xù)我所做的定制開發(fā)的操作都是基于瀏覽器的網(wǎng)頁操作,簡單明了,對于經(jīng)常網(wǎng)購的大學生群體來說,是操作是完全沒問題的,而對于后臺管理人員來說,也有專門的可視化管理頁面,所以管理員也無需具備專業(yè)知識,只需要對一些數(shù)據(jù)進展簡單的輸入、修改、刪除和日常的維護就夠了。2.3需求目標2.3.1概述該商城的目的是開發(fā)一個帶盒子功能〔相當于個人收藏夾,不過還是有很大區(qū)別〕的微信商城,在用戶端要實現(xiàn)的根本主要功能有:(1)商品選購〔可按分類方式查找商品,也可模糊全局搜索〕(2)購物車功能(3)查看商品詳細情況(4)用戶自動登錄(5)查看用戶的訂單信息(6)查看用戶的訂單信息(7)修改用戶信息后臺管理局部有:(1)商店商品管理:添加、修改、刪除、查看(2)用戶信息管理:查看、修改(3)訂單信息管理:查看訂單清單,更新訂單狀態(tài)(4)盒子管理:查看盒子申請,更新盒子狀態(tài)2.3.2商城整體說明微信商城的主要參與者是顧客和商家以及管理員,顧客端是一個完整的消費體驗,商家只需負責線下的效勞,而管理員負責后臺的運行、管理,以及信息的審核。網(wǎng)上商店的操作流程都類似,操作步驟說明如下:(1)顧客在公眾號點擊特定按鈕進入微信商城(2)后臺調(diào)用微信接口,拉取用戶openid完成靜默登錄(3)用戶設(shè)置學校信息(4)用戶設(shè)置盒子容,提交申請(5)后臺管理員審核申請,點擊通過(6)用戶在"我的盒子〞里點擊商品完成購置(7)后臺自動收集信息(8)晚上6點,導(dǎo)出一整天的訂單信息,排版分類,開場補貨3系統(tǒng)解決方案3.1設(shè)計方案的論證3.1.1設(shè)計方案的選擇所謂B/S,是指"Browser/Server〔瀏覽器/效勞器〕〞應(yīng)用模式,客戶端/效勞器模式C/S〔Client/Server〕架構(gòu)的開展,這種設(shè)計模式的好處是,用戶不需要下載任何軟件〔或者只需下載一些根本的功能插件〕,就可以利用瀏覽器完成一些業(yè)務(wù)邏輯,和平常上網(wǎng)的過程沒有區(qū)別。這種模式最大的優(yōu)勢是廣域網(wǎng)下的業(yè)務(wù)處理,即使是撥號上網(wǎng)的用戶也不會感覺很慢。另外,無需繁雜的軟件安裝和后期維護方便也是其優(yōu)勢之一。其工作原理是,在客戶端瀏覽器對效勞器發(fā)送HTTP請求,WEP效勞器通過PHP文件進展數(shù)據(jù)庫操作和業(yè)務(wù)邏輯處理,并將操作結(jié)果以靜態(tài)HTML頁面的形式返回給前端瀏覽器[9]。如圖1:圖1B/S工作流程圖3.1.2工具的選擇工欲善其事必先利其器,開發(fā)工具的選擇對于程序開發(fā)來說是個很重要的過程,它關(guān)乎開發(fā)的效率和最終的代碼質(zhì)量,所以選擇適宜的開發(fā)工具,是一個好的開場。(1)前臺開發(fā)技術(shù)的選擇:AdobeDreamweaver,中文名稱"夢想編織者",是美國MACROMEDIA公司開發(fā)的一款優(yōu)秀網(wǎng)頁設(shè)計軟件,AdobeDreamweaver是第一套針對網(wǎng)頁設(shè)計師開發(fā)的視覺化設(shè)計工具。它的代碼提示和糾錯機制非常好用,可以讓PHP編程的過程非常高效,而且大大減少了語法錯誤,格式錯誤出現(xiàn)的幾率,提升了編碼效率。(2)后臺數(shù)據(jù)庫管理工具的選擇:Navicatpremium是一款數(shù)據(jù)庫管理工具。因為Mysql本身提供的網(wǎng)頁式數(shù)據(jù)庫管理工具不是很好用,所以利用NavicatPremium這一款第三方PC端數(shù)據(jù)庫管理工具進展可視化操作來提高效率。而且Navicatpremium還提供了一些類似于數(shù)據(jù)庫查詢結(jié)果導(dǎo)出成*ls等非常好用的小功能。(3)FTP文件管理工具的選擇:FileZilla是一個免費開源的FTP軟件,其簡潔的界面給人印象良好,而且其功能也不弱,具有FTP軟件所有應(yīng)該具備的功能,對于文件的上傳下載,其多窗口的操作模式,將效率提升了好幾倍。3.2設(shè)計方案的說明3.2.1系統(tǒng)總體描述因為電子商城架構(gòu)過于龐大,憑一個人的力量,短期不可能完成全部功能的開發(fā)。所以本系統(tǒng)采用微擎版的人人商城,進展二次開發(fā),完成一些定制性的功能,人人商城的兼容性很強,可以把自己想要的功能做成插件,一些需要特殊權(quán)限的功能〔例如微信付款〕,只需要將數(shù)據(jù)寫回人人商城,剩下的業(yè)務(wù)邏輯它就會幫我的系統(tǒng)完成。因為選擇了微信端,所以用人人商城等同于用自己的模板引擎[10]把微信接口再次封裝了一下,讓開發(fā)的目的性更強。3.2.2系統(tǒng)角色類型該系統(tǒng)有三類用戶,分別是人人商城管理員,盒子模塊管理員,普通用戶。如圖2所示:圖2用戶類別總圖人人商城管理員信息儲存在人人商城原版數(shù)據(jù)庫里,是已經(jīng)建好的一表,這個系統(tǒng)用戶的權(quán)限是最高的,他可以接入微信公眾號,配置效勞器資源信息,查看其他用戶信息,上下架商品,查看訂單,發(fā)貨退貨等等。如圖3所示:圖3人人商城管理員權(quán)限用例圖盒子模塊管理員:其根本功能和普通用戶是一樣的,比普通用戶多了個審核盒子申請的功能。普通用戶:權(quán)限最低,可瀏覽網(wǎng)頁,商品,下單,提交盒子申請等等。如圖4所示:圖4用戶權(quán)限用例圖3.2.3系統(tǒng)規(guī)劃對于數(shù)據(jù)庫系統(tǒng),前期的規(guī)劃和設(shè)計工作是非常有必要的,因為數(shù)據(jù)庫是整個系統(tǒng)的核心和最大的兼容性限制,如果最初的設(shè)計是不合理的,對后期設(shè)計的影響將會是消滅性的。系統(tǒng)采用支持事務(wù)的Mysql[11]。而盒子模塊的主要系統(tǒng)功能規(guī)劃如下:?設(shè)計不同用戶的操作權(quán)限和登陸方法?對所有用戶開放的頁面查看、商品查看以及下單?根據(jù)下單情況對數(shù)據(jù)庫進展操作?根據(jù)退款情況對數(shù)據(jù)庫進展操作?根據(jù)關(guān)注、跑路情況對數(shù)據(jù)庫進展操作?維護用戶、商品、訂單以及管理員信息3.2.4預(yù)期目的?提高盒子維護的工作效率?通過全面簡潔的信息查詢、刪除和修改方式,提高訂單配送的工作效率?通過使用本系統(tǒng),能到達全面高效的提高系統(tǒng)的管理水平、降低人力資源消耗、提高工作效率的目的3.2.5技術(shù)要求?數(shù)據(jù)庫設(shè)計滿足功能要求?數(shù)據(jù)庫冗余度小,盡量滿足三式要求?繪制數(shù)據(jù)庫各數(shù)據(jù)表之間的關(guān)系圖?建立數(shù)據(jù)庫訪問接口類,實現(xiàn)對數(shù)據(jù)庫的訪問?完成功能模塊中的一個較小的功能,以測試數(shù)據(jù)庫接口的正確性4系統(tǒng)詳細設(shè)計4.1系統(tǒng)模塊架構(gòu)系統(tǒng)模塊架構(gòu)圖如圖5所示:圖5系統(tǒng)模塊架構(gòu)圖4.2系統(tǒng)功能說明4.2.1系統(tǒng)登錄模塊(1)功能說明這個模塊是用的微信openid,一個用戶在一個公眾號上的openid是唯一的[12],以此為用戶賬號,同時無需密碼,不用用戶手動填寫登錄信息,到達"靜默登錄〞的效果。(2)功能特性普通用戶靜默登錄。(3)輸入、輸出輸入:?用戶openid輸出:?登錄反應(yīng)(4)前提條件用戶關(guān)注效勞號。4.2.2盒子設(shè)置模塊盒子設(shè)置模塊的流程圖如圖6所示。圖6盒子設(shè)置流程圖(1)功能說明此模塊為用戶使用盒子功能的關(guān)鍵模塊,主要完成盒子容的設(shè)置和使用宿舍的創(chuàng)立以及參加。(2)功能特性普通用戶根本操作。(3)輸入、輸出格式輸入:?微信接口提供的信息?用戶填寫信息?商品信息輸出:?提示信息?操作反應(yīng)(4)前提條件用戶關(guān)注效勞號。4.2.3盒子容更改模塊盒子容更改模塊的流程圖如圖7所示。(1)功能說明此模塊為用戶使用盒子功能的關(guān)鍵模塊,主要完成盒子容的日常更改。(2)功能特性普通用戶根本操作。(3)輸入、輸出格式輸入:?微信接口提供的信息?用戶填寫信息?商品信息輸出:?提示信息?操作反應(yīng)圖7更改盒子容流程圖(4)前提條件用戶關(guān)注效勞號。4.2.4盒子管理員模塊盒子管理員模塊的流程圖如圖8所示。(1)功能說明此模塊為管理員審核盒子申請的關(guān)鍵模塊,主要完成商家盒子容把控的主動性。(2)功能特性管理員特殊操作。(3)輸入、輸出格式輸入:?用戶提交的申請信息?商品信息輸出:?審核結(jié)果圖8盒子管理員流程圖(4)前提條件操作人有管理員權(quán)限。4.2.5根本商城功能模塊商城根本功能模塊流程圖如圖9所示。圖9商城根本功能模塊流程圖(1)功能說明此模塊人人商城的根底功能模塊。(2)功能特性面向全網(wǎng)所有用戶。(3)輸入、輸出格式輸入:?用戶提交的各種行為信息?商品信息輸出:?商城信息反應(yīng)(4)前提條件商城正常運行即可。4.3數(shù)據(jù)字典本系統(tǒng)模塊一共有九表,分別是:存儲盒子管理員信息的盒子管理員表tbl_admin,存儲盒子容信息的盒子表tbl_bo*,存儲地址信息的學校表tbl_school,宿舍樓表tbl_building,宿舍號表tbl_dorm,學校宿舍號表tbl_school_dorm,存儲申請的申請表tbl_submit,存儲修改時間的時間表tbl_time,存儲用戶信息的用戶表tbl_user。盒子管理員表見表1。表1盒子管理員信息表名類型長度是否主鍵能否為空備注Idint11是否主鍵openidVarchar80否能管理員openidnamevarchar10否能管理員盒子信息表見表2。表2盒子信息表名類型長度是否主鍵能否為空備注Idint11是否主鍵school_dorm_IdInt20否否宿舍idgoods_Idint11否否商品idboolInt1否否是否存在numInt11否否商品數(shù)量nowUseInt1否否是否在使用,0代表編輯狀態(tài),1正常使用狀態(tài),2代表中間狀態(tài)學校表,樓棟表,以及宿舍表分別見表3,4,5。表3學校表名類型長度是否主鍵能否為空備注Idint11是否主鍵schoolNamevarchar50否否學校名字表4宿舍樓棟表名類型長度是否主鍵能否為空備注Idint11是否主鍵school_IdInt11否否學校IDdormvarchar50否否宿舍樓棟名表5宿舍號表名類型長度是否主鍵能否為空備注Idint11是否主鍵school_buiding_IdInt11否否宿舍樓IDdormNumvarchar50否否宿舍號學校宿舍表見表6。表6學校宿舍表名類型長度是否主鍵能否為空備注Idint11是否主鍵schoolNamevarchar50否否學校名字dormitoryNovarchar50否否宿舍樓號dormNovarchar50否否宿舍號creditValueInt11否能信用值isnewInt11否否累計更改盒子次數(shù)申請表見表7。表7申請表名類型長度是否主鍵能否為空備注Idint20是否主鍵school_buiding_IdInt11否否宿舍樓IDopenidvarchar80否否申請人idtimedatetime否否申請時間時間表見表8。表8時間表名類型長度是否主鍵能否為空備注Idint11是否主鍵school_IdInt11否否學校IDsetTimedatetime否否修改時間用戶表見表9。表9用戶信息表名類型長度是否主鍵能否為空備注Idint11是否主鍵school_IdInt11否否學校IDopenidVarchar80否能用戶openidnamevarchar20否能用戶Phonevarchar20否能用戶手機號5系統(tǒng)實現(xiàn)5.1模塊實現(xiàn)的理論根底這次選用的數(shù)據(jù)庫是Mysql,利用HTML+JS+CSS技術(shù)完成前端頁面的設(shè)計開發(fā),用PHP+AJA*技術(shù)完成后臺邏輯功能的實現(xiàn)[13]。系統(tǒng)一共有五大模塊,其詳細實現(xiàn)方法見以下各小節(jié)。5.2系統(tǒng)登錄模塊的實現(xiàn)系統(tǒng)登錄模塊的邏輯是靜默登錄,采用微信接口拉取用戶信息,因為人人商城又對這個接口做了封裝,所以本系統(tǒng)選擇在人人商城里AJA*傳值到我的頁面,完成openid的傳值,具體代碼如下:<"php<"phpglobal$_W;setcookie("w*_user_openid",$_W['openid'],time()+(7*24*3600));//專門用來刷新oppenid的cookie的一個文件echo$_W['openid'];">5.3設(shè)置學校信息模塊的實現(xiàn)首先通過用戶的openid獲取用戶的名字以及頭像信息,如圖10所示,然后用戶填寫信息,〔其間有輸入驗證,如圖11所示〕。填寫完成后,點擊提交,完成信息的填寫,僅可填寫一次,再次進入就只可以查看信息,如圖12所示。此模塊分別和兩個頁面有關(guān)系,一個是填寫信息頁面,一個是選擇學校宿舍頁面。圖10信息頁面圖圖11輸入驗證示意圖圖12填寫完成示意圖其關(guān)鍵邏輯有三個,第一是信息的拉取以及顯示,關(guān)鍵代碼如下:<"php<"phprequire("php/config.php");$link=mysql_connect($host,$uer,$pw)ordie('數(shù)據(jù)庫連接失敗');mysql_select_db($db)ordie('數(shù)據(jù)庫選擇失敗');mysql_query('setnamesutf8');$rs=mysql_query('select*fromims_ewei_shop_memberwhereopenid="'.$_COOKIE['w*_user_openid'].'"');$rows=mysql_fetch_assoc($rs);$w*HeadImg=$rows['avatar'];$w*Nick=$rows['nickname'];"><divclass="t*float-left"><span><"phpecho'<imgsrc="'.$w*HeadImg.'"';"></span></div><divclass="namefloat-left"><"phpecho$w*Nick;"></div><"php$rs=mysql_query('select*fromtbl_school');//顯示所有學校信息while($rows=mysql_fetch_assoc($rs)){ echo'<li'; echo'id="'.$rows['schoolName'].'"onClick="select(this)">'.$rows['schoolName'].'</li>';}">第二個是信息輸入的驗證控制模塊,關(guān)鍵代碼如下: $("#submit").click(function(){ $("#submit").click(function(){ load_re2(); vardeal=true; if($.cookie('school')==null) { deal=false; $("#w_school").css({display:""});} if($.cookie('building')==null) { deal=false; $("#w_building").css({display:""});} if($.cookie('dorm')==null) { deal=false; $("#w_dorm").css({display:""});} if($("#name").val()=="") { deal=false; $("#w_name").css({display:""}); } if($("#phone").val()=="") { deal=false; $("#w_phone").css({display:""}); }第三個是提交信息后的數(shù)據(jù)庫操作,關(guān)鍵代碼如下:<"php<"php$my_oppenid=$_COOKIE['w*_user_openid'];//獲取oppenidrequire("config.php");$link=mysql_connect($host,$uer,$pw)ordie('數(shù)據(jù)庫連接失敗');mysql_select_db($db)ordie('數(shù)據(jù)庫選擇失敗');mysql_query('setnamesutf8');$rs=mysql_query('select*fromtbl_userwhereopenid="'.$my_oppenid.'"');if(mysql_num_rows($rs)>0)// { echo'有學校';//說明已經(jīng)有學校了 }else { echo'沒學校'; } ">5.4盒子選貨模塊的實現(xiàn)5.4.1選貨模塊用戶在商品的羅列頁以及詳情頁都有一個"添加〞的按鈕,點擊這個按鈕,將通過Aja*把值傳到一個后臺處理的PHP文件,完成數(shù)據(jù)庫盒子表記錄的插入和修改操作。如圖13所示。其實現(xiàn)方式主要分為兩局部,第一局部是在人人商城添加點擊事件。具體代碼如下:{$goods['title']}<ahref="#"onclick="ceshi({$goods['id']})">添加到盒子</a>{$goods['title']}<ahref="#"onclick="ceshi({$goods['id']})">添加到盒子</a>var*hr=new*MLHttpRequest();//aja*事件設(shè)置,以便接收返回的信息*hr.onreadystatechange=function(){if(*hr.readyState==4){alert(*hr.responseTe*t);}}*hr.open('get','buman.baizhinian./inde*.php"i=7&c=entry&m=ewei_shopv2&do=mobile&r=member.aja*ceshi&goodsid='+goodid);*hr.send(null);*hr.onreadystatechange=function(){*hr.onreadystatechange=function(){if(*hr.readyState==4){alert(*hr.responseTe*t);}}*hr.open('get','buman.baizhinian./inde*.php"i=7&c=entry&m=ewei_shopv2&do=mobile&r=member.aja*ceshi&goodsid='+goodid);*hr.send(null);圖13盒子選貨圖5.4.2選貨后編輯及提交模塊選貨之后,進入"盒子設(shè)置〞頁面,就可以看到已經(jīng)選擇的商品,在這個頁面上可以修改商品的梳理,左滑出現(xiàn)刪除按鈕,點擊可以刪除商品,左側(cè)有選中按鈕,選中后下方有個實時的數(shù)值計算,點擊提交按鈕就可以提交。如圖14所示。圖14盒子設(shè)置編輯演示圖此模塊的關(guān)鍵有四局部,第一局部是商品羅列,其代碼如下所示:if(mysql_num_rows($rs_dorm)>0)//預(yù)留判定條件if(mysql_num_rows($rs_dorm)>0)//預(yù)留判定條件 { $rows_dorm=mysql_fetch_assoc($rs_dorm); $rs_goods=mysql_query('selectgoods_Id,numfromtbl_bo*wherenowUse=0andschool_dorm_Id='.(int)$rows_dorm['school_dorm_Id']);//根據(jù)組名選出所有商品while($rows_goods=mysql_fetch_assoc($rs_goods))//依次獲取這個宿舍下的每個商品的商品id{ $nm=$rows_goods['num']; $goodsId=$rows_goods['goods_Id'];//存的是這個宿舍里的所有的商品id $rs_detail=mysql_query('selecttitle,thumb,marketpricefromims_ewei_shop_goodswhereid='.(int)$goodsId);//從老表里獲取每個商品的詳情 $str=$str.'\''.$goodsId.'\':\''.$nm.'\','; $rows_detail=mysql_fetch_assoc($rs_detail); $title=$rows_detail['title']; $IMG="buman.baizhinian./attachment/".$rows_detail['thumb']; $price=$rows_detail['marketprice']; echo'<liclass="mui-table-view-cell"id="'.$goodsId.'">'; echo'<divclass="mui-slider-rightmui-disabled"><aclass="mui-btnmui-btn-red">刪除</a></div>';echo'<divclass="gwmui-slider-handle"><divclass="sc_prolist_buy"><dl>';//在這里用數(shù)組寫購物車 echo'<dt><imgonClick="buy(this)"id="'.$goodsId.'"src="'.$IMG.'"alt=""/></dt>'; echo'<dd>'.$title.'</dd>'; echo'<dd><span>¥'.$price.'</span></dd>'; echo'</dl><div>'; echo'<pclass="sc_pro_numfloat-right"><spanclass="min"onClick="setAmount.reduce(\'#qty_item_'.$goodsId.'\')">-</span>'; echo'<inputclass="te*t_bo*"name=""type="te*t"value="'.$nm.'"id="qty_item_'.$goodsId.'"onKeyUp="setAmount.modify(\'#qty_item_'.$goodsId.'\')"/>'; echo'<spanclass="add"onClick="setAmount.add(\'#qty_item_'.$goodsId.'\')">+</span></p>'; echo'</div></div>'; echo'<divclass="gw_bo*"><inputtype="checkbo*"name="checkbo*"id="checkbo*"><span></span></div><divclass="clearfi*"></div></div>'; echo'</li>';}{{ $nm=$rows_goods['num']; $goodsId=$rows_goods['goods_Id'];//存的是這個宿舍里的所有的商品id $rs_detail=mysql_query('selecttitle,thumb,marketpricefromims_ewei_shop_goodswhereid='.(int)$goodsId);//從老表里獲取每個商品的詳情 $str=$str.'\''.$goodsId.'\':\''.$nm.'\','; $rows_detail=mysql_fetch_assoc($rs_detail); $title=$rows_detail['title']; $IMG="buman.baizhinian./attachment/".$rows_detail['thumb']; $price=$rows_detail['marketprice']; echo'<liclass="mui-table-view-cell"id="'.$goodsId.'">'; echo'<divclass="mui-slider-rightmui-disabled"><aclass="mui-btnmui-btn-red">刪除</a></div>';echo'<divclass="gwmui-slider-handle"><divclass="sc_prolist_buy"><dl>';//在這里用數(shù)組寫購物車 echo'<dt><imgonClick="buy(this)"id="'.$goodsId.'"src="'.$IMG.'"alt=""/></dt>'; echo'<dd>'.$title.'</dd>'; echo'<dd><span>¥'.$price.'</span></dd>'; echo'</dl><div>'; echo'<pclass="sc_pro_numfloat-right"><spanclass="min"onClick="setAmount.reduce(\'#qty_item_'.$goodsId.'\')">-</span>'; echo'<inputclass="te*t_bo*"name=""type="te*t"value="'.$nm.'"id="qty_item_'.$goodsId.'"onKeyUp="setAmount.modify(\'#qty_item_'.$goodsId.'\')"/>'; echo'<spanclass="add"onClick="setAmount.add(\'#qty_item_'.$goodsId.'\')">+</span></p>'; echo'</div></div>'; echo'<divclass="gw_bo*"><inputtype="checkbo*"name="checkbo*"id="checkbo*"><span></span></div><divclass="clearfi*"></div></div>'; echo'</li>';} echo'<spanclass="add"onClick="setAmount.add(\'#qty_item_'.$goodsId.'\')">+</span></p>'; echo'<spanclass="add"onClick="setAmount.add(\'#qty_item_'.$goodsId.'\')">+</span></p>'; echo'</div></div>'; echo'<divclass="gw_bo*"><inputtype="checkbo*"name="checkbo*"id="checkbo*"><span></span></div><divclass="clearfi*"></div></div>'; echo'</li>';}第二局部是選中設(shè)置和實時計算數(shù)值,因篇幅問題,在這里簡述一下它的邏輯:獲取羅列商品頁的所有選中按鈕的狀態(tài),然后完成根據(jù)每個商品的單價,數(shù)量,完成相乘相加得出總的數(shù)值,填到固定位置。第三局部是滑動刪除特效,這里是調(diào)用一個第三方插件,具體代碼如下:<scripttype="te*t/javascript"src="js/payfor.js"><scripttype="te*t/javascript"src="js/payfor.js"></script><scriptsrc="js/mui.min.js"></script><scripttype="te*t/javascript"> varcountStr=$.cookie("sql_countStr");//獲取cookievarstatus_process=eval("("+countStr+")");mui.init(); (function($){ $('#OA_task_1').on('tap','.mui-btn',function(event){ varelem=this; varli=elem.parentNode.parentNode; varstr=li.id; var*hr=new*MLHttpRequest(); *hr.open('get','./php/delete.php"goodsid='+str); *hr.send(null); li.parentNode.removeChild(li);});varbtnArray=['確認','取消'];//第二個demo,向左拖拽后顯示操作圖標,釋放后自動觸發(fā)的業(yè)務(wù)邏輯})(mui); </script>第四局部是提交后后臺數(shù)據(jù)庫處理,這一步完成后將會跳到審核頁面,等待管理員審核其盒子請求,此時用戶可以看到自己提交了什么商品,但是是黑白顏色的,如圖15所示。圖15等待審核示意圖5.5管理員審核模塊首先,在后臺管理員表里有記錄的用戶,是管理員,管理員的盒子界面的右下角比普通用戶多了個圓形的按鈕,上面有"審核〞的字樣,點擊之后,就會跳轉(zhuǎn)到審核頁面。在審核頁面羅列著最近七天的盒子請求條目,其中第一次請求的條目上多了"NEW〞字樣,單擊每個條目會下拉展開顯示請求的具體容,左滑會出現(xiàn)審核選項按鈕。如圖16所示。此模塊主要有兩局部組成,第一是請求的羅列與編輯,這一局部的邏輯和本章第四節(jié)的羅列編輯商品是一樣的,所以不予重復(fù)粘貼代碼。第二局部是后臺數(shù)據(jù)庫的操作。中選擇審核通過時,將會更新用戶請求的所有商品的狀態(tài),接下來用戶在48小時不得再次修改,其代碼如下:<"php<"php$school=(int)$_GET['schoolId'];require("config.php");$link=mysql_connect($host,$uer,$pw)ordie('數(shù)據(jù)庫連接失敗');mysql_select_db($db)ordie('數(shù)據(jù)庫選擇失敗');mysql_query('setnamesutf8'); mysql_query("DELETEFROMtbl_bo*whereschool_dorm_Id=$schoolandnowUse=1");//清空 mysql_query("UPDATEtbl_school_dormsetisnew=isnew+1whereId=$school");//變成 mysql_query("UPDATEtbl_bo*setnowUse=1,bool=1whereschool_dorm_Id=$schoolandnowUse=2");//重新參加 ">mysql_query('setnamesutf8');mysql_query('setnamesutf8'); mysql_query("DELETEFROMtbl_bo*whereschool_dorm_Id=$schoolandnowUse=1");//清空 mysql_query("UPDATEtbl_school_dormsetisnew=isnew+1whereId=$school");//變成 mysql_query("UPDATEtbl_bo*setnowUse=1,bool=1whereschool_dorm_Id=$schoolandnowUse=2

溫馨提示

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

評論

0/150

提交評論