![基于Java的校园跑腿系统的设计与实现_第1页](http://file4.renrendoc.com/view2/M00/10/3D/wKhkFmY6uWKATnZuAAGz2v_-Wtk264.jpg)
![基于Java的校园跑腿系统的设计与实现_第2页](http://file4.renrendoc.com/view2/M00/10/3D/wKhkFmY6uWKATnZuAAGz2v_-Wtk2642.jpg)
![基于Java的校园跑腿系统的设计与实现_第3页](http://file4.renrendoc.com/view2/M00/10/3D/wKhkFmY6uWKATnZuAAGz2v_-Wtk2643.jpg)
![基于Java的校园跑腿系统的设计与实现_第4页](http://file4.renrendoc.com/view2/M00/10/3D/wKhkFmY6uWKATnZuAAGz2v_-Wtk2644.jpg)
![基于Java的校园跑腿系统的设计与实现_第5页](http://file4.renrendoc.com/view2/M00/10/3D/wKhkFmY6uWKATnZuAAGz2v_-Wtk2645.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章相关技术简介2.1Java语言选用Java编程语言,是因为这项技术有很强的可读性和可移植性。而Java在继承C++面向对象核心思想的同时,也去掉了C++易出错、不太好懂的技巧。Java中还聪明的采用垃圾桶自动回收功能,减少了在编程过程中工作量,也可以更好地利用系统资源和提高系统运行性能。Java语言基础运行环境中含有很多对编程有帮助的基本类库函数可直接调用利用而无再进行开发,这些都给程序开发工作带来了不容忽视的方便,同时也能加大程序的开发速度。尤其Java企业应用程序接口给Java企业级应用程序开发带来了很多可直接利用的类库,所以用Java语言开发软件对后期的维护非常方便,这是本人用Java语言进行编程的主要原因,总之用Java语言进行程序开发也不失为一种不错的解决方法。2.2MySQLMySQL是在学习过程中最常用的数据库之一。他可以说是一个非常经典的数据库,并且在这个领域已经得到了广泛的应用。它是个性能出色、效率极高的数据库。它具有丰富的查询功能,同时还具备许多独特的特性,比如数据访问方式多样化、数据表操作简单等特点。它有很多方面的优点:提供了多种数据库存储引擎、支持至少20种以上的开发平台、运行速度快、支持面向对象、安全性高、成本低、支持各种开发语言、支持强大的内置函数。这些优点使其成为现在众多数据库系统中最流行、最有代表性的数据库之一。这么多优点也使其的信息存储非常方便快捷,灵活安全的权限及密码系统使其在应用程序中具有较高的安全性。这些优势使其成为目前众多大型商业企业中最受欢迎的数据库之一。非常重要的一点就是MySQL数据库免费,并且支持海量拓展库,这更方便了系统的开发。2.3Spring框架Spring框架为Java平台一种开源应用轻量级框架,RodJohnson创建最初提供的目的就是解决企业级应用开发业务逻辑层与其他层之间的耦合。Spring共有约20个单元,包含了超过1300份各种文档。其中包括数据库、数据持久化模型、消息队列、内存管理机制等。Spring框架拥有控制反转(IOC)特性以便于项目维护与测试为目标,为Java对象通过Java中反射机制实现统一配置与管理提供途径。在此过程中可以实现组件间的交互以及系统内部各节点功能的集成,使其能够更好地满足企业用户对于复杂应用场景的需求。Spring框架有一个面向切面编程的(AOP)的框架,SpringAOP框架是建立在代理模式的基础上的,并且在运行过程中可以进行配置。该技术还支持在组件上直接部署应用程序,并为开发环境带来极大简化,降低系统复杂度。2.4Vue框架Vue为一组渐进式框架用来构造用户界面。在该框架中,用户可以根据需求来创建各种界面模型,并将其嵌入到一个可执行代码中去。它不同于其他大型框架,将Vue设计成可从底层逐层施加。在此过程中,用户无需考虑其底层数据的具体实现方法和细节,而是直接从一个简单易用的界面开始。Vue中核心库仅集中在视图层,既容易上手又容易和第三方库或者现有项目集成。另一方面,Vue在与现代化工具链和各类支持类库相结合的情况下,完全可以驱动复杂单页应用。第3章系统分析3.1可行性分析3.1.1技术可行性从技术可行性出发,本系统是基于Java语言的校园跑腿系统。开发时将采用SpringBoot框架以便弹性管理代码,用当今优秀的多语言集成开发工具之一IDEA进行开发,使用MySQL数据库对系统内繁多的数据的进行存储,使用Vue对系统进行设计。这些工具都是成熟而稳定的,而与此相关的大部分开发工具均为免费开发工具。综合以上考虑,开发基于Java校园跑腿系统从技术上来讲是可行的。3.1.2经济可行性通过参考相关的文献,可以预估出系统在开发时所用的软件和硬件是很好获取的而且大部分软件是免费的,开发成本很低。开发的预算也在接受范围之内。综合以上考虑,开发基于Java校园跑腿系统从经济上来讲是可行的。3.1.3操作可行性在将系统移交给使用人员时,应确保系统使用方便、易于操作,多数功能应由设计良好的图形界面完成,同时数据输入应设计灵活、齐全、无歧义、便于管理员及用户对系统相关信息进行查看。另外,还需要对系统进行定期的维护,确保系统能够正常运行。整个系统一定要简洁、高效,在使用中对不同级别的用户要有很好的权限。另外还要有良好的用户界面和安全性等方面的保证,才能更好地发挥出校园跑腿系统的作用。通过对上述这几部分的思考,确定此次开发在操作上是的可行的。3.2需求分析系统的功能需求分析能够进一步了解接下来在软件功能需求的实现过程中,所需要实现的功能和不需要实现的功能。好的需求分析可以帮助减少甚至避免频繁的出现错误以提高软件生产率、减少开发成本和提高软件质量。3.2.1功能需求分析在跑腿系统中当中,将为学生、管理员和跑腿员三种角色提供服务:1、学生、管理员和跑腿员可以进行注册、登录,在登录后可以在个人中心修改用户密码等信息。2、学生在系统主页对商品或者菜品进行浏览,在快递站内查看快递站信息。可以根据需要,对想要的商品、菜品进行下单点赞,或者在快递站内下单找跑腿员代取快递,在跑腿员将商品送达时审核订单是否可以通过进行支付以及对订单进行评价。管理员对各种商品、菜品、学生和跑腿员的信息进行管理。3、跑腿员可以查看商品、菜品信息、学生的评价和订单信息、接单。4、管理员对商品、菜品信息进行整理、分类最后将将其添加到对应的区域,还要对学生的订单和评价进行管理。5、管理员可以发布公告,对系统插图进行更换。注册登录商品信息查看订单下发订单评价菜品信息查看订单支付快递站查看注册登录商品信息查看订单下发订单评价菜品信息查看订单支付快递站查看图3.1学生用例图注册登录商品信息查看注册登录商品信息查看跑腿接单需求订单查看图3.2跑腿员用例图用户信息管理商品信息管理订单管理快递站管理菜品信息管理评价管理用户信息管理商品信息管理订单管理快递站管理菜品信息管理评价管理系统管理图3.3管理员用例图3.2.2非功能需求分析本文将设计基于Java的校园跑腿系统,因其将储存大量信息和用户相关的基本情况,为保证系统数据安全,在设计和开发本系统时要特别配置用户实名制注册登录模块,通过实名制来认证接入本系统的使用者。同时在服务器端也设置有身份验证模块和用户授权管理模块。整个校园平台的用户身份都经过实名制认证,系统会依据用户的身份给用户分配相应权限,并且保证用户只能够执行权限内的操作并且只能够获取权限内的信息。同时为了防止非法使用和恶意攻击,系统还将设置有用户权限限制规则和安全审计策略,以实现系统安全保护。用户权限控制机制,有效地保证系统数据的安全,当用户发生异常运行时,系统将立即终止对该用户的接入。3.3系统流程分析3.3.1登录流程否是登录检测账号、密码是否正确查询角色权限跳转对应的页面否是登录检测账号、密码是否正确查询角色权限跳转对应的页面输入账号、密码、角色选择开始结束图3.4登录流程图3.3.2购买流程查看商品是判断是否下订单跑腿员跑单订单送达开始结束订单评价否订单支付对于购买流程来说,主要的是学生查看商品再下订单最后进行支付和跑腿员接单跑单,其具体操作如图3.查看商品是判断是否下订单跑腿员跑单订单送达开始结束订单评价否订单支付图3.5购买流程图3.3.3注册流程用户在注册时要填写相应的信息进行注册。两次输入的密码必须是一致的,点击注册时还要判断该账号是否已经存在。本系统的具体系统注册流程如图3.6所示:是否输入账号输入密码是否输入账号输入密码再次输入密码输入姓名、性别、年龄、邮箱、手机号、身份证号点击注册否否是开始判断是否已账号注册判断两次密码是否一致注册成功结束3.3.4用户信息管理流程是否开始登录是否开始登录判断是否是管理员查询、删除、添加、修改用户信息修改密码、个人信息数据库更新结束图3.7用户信息管理流程图第4章系统设计4.1功能模块设计据需求分析的结果,遵循高内聚低耦合的原则,将校园跑腿系统分为食堂菜品信息管理、超市商品信息管理、快递站管理、销售量统计、用户管理、订单管理、订单支付、跑腿接单管理、跑腿订单评价等模块。基于Java的基于Java的校园跑腿系统食堂菜品信息管理超市商品信息管理快递站管理订单管理跑腿订单评价跑腿接单管理订单支付销售量统计用户管理图4.1系统功能结构图4.2数据库设计4.2.1概念结构设计概念结构设计是将用户需求抽象为概念模型的设计,其通过需求分析而得到用户的需求,并抽象为信息结构的一个过程,然后再从分析的角度去整合设计视角,最后完成整个E-R图的设计。本系统规划出的主要实体有管理员、学生、跑腿员、商品、订单。这些实体的实体属性图和实体间关系图描述如下:1、管理员实体属性图如图4.2所示账号用户名密码账号用户名密码管理员年龄手机号年龄手机号学号(账号)年龄姓名头像学生账号密码图4.3学生实体属性图年龄性别头像联系电话年龄性别头像联系电话跑腿员姓名跑腿员跑腿账号账号密码图4.4跑腿员实体属性图4、商品实体属性图如图4.5所示:数量数量超市名称商品封面商品分类价格上架日期商品名称商品介绍图4.5商品实体属性图5、订单实体属性图如图4.6所示需求时间商品名称订单编号学生账号需求时间商品名称订单编号学生账号送达地址订单跑腿账号菜品名称数量食堂名称菜品封面菜品分类数量食堂名称菜品封面菜品分类价格上架日期菜品名称菜品介绍图4.7菜品实体属性图MMN订单跑腿员MMN订单跑腿员学生商品生成菜品下单接单1MNN生成评价11下单111图4.8系统E-R图4.2.2逻辑结构设计校园跑腿系统的数据库逻辑结构设计首先需要考虑到将实体和属性清楚的定义清楚。其次就要考虑到具体的细节如数据类型的长度和确定条件,一些信息的格式,表的主键以及主键的索引。(1)xueshengpingjia用来储存学生评价信息,其表结构如图4.1所示:表4.1xueshengpingjia学生评价表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPpingjiabianhaovarchar10评价编号fuwupingjiavarchar20服务评价manyichengduvarchar10满意程度pingyulongtext评语pingjiashijiandatetime评价时间xuehaovarchar9学号xingmingvarchar9姓名shoujivarchar11手机paotuizhanghaovarchar9跑腿账号paotuixingmingvarchar9跑腿姓名lianxidianhuavarchar11联系电话(2)dingdanxinxi表储存订单信息,其表结构如表4.2所示:表4.2dingdanxinxi订单信息表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPdingdanbianhaovarchar10订单编号mingchengvarchar10名称jiagefloat价格shuliangint数量zongjiafloat总价choulaofloat酬劳dizhivarchar10地址dingdanshuominglongtext订单说明dingdanzhuangtaivarchar10订单状态songdadizhivarchar10送达地址xuehaovarchar9学号xingmingvarchar9姓名shoujivarchar11手机paotuizhanghaovarchar10跑腿账号paotuixingmingvarchar9跑腿姓名lianxidianhuavarchar11联系电话(3)xuesheng表储存学生信息,其表结构表4.3所示:表4.3xuesheng学生表字段名称类型长度字段说明主键默认值idbigint主键xuehaovarchar9学号mimavarchar9密码xingmingvarchar9姓名nianlingint年龄xingbievarchar2性别shoujivarchar11手机touxianglongtext头像(4)chaoshishangpin表储存超市商品信息,其结构如表4.4所示:表4.4chaoshishangpin超市商品表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPmingchengvarchar10名称chaoshimingchengvarchar10超市名称shangpinfenleivarchar10商品分类guigevarchar100规格jiagefloat价格shuliangint数量fengmianlongtext封面shangjiariqidate上架日期shangpinjieshaolongtext商品介绍(5)storeup表储存收藏信息,其结构如表4.5所示:表4.5storeup收藏表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar5表名namevarchar5名称picturelongtext图片inteltypevarchar10推荐类型remarkvarchar10备注(7)caipinfenlei表储存菜品分类信息,其结构如表4.7所示:表4.7caipinfenlei菜品分类表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPcaipinfenleivarchar10菜品分类(8)shitangcaipin表储存食堂菜品信息,其结构如表4.8所示:表4.8shitangcaipin食堂菜品表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPmingchengvarchar10名称caipinfenleivarchar10菜品分类shitangmingchengvarchar10食堂名称dizhivarchar10地址kouweivarchar5口味tupianlongtext图片jiagefloat价格shuliangint数量shangjiashijiandate上架时间(9)shangpinfenlei储存商品分类信息,其结构如表4.9所示:表4.9shangpinfenlei商品分类字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPshangpinfenleivarchar10商品分类(10)paotuiyuan表储存跑腿员信息,其结构如表4.10所示:表4.10paotuiyuan跑腿员表字段名称类型长度字段说明主键默认值idbigint主键paotuizhanghaovarchar10跑腿账号mimavarchar10密码paotuixingmingvarchar10跑腿姓名nianlingint年龄xingbievarchar10性别touxianglongtext头像lianxidianhuavarchar11联系电话(11)paotuijiedan表储存跑腿接单信息,其结构如表4.11所示:表4.11paotuijiedan跑腿接单表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPdingdanbianhaovarchar10订单编号mingchengvarchar10名称jiagefloat价格shuliangint数量zongjiafloat总价choulaofloat酬劳dizhivarchar10地址xiangxishuominglongtext详细说明jiedanshijiandatetime接单时间songdadizhivarchar10送达地址xuehaovarchar10学号xingmingvarchar10姓名shoujivarchar11手机paotuizhanghaovarchar10跑腿账号paotuixingmingvarchar10跑腿姓名lianxidianhuavarchar10联系电话第5章系统实现5.1食堂菜品信息管理管理员登录到后台,点击“菜品分类”即可进入菜品分类管理界面。输入想要查询的菜品分类点击“查询”按钮之后对菜品分类进行查询。还可以修改或删除菜品分类。如图5.1所示。图5.1菜品分类管理界面管理员点击“食堂菜品”进入食堂菜品信息管理界面,可以对菜品进行修改或者删除。页面左上角有查询功能,方便管理员根据具体的信息对菜品进行删除或修改如图5.2。点击“新增”按钮对菜品进行添加,如图5.3所示。图5.2食堂菜品管理界面图5.3菜品添加界面学生登录到系统主页点击“食堂菜品”按钮可以查看菜品信息,输入一个或多个对应的信息就可以对菜品进行查询。如图5.4所示:图5.4菜品查看界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,ShitangxinxiEntityshitangxinxi,HttpServletRequestrequest){EntityWrapper<ShitangxinxiEntity>ew=newEntityWrapper<ShitangxinxiEntity>();PageUtilspage=shitangxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shitangxinxi),params),params));returnR.ok().put("data",page);}@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params,ShitangxinxiEntityshitangxinxi,HttpServletRequestrequest){EntityWrapper<ShitangxinxiEntity>ew=newEntityWrapper<ShitangxinxiEntity>();PageUtilspage=shitangxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shitangxinxi),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(ShitangxinxiEntityshitangxinxi){EntityWrapper<ShitangxinxiEntity>ew=newEntityWrapper<ShitangxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(shitangxinxi,"shitangxinxi"));ShitangxinxiViewshitangxinxiView=shitangxinxiService.selectView(ew);returnR.ok("checkTrue").put("data",shitangxinxiView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyShitangxinxiEntityshitangxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(shitangxinxi);shitangxinxiService.updateById(shitangxinxi);/eturnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){shitangxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.2超市商品信息管理管理员登录后台后点击“商品分类”即可进商品分类管理界面。输入想要查询的商品分类点击“查询”之后就可以对商品分类进行查询,方便管理员对具体的商品分类进行修改或删除。如图5.5所示:图5.5商品分类管理界面管理员点击“超市商品”进入到超市商品信息管理界面。页面左上角有查询和添加功能。点击“新增”进入到添加商品界面如图5.6所示。输入一个或多个信息点击“查询”即可查询相应的超市商品,方便管理员对商品进行删除或修改。如图5.7所示。图5.6商品添加界面图5.7商品管理界面学生和跑腿员登录到系统主页点击“超市商品”可以查看商品信息,输入一个或多个信息进行查询。如图5.8所示图5.8商品查看界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(ChaoshixinxiEntitychaoshixinxi){EntityWrapper<ChaoshixinxiEntity>new=newEntityWrapper<ChaoshixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(chaoshixinxi,"chaoshixinxi"));ChaoshixinxiViewchaoshixinxiView=chaoshixinxiService.selectView(ew);returnR.ok("ckeckTrue").put("data",chaoshixinxiView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyChaoshixinxiEntitychaoshixinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(chaoshixinxi);chaoshixinxiService.updateById(chaoshixinxi);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){chaoshixinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@IgnoreAuth@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Longid){ChaoshixinxiEntitychaoshixinxi=chaoshixinxiService.selectById(id);chaoshixinxi.setClicknum(chaoshixinxi.getClicknum()+1);chaoshixinxi.setClicktime(newDate());chaoshixinxiService.updateById(chaoshixinxi);returnR.ok().put("data",chaoshixinxi);}@RequestMapping("/lists")publicRlist(ChaoshixinxiEntitychaoshixinxi){EntityWrapper<ChaoshixinxiEntity>ew=newEntityWrapper<ChaoshixinxiEntity>();ew.allEq(MPUtil.allEQMapPre(chaoshixinxi,"chaoshixinxi"));returnR.ok().put("data",chaoshixinxiService.selectListView(ew));}@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params,ChaoshixinxiEntitychaoshixinxi,HttpServletRequestrequest){EntityWrapper<ChaoshixinxiEntity>ew=newEntityWrapper<ChaoshixinxiEntity>();PageUtilspage=chaoshixinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,chaoshixinxi),params),params));returnR.ok().put("data",page);}5.3快递站管理管理员在后台点击“快递站”进入到快递站管理页面,在其中可以对快递站的信息进行查询、修改、删除,如图5.9所示。学生在系统主页的“快递站”内查看快递站点,如图5.10所示。图5.9快递站管理界面图5.10学生查看快递站界面学生点击快递站对应的图片即可看的到快递站的具体信息如图5.11所示:图5.11快递站详细信息界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(KuaidizhanEntitykuaidizhan){EntityWrapper<KuaidizhanEntity>ew=newEntityWrapper<KuaidizhanEntity>();ew.allEq(MPUtil.allEQMapPre(kuaidizhan,"kuaidizhan"));KuaidizhanViewkuaidizhanView=kuaidizhanService.selectView(ew);returnR.ok("checkkuaidizhanTrue").put("data",kuaidizhanView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyKuaidizhanEntitykuaidizhan,HttpServletRequestrequest){//ValidatorUtils.validateEntity(kuaidizhan);kuaidizhanService.updateById(kuaidizhan);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){kuaidizhanService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,KuaidizhanEntitykuaidizhan,HttpServletRequestrequest){EntityWrapper<KuaidizhanEntity>ew=newEntityWrapper<KuaidizhanEntity>();PageUtilspage=kuaidizhanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,kuaidizhan),params),params));returnR.ok().put("data",page);}5.4销售量统计管理员可以在后台查看菜品、商品的销售量统计,横坐标为卖出的菜品、商品的名称。纵坐标为菜品、商品的销量。如图5.12和5.13所示:图5.12商品销量统计界面图5.13菜品销量统计界面实现该功能的关键代码如下:@RequestMapping("/value/{xColumnName}/{yColumnName}")publicRvalue(@PathVariable("yColumnName")StringyColumnName,@PathVariable("xColumnName")StringxColumnName,HttpServletRequestrequest){Map<String,Object>params=newHashMap<String,Object>();params.put("xColumn",xColumnName);params.put("yColumn",yColumnName);EntityWrapper<CaipindingdanEntity>ew=newEntityWrapper<CaipindingdanEntity>();StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")){ew.eq("xuehao",(String)request.getSession().getAttribute("username"));}List<Map<String,Object>>result=caipindingdanService.selectValue(params,ew);SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");for(Map<String,Object>m:result){for(Stringk:m.keySet()){if(m.get(k)instanceofDate){m.put(k,sdf.format((Date)m.get(k)));}}}returnR.ok().put("data",result);@RequestMapping("/value/{xColumnName}/{yColumnName}")publicRvalue(@PathVariable("yColumnName")StringyColumnName,@PathVariable("xColumnName")StringxColumnName,HttpServletRequestrequest){Map<String,Object>params=newHashMap<String,Object>();params.put("xColumn",xColumnName);params.put("yColumn",yColumnName);EntityWrapper<ShangpindingdanEntity>ew=newEntityWrapper<ShangpindingdanEntity>();StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")){ew.eq("xuehao",(String)request.getSession().getAttribute("username"));}List<Map<String,Object>>result=shangpindingdanService.selectValue(params,ew);SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");for(Map<String,Object>m:result){for(Stringk:m.keySet()){if(m.get(k)instanceofDate){m.put(k,sdf.format((Date)m.get(k)));}}}returnR.ok().put("data",result);}5.5用户管理学生和跑腿员第一次使用系统的时候需要进行账号注册,否则无法进入系统。学生注册界面如图5.14所示。注册成功后的用户可以进行登录,需要输入账号和密码,系统会对所输入的信息进行判断,如果正确进入系统主页,如果错误系统会给出提示,如图5.15所示:图5.14学生注册界面图5.15学生登录界面管理员在后台点击“学生管理”进入学生管理模块,可以对学生信息进行查询、修改或删除。如图5.16所示:图5.16学生管理界面实现该功能的关键代码如下:@PostMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username));if(user==null||!user.getPassword().equals(password)){eturnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole());returnR.ok().put("token",token);}publicRregister(@RequestBodyUsersEntityuser){ValidatorUtils.validateEntity(user);if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){returnR.error("userisTrue");}userService.insert(user);returnR.ok();}@RequestMapping("/query")publicRquery(XueshengEntityxuesheng){EntityWrapper<XueshengEntity>ew=newEntityWrapper<XueshengEntity>();ew.allEq(MPUtil.allEQMapPre(xuesheng,"xuesheng"));XueshengViewxueshengView=xueshengService.selectView(ew);returnR.ok("queryTrue").put("data",xueshengView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyXueshengEntityxuesheng,HttpServletRequestrequest){//ValidatorUtils.validateEntity(xuesheng);xueshengService.updateById(xuesheng);returnR.ok();@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){userService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.6订单管理管理员在后台点击“订单管理”可以查看订单信息,在输入一个或多个信息点击“查询”按钮即可查询对应的订单,并且可以对订单进行删除。如图5.17所示:图5.17订单管理界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(DingdanxinxiEntitydingdanxinxi){EntityWrapper<DingdanxinxiEntity>ew=newEntityWrapper<DingdanxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(dingdanxinxi,"dingdanxinxi"));DingdanxinxiViewdingdanxinxiView=dingdanxinxiService.selectView(ew);returnR.ok("checkdingdanTrue").put("data",dingdanxinxiView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyDingdanxinxiEntitydingdanxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(dingdanxinxi);dingdanxinxiService.updateById(dingdanxinxi);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){dingdanxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.7订单支付学生可以在跑腿员送到订单的时候进入订单信息界面,点击绿色的“支付”进行支付。如图5.18和图5.19所示:图5.18订单查看界面图5.19订单支付界面实现该功能的关键代码如下:publicinterfaceDingdanxinxiServiceextendsIService<DingdanxinxiEntity>{PageUtilsqueryPage(Map<String,Object>params);List<DingdanxinxiVO>selectListVO(Wrapper<DingdanxinxiEntity>wrapper);DingdanxinxiVOselectVO(@Param("ew")Wrapper<DingdanxinxiEntity>wrapper);List<DingdanxinxiView>selectListView(Wrapper<DingdanxinxiEntity>wrapper);DingdanxinxiViewselectView(@Param("ew")Wrapper<DingdanxinxiEntity>wrapper);PageUtilsqueryPage(Map<String,Object>params,Wrapper<DingdanxinxiEntity>wrapper);}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,DingdanxinxiEntitydingdanxinxi,HttpServletRequestrequest){StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")){dingdanxinxi.setXuehao((String)request.getSession().getAttribute("username"));}if(tableName.equals("paotuiyuan")){dingdanxinxi.setPaotuizhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<DingdanxinxiEntity>ew=newEntityWrapper<DingdanxinxiEntity>();PageUtilspage=dingdanxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,dingdanxinxi),params),params));returnR.ok().put("data",page);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyDingdanxinxiEntitydingdanxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(dingdanxinxi);dingdanxinxiService.updateById(dingdanxinxi);returnR.ok();}5.8跑腿接单管理跑腿员在后台点击“跑腿接单”进行接单,如图5.20所示。管理员在后台点击“跑腿接单”按钮对跑腿员所接的订单进行管理,可以进行删除但是不能修改。如图5.21所示:图5.20跑腿接单界面图5.21订单管理界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(PaotuijiedanEntitypaotuijiedan){EntityWrapper<PaotuijiedanEntity>ew=newEntityWrapper<PaotuijiedanEntity>();ew.allEq(MPUtil.allEQMapPre(paotuijiedan,"paotuijiedan"));PaotuijiedanViewpaotuijiedanView=paotuijiedanService.selectView(ew);returnR.ok("checkpaotuijiedanTrue").put("data",paotuijiedanView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyPaotuijiedanEntitypaotuijiedan,HttpServletRequestrequest){//ValidatorUtils.validateEntity(paotuijiedan);paotuijiedanService.updateById(paotuijiedan);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){paotuijiedanService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.9跑腿订单评价学生在支付完成后点击“订单评价”按钮可以对订单进行评价,可以对跑腿员的这次跑单进行打星,并写上评语如图5.22所示:图5.22订单评价界面跑腿员登录到自己的账号,点击“学生评价”按钮就能查看到学生的评价。如图5.23所示:图5.23查看订单评价界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(XueshengpingjiaEntityxueshengpingjia){EntityWrapper<XueshengpingjiaEntity>ew=newEntityWrapper<XueshengpingjiaEntity>();ew.allEq(MPUtil.allEQMapPre(xueshengpingjia,"xueshengpingjia"));XueshengpingjiaViewueshengpingjiaView=xueshengpingjiaService.selectView(ew);returnR.ok("checkpingjiaTrue").put("data",xueshengpingjiaView);}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){xueshengpingjiaService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@IgnoreAuth@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Longid){XueshengpingjiaEntityxueshengpingjia=xueshengpingjiaService.selectById(id);returnR.ok().put("data",xueshengpingjia);}@RequestMapping("/save")publicRsave(@RequestBodyXueshengpingjiaEntityxueshengpingjia,HttpServletRequestrequest){xueshengpingjia.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(xueshengpingjia);xueshengpingjiaService.insert(xueshengpingjia);returnR.ok();}@IgnoreAuth@RequestMapping("/add")publicRadd(@RequestBodyXueshengpingjiaEntityxueshengpingjia,HttpServletRequestrequest){xueshengpingjia.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());ValidatorUtils.validateEntity(xueshengpingjia);xueshengpingjiaService.insert(xueshengpingjia);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyXueshengpingjiaEntityxueshengpingjia,HttpServletRequestrequest){//ValidatorUtils.validateEntity(xueshengpingjia);xueshengpingjiaService.updateById(xueshengpingjia);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){xueshengpingjiaService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}第6章系统测试6.1测试方法黑盒测试是对系统整体功能性的一种测试手段,测试人员在进行黑盒测试时,主要从用户角度考虑,通过利用相应的功能测试用例,将系统的实际测试情况和预期情况相互比较。因此本系统采用黑盒测试,可以保证系统的正常运行的同时也能及时发现系统问题。6.2功能测试6.2.1跑腿接单和订单支付一个完成的跑腿流程需要学生先下定单,然后跑腿员进行抢单,接单成功后再进行跑腿,等到学生拿到商品之后学生先进行审核然后再付钱给跑腿员最后进行评价。学生进入系统主页,界面如图6.1系统主界面所示,可以对想要的商品、菜品或者快递站进行查看。以商品举例,点击“超市商品”按钮进入超市商品界面,如图6.2所示;图6.1系统主页界面图6.2超市商品界面学生通过浏览或者搜索寻找的想要的商品,点击商品对应的图片进入商品详细信息界面查看,如图6.3所示:图6.3商品详细信息查看界面点击“购买商品”后进入到订单提交界面,其部分截图如图6.4所示。提交订单的时候必须要添加地址,如果不填写时系统会给出提示。如图6.5所示:图6.4订单提交界面图6.5错误填写提示跑腿员点击“跑腿接单”进行接单,其部分界面如图6.6所示。如果订单已经被跑腿员接下那么此订单将不能被再次接单,订单被接下后跑腿员需要开始跑腿,如图6.7所示;图6.6跑腿接单界面图6.7跑腿员错误接单界面学生在跑腿员送达之后对订单进行查看其界面如图6.8所示,点击“支付”后对商品进行支付如图6.9所示。图6.8订单查看图6.9支付界面点击支付后系统会提示“确定支付”,确定支付之后可以看到订单信息界面显示已支付。如图6.10和图6.11所示:图6.10系统提示是否支付图6.11订单支付成功6.2.2食堂菜品信息管理管理员在增加食堂菜品分类时,例如增加“炒饭类”提交系统会提示操作成功界面如图6.12所示。在菜品分类界面就可以看到对应的菜品分类,如图6.13所示:图6.12增加菜品分类界面图6.13查看被添加的商品界面管理员在删除菜品分类时系统会提示“确定进行[删除]操作”,点击确定提交系统会提示操作成功。被删除的菜品分类会查询不到。如删除炒饭类界面如图6.14图6.15示:图6.14菜品删除界面图6.15查询删除的菜品分类界面管理员点击食堂菜品时进入界面,在左上角有菜品查询功能。管理员在输入对应的信息即可查询对应的菜品如查找盖饭类。界面如图6.16示:图6.16菜品查询界面管理员点击修改菜品,如将“椒麻鸡”的价格和数量都调整为25在修改成功前后界面如图6.17图6.18示:图6.17修改菜品信息前界面图6.18修改菜品信息后界面管理员在删除菜品时系统会提示“确定进行[删除]操作”,点击确定提交系统会提示操作成功。被删除的菜品会查询不到。删除“椒麻鸡”界面如图6.19图6.20:图6.19菜品删除界面图6.20查询删除的菜品界面6.2.3超市商品信息管理管理员在删除对应的商品时系统会出现提示界面,删除成功时会出现“操作成功”,并且系统中将查询不到此商品。如要删除“水壶”并且删除成功如图6.21和图6.22所示:图6.21商品删除界面图6.22查询删除的商品界面管理员点击超市商品时进入界面,在左上角有商品查询功能。管理员在输入对应的信息即可查询对应的商品。如要查询“书籍类”界面如图6.23所示:图6.23商品查询界面管理员在修改商品成功时会在系统中得到“操作成功”的提示,如将“水壶”的数量和价格商品都修改成20。修改前后的界面如图6.24和6.25所示:图6.24商品修改前界面图6.25商品修改后界面管理员添加商品需要输入一些信息如图6.26所示,提价后系统会出现提示“操作成功”。成功添加的商品在超市商品栏里可以被找到其界面如6.27所示:图6.26商品添加界面图6.27商品添加成功界面6.2.4快递站管理学生可以在系统主页内的快递站内查找自己快递对应快递站进行下单,下单时必须要输入自己的手机尾号和取件码,以便提供给跑腿员用来帮忙取件。如图6.28和图6.29所示:图6.28查看快递站信息界面图6.29下单界面在系统后台,管理员可以输入对应的快递站名称来对快递站进行查询如图6.30所示:图6.30快递站查询界面管理员可以对快递站进行删除,系统会提示“是否进行删除操作”成功删除后系统会提示操作成功。如将慢慢快递站删除如图6.31所示,查询被删除的快递站还会查询不到如图6.32所示:图6.31快递站删除界面图6.32查询被删除的快递站界面管理员可以对快递站信息进行修改。如将“德邦快递”站的地址改在第一食堂的后面将如图6.33和图6.34所示:图6.33快递站信息修改前界面图6.34快递站信息修改后界面6.2.5销售量统计学生下订单后管理员就可以在商品订单页面内点击商品销量以查看销量,其横坐标为下单的物品,纵坐标为卖出的物品数量,如图6.35所示:图6.35商品统计界面管理员删除一些订单后统计图就会发生改变如图6.36所示:图6.36订单减少后的商品统计界面6.2.6用户管理跑腿员、学生在使用系统时会进行注册和登录。注册时需要输入对应的信息否则系统将提示您输入的相关信息的格式有误。如果是登录的话会提示输入的相关信息不正确界面如图6.37所示:图6.37错误登录提示界面学生林萧、学号404201925通过输入自己的输入正确的用户名和密码,会进入本系统,管理员可以在后台查看该学生。界面如图6.38所示:图6.38查看学生信息太久没登录在进入系统时系统会提示“请先登录”:如图6.39所示:图6.39登录提示界面管理员输入正确的用户名和密码,会进入本系统,界面如图6.40所示:图6.40管理员登录成功界面管理员删除学生时系统会提示是否删除。如删除林萧后系统内将查找不到该学生,界面如图6.41所示:图6.41删除学生成功6.2.7订单管理管理员在需求订单内查看学生发布的订单状态和信息,可将订单删除但是不能对订单信息进行修改如图6.42所示:图6.42订单查看界面管理员在需求订单内输入相应的信息来搜索对应的订单,如搜索“香辣火锅”,界面如图6.43所示:图6.43订单查询界面管理员删除学生订单时系统会显示“确定进行[删除]操作”,如删除菜品名称为“辣毛肚”的订单,如图6.44所示。系统将查询不到对应的订单,如图6.45所示:图6.44订单删除前界面6.45
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学教师教学工作总结15篇
- 浙江省湖州市2022-2023学年高一上学期期末调研测试化学试题含解析
- 2025年度企业员工技能提升培训合同-@-1
- 甘肃省历年中考语文现代文阅读真题10篇(截至2024年)
- 2025年度地质灾害风险评估勘察分包合同
- 2025年度环境风险评估与咨询合同范本
- 2025年度知识产权保护居间服务合同范本
- 构建高效生产现场目视化管理的核心要素
- 电动汽车的电池技术与环保性能分析
- 2025年度矿山安全生产责任及管理合同
- 2024赤峰学院教师招聘考试笔试试题
- 三年级下册全册书法教案
- 2023年天津市文化和旅游局直属事业单位招聘考试真题及答案
- 《中国慢性阻塞性肺疾病基层诊疗与管理指南(2024年)》解读
- 《研学旅行课程设计》课件-研学课程设计计划
- 电力系统分析(郝亮亮)
- 改善护理服务行动计划方案
- 《手语基础学习》课件
- 部编(统编)版语文+四下第四单元教材解读课件
- 建筑材料包销协议书
- 常州市2023-2024学年八年级上学期期末地理试卷(含答案解析)
评论
0/150
提交评论