基于微信小程序的上门维修系统的设计与实现_第1页
基于微信小程序的上门维修系统的设计与实现_第2页
基于微信小程序的上门维修系统的设计与实现_第3页
基于微信小程序的上门维修系统的设计与实现_第4页
基于微信小程序的上门维修系统的设计与实现_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[7]中提到维护管理系统(MMS)是扎霍大学的一个在线网站。该项目的主要目的是安排维修单位收到的请求然后修复派遣维修人员前去修理。MMS包括一个用户界面和一个管理员界面。维修请求是通过用户界面提交的,然后被管理员接收并分配给相应的维修人员。管理员可以监视每个请求的状态并进行必要的操作。MMS还提供了一些其他功能,如维修历史记录、维修人员的技能记录和维修部件的存货管理等。这些功能有助于提高维修过程的效率和准确性,同时降低维修成本。1.3主要研究内容本设计在IDEA开发工具中基于SpringBoot框架,以Tomcat作为服务器,通过MySQL数据库对数据进行存储和管理,使用Java语言和前端Vue技术设计实现上门维修系统,该系统应具有‎维修人员管理、用户管理、用‎‏户报修管理‎‏、维修进度管理、报修信息管理、‎‏评价记录管理、公告信息管理的功能。需要完成的事项有:1、根据近年来国内外相关的文献资料,确定设计的路线和技术工具;2、对系统需求进行分析,以确定系统的主要功能模块和整体结构;3、选用MySQL数据库进行数据存储;4、对各个功能模块进 行具体设计和开发,来确保实现所预期功能;5、全面测试系统功能并完善系统,确保稳定可靠性。第2章关键技术简介2.1Java简介Java是一种广泛使用的计算机编程语言,可以在不同的计算机系统和设备上运行,无需重新编写代码。Java在计算机领域应用广泛,尤其是在企业级应用和互联网应用程序开发中。它具有高度的可移植性、安全性和可靠性,因此广泛用于桌面应用程序、服务器端编程、嵌入式系统和移动设备应用程序等方面。Java编程语言的语法简单、清晰,易于学习和使用,同时也提供了大量的类库和开发工具,使得开发人员能够更加高效地完成各种开发任务。Java也被广泛应用于学术界和教育领域,成为计算机科学教育的重要组成部分。2.2MySQL简介MySQL目前属于Oracle甲骨文公‎‏司,M‎‏ySQ‎‏L称之‎‏为关‎‏系型数‎‏据库、‎‏微软的‎‏SQL‎‏ Server。MySQL数据‎‏库能够‎‏支持在‎‏多种操‎‏作系统‎‏上运行‎‏,包括‎‏Solaris、MacOS、‎‏FreeBSD和Windows‎‏,Li‎‏nux‎‏通通支‎‏持。核‎‏心功能‎‏就是处‎‏理数据‎‏,其中‎‏提供空‎‏间供数‎‏据存储‎‏又是其‎‏主要主‎‏要功能‎‏之一。‎‏数据库‎‏一般也‎‏不直接‎‏面向数‎‏据存储‎‏,存储‎‏是交给‎‏表/索‎‏引这类‎‏对象完‎‏成的。‎‏MyS‎‏QL数‎‏据库是‎‏一种C‎‏/S模‎‏型(即‎‏客户端‎‏和服务‎‏端模型‎‏),客‎‏户端通‎‏过账号‎‏、密码‎‏来连接‎‏服务器‎‏,连接‎‏成功之‎‏后才可‎‏以进行‎‏数据库‎‏的操作‎‏(CR‎‏UD:‎‏增加、‎‏删除、‎‏变更、‎‏查询)‎‏。My‎‏SQL‎‏的服务‎‏端采用‎‏IO复‎‏用和可伸‎‏缩的连‎‏接池,实‎‏现了网‎‏络高并发的经典模型。2.3B/S模式B/S(Brower/Server,浏览器/服务器)模式又称B/S结构,是Web兴起后的一种网络结构模式。客户机上只需要安装一个浏览器,服务器上安装SQLServer,Oracle,MySql等数据库;浏览器通过WebServer同数据库进行数据交互。B/S模式与传统的C/S模式(客户端/服务器模式)相比,其具有以下优点:1、跨平台性:由于客户端使用浏览器作为接口,因此B/S模式的应用程序可以运行在任何支持浏览器的操作系统上。2、维护简单:B/S模式将大部分的逻辑处理放在服务器端完成,客户端只需要提供简单的显示和输入功能,这样就能减少客户端的维护难度。第3章系统分析3.1可行性分析3.1.1技术可行性本次开发是基于微信小程序的上门维修系统,以Tomcat作为服务器,所使用的语言是Java语言,选用MySQL数据库进行系统的数据存储,在开发过程中主要基于SpringBoot框架,采用Vue的前端技术,最后利用IDEA完成系统的开发,这些技术已经成熟并且已经广泛的应用于类似系统的开发中,有大量的案例可以借鉴。借助于网上的资料和相关文献,我使用这些技术去开发系统是没有问题的。3.1.2经济可行性从经济的角度来看,我所借鉴的文献都是免费获得的,所使用的开发工具也是网上可以免费获得到的,唯一的投入就是设计系统的设备,但是我现在已经有设备了,所以不需要更高的投入,但是这个系统开发出来之后,可以带来更好的便利程度,所以这是一种低投入、高回报的系统,所以具有经济可行性。3.1.3操作可行性此系统在开发的过程中将会遵循界面简洁明了、直观的原则,一旦开发完成,用户不需要拥有专业的知识也不需要经过培训就能上手使用。‎‏整个系‎‏统必须‎‏简单、‎‏高效,‎‏并对用‎‏户有不‎‏同级别‎‏的使用‎‏权限管‎‏理。基‎‏于这些‎‏考虑,‎‏我可‎‏以确定‎‏这个开发是可操作的。3.2需求分析系统功能需求分析提供了实施软件功能要求的相关信息,通过良好的分析活动,可以避免或报告早期错误,提高软件生产效率,降低开发成本并提高软件质量。这对于软件开发来说是非常重要的。3.2.1功能需求分析在上门维修系统中,将为用户、维修人员、管理员三种角色提供服务(1)用户、维修人员可以进行注册,用户、维修人员、管理员在登录后可以在个人中心修改个人信息和账号密码。(2)管理员可以对公告信息进行管理,用户可以查看和搜索管理员添加的公告。(3)用户可‎‏以通过‎‏用户报‎‏修在报修类型中来填‎‏写自己‎‏的问题‎‏和住址,管理员可以对报修类型和用户报修信息进行管理。(4)管理员可在维修进度管理界面派‎‏单,维修人员接到派单后可对维修信息进行查看,完成维修后,维修员可以提交维修进度。(5)订单结束后,用户可以给维修人员评分并填写评价,管理员可以在评价记录管理中对维修人员进行评价,维修人员可以在评价记录中查看用户和管理员的评价。用户用例图如图3.1所示。登录注册登录注册用户报修维修进度查看公告查看用户评价图3.1用户用例图管理员用例图如图3.2所示。用户管理用户管理登录系统管理报修信息管理维修人员管理评价记录管理维修进度管理维修类型管理图3.2管理员用例图维修信息查看登录注册维修进度提交评价记录查看维修信息查看登录注册维修进度提交评价记录查看图3.3维修人员用例图3.2.2非功能需求分析上门维修系统在设计中满足以上功能性需求以外,在非功能性需求上还有以下要求:(1)安全性:系统对用户的权‎‏‎‏限‎‏进行‎‎‏‏管理‎‏,‎‏‎‏不同的‎‏‎‏用‎‏户具‎‎‏‏有身‎‏份‎‏‎‏和权限‎‏‎‏也‎‏有所‎‎‏‏差别‎‏只‎‏‎‏能进行‎‏‎‏其‎‏权限‎‎‏‏范围‎‏内‎‏‎‏的操作‎‏‎‏。‎‏同时‎‎‏‏为了‎‏保‎‏‎‏证和维‎‏‎‏护‎‏数据‎‎‏‏的安‎‏全‎‏‎‏,需要‎‏‎‏提‎‏前做好数据备份。(2)易用性:系统界面简‎‏洁美观‎‏,‎‏‎‏功能设‎‏‎‏计‎‏合理‎‎‏‏,因‎‏此‎‏‎‏用户在‎‏‎‏平‎‏台界‎‎‏‏面进‎‏行‎‏‎‏操作时‎‏‎‏十‎‏分简‎‎‏‏单,‎‏容‎‏‎‏易上手‎‏‎‏。‎‏用户‎‎‏‏进入‎‏首‎‏‎‏页后可‎‏‎‏根‎‏据提‎‎‏‏示进‎‏行‎‏‎‏注册登‎‏‎‏录‎‏,然‎‎‏‏后可‎‏以根据页面提示进行报修‎‏‎‎‏,并可以快速了解报修进度。(3)可扩展性:由于业务会不断变化,因此‎‏要求信‎‏息系统‎‏具有很‎‏高的架‎‏构可扩‎‏展性和‎‏业务可‎‏扩展性‎‏。系统‎‏从其内‎‏部业务‎‏扩展和‎‏外部业‎‏务接入‎‏的可扩‎‏展性来‎‏看都需‎‏要具有‎‏很高的‎‏业务可‎‏扩展性‎‏提供标‎‏准、开‎‏放、合理的接口。3.3流程分析3.3.1用户登录流程根据需求分析,设计用户登录流程图,如图3.4所示。输入账号密码输入账号密码是否正确否是登录成功开始结束图3.4用户登录流程图3.3.2报修流程上门维修服务是通过用户通过提交报修信息再由管理员对其分配维修人员,进而维修人员上门维修,从而实现用户报修的目的,报修流程如图3.5所示。输入报修信息输入报修信息是否完成否是用户登录开始结束管理员派单维修人员维修图3.5报修流程图3.3.3维修员维修流程维修员登录后,管理员将用户提交的报修信息派单给维修员,维修员可以查看报修信息,完成维修后,若还有新的报修信息,则继续进行上门维修服务,最后维修员可以查看用户的评价。维修员维修流程图如图3.6所示。是否有新的报修信息是否有新的报修信息否是维修员登录开始结束管理员派单上门维修查看维修信息完成维修查看用户评价提交维修进度图3.6维修员维修流程图第4章系统设计4.1功能结构设计根据需求分析的结果,遵循高内聚低耦合的原则,将上门维修系统分为维修类型管理、报修信息管理、‎‏评价记录管理、维修人员管理、维修进度管理、用户管理‎‏、用‎‏户报修管理‎‏。其功能结构图如图4.1所示:基于微信小程序的上门维修系基于微信小程序的上门维修系统管理员管理

维修人员管理用户管理用户报修管理维修类型管理维修进度管理报修信息管理评价记录管理公告信息管理图4.1系统功能模块图4.2数据库设计4.2.1概念结构设计概念结构设计是数据库设计过程中的重要阶段,其主要任务是将现实世界中的实体、属性和关系转换成数据库中的表、字段和外键。在概念结构设计中,E-R图是一种常用的工具,它通过图形化的方式展示实体之间的关系和属性,使得数据库设计更加直观和易于理解。同时,E-R图还可以帮助设计者发现现实世界中实体之间的复杂关系,从而设计出更加高效和优秀的数据库结构。概念结构设计可以帮助设计者准确地表示现实世界中的实体和它们之间的关系,并将这些关系转化为数据库结构。通过概念结构设计,可以更好地保证数据库的数据完整性和一致性,同时也可以提高数据库的查询效率和维护性。上门维修系统的实体图设计如下:管理员账号密码

角色

1.管理员实体管理员账号密码

角色

图4.2管理员实体属性图用户账号密码

邮箱

姓名

性别

用户账号密码

邮箱

姓名

性别

用户名

电话

图4.3用户实体属性图维修人员账号密码

姓名

性别

电话

维修人员账号密码

姓名

性别

电话

工号

图4.4维修人员实体属性图4.报修实体属性图,如图4.5所示。报修报修报修时间报修地址

报修类型

报修用户

报修图片

图4.5报修信息实体属性图评价记录维修工号

报修用户

评价内容评价记录维修工号

报修用户

评价内容

维修评分

评价时间

报修单号

维修进度维修评价维修费用

维修工号

报修用户

维修进度维修评价维修费用

维修工号

报修用户

维修时间报修信息

报修用户提交维修类型11nn报修用户提交维修类型11nn包含维修员维修进度拥有11提交n评价记录提交查看1n11n包含11查看1n图4.6各实体联系E-R图4.2.2逻辑结构设计在逻辑结构中,主要任务是对数据进行建模和设计,包括制定数据实体和它们之间的关系,以及为每个实体设置相应的表和字段。根据不同的访问类型,存储结构可以分为索引表和顺序表,每个表包含不同的查询结果。在上门维修系统中,基于E-R图的抽象数据实体和实体之间的关系模板被转化为具体的逻辑结构数据。每个实体被映射为数据库中的一个表,每个表包含不同的字段和属性,以便于数据的存储和查询。针对不同的业务需求和访问类型,可以设计相应的索引表和顺序表,以加快数据的检索和访问速度。具体表设计如下:(1)配置文件表config“配置文件表config”是用来存储用户配置文件的信息。config的结构如表4.1所示。表4.1配置文件表字段名称类型长度字段说明主键默认值idbigint主键namevarchar20配置参数名称valuevarchar100配置参数值(2)公告信息表news“公告信息表news”是用来存储公告信息。news的结构如表4.2所示。表4.2公告信息表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPtitlevarchar20标题introductionlongtext100简介picturelongtext4294967295图片contentlongtext100内容(3)用户表yonghu“用户表yonghu”是用来存储用户的信息。yonghu的结构如表4.3所示。表4.3用户表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPyonghumingvarchar20用户名mimavarchar20密码xingmingvarchar5姓名xingbievarchar3性别touxianglongtext4294967295头像shoujivarchar11手机(4)维修员表weixiuyuan“维修员表weixiuyuan”是用来存储维修员的信息。weixiuyuan的结构如表4.4所示。表4.4维修员表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPweixiugonghaovarchar20维修工号mimavarchar20密码xingmingvarchar5姓名xingbievarchar10性别zhaopianlongtext4294967295照片lianxidianhuavarchar11联系电话(5)维修进度表weixiujindu“维修进度表weixiujindu”是用来存储维修进度的信息。weixiujindu的结构如表4.5所示。表4.5维修进度表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPbaoxiudanhaovarchar20报修单号baoxiumingchengvarchar20报修名称weixiutupianlongtext4294967295维修图片weixiuneironglongtext4294967295维修内容weixiujinduvarchar20维修进度weixiufeiyongint维修费用weixiushijiandatetime维修时间weixiupingjiavarchar100维修评价yonghumingvarchar20用户名dizhivarchar100地址weixiugonghaovarchar20维修工号xingmingvarchar5姓名useridbigint用户id(6)token表token“token表token”是用来存储token的信息。token的结构如表4.6所示。表4.6token表字段名称类型长度字段说明主键默认值idbigint主键useridbigint用户idusernamevarchar20用户名tablenamevarchar20表名rolevarchar20角色tokenvarchar20密码addtimetimestamp新增时间CURRENT_TIMESTAMPexpiratedtimetimestamp过期时间CURRENT_TIMESTAMP(7)评价记录表pingjiajilu“评价记录表pingjiajilu”是用来存储评价记录的信息。pingjiajilu的结构如表4.7所示。表4.7评价记录表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPbaoxiudanhaovarchar20报修单号weixiutupianlongtext4294967295维修图片weixiupingfenvarchar20维修评分weixiugonghaovarchar20维修工号weixiufeiyongint维修费用pingjianeironglongtext100评价内容pingjiariqidate评价日期yonghumingvarchar20用户名shhflongtext100回复内容ispayvarchar4是否支付未支付(8)报修信息表baoxiuxinxi“报修信息表baoxiuxinxi”是用来存储报修信息的信息。baoxiuxinxi的结构如表4.8所示。表4.8报修信息表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPbaoxiudanhaovarchar20报修单号baoxiumingchengvarchar20报修名称baoxiuleixingvarchar10报修类型baoxiutupianlongtext4294967295报修图片baoxiuneironglongtext100报修内容baoxiuzhuangtaivarchar20报修状态baoxiuriqidate报修日期yonghumingvarchar20用户名shoujivarchar11手机dizhivarchar50地址useridbigint用户id(9)报修类型表baoxiuleixing“报修类型表baoxiuleixing”是用来存储报修类型的信息。baoxiuleixing的结构如表4.9所示。表4.9报修类型表字段名称类型长度字段说明主键默认值idbigint主键addtimetimestamp创建时间CURRENT_TIMESTAMPbaoxiuleixingvarchar200报修类型第5章系统实现5.1登录注册若用户为首次进‎‏入系统‎‏,在点‎‏击个‎‏人中心‎‏时会自‎‏动跳转‎‏到用户‎‏登录注‎‏册界面‎‏,用户‎‏注册需‎‏要输入‎‏用户账‎‏号、用‎‏户姓名‎‏、密码‎‏、姓名‎‏、年龄‎‏、用户‎‏手机等‎‏信息,‎‏用户注‎‏册界面‎‏如图5.1所‎‏示;‎‏用户进‎‏行登录‎‏操作时‎‏,需要‎‏输入账‎‏号和密‎‏码,‎‏然后单‎‏击“登‎‏录”按‎‏钮。如‎‏果未输‎‏入用户‎‏名或密‎‏码,系‎‏统将提‎‏示输入‎‏用户名‎‏和密码‎‏。用户‎‏登录界‎‏面如图5.2所示‎‏;维修员注‎‏册界面‎‏如图5.3所示,‎‏维修员‎‏登录界‎‏面如图5.4所示‎‏;管理‎‏员在登‎‏录后台‎‏管理系‎‏统时,‎‏输入正‎‏确的用‎‏户名和‎‏密码后‎‏,页面‎‏会跳转‎‏到后台‎‏管理主‎‏页。当‎‏你输入‎‏一个用‎‏户名或‎‏密码不‎‏正确,‎‏提示框‎‏会提示‎‏用户名或密‎‏码错误‎‏。管理‎‏员登录界面如图5.5所示。图5.1用户注册界面图5.2用户登录界面图5.3维修员注册界面图5.4维修员登录界面图5.5管理员登录界面实现该功能的部分关键代码如下(用户注册登录)。@IgnoreAuth @RequestMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ YonghuEntityuser=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("yonghuzhanghao",username)); if(user==null||!user.getMima().equals(password)){ returnR.error("账号或密码不正确"); }Stringtoken=tokenService.generateToken(user.getId(),username,"yonghu","用户"); returnR.ok().put("token",token); } @IgnoreAuth@RequestMapping("/register")publicRregister(@RequestBodyYonghuEntityyonghu){ //ValidatorUtils.validateEntity(yonghu);YonghuEntityuser=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("yonghuzhanghao",yonghu.getYonghuzhanghao())); if(user!=null){returnR.error("注册用户已存在"); } LonguId=newDate().getTime(); yonghu.setId(uId);yonghuService.insert(yonghu);returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuEntityyonghu, HttpServletRequestrequest){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); PageUtilspage=yonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){YonghuEntityyonghu=yonghuService.selectById(id);returnR.ok().put("data",yonghu);}5.2报修信息管理用户登录成功进入系统后,点击“报修信息”按钮,进入报修信息界面,输入报修名称可以进行查询,也可以选择报修种类查看,点击报修信息可了解详情。用户报修信息界面如图5.6所示。图5.6用户报修信息界面管理员登录成功进入系统后,点击“报修信息管理”按钮,进入报修信息管理界面,输入报修名称可以对报修信息进行查询,可对单个报修信息进行修改、删除、派单等操作。报修信息管理界面如图5.7所示。图5.7报修信息管理界面实现该功能的关键代码如下。@RequestMapping("/query")publicRquery(BaoxiuxinxiEntitybaoxiuxinxi){EntityWrapper<BaoxiuxinxiEntity>ew=newEntityWrapper<BaoxiuxinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(baoxiuxinxi,"baoxiuxinxi")); BaoxiuxinxiViewbaoxiuxinxiView=baoxiuxinxiService.selectView(ew); returnR.ok("查询报修信息成功").put("data",baoxiuxinxiView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyBaoxiuxinxiEntitybaoxiuxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(baoxiuxinxi);baoxiuxinxiService.updateById(baoxiuxinxi);returnR.ok();}@RequestMapping("/delete")PublicRdelete(@RequestBodyLong[]ids){baoxiuxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,BaoxiuxinxiEntitybaoxiuxinxi, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yonghu")){ baoxiuxinxi.setYonghuming((String)request.getSession().getAttribute("username")); }EntityWrapper<BaoxiuxinxiEntity>ew=newEntityWrapper<BaoxiuxinxiEntity>(); PageUtilspage=baoxiuxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,baoxiuxinxi),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){BaoxiuxinxiEntitybaoxiuxinxi=baoxiuxinxiService.selectById(id);returnR.ok().put("data",baoxiuxinxi);}5.3维修进度管理用户登录成功进入系统后,点击“维修进度”按钮,进入维修进度界面,输入报修单号可以进行查询,点击进入维修进度可了解详情。用户维修进度界面如图5.8所示。图5.8用户维修进度界面维修员登录成功进入系统后,点击“维修进度管理”按钮,进入维修进度管理界面,输入维修进度、报修单号、报修名称可对维修进度信息进行查询,如图5.9所示;并可以对单个维修进度进行修改等操作,如图5.10所示。图5.9维修进度管理界面图5.10维修员修改维修进度界面管理员登录成功进入系统后,点击“维修进度管理”按钮,进入维修进度管理界面,可以对维修进度进行查询、修改、删除、批量删除等操作。维修进度管理界面如图5.11所示。图5.11维修进度管理界面实现该功能的关键代码如下。@RequestMapping("/query")publicRquery(WeixiujinduEntityweixiujindu){EntityWrapper<WeixiujinduEntity>ew=newEntityWrapper<WeixiujinduEntity>(); ew.allEq(MPUtil.allEQMapPre(weixiujindu,"weixiujindu"));WeixiujinduViewweixiujinduView=weixiujinduService.selectView(ew); returnR.ok("查询维修进度成功").put("data",weixiujinduView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyWeixiujinduEntityweixiujindu,HttpServletRequestrequest){//ValidatorUtils.validateEntity(weixiujindu);weixiujinduService.updateById(weixiujindu);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){weixiujinduService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,WeixiujinduEntityweixiujindu,HttpServletRequestrequest){StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("yonghu")){weixiujindu.setYonghuming((String)request.getSession().getAttribute("username"));}if(tableName.equals("weixiuyuan")){weixiujindu.setWeixiugonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<WeixiujinduEntity>ew=newEntityWrapper<WeixiujinduEntity>();PageUtilspage=weixiujinduService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,weixiujindu),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){WeixiujinduEntityweixiujindu=weixiujinduService.selectById(id);returnR.ok().put("data",weixiujindu);}5.4评价记录管理维修员登录成功进入系统后,点击“评价记录管理”按钮,进入评价记录管理界面,输入报修单号、维修评分等信息就可以对评价记录进行查询等操作。维修员评价记录界面如图5.12所示。图5.12维修员评价记录界面管理员登录成功进入系统后,点击“评价记录管理”按钮,进入评价记录管理界面,输入报修名称、维修评分等信息可以对评价记录信息进行查询,可对评价记录进行修改、删除、批量删除等操作。评价记录管理界面如图5.13所示。图5.13评价记录管理界面用户登录成功进入系统后,在订单完成后,可以对维修员进行评分以及评价。用户评价界面如图5.14所示。图5.14用户评价界面实现该功能的关键代码如下。@RequestMapping("/query")publicRquery(PingjiajiluEntitypingjiajilu){EntityWrapper<PingjiajiluEntity>ew=newEntityWrapper<PingjiajiluEntity>(); ew.allEq(MPUtil.allEQMapPre(pingjiajilu,"pingjiajilu")); PingjiajiluViewpingjiajiluView=pingjiajiluService.selectView(ew); returnR.ok("查询评价记录成功").put("data",pingjiajiluView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyPingjiajiluEntitypingjiajilu,HttpServletRequestrequest){//ValidatorUtils.validateEntity(pingjiajilu);pingjiajiluService.updateById(pingjiajilu);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){pingjiajiluService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,PingjiajiluEntitypingjiajilu, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("weixiuyuan")){ pingjiajilu.setWeixiugonghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("yonghu")){ pingjiajilu.setYonghuming((String)request.getSession().getAttribute("username")); }EntityWrapper<PingjiajiluEntity>ew=newEntityWrapper<PingjiajiluEntity>(); PageUtilspage=pingjiajiluService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,pingjiajilu),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){PingjiajiluEntitypingjiajilu=pingjiajiluService.selectById(id);returnR.ok().put("data",pingjiajilu);}5.5报修类型管理管理员登录成功进入系统后,点击“报修类型管理”按钮,进入报修类型管理界面,如图5.15所示,输入报修类型等信息可以对报修类型进行详细查看、修改、删除、批量删除等操作。图5.15报修类型管理界面实现该功能的关键代码如下。@RequestMapping("/query")publicRquery(BaoxiuleixingEntitybaoxiuleixing){EntityWrapper<BaoxiuleixingEntity>ew=newEntityWrapper<BaoxiuleixingEntity>();ew.allEq(MPUtil.allEQMapPre(baoxiuleixing,"baoxiuleixing"));BaoxiuleixingViewbaoxiuleixingView=baoxiuleixingService.selectView(ew); returnR.ok("查询报修类型成功").put("data",baoxiuleixingView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyBaoxiuleixingEntitybaoxiuleixing,HttpServletRequestrequest){//ValidatorUtils.validateEntity(baoxiuleixing);baoxiuleixingService.updateById(baoxiuleixing);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){baoxiuleixingService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/lists")publicRlist(BaoxiuleixingEntitybaoxiuleixing){ EntityWrapper<BaoxiuleixingEntity>ew=newEntityWrapper<BaoxiuleixingEntity>(); ew.allEq(MPUtil.allEQMapPre(baoxiuleixing,"baoxiuleixing"));returnR.ok().put("data",baoxiuleixingService.selectListView(ew));}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){BaoxiuleixingEntitybaoxiuleixing=baoxiuleixingService.selectById(id);returnR.ok().put("data",baoxiuleixing);}5.6用户管理管理员登录成功进入系统后,点击“用户管理”按钮,进入用户管理界面,如图5.16所示,输入用户名、电话等信息可以对用户信息进行详细查看、修改、删除、批量删除等操作。图5.16用户管理界面实现该功能的关键代码如下。@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuEntityyonghu, HttpServletRequestrequest){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); PageUtilspage=yonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){YonghuEntityyonghu=yonghuService.selectById(id);returnR.ok().put("data",yonghu);}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,YonghuEntityyonghu, HttpServletRequestrequest){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>(); PageUtilspage=yonghuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,yonghu),params),params));returnR.ok().put("data",page);}5.7维修员管理管理员登录成功进入系统后,点击“维修员管理”按钮,进入维修员管理界面,如图5.17所示,输入维修员工号等信息可以对对维修员信息进行详细查看、修改、删除、批量删除等操作。图5.17维修员管理界面实现该功能的关键代码如下。@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,WeixiuyuanEntityweixiuyuan,HttpServletRequestrequest){EntityWrapper<WeixiuyuanEntity>ew=newEntityWrapper<WeixiuyuanEntity>(); PageUtilspage=weixiuyuanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,weixiuyuan),params),params));returnR.ok().put("data",page); }@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){WeixiuyuanEntityweixiuyuan=weixiuyuanService.selectById(id);returnR.ok().put("data",weixiuyuan);}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,WeixiuyuanEntityweixiuyuan, HttpServletRequestrequest){EntityWrapper<WeixiuyuanEntity>ew=newEntityWrapper<WeixiuyuanEntity>(); PageUtilspage=weixiuyuanService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,weixiuyuan),params),params));returnR.ok().put("data",page);}5.8公告信息管理用户登录成功进入系统后,点击“首页”按钮,进入公告信息界面,如图5.18所示。可以对公告信息进行详细查看、评论等操作。图5.18公告信息界面管理员登录成功进入系统后,点击“系统管理”按钮,进入公告信息管理界面,如图5.19所示。输入标题进行查询,并对公告信息进行新增、详细查看、修改、删除、批量删除等操作。图5.19公告信息管理界面实现该功能的关键代码如下。@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("/update")@TransactionalpublicRupdate(@RequestBodyNewsEntitynews,HttpServletRequestrequest){//ValidatorUtils.validateEntity(news);newsService.updateById(news);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){newsService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,NewsEntitynews, HttpServletRequestrequest){EntityWrapper<NewsEntity>ew=newEntityWrapper<NewsEntity>(); PageUtilspage=newsService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,news),params),params));returnR.ok().put("data",page);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){NewsEntitynews=newsService.selectById(id);returnR.ok().put("data",news);}

第6章系统测试6.1测试方法每一个功能模块和前端运行界面设计后,系统在正式使用前都需要一系列功能和性能测试,顺序保证系统运行可靠稳定,便于正式使用前对系统进行校正和改进。因此,本次系统测试采用黑盒测试进行。6.2功能测试6.2.1用户登录先点击注册用户,输入信息,账户:liming123,密码:liming2000,姓名:李明,性别选择男,手机号点击注册,显示注册成功,如图6.1所示,若输入错误格式的手机号则会提示“手机应输入手机格式”,如图6.2所示。图6.1注册成功图图6.2注册失败图使用账号名为“liming123”进行登录,密码:liming2000,则登录成功。若使用错误密码登录,则登录失败,显示“账号或密码不正确”,如图6.3所示。图6.3登录失败图6.2.2公告信息管理管理员可以在公告信息管理界面如图6.4所示,点击“新增”按钮,可以添加新的公告,其界面如图6.5所示。用户可以在公告信息界面中查询管理员发布的公告信息,如图6.6所示,并对内容进行查看,如图6.7所示。图6.4管理员公告信息管理界面图图6.5管理员添加公告信息图图6.6用户搜索公告图图6.7用户查看公告信息图6.2.3报修类型管理管理员可以在报修类型管理界面如图6.8所示,点击“新增”按钮,然后在报修类型中添加“水管”,如图6.9所示,“水管”将出现在报修类型管理界面和用户报修类型界面中,如图6.10所示。图6.8管理员添加报修类型图图6.9报修类型管理界面图图6.10用户报修类型界面图6.2.4报修信息管理用户在报修信息界面添加需要报修的物品,输入信息,报修名称:路由器,报修类型选择路由器,添加图片,选择报修日期,填写地址:人民路255号,添加内容:路由器损坏。再点击提交,如图6.11所示。提交成功后,管理员可以在报修信息管理界面看到这个报修信息,图6.12所示。图6.11用户提交报修信息图图6.12报修信息管理界面图6.2.5用户管理在用户管理界面中,管理员可以对用户信息进行管理。例如管理员进行了新增用户的操作,如图6.13所示,用户端可以登录并与用户管理中的信息一致,如图6.14所示。图6.13管理员添加用户图图6.14用户端信息图管理员对用户进行删除操作,如图6.15所示,则使用原先的用户名和密码进行登录将提示“账号或密码不正确”,如图6.16所示图6.15管理员删除用户图图6.16删除用户后登录失败图6.2.6维修员管理在维修员管理界面上,管理员可以对维修员信息进行管理。例如管理员通过输入信息进行新增维修员的操作,如图6.17所示。添加之后,新增的维修员可以登录并与管理员后台信息一致,如图6.18所示。图6.17管理员后台添加维修员图图6.18维修员个人信息图管理员对维修员进行删除操作,如图6.21所示,则使用原先的维修工号和密码进行登录将提示“账号或密码不正确”,如图6.22所示。图6.19管理员删除维修员图图6.20维修员登录失败图6.2.7维修进度管理管理员可以将用户提交的报修信息派单给维修人员,如图6.21、图6.22所示。图6.21管理员派单图图6.22维修人员收到派单图当用户提交报修信息后,用户可以在维修进度界面上查询他们的维修进度,如图6.23所示,而管理员可以在维修进度管理界面上查看所有订单的进度情况,如图6.24所示。图6.23维修进度管理界面图图6.24用户查看维修进度图6.2.8评价记录管理在订单完成后,用户可以对该订单进行评价,并对维修人员进行评分,如图6.25所示。管理员可以在评价记录管理界面上查看用户的评价,并将反馈传达给相应的维修人员。如图6.26、图6.27所示。图6.25用户评价图图6.26管理员回复评价图图6.27维修人员收到反馈图6.3测试结论经过对基于微信小程序的上门维修系统的多个测试用例进行全面测试,我们发现系统在测试过程中能够很好的呈现正确的数据给用户。从系统的功能和使用上来看,基本上都能够达到我们当初预期的结果。结论在这个设计中,我实现了一款基于微信小程序的上门维修系统。首先,我介绍了该系统的实际意义和现状,并介绍了开发中所使用的相关技术和基本原理。随后,我分析了开发该系统的可行性并对系统需求进行了分析。接着,我设计了系统的总体框架和确定了数据存储管理系统为MySQL数据库。在编码实现阶段,使用IDEA开发工具完成了系统的实现。我对整个实现过程做了详细说明,也分别对用户、管理员和维修员的功能界面做出了展示。最后,我对系统的每个功能模块进行了测试,测试结果基本能达到预期结果。系统的问题和未来工作方向:1、从实际应用角度来看,系统的功能和业务还可以进一步完善;2、虽然通过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论