基于小程序的智慧購菜系統設計與實現_第1頁
基于小程序的智慧購菜系統設計與實現_第2頁
基于小程序的智慧購菜系統設計與實現_第3頁
基于小程序的智慧購菜系統設計與實現_第4頁
基于小程序的智慧購菜系統設計與實現_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Ⅰ基于小程序的智慧購菜系統設計與實現摘要二十一世紀以來我國經濟水平得到很大提升,人們生活水平也得到空前發展。以往的消費模式已經不能滿足人們正常生活需求。對于上班族來說,在下班之后已經沒有更多精力和時間去選購生活所需。對此,針對大部分人們的生活需求設計了一款微信小程序智慧購菜系統,為廣大人民群眾帶來便利,提升日常買賣菜的效率,也能加強對菜品的高效管理等。本次智慧購菜系統設計主要采用Windows系統,后端技術使用Java開發語言以及SpringBoot框架進行開發,將MySQL作為數據庫進行數據存儲。系統中用戶在注冊登陸以后,可以看到各種菜品信息和公告信息,可以對菜品進行瀏覽、查詢、下單,在用戶訂單中,用戶可以看到自己所有提交過的訂單并進行在線支付或者取消訂單,在訂單信息中用戶可以查看已經支付過的訂單信息。管理員可以將用戶的訂單分配給配送員,配送員在接收到訂單后即可進行配送。最后通過測試,系統的全部功能完成實現,具有一定的應用價值。關鍵詞:MySQL數據庫;Java語言;Springboot框架[2]。上世紀六十年代國外就開始對于蔬菜管理銷售模式的信息化管理,一些國家通過相關平臺推出適合本國發展趨勢的蔬菜管理系統,從根本上實現了蔬菜的銷售。由JohnMAntlel等于2017年度發表的《Towardsanewgenerationofagriculturalsystemdata,modelsandknowledgeproducts:Designandimprovement》的研究成果,提出了一個基于模塊化集成組件的農產品供應與營銷平臺模型,集成了開發與試驗平臺,并通過數據管理與可視化接口,將農產品數據、農作物模型與知識性商品等多個信息集成在一起,實現了農產品供應與營銷的一體化。采用此系統能夠為用戶提供蔬菜具體信息、配送以及線上支付等功能的使用。在2019年的《E-commercebasedontheMarketplaceineffortstosellagriculturalproductsusingXtremeprogrammingapproach》中,Rahayu等利用Xtreme程序設計的方式,在向消費者發送信息、詢問價格和運送信息的過程中,利用Xtreme程序設計的方式,來完成一個向消費者發送信息、詢問價格和運送信息的過程。此種模式為農民提供了最為直接的交易平臺,在互聯網上進行買家與賣家之間的交易。農民能夠獲取較大利潤,同時可不也能夠用最低價格買到最優產品,該系統為農民以及消費者之間架起了交易橋梁。從國內和國外的研究可以看出在互聯網上對蔬菜進行銷售不僅很方便而且會節省很大一部分人力,具有很大發展前景。1.3論文組織架構 文章結構總體布局分為以下幾個方面:第一章:緒論。針對智慧購菜系統的目的、意義以及國內外的研究狀況進行詳細分析。第二章:針對程序開發環境以及相關技術平臺進行分析。第三章:系統分析。針對互聯網可行性進行具體分析。第四章:系統設計。針對網站中模塊進行詳細設計。第五章:系統實現。強化網站各個模塊之間的實現。第六章:系統測試。針對網站各個模塊之間功能進行測試,并且得到測試結果。

第2章相關理論和技術2.1Java簡介作為一種面向對象的程序設計語言,Java不但吸取了C++的各項優勢,而且還拋棄了C++中很難理解的多繼承、指針等概念,所以Java語言擁有兩個特點,一是功能完善,二是操作結構較為簡單。Java是一種典型的靜態面向對象編程語言設計語言,它將這種方式運用到了極致,使程序設計人員能夠用一種完整的思路來設計出一些復雜的程序。職于斯坦福大學(StanfordUniversityNetwork)的詹姆斯.高斯林(JamesGaussling)和麥克.舍林丹(MikeSheiling)等人。在1990年,Java的初始版本被發展出來,起初叫做Oak,其目的是要成為像家電這樣的小系統,如電視,電話,鬧鐘,多士爐及其他家電產品之間的通訊與控制。因為對這種智能家用電器的需求量不如人們預計的那么大,所以Sun公司就放棄了這個項目。1990年互聯網出現后,Sun看到了Oak在互聯網的巨大潛力,并對其進行了再造,并在1995年五月以Java這個名字官方發行。隨著Internet的迅速發展,Java已逐步發展為一種主要的Internet程序設計語言。2.2MySQL數據庫介紹MySQL現在是由被稱為關系型數據庫的Oracle公司所有,也就是微軟的SQLServer。MySQL數據庫可以在Solaris,Mac,FreeBSD,Windows,Linux等所有的操作系統上都可以使用。處理數據能夠作為該系統的核心,為數據儲存提供更多的空間。通常情況下,數據庫并不是以數據儲存為導向的,而是將儲存留給像表格/索引這樣的對象。MySQL數據庫屬于一種C/S模式包括客戶端和服務端模型,客戶端通過賬號、密碼來連接服務器,連接成功后進行數據庫操作,包含增加、刪除、修改、查詢等。在服務端,通過IO重用和可擴展的鏈接池來解決傳統的高并發性問題。2.3Spring框架一種基于Java平臺的開放源碼程序架構,它為一個擁有可對反向屬性進行控制的容器。雖然Spring框架本身并不局限于程序模型,但是由于其在Java程序中的廣泛應用,使得Spring成為了一個很好的輔助,或者說是一個替代品。Spring架構為軟件的發展提出了許多方法,例如,充分發揮了“控制反向”這一核心屬性,并且采用了“依賴”的方式來進行反向操作;來對容器進行管理,使用面向切面的程序設計來對其進行聲名式的事務管理,將各種持久性技術集成到一起,對數據存取進行管理,并提供了許多優良Web框架;便于開發等。Spring架構,其特點是擁有控制倒置(IOC)功能,IOC是為了方便工程維護與測試,利用Java自身反射性來實現對Java對象的全局配置與管理。在Spring架構中,使用了容器方式,在一個物件生存期內,可以藉由瀏覽一個XML檔案或是某個類別上的特別的Java注釋,來設定物件;開發人員可以使用依賴查詢或插入等方法獲得參數。Spring架構以AOP架構為基礎,并且在執行階段可以進行配置。AOP架構強調了模塊間的相互關系。Spring中的AOP架構,僅為AOP架構中的基礎功能,雖然不能和Aspec架構媲美,但是由于與Aspec的整合,已經能夠達到基礎要求。在SpringAOP技術的支持下,事務管理和遠程訪問等都可以在SpringAOP中完成。Spring的交易管理架構將一種抽象方式引入到Java平臺上,使得本地交易、全球交易、嵌套交易都可以通過保存點工作,而且它還可以在Java平臺上的所有環境下工作。Spring集成主要是通過多種模板所組成,系統能夠借助事務模板、XML或Java注解進行完成事件配置,同時使得事務逐漸能夠進行消息傳遞以及緩存。Spring的數據訪問結構能夠解決數據庫在操作過程中所需要的問題,該方法不僅適用于Java,JDBC,IBATS/MyBATIs,Hibernate,JavaDataObject(JDO),ApacheOJB以及ApacheCayne等主流的數據存取框架,而且還能結合Spring的交易管理,實現了對數據存取靈活的抽象。SpringFramework起初并無建立自己的Web框架的意圖,但由于其開發者覺得已有的StrutsWeb框架在呈現層與請求處理層、請求處理層與模型的分割上還不夠充分,所以才創立了SpringMVC。

第3章系統分析3.1可行性分析3.1.1技術可行性通常技術方面的可行性所指代的是本次開發的系統采用什么樣的技術、以什么樣的平臺作為研究依據,整個系統發展采用什么框架結構,采取什么樣的設計模式,本文在基礎介紹部分進行詳細的說明,在本次開發中所用到的語言程序為Java,在開發過程中主要是采用的框架為SpringBoot,整個開發借助的MVC的設計方式,采取彈性管理代碼,當前開發環境下使用最多的已匯總就是Idea,與之相關的大多數開發工具都是免費的。3.1.2經濟可行性經濟可行性大多數表示在發展過程中基本上需要滿足以往發展預算,詳細記錄整個過程中所需各項費用,同時滿足發展條件。系統在后期建成之后,小程序的智慧購菜系統在未來發展中有著較高前景,經濟價值得以提升,整個過程都在我們預先掌握之中。本次設計在經濟方面具有較大可行性。3.1.3操作可行性軟件設計成之后,為了讓用戶更方便操作,軟件功能大多數采取圖形的方式來實現,確保輸入信息的完整性。整個系統設計必須方便、快捷,系統高效,針對不同用戶進行授權管理,對這些因素的考慮,確保軟件的操作可行性。3.1.4法律可行性通過法律角度進行進一步分析,整個開發系統主要能夠將其分為以下幾個方面:1、開發過程中所設計的技術材料都是相對合法的;2、整個開發設計并不存在相關的知識產權問題;3、開發過程中并沒有對相關網站軟件進行抄襲,不存在版權的侵犯問題;4、整個開發過程都是通過自己的研究所得,并不需要在后期承擔相應的法律責任。3.2需求分析對系統功能要求的分析可以提供有關在實施軟件功能要求時需要什么和不需要什么的更多信息。采取最佳分析方式能夠防止問題的出現,從而提升系統的使用效率,在開發中節約相關費用,提升軟件整體服務質量。

3.2.1功能需求分析基于小程序的智慧購菜系統的主要目的是實現便捷購菜,代替傳統的人工賣菜方式,能夠對居民日常買菜賣菜、結算方面進行嚴格把控,操作人員需要具備一定的計算機能力,以提高菜場買菜賣菜的管理效率。1.管理員用例圖包含用戶管理、配送員管理、蔬菜分類管理、蔬菜信息管理、用戶下單管理、訂單分配管理、訂單信息管理、系統管理,管理員用例圖如圖3.1所示。圖3.1管理員用例圖2.用戶用例圖包含,查看蔬菜、用戶下單、在線支付、查看訂單、查看公告、在線咨詢、我的收藏,用戶用例圖如圖3.2所示。圖3.2用戶用例圖3.配送員用例圖包含接收訂單、配送訂單、查看訂單,配送員用例圖如圖3.3所示。圖3.3配送員用例圖3.2.2非功能需求分析本文所開發的智慧購菜系統是以小程序為基礎,由于它儲存著許多與使用者有關的基礎資料,因此,在該系統的設計和研發時,特別設置了一個使用者管理模塊,以確保該系統資料的安全性;在以小程序為基礎的智慧購菜系統中,對全部用戶進行了統一管理,該系統將按照用戶身份來進行相應授權,并保證他們能夠在授權范圍之內進行活動,并且能夠獲得授權范圍之內的數據。在此基礎上,提出了一種新的應用程序設計方案,以實現對應用程序和應用程序的全面保護。

第4章系統設計4.1功能模塊設計根據對系統的功能進行分析基于小程序的智慧購菜系統主要有以下幾個模塊:用戶管理、配送員管理、蔬菜分類管理、蔬菜信息管理、訂單管理、訂單分配管理、訂單信息管理、公告信息管理等模塊。系統功能模塊圖如下所示:圖4.1系統功能模塊圖4.2數據庫設計4.2.1數據庫概念設計1.公告實體圖圖4.2公告實體圖2.配送員實體圖圖4.3配送員實體圖3.用戶實體圖圖4.4用戶實體圖4.蔬菜信息實體圖圖4.5蔬菜信息實體圖4.2.2數據庫邏輯設計(1)公告信息表針對公告信息的設置主要是進行對相關信息的儲存,主要是能夠包括id,addtime等字段,主鍵為id,如表4.1所示。表4.1公告信息表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPtitlevarchar200標題introductionlongtext4294967295簡介picturelongtext4294967295圖片contentlongtext4294967295內容(2)蔬菜信息評論表針對蔬菜信息評論表的設計主要是能夠儲存相關用戶對于蔬菜的評論,其中主要包含評價內容以及相關用戶信息等,如表4.2所示。表4.2蔬菜信息評論表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵啊續表4.2蔬菜信息評論表字段名稱類型長度字段說明主鍵默認值addtimetimestamp創建時間CURRENT_TIMESTAMPrefidbigint關聯表iduseridbigint用戶idavatarurllongtext4294967295頭像nicknamevarchar200用戶名contentlongtext4294967295評論內容(3)訂單信息表訂單信息表主要是能夠展示訂單信息,其中主要包含下單事件、編號、蔬菜的相關價格以及名稱等,如表4.3所示。表4.3訂單信息表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPtupianlongtext4294967295圖片jiagevarchar200價格shuliangvarchar200數量zongjiavarchar200總價dingdanzhuangtaivarchar200訂單狀態qianshoushijiandatetime簽收時間beizhuvarchar200備注zhanghaovarchar200賬號續表4.3訂單信息表字段名稱類型長度字段說明主鍵默認值xingmingvarchar200姓名shoujivarchar200手機dizhivarchar200地址peisongzhanghaovarchar200配送賬號peisongxingmingvarchar200配送姓名crossuseridbigint跨表用戶idcrossrefidbigint跨表主鍵idsfshvarchar200是否審核待審核shhflongtext4294967295審核回復useridbigint用戶id(4)用戶表用戶表主要是對用戶信息的儲存,其中包含用戶手機號、姓名、性別以及其他信息等,如表4.4所示。表4.4用戶表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPzhanghaovarchar200賬號mimavarchar200密碼xingmingvarchar200姓名nianlingint年齡xingbievarchar200性別續表4.4用戶表字段名稱類型長度字段說明主鍵默認值shoujivarchar200手機touxianglongtext4294967295頭像(5)訂單分配表訂單分配表,用來儲存訂單分配的信息,包含配送員賬號,姓名,聯系電話的信息,如表4.5所示。表4.5訂單分配表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPdingdanbianhaovarchar200訂單編號shucaimingchengvarchar200蔬菜名稱tupianlongtext4294967295圖片jiagefloat價格zongjiafloat總價dizhivarchar200地址fenpeishijiandatetime分配時間beizhuvarchar200備注zhanghaovarchar200賬號xingmingvarchar200姓名shuliangint數量peisongzhanghaovarchar200配送賬號peisongxingmingvarchar200配送姓名續表4.5訂單分配表字段名稱類型長度字段說明主鍵默認值lianxidianhuavarchar200聯系電話crossuseridbigint跨表用戶idcrossrefidbigint跨表主鍵id(6)蔬菜信息表蔬菜信息表主要是蔬菜名稱、蔬菜的原產地以及蔬菜價格等相關信息,如表4.6所示。表4.6蔬菜信息表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPshucaimingchengvarchar200蔬菜名稱shucaifenleivarchar200蔬菜分類chandivarchar200產地jiagefloat價格shuliangint數量tupianlongtext4294967295圖片caizhairiqidate采摘日期shucaijieshaolongtext4294967295蔬菜介紹clicktimedatetime最近點擊時間clicknumint點擊次數0(7)蔬菜分類表一種用于存儲蔬菜類別信息的蔬菜類別表格,包括蔬菜類別的建立日期、蔬菜類別等;如表4.7所示。表4.7蔬菜分類表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPshucaifenleivarchar200蔬菜分類(8)配送員表該表主要包含配送人員名稱,人員手機號、姓名以及相關聯系方式等,如表4.8所示。表4.8配送員表字段名稱類型長度字段說明主鍵默認值idbigint主鍵主鍵addtimetimestamp創建時間CURRENT_TIMESTAMPpeisongzhanghaovarchar200配送賬號mimavarchar200密碼peisongxingmingvarchar200配送姓名nianlingint年齡xingbievarchar200性別lianxidianhuavarchar200聯系電話touxianglongtext4294967295頭像第5章系統實現5.1實現環境使用Java開發框架:springbootJDK版本:JDK1.8服務器:TOMCAT7資料庫:mysql5.7(在本次設計中必須使用5.7的版本)數據庫工具:Navicat11開發軟件:eclipse/myeclipse/ideaMavenPackage:Maven3.3.9谷歌瀏覽器:google5.2登錄注冊用戶第一次使用需要注冊賬號。當使用者注冊時,必須先填寫好相關信息,再點“注冊”鍵如圖5.1所示。當使用者登陸小程序時,使用者只需填入使用者賬號和密碼,即可進入應用程序首頁。登錄如圖5.2所示。圖5.1用戶注冊圖5.2用戶登錄實現該功能的關鍵代碼如下:@IgnoreAuth@PostMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));if(user==null||!user.getPassword().equals(password)){returnR.error("賬號或密碼不正確");}Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole());returnR.ok().put("token",token);}@IgnoreAuth@PostMapping(value="/register")publicRregister(@RequestBodyUsersEntityuser){if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){returnR.error("用戶已存在");}userService.insert(user);returnR.ok();}5.3蔬菜推薦用戶登錄成功以后來到小程序的首頁,系統會根據用戶對菜品的點擊次數進行智能排序推薦給用戶各種蔬菜包括蔬菜的名稱、類別、圖片、產地。如圖5.3。選擇一個菜品后點擊即可看到菜品的詳細信息,如圖5.4所示。圖5.3蔬菜推薦圖5.4蔬菜詳情實現該功能的關鍵代碼如下:@IgnoreAuth

@RequestMapping("/autoSort")publicRautoSort(@RequestParamMap<String,Object>params,ShucaixinxiEntityshucaixinxi,HttpServletRequestrequest,Stringpre){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

Map<String,Object>newMap=newHashMap<String,Object>();

Map<String,Object>param=newHashMap<String,Object>();

Iterator<Map.Entry<String,Object>>it=param.entrySet().iterator();

while(it.hasNext()){

Map.Entry<String,Object>entry=it.next();

Stringkey=entry.getKey();

StringnewKey=entry.getKey();

if(pre.endsWith(".")){

newMap.put(pre+newKey,entry.getValue());

}elseif(StringUtils.isEmpty(pre)){

newMap.put(newKey,entry.getValue());

}else{

newMap.put(pre+"."+newKey,entry.getValue());

}

}

params.put("sort","clicknum");

params.put("order","desc");

PageUtilspage=shucaixinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shucaixinxi),params),params));

returnR.ok().put("data",page);

}5.4蔬菜查詢用戶通過小程序的蔬菜信息頁面可以看到各種蔬菜,可以通過搜索框對蔬菜的名稱或者產地及類別找到自己想要的蔬菜。根據蔬菜名稱查詢如圖5.5,根據蔬菜產地查詢如圖5.6,根據蔬菜類別查詢如圖5.7所示。圖5.5蔬菜名稱查詢圖5.6蔬菜產地查詢圖5.7蔬菜類別查詢實現該功能的關鍵代碼如下:@RequestMapping("/lists")

publicRlist(ShucaixinxiEntityshucaixinxi){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));

returnR.ok().put("data",shucaixinxiService.selectListView(ew));

}@RequestMapping("/query")

publicRquery(ShucaixinxiEntityshucaixinxi){

EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();

ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));

ShucaixinxiViewshucaixinxiView=shucaixinxiService.selectView(ew);

returnR.ok("查詢蔬菜信息成功").put("data",shucaixinxiView);5.5在線下單用戶選擇好蔬菜后來到菜品的詳情頁面可以看到菜品的圖片,同時可以看到其他用戶的對該商品的評價,在填寫好菜品數量和收貨地址以及聯系方式后點擊下方的在線下單并提交即可下單成功。如圖5.8。用戶下單成功后,進到訂單可以查看到自己的訂單詳情,如圖5.9所示。圖5.8在線下單圖5.9訂單詳情用戶成功提交訂單后通過用戶訂單頁面可以查看訂單,確認信息無誤后可以通過在線支付按鈕對訂單進行支付,如圖5.10,點擊支付按鈕后選擇支付工具即可完成支付,如圖5.11所示。圖5.10在線支付圖5.11支付選項實現該功能的關鍵代碼如下:@IgnoreAuth

@RequestMapping("/detail/{id}")

publicRdetail(@PathVariable("id")Longid){

YonghuxiadanEntityyonghuxiadan=yonghuxiadanService.selectById(id);

returnR.ok().put("data",yonghuxiadan);

}@IgnoreAuth

@RequestMapping("/add")

publicRadd(@RequestBodyYonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){

yonghuxiadan.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

yonghuxiadanService.insert(yonghuxiadan);

returnR.ok();

}@IgnoreAuth

@RequestMapping("/list")

publicRlist(@RequestParamMap<String,Object>params,YonghuxiadanEntityyonghuxiadan,

HttpServletRequestrequest){

EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>();

PageUtilspage=yonghuxiadanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghuxiadan),params),params));

returnR.ok().put("data",page);}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyYonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){

yonghuxiadanService.updateById(yonghuxiadan);

returnR.ok();

}5.6蔬菜分類管理系統輸入相關密碼之后需要通過管理員的身份進行登陸,同時針對蔬菜的分類進行選擇,最終進入蔬菜的分類管理界面,能夠對蔬菜相關信息進行修改,刪除以及搜索等。如圖5.12。圖5.12蔬菜分類管理管理員在蔬菜管理頁面通過點擊新增按鈕即可添加新的蔬菜種類,如圖5.13所示。圖5.13蔬菜分類新增實現該功能的關鍵代碼如下所示:@RequestMapping("/lists")publicRlist(ShucaifenleiEntityshucaifenlei){EntityWrapper<ShucaifenleiEntity>ew=newEntityWrapper<ShucaifenleiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaifenlei,"shucaifenlei"));returnR.ok().put("data",shucaifenleiService.selectListView(ew));}@RequestMapping("/add")

publicRadd(@RequestBodyShucaifenleiEntityshucaifenlei,HttpServletRequestrequest){

shucaifenlei.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

shucaifenleiService.insert(shucaifenlei);

returnR.ok();

}5.7蔬菜信息管理在鍵入了自己的密碼之后,以管理員的身份登陸到了后臺系統中,在蔬菜信息管理下,在蔬菜信息管理下,你就可以在蔬菜信息中添加蔬菜信息、修改蔬菜信息、刪除蔬菜信息。查看詳細的蔬菜信息,同時針對蔬菜信息的評價進行詳細了解等。如圖5.14。圖5.14蔬菜信息管理在蔬菜信息管理頁面通過點擊修改按鈕即可對蔬菜信息進行修改,如圖5.15所示。圖5.15蔬菜信息修改實現該功能的關鍵代碼如下所示:@RequestMapping("/lists")publicRlist(ShucaixinxiEntityshucaixinxi){EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));returnR.ok().put("data",shucaixinxiService.selectListView(ew));}@RequestMapping("/query")publicRquery(ShucaixinxiEntityshucaixinxi){EntityWrapper<ShucaixinxiEntity>ew=newEntityWrapper<ShucaixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(shucaixinxi,"shucaixinxi"));ShucaixinxiViewshucaixinxiView=shucaixinxiService.selectView(ew);returnR.ok().put("data",shucaixinxiView);}

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyShucaixinxiEntityshucaixinxi,HttpServletRequestrequest){

shucaixinxiService.updateById(shucaixinxi);returnR.ok();5.8訂單管理訂單管理,以管理員的身份進入訂單管理后,可以對各個用戶的訂單進行查詢、刪除等相關操作,在搜索框進行搜索蔬菜名稱能夠快速定位,如圖5.16。圖5.16訂單管理實現該功能的關鍵代碼如下所示:@RequestMapping("/lists")publicRlist(YonghuxiadanEntityyonghuxiadan){ EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>(); ew.allEq(MPUtil.allEQMapPre(yonghuxiadan,"yonghuxiadan"));returnR.ok().put("data",yonghuxiadanService.selectListView(ew));}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuxiadanEntityyonghuxiadan,HttpServletRequestrequest){StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")){yonghuxiadan.setZhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<YonghuxiadanEntity>ew=newEntityWrapper<YonghuxiadanEntity>();PageUtilspage=yonghuxiadanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghuxiadan),params),params));returnR.ok().put("data",page);}5.9訂單分配管理管理員不僅可以查看和刪除訂單也可以將訂單分配給指定配送員,圖5.17所示。圖5.17所有訂單管理員通過訂單分配按鈕即可將用戶的訂單分配給指定的配送員如圖5.18所示。圖5.18訂單分配配送員通過點擊我的里面的訂單分配選項即可查看到需要分配的訂單如圖5.19。配送員在選擇訂單后來到配送頁面通過點擊配送按鈕即可對訂單進行配送如圖5.20所示。圖5.19待配送訂單圖5.20訂單配送實現該功能的關鍵代碼如下所示:@RequestMapping("/page")

publicRpage(@RequestParamMap<String,Object>params,DingdanfenpeiEntitydingdanfenpei,

HttpServletRequestrequest){

StringtableName=request.getSession().getAttribute("tableName").toString();

if(tableName.equals("yonghu")){

dingdanfenpei.setZhanghao((String)request.getSession().getAttribute("username"));

}

if(tableName.equals("peisongyuan")){

dingdanfenpei.setPeisongzhanghao((String)request.getSession().getAttribute("username"));

}EntityWrapper<DingdanfenpeiEntity>ew=newEntityWrapper<DingdanfenpeiEntity>();

PageUtilspage=dingdanfenpeiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,dingdanfenpei),params),params));

returnR.ok().put("data",page);

}@RequestMapping("/lists")publicRlist(DingdanfenpeiEntitydingdanfenpei){EntityWrapper<DingdanfenpeiEntity>ew=newEntityWrapper<DingdanfenpeiEntity>();ew.allEq(MPUtil.allEQMapPre(dingdanfenpei,"dingdanfenpei"));returnR.ok().put("data",dingdanfenpeiService.selectListView(ew));}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

dingdanfenpeiService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.10訂單信息管理訂單信息管理,將訂單分配給配送員并且配送員進行配送之后,管理員在訂單信息管理中按下訂單的信息,就可以對訂單進行刪除、查找,以及審核狀態是否通過以及審核是否有回復,訂單狀態,訂單信息一目了然,點擊刪除按鈕即可刪除訂單,如圖5.21。圖5.21訂單信息管理實現該功能的關鍵代碼如下所示:@RequestMapping("/query")publicRquery(DingdanxinxiEntitydingdanxinxi){EntityWrapper<DingdanxinxiEntity>ew=newEntityWrapper<DingdanxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(dingdanxinxi,"dingdanxinxi"));DingdanxinxiViewdingdanxinxiView=dingdanxinxiService.selectView(ew);returnR.ok("查詢訂單信息成功").put("data",dingdanxinxiView);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){DingdanxinxiEntitydingdanxinxi=dingdanxinxiService.selectById(id);returnR.ok().put("data",dingdanxinxi);}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

dingdanxinxiService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.11公告信息管理管理員通過公告信息管理可以對系統的所有公告信息進行增加,刪除,修改,查詢等操作如圖5.22。圖5.22公告信息管理管理員在公告信息管理頁面選擇新增按鈕即可新增公告信息如圖5.23所示。圖5.23公告信息新增用戶可以通過公告信息功能看到所有的公告信息標題,如圖5.24。點擊一條公告即可查看公告的詳情信息,如圖5.25。圖5.24公告展示圖5.25公告詳情實現該功能的關鍵代碼如下所示:@RequestMapping("/query")

publicRquery(NewsEntitynews){

EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>();

ew.allEq(MPUtil.allEQMapPre(news,"news"));

NewsViewnewsView=newsService.selectView(ew);

returnR.ok("查詢公告信息成功").put("data",newsView);

}@RequestMapping("/add")

publicRadd(@RequestBodyNewsEntitynews,HttpServletRequestrequest){

news.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

//ValidatorUtils.validateEntity(news);

newsService.insert(news);

returnR.ok();

}

@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyNewsEntitynews,HttpServletRequestrequest){

newsService.updateById(news);

returnR.ok();

}5.12用戶管理通過能夠以管理員的身份填寫賬號,登陸后臺系統,在系統頁面選擇用戶,若需要查找則填寫用戶相關信息進行查找,在用戶方面可以看到用戶頭像,以及修改、詳情、刪除等具體日常操作模塊。如圖5.26。圖5.26用戶管理管理員可以通過用戶管理頁面的修改按鈕即可對用戶信息進行修改,如圖5.27所示。圖5.27修改用戶實現該功能的關鍵代碼如下所示:@RequestMapping("/query")

publicRquery(YonghuEntityyonghu){

EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>();

ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu"));

YonghuViewyonghuView=yonghuService.selectView(ew);

returnR.ok("查詢用戶成功").put("data",yonghuView);}

@RequestMapping("/add")

publicRadd(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){

yonghu.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",yonghu.getZhanghao()));

if(u!=null){

returnR.error("用戶已存在");

}

yonghu.setId(newDate().getTime());

yonghuService.insert(yonghu);

returnR.ok();

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){

yonghuService.updateById(yonghu);returnR.ok();

}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

yonghuService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}5.14配送員管理在管理員登陸系統之后需要輸入相關賬號以及密碼,在配送員管理操作頁面選擇配送人員的信息,即可看到所有配送員的信息,如圖5.28。圖5.28配送員信息管理員可以在配送員管理頁面通過新增功能填入相應的信息即可添加配送人員。如圖5.29。圖5.29配送員新增實現該功能的關鍵代碼如下所示:@RequestMapping("/add")

publicRadd(@RequestBodyPeisongyuanEntitypeisongyuan,HttpServletRequestrequest){

peisongyuan.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());

PeisongyuanEntityu=peisongyuanService.selectOne(newEntityWrapper<PeisongyuanEntity>().eq("peisongzhanghao",peisongyuan.getPeisongzhanghao()));

if(u!=null){

returnR.error("success");

}

peisongyuan.setId(newDate().getTime());

peisongyuanService.insert(peisongyuan);

returnR.ok();

}@RequestMapping("/update")

@Transactional

publicRupdate(@RequestBodyPeisongyuanEntitypeisongyuan,HttpServletRequestrequest){

peisongyuanService.updateById(peisongyuan);

returnR.ok();

}@RequestMapping("/delete")

publicRdelete(@RequestBodyLong[]ids){

peisongyuanService.deleteBatchIds(Arrays.asList(ids));

returnR.ok();

}

第6章系統測試系統通常能夠針對各項模塊以及操作頁面設計進行完成,從而確保系統后期的穩定。通常在正常使用之前能夠增設相關功能以及性能方面的測試等,便于系統在使用之后的修復以及改進等。黑箱測試是一種對整個軟件的功能進行測試的方法,在做黑箱測試時,首先要站在使用者的立場上,使用對應的測試案例;通過與期望結果的對比,可以更容易地找到存在的問題。在進行黑箱試驗時,采用了偏差和邊界值兩種方法。一般情況下,在輸入和輸出值的邊界上,系統的誤差出現的幾率要比內部大得多,所以,在決定了一個好的輸入和輸出范圍之后,就可以選擇一個邊界值來對系統進行檢測,進而對系統的穩定性和可靠性做出一個更深層次的判斷。6.1測試步驟如同開發一樣,在試點階段應該逐步實行。從邏輯上來說,每個步驟都是前面一個步驟的繼續。一個大規模的軟件系統往往包含若干個子系統,而這些子系統又包含若干功能模塊。這樣,一個大型的軟件程序的測試基本上由下列步驟組成:1.針對模塊的測試主要是能夠從編程的過程中進行找到編碼并且進行詳細設計;2.在測試過程中發現問題3.對相關錯誤進行驗收6.2測試用例6.2.1登錄測試用例在此基礎上,基于客戶需求,使用了黑箱測試方法,本文僅提供了一份典型的測試用例列表;如表6.1所示。表6.1登錄測試用例表測試編號測試目的操作步驟預期結果實際結果001登錄測試輸入正確的用戶名和密碼登錄成功登錄成功002登錄測試輸入錯誤的用戶名登錄失敗登錄失敗003登錄測試輸入錯誤的密碼登錄失敗登錄失敗6.2.2用戶信息管理測試用例管理端在運行時要滿足瀏覽器的運行需求,比如添加用戶信息測試、修改用戶信息測試、刪除用戶信息測試等。本節根據管理端各模塊進行測試,因考慮到本文篇幅有限,這里代表性的部分測試用例,如表6.2所示。表6.2用戶信息測試用例表測試編號測試目的操作步驟預期結果實際結果001添加用戶信息測試在添加頁面輸入用戶信息,點擊確認按鈕添加成功添加成功002修改用戶信息測試在修改頁面修改用戶信息,點擊確認按鈕修改成功修改成功003刪除用戶信息測試在管理用戶頁面,點擊某一試卷的刪除按鈕刪除成功刪除成功004查詢用戶信息測試在用戶信息管理頁面查詢輸入框輸入要查詢的用戶名字,點擊查詢按鈕查詢成功查詢成功6.2.3蔬菜信息管理測試用例管理端在運行時要滿足瀏覽器的運行需求,比如添加蔬菜信息測試、修改蔬菜信息測試、刪除蔬菜信息測試等。本節根據管理端各模塊進行測試,因考慮到本文篇幅有限,這里代表性的部分測試用例,如表6.3所示。表6.3蔬菜信息測試用例表測試編號測試目的操作步驟預期結果實際結果001添加蔬菜信息測試在添加頁面輸入蔬菜信息,點擊添加成功添加成功002修改蔬菜信息測試確認按鈕在修改頁面修改蔬菜信息修改成功修改成功續表6.3蔬菜信息測試用例表測試編號測試目的操作步驟預期結果實際結果003刪除蔬菜信息測試在管理蔬菜頁面,點擊某一蔬菜的刪除按鈕刪除成功刪除成功004查詢蔬菜信息測試在蔬菜信息管理頁面查詢輸入框輸入要查詢的蔬菜名字,點擊查詢按鈕查詢成功查詢成功6.2.4訂單管理信息管理測試用例管理端在運行時要滿足瀏覽器的運行需求,比如添加訂單管理信息測試、修改訂單管理信息測試、刪除訂單管理信息測試等。本節根據管理端各模塊進行測試,因考慮到本文篇幅有限,這里代表性的部分測試用例,如表6.4所示。表6.4訂單管理信息測試用例表測試編號測試目的操作步驟預期結果實際結果001添加訂單管理信息測試在添加頁面輸入訂單管理信息,點擊確認按鈕添加成功添加成功002修改訂單管理信息測試在修改頁面修改訂單管理信息,點擊確認按鈕修改成功修改成功003刪除訂單管理信息測試在管理訂單管理頁面,點擊刪除

溫馨提示

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

評論

0/150

提交評論