版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
V第1章绪论1.1研究背景1.1.1选题背景得益于嵌入式系统、移动互联网等技术的快速发展,智能家电将先进的物联网技术与其结合起来,采用了智能化的工作模式,实现了设备、用户和使用环境三者的密切结合,这让智能家电之间的良性关联变得更加密切。为现代化的的生活方式带来了新的高效,便捷,人性化的未来,使公众逐渐意识到智能家电管理系统逐步成为智能家电得以高速发展的内核。1.1.2研究目的和意义随着市民生活水平的提高,越来越多用户把注意点放到了更优质的用户体验上,对于现代家电企业来说,最迫切需要解决的问题就是如何提升家电产品的服务水平,为消费者提供更新鲜、更舒适、更方便的体验。作为物联网系统的组成部分,智能家电产品功能和种类越来越丰富,除了不断拓展产品本身的纵向功能外,更需要让不同的设备之间“互联互通”,使不同的设备适配于物联网系统,与人们的日常生活紧密相连起来REF_Ref8662\r\h[1]。可惜的是,如今市面上的家电仅有很少的一部分真正做到了协调,智能地工作,智能家电市场存在巨大空缺,家电用户急切需求更加愉悦,人性化的体验。尽管多年以来家电一直作为独立个体存在于用户的家庭中,但互联网时代的到来,智能家电互联的出现,将必然打破陈规,给现代化生活带来新活力。本设计的初衷在于实现智能家电的更功效,稳定管理,提供更加人性化的操作界面,给不同的智能家电提供可视化的管理界面,实现更加集中、一体化操作控制,对用电量统计、网络控制等服务提供实现载体。如今,智能家电还处于发展的初级阶段,但已经可以隐约看到智能家电快速发展的可观前景,这就需要互联网公司加快智能家电管理系统的研发,更好地实现家电与家电的高效交互,家电和智能设备,让用户提前获得智能互联网时代在家电生活方面带来的红利。1.2国内外研究现状一直以来,发达国家从未停止对互联网等高科技新型产业的鼓励与扶持,为了实现向技术创新型发展转变。中国也逐渐重视在稳步发展传统行业的同时,大力发展物联网这一新兴战略性行业,2016年政府工作报告将以智能家庭为主要应用领域,并将相关政策陆续发布。由此可见,国家对于物联网产业发展的决心是非常明确的,而且在政策上也给予了极大的支持。随着物联网高速发展时代的的到来,各行各业都面临着新的机遇,同时也面临这更艰巨的挑战,互联网,家电企业必须乘上物联网新时代滚滚向前的火车,相应新时代的呼唤,才能在今后的时代中立足。艾瑞研究中心对中国家庭智能设备市场进行了一次调研,结果显示,中国家庭智能设备的市场规模在不断地扩大。不难发现,智能家用电器在未来有着很好的发展前景和很大的发展潜力,其市场规模也在不断地增长。然而,据《中国互联网络发展状况统计报告》也显示出中国目前普遍存在着“智能家用电器普及度不高”的问题,导致了中国智能家用电器市场虽然发展前景看好,但增长速度却有所减缓。造成这一矛盾的根源在于大多数人对“何为物联网智能家用电器”的认识还不够透彻。迫在眉睫的阻碍行业发展的难题是大众如何才能得知智能家电带来更高生活品质,以及如何消除公众对智能家电的偏见。中国正站在物联网技术迈向高速发展的十字路口,物联网技术能否实现高速稳定的发展,这取决于各行各业的企业能否充分发挥自己的优势,把握住新兴科技带来的红利,同时注意发现并解决新时代的危机,新时代需要大家的共同努力。物联网的发展已经成为当代社会的急切需求。任何国家的相关产业都需要在这次信息革命发展的大变革中做出积极的行动来享受新时代所带来的红利。众多产业巨头如英特尔(Inter)、英伟达(NVIDIA)、谷歌(Google)、微软(Microsoft)等企业也纷纷加入物联网智能产业发展的洪流之中,站在各自的领域提供相应的技术支持REF_Ref9113\r\h[2]。虽然在大部分的地方,物联网的智能家用电器还没有得到普遍的推广,但是欧美很多国家却已经迈出了这一步伐。NižetićS,ŠolićP,González-deDLI等人所研究的《Opportunities,issuesandchallengestowardsasmartandsustainablefuture》在互联互通的基础上,凭借大数据、云计算、人工智能等技术,各厂家可以让智能家居更加熟悉用户需求。20世纪80年代初,美国的智能建筑概念公司UTBS首先实现了楼宇智能化的原型解决方案,该解决方案主要采用电报和电话对讲方式来实现简易的载波控制功能,虽然较为简陋,但是已经在方法论层面出现了创新,是首次具备远程控制价值的家电控制原型REF_Ref9651\r\h[3]。在2000年左右,微软公司在美国南部湾区的互联网业务部门,利用云计算技术,将美国的一栋别墅改造成了一栋智能家居,引起了国际上的高度重视。在21世纪前10年,欧美国家对智能家庭的控制水平和控制理论都发生了质的飞跃,由传统的“点对点”控制发展为“端对端”控制,并逐渐将红外控制、机械传动控制、外光控制等常见控制技术纳入到中心控制和远程网络控制之间,使得智能家庭的各个方面都得到了有效的应用,从而使家庭的智能化水平得到了提高。1.3研究内容根据需求分析的需要,确定了该平台的前、后两个功能模块。其中,前台模块的主要功能包括了:智能家电用户注册、系统用户登录、设备分类、设备信息、定时控制、网络控制功能、智能设备共享等信息查看;后台模块主要功能有:电量统计、智能家电管理、设备分类管理、系统管理及系统用户管理等。第2章相关理论和技术2.1JavaJava是一种面向对象的程序设计语言,它可以通过JVM实现跨平台。Java语言具有简单性,安全性,分布性,多线程,稳健性,平台无关性等特点,被广泛应用嵌入式系统,CMS(客户管理系统),BBS(论坛),互联网开发等,是一门热门语言。Java最初是由SunMicrosystems公司开发出来的跨平台程序设计语言。它的设计理念是“writeonce,runanywhere”,意思是只要写一遍,你就可以在所有有Java虚拟机(JVM)的装置上使用。JVM可以把Java编码转换成机器编码,这样可以被操作系统所识别。这就是为什么Java会被大量地用于网络、手机和台式机。Java有很多优势,如易于学习、安全和强大的类库等。这是一门先进的OOP程序设计语言,能让开发者编写出更优美、更易维护的程序。与此同时,Java还提供了一个自动化的内存管理,让程序员不用再为如何手工配置和回收内存而烦恼。除此之外,Java还具有很好的网络通信能力,可以轻松地创建服务器端应用程序。众所周知的是,Java被广泛用于Android移动应用程序的开发。但它也可以用于开发游戏、企业级应用程序、物联网设备软件等。2.2MySQL MySQL是一种开源的关系型数据库管理系统,它具有以下特点:可扩展性强:MySQL支持多个存储引擎,例如MyISAM、InnoDB等,每个存储引擎都有其独特的特性,以便根据不同的应用场景进行选择和优化。性能高效:MySQL的使用经过了长时间的优化和测试,在大规模数据处理和高并发读写方面具备很好的表现,并且可以通过索引来快速检索数据。安全可靠:MySQL采用了许多安全机制来保护数据的完整性和安全性,例如用户名和密码认证、SSL加密传输等。开放性强:MySQL是基于开源协议GPL发布的自由软件,因此用户可以自由地获取、使用、修改和分发MySQL的代码。易于使用:MySQL提供了丰富的命令行工具和GUI工具来管理和操作数据库。2.3B/S模式B/S模式是指浏览器/服务器模式。与客户机/伺服器(Client/Server)模式相比,该模式中,使用者利用浏览器做为客户机来存取网际网路上的应用程式,而应用程式则是在远端伺服器上执行。当使用者在网路上输入网址,网路上会有讯息传递给伺服器,服务器在正确接收请求后会返回相应的资源(如HTML文件、图像等)。然后,浏览器将这些资源呈现给用户。与传统的桌面应用程序不同,B/S模式的应用程序可以跨平台和操作系统使用,并且不需要在客户端安装任何软件或插件。此外,由于应用程序运行在远程服务器上,因此可以更轻松地实现对应用程序的管理、维护和升级。2.4Vue技术Vue(发音为/view/,类似于“view”)是一种现代的、灵活的JavaScript框架,用于构建用户界面。它旨在使web开发变得更加简单和快速,并且易于学习使用。Vue技术的主要特点包括组件化、响应式数据绑定、虚拟DOM等。Vue可以与其它JavaScript库和框架无缝集成,因此它非常适合作为大型应用程序的前端开发工具。最重要的是,Vue社区非常活跃,有很多周边生态系统,可以满足各种不同的需求。Vue.js是一个很受欢迎的前端JavaScript框架,它可以用来构造一个现代的交互网络应用。Vue.js能够很容易的与诸如webpack之类的其它工具和类库相结合,从而建立一个成熟的,灵活的,高性能的用户接口。Vue.js具有简洁易学、灵活高效、开发效率高等优点,它使用简单的模板语法来处理DOM元素,提供了丰富的指令、过滤器和组件化功能,使开发人员可以更快地开发出优秀的界面页面。第3章系统分析3.1可行性分析3.1.1技术可行性这个智能家电管理系统的开发是以SpringBoot框架为基础的,它选择的语言是主流的Java,并且以SSM框架为基础,整个开发思路使用了MVC设计模式,可以灵活地管理代码。Idea是目前做得最好的一款多语言集成开发环境,与此同时,与它有关的大部分开发工具都是免费的。在智能家电管理系统中,需要对设备进行控制和状态监测,并对用户的指示和反馈信息做出反应,SpringBoot可以与第三方的硬件和软件相结合,使其具有更多的灵活性和可扩展性。3.1.2经济可行性经济可行性是指项目的开发过程符合之前的发展预算,整个发展过程的开支都有明确的文件记载,符合发展过程的要求。该系统建成后,智能家电管理系统前景广阔,经济价值高,在系统开发前开支也在考虑范围内。总之,认为设计开发这种基于SpringBoot的智能家电管理系统在经济上是可行的。3.1.3操作可行性本系统提供人性化,易操作的用户界面,大多数功能都通过图形化的界面展示给用户,用户并不需要关注底层代码,实现功能的封装。针对不同权限的用户,此系统还提供相应的界面,使得管理员能更加方便的的管理系统。综上所述可知,可以确定这个开发是可操作的。3.1.4法律可行性整个开发过程在法律层面上有如下特点:1.开发过程中所采用的一切技术来源均为合法取得。2.研发期间无任何知识产权纠纷。3.在制作过程中没有剽窃其他站点,没有侵权的问题。4.开发过程完全由本人完成,原始性的劳动,不牵涉到所谓的法定义务。3.2需求分析对系统功能要求的分析可以提供有关在实施软件功能要求时需要什么和不需要什么的更多信息。良好的分析活动有助于避免出现的早期错误,从而提高软件生产效率、降低开发成本并提高软件质量。3.2.1功能需求分析在基于SpringBoot的智能家电管理系统当中,用户注册登录进入系统后,可以查看设备的详情信息、对设备进行分类搜索、进行设备使用、查看共享信息、定时控制;管理员能够在系统后台进行系统用户管理、用户统计、设备管理、分类管理、系统管理。3.2.2非功能需求分析除了上述的功能需求之外,本系统在非功能需求方面有如下的要求:1.易用性:该系统向使用者提供了一定的易用性和可操作性,使用者可以对软件的操作方式有一个清晰的认识,并可以方便地对其进行操作和管理,系统操作界面简洁易懂。用户可通过可视化界面操作设备。2.安全性:系统确保在数据传输、存储、处理等所有阶段都具有相对应的安全保障措施,从而避免因为漏洞、攻击等原因导致信息泄露、身份认证失效等问题。3.可靠性:此系统具有高度的可靠性,即在面对各种故障时仍然能够运行稳定且不中断,并能够恢复至正常状态。尽量保持系统在用电非高峰期的响应速度小于3秒钟,用电高峰时段小于5秒钟,以保证系统的稳定性和可靠性。在系统中构建一个定义清晰的、完备的错误处理机制,能够使系统长期稳定地工作,并能方便地解决问题。3.2.3系统用例分析智能家电管理系统系统可为使用者提供丰富服务,主要表现在下面几个方面:1.用户登陆系统后可以查看智能家电信息,查看共享设备,根据自身需要使用共享空闲家电。2.管理员在登陆后可以对用户进行管理,可以对设备分类进行管理,对智能家电的信息进行管理,进行定时控制,设备监控,可以设置设备状态,管理共享设备。用户用例图如图3.1所示:图3.1用户用例图管理员用例图如图3.2所示:、图3.2管理员用例图3.3系统业务流程分析首先对用户进行判断是否为新用户,如果为新用户则需要进行注册在进行登录,如果判断不是新用户则直接登录进入系统中,用户可以在系统中用户还可继续进行查看管理员发布的设备信息、共享设备使用情况、设备分类情况等信息,具体流程如图3-3所示:图3.3系统业务流程图第4章系统设计4.1功能模块设计基于对系统的功能进行分析得出基于SpringBoot的智能家电管理系统的详细的功能模块含以下的几个重要的功能模块:系统用户管理、设备信息管理、设备共享管理、设备分类管理及系统管理等。系统的功能模块如图4.1所示:图STYLEREF1\s4.SEQ图\*ARABIC\s11系统功能模块图4.2数据库设计4.2.1概念结构设计数据库的概念设计是指在数据库建立之前对用户需求进行需求分析和建模的过程。它主要包括确定系统所需的实体、属性、联系以及数据约束等方面,构建数据模型,明确数据间的关系和业务规则,以及建立初步的数据模型文档等。1.管理员实体图如图4.2所示:图STYLEREF1\s4.2管理员实体图2.用户实体图如图4.3所示:图STYLEREF1\s4.3用户实体图3.智能家电实体图如图4.4所示:图STYLEREF1\s4.4智能家电实体图4.设备共享实体图如图4.5所示:图STYLEREF1\s4.5设备共享实体图5.监控家电实体图如图4.6所示:图STYLEREF1\s4.6监控家电实体图6.定时控制实体图如图4.7所示:图STYLEREF1\s4.7定时控制实体图7.设备共享实体图如图4.8所示:图STYLEREF1\s4.8网络控制体图8.智能家电管理系统E-R图如图4.9所示:图STYLEREF1\s4.9智能家电管理系统E-R图4.2.2逻辑结构设计数据库逻辑设计是在进行概念设计的基础上,通过使用数据库设计工具,将概念设计转化为逻辑模型的过程。逻辑模型主要以实体关系模型(ER模型)为基础,通过定义实体、属性、关系之间的约束规则,来构建一个可以在计算机上实现的数据库模型。在逻辑设计阶段,需要对数据进行规范化,以消除数据冗余和数据更新异常。常见的规范化级别有第一范式、第二范式和第三范式等。同时,还需要考虑数据完整性、数据安全性和性能等方面的问题,在经过充分的思考之后,最终得到的智能家电管理系统的具体表设计如下:1.管理员表users记录管理员的信息使用“管理员表users”。users的结构如表4.1所示。表STYLEREF1\s4.SEQ表\*ARABIC\s11管理员表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar10用户名passwordvarchar10密码rolevarchar10角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP2.设备共享表shebeigongxiang“设备共享表shebeigongxiang”是用来记录设备共享的信息。Shebeigongxiang的结构如表4.2所示。表STYLEREF1\s4.SEQ表\*ARABIC\s12设备共享表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPgongxiangbianhaovarchar10共享编号shebeibianhaovarchar10设备编号shebeimingchengvarchar10设备名称shebeifenleivarchar10设备分类gongxiangshijiandate共享时间yonghuzhanghaovarchar10用户账号yonghuxingmingvarchar10用户姓名3.设备分类表shebeifenlei“设备分类表shebeifenlei”是用来记录设备分类信息。Shebeifenlei结构如表4.3所示。表STYLEREF1\s4.SEQ表\*ARABIC\s13设备分类表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPshebeifenleivarchar10设备分类4.监控家电表jiankongjiadian“监控家电表jiankongjiadian”是用来记录监控家电的信息。jiankongjiadian的结构如表4.4所示。表STYLEREF1\s4.SEQ表\*ARABIC\s14监控家电表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiankongbianhaovarchar10监控编号shebeibianhaovarchar10设备编号shebeimingchengvarchar10设备名称shebeifenleivarchar10设备分类jiankongshijiandate监控时间5.定时控制表dingshikongzhi“定时控制表dingshikongzhi”是用来记录设置的定时时间信息。dingshikongzhi的结构如表4.5所示。表STYLEREF1\s4.SEQ表\*ARABIC\s15定时控制表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPkongzhibianhaovarchar10控制编号shebeibianhaovarchar10设备编号shebeimingchengvarchar10设备名称shebeifenleivarchar10设备分类kongzhishijiandate控制时间6.智能家电表zhinengjiadian“智能家电表zhinengjiadian”是用来记录智能家电的信息。Zhinengjiadain的结构如表4.6所示。表STYLEREF1\s4.SEQ表\*ARABIC\s16智能家电表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPshebeibianhaovarchar10设备编号shebeimingchengvarchar10设备名称shebeifenleivarchar10设备分类tupianlongtext429496729图片shebeizhuangtaivarchar2设备状态dianliangfloat电量shebeiweizhivarchar10设备位置shiyongxuzhilongtext429496729使用须知shebeixiangqinglongtext429496729设备详情7.用户表yonghu“用户表yonghu”是用来记录用户的信息。Yonghu的结构如表4.7所示。表STYLEREF1\s4.SEQ表\*ARABIC\s17用户表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPyonghuzhanghaovarchar10用户账号yonghuxingmingvarchar10用户姓名mimavarchar10密码xingbievarchar1性别touxianglongtext429496729头像dianhuahaomavarchar10电话号码8.网络控制表wangluokongzhi“网络控制表wangluokongzhi”是用来记录网络控制指令的信息。wangluokongzhi的结构如表4.8所示。表STYLEREF1\s4.SEQ表\*ARABIC\s18网络控制表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPkongzhibianhaovarchar10控制编号shebeibianhaovarchar10设备编号shebeimingchengvarchar10设备名称续表STYLEREF1\s4.SEQ表\*ARABIC\s18网络控制表字段名称类型长度字段说明主键默认值shebeifenleivarchar10设备分类kongzhishijiandate控制时间第5章系统实现5.1实现环境开发语言:Java开发框架:SpringBootJDK版本号:JDK1.8服务器:Tomcat7数据库:MySQL5.7数据库工具:Navicat11开发软件:Eclipse/MyEclipse/IDEAMaven包:Maven注册登录当用户第一次进入系统的时候,系统就会自动地转跳到用户的登录注册界面,用户注册时应该输入用户账号、用户姓名、密码、性别、手机号、头像等信息,用户的注册界面具体如图5.1所示:图STYLEREF1\s5.SEQ图\*ARABIC\s11用户注册界面注册时在用户输入账号、密码、性别、等相关信息后,点击注册,如果注册成功会有弹出绿色弹窗,此时注册成功,否则注册失败。用户注册成功界面如图5.2所示:图STYLEREF1\s5.2用户注册成功界面登陆前,先要输入帐号、密码等信息,选定角色,再点击“登录”按钮。若没有输入用户的名称或密码,则会让用户输入使用者名称及密码。在图5.3中显示了用户登录界面。图STYLEREF1\s5.3用户登录界面当管理员登陆时,只需输入正确的帐号、密码,就可以进入后台管理的主页。如果输入的用户名或密码有误,则不会进入。后台登录界面如图5.4所示:图STYLEREF1\s5.4后台登录界面登录流程图和注册流程图如图5.5和图5.6所示:图STYLEREF1\s5.5登录流程图图STYLEREF1\s5.6注册流程图管理员在登录后台登陆界面后输入帐号、密码,然后选择一个登陆角色,然后按下“登录”键,系统将显示登陆成功,否则将无法登陆。管理员登录成功界面如图5.7所示:图STYLEREF1\s5.7管理员登录成功界面当使用者在登陆画面上输入使用者名称及密码,并选取登录人物为用户,按下“登录”键,便会出现“登陆成功”的消息,说明用户登陆成功,然后便会进入本系统的主页面,若未出现,则进入失败。用户登录成功界面如图5.8所示:图STYLEREF1\s5.8用户登录成功界面实现该功能的关键代码如下。@RequestMapping("/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);}@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();}5.3个人信息管理当用户登陆后,再按下个人中心下的修改密码,便会跳转到修改密码的页面,用户可以在此页面修改密码,可以在输入原密码的前提下修改密码,修改密码界面如图5.9所示:图STYLEREF1\s5.9用户修改密码界面用户还可以在个人中心界面修改个人信息,用户个人信息界面如图5.10所示:图STYLEREF1\s5.10用户个人信息管理界面实现该功能的关键代码如下。publicfunction__construct(){header("Access-Control-Allow-Origin:*");header("Access-Control-Allow-Methods:POST,GET,OPTIONS,PUT,DELETE");header('Access-Control-Allow-Headers:Origin,Content-Type,Accept,token,X-Requested-With,device');}5.4设备分类管理以管理员身份登录到系统后台后,管理员可以在设备分类界面对设备信息进行新增、更新、删除、查询等操作。设备分类管理界面如图5.11所示,新增设备分类后,管理员可以在发布设备信息时为智能家电选择分类。图STYLEREF1\s5.11设备分类管理界面用户在管理员发布设备分类信息之后就可以在智能家电界面看到设备分类信息,用户查看设备分类界面如图5.12所示:图STYLEREF1\s5.12用户查看设备分类界面实现该功能的关键代码如下。@RequestMapping("/lists")publicRlist(shebeifenleiEntityshebeifenlei){EntityWrapper<shebeifenleiEntity>ew=newEntityWrapper<shebeifenleiEntity>();ew.allEq(MPUtil.allEQMapPre(shebeifenlei,"shebeifenlei"));returnR.ok().put("data",shebeifenleiService.selectListView(ew));}@RequestMapping("/query")publicRquery(shebeifenleiEntityshebeifenlei){EntityWrapper<shebeifenleiEntity>ew=newEntityWrapper<shebeifenleiEntity>();ew.allEq(MPUtil.allEQMapPre(shebeifenlei,"shebeifenlei"));shebeifenleiViewshebeifenleiView=shebeifenleiService.selectView(ew);returnR.ok("查询设备类型成功").put("data",shebeifenleiView);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){shebeifenleiEntityshebeifenlei=shebeifenleiService.selectById(id);returnR.ok().put("data",shebeifenlei);}5.5用户管理作为一个管理员,登陆后台后,在用户管理栏中点击“用户管理”键,就可以进入管理用户名单,然后在用户名单中输入用户帐号,然后点击查询键查找用户,并且可以对用户进行增加,更新,删除,大批量删除,查看详细信息。如图5.13所示:图STYLEREF1\s5.13管理员管理用户界面管理员在上页面点击修改,就可以看到用户的具体信息,如果有需要,还可以对信息进行修改后,如图5.14所示:图STYLEREF1\s5.14管理员管理用户信息界面实现该功能的关键代码如下。@RequestMapping("/lists")publicRlist(YonghuEntityyonghu){EntityWrapper<YonghuEntity>ew=newEntityWrapper<YonghuEntity>();ew.allEq(MPUtil.allEQMapPre(yonghu,"yonghu"));returnR.ok().put("data",yonghuService.selectListView(ew));}@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("/info/{id}")publicRinfo(@PathVariable("id")Longid){YonghuEntityyonghu=yonghuService.selectById(id);returnR.ok().put("data",yonghu);}管理员还可以在用户管理界面,还可以通过扇形图直观的统计用户。管理员点击右上角的用户统计按钮,就可以看到统计图,如图5.15所示:图STYLEREF1\s5.15用户统计界面实现该功能的关键代码如下。@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<YonghuEntity>ew=newEntityWrapper<YonghuEntity>();List<Map<String,Object>>result=yonghuService.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.6设备信息管理作为一个管理员,登陆后台系统,点击“智能家电”,进入设备信息列表,可以进行家电的新增、更新、删除、批量删除等功能,如图5.16所示:图STYLEREF1\s5.16设备信息管理界面管理员可以输入设备的名称、状态、位置、电量等信息发布设备。智能家电管理界面如图5.17所示:图STYLEREF1\s5.17智能家电管理界面在管理员发布设备信息之后,用户就可以在智能家电管理模块查看智能家电信息,如图5.18所示:图STYLEREF1\s5.18用户查看智能家电界面实现该功能的关键代码如下。@RequestMapping("/lists")publicRlist(zhinengjiadianEntityzhinengjiadian){EntityWrapper<zhinengjiadianEntity>ew=newEntityWrapper<zhinengjiadianEntity>();ew.allEq(MPUtil.allEQMapPre(zhinengjiadian,"zhinengjiadian"));returnR.ok().put("data",zhinengjiadianService.selectListView(ew));}@RequestMapping("/query")publicRquery(zhinengjiadianEntityzhinengjiadian){EntityWrapper<zhinengjiadianEntity>ew=newEntityWrapper<zhinengjiadianEntity>();ew.allEq(MPUtil.allEQMapPre(zhinengjiadian,"zhinengjiadian"));zhinengjiadianViewzhinengjiadianView=zhinengjiadianService.selectView(ew);returnR.ok("查询家电成功").put("data",zhinengjiadianView);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){zhinengjiadianEntityzhinengjiadian=zhinengjiadianService.selectById(id);returnR.ok().put("data",zhinengjiadian);}5.7电量统计管理员还可以通过“电量统计”功能直观的看到各种家电的用电量,点击智能家电右上角的电量统计按钮,就可以看到用电量的柱状图,如图5.19所示:图STYLEREF1\s5.19用电量统计界面实现该功能的关键代码如下。@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<ZhinengjiadianEntity>ew=newEntityWrapper<ZhinengjiadianEntity>();
List<Map<String,Object>>result=zhinengjiadianService.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.8设备共享管理智能家电管理系统实现了设备的共享,用户登陆系统后,可以在前台浏览智能家电进行选择和使用,如图5.20所示:图STYLEREF1\s5.20用户浏览设备界面用户选择智能家电后点击提交按钮,显示操作成功就可以在设备共享界面管理共享设备,如图5.21所示:图STYLEREF1\s5.21用户共享设备界面管理员登录到后台,按下“设备共享”键,进入到“设备共享清单”的页面,然后在需要查看的设备信息上,点开要查看的,然后进行新增、更新、删除、批量删除、查看详细信息。设备共享管理界面如图5.22所示:图STYLEREF1\s5.22设备共享管理界面实现该功能的关键代码如下。@RequestMapping("/lists")publicRlist(gongxiangshebeiEntitygongxiangshebei){EntityWrapper<KechengdingdanEntity>ew=newEntityWrapper<KechengdingdanEntity>();ew.allEq(MPUtil.allEQMapPre(gongxiangshebei,"kechengdingdan"));returnR.ok().put("data",gongxiangshebeiService.selectListView(ew));}@RequestMapping("/query")publicRquery(KechengdingdanEntitygongxiangshebei){EntityWrapper<gongxiangshebeiEntity>ew=newEntityWrapper<gongxiangshebeiEntity>();ew.allEq(MPUtil.allEQMapPre(gongxiangshebei,"kechengdingdan"));KechengdingdanViewgongxiangshebeiView=gongxiangshebeiService.selectView(ew);returnR.ok("查询共享设备成功").put("data",gongxiangshebeiView);}@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){gongxiangshebeiEntitygongxiangshebei=gongxiangshebeiService.selectById(id);returnR.ok().put("data",gongxiangshebei);}5.9定时控制管理管理员在智能家电管理界面点击“定时控制”按钮,就可以进入定时控制界面,用户可对定时控制信息进行查找、排序、修改、删除等操作,如图5.23所示:图STYLEREF1\s5.23定时控制界面点击修改按钮后,管理员就可以为智能家电设置定时控制的时间,如图5.24所示:图STYLEREF1\s5.24设置定时控制时间界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(DingshikongzhiEntitydingshikongzhi){EntityWrapper<DingshikongzhiEntity>ew=newEntityWrapper<DingshikongzhiEntity>();ew.allEq(MPUtil.allEQMapPre(dingshikongzhi,"dingshikongzhi"));DingshikongzhiViewdingshikongzhiView=dingshikongzhiService.selectView(ew);returnR.ok("查询定时控制成功").put("data",dingshikongzhiView);}@RequestMapping("/update")
@Transactional
publicRupdate(@RequestBodyDingshikongzhiEntitydingshikongzhi,HttpServletRequestrequest){
//ValidatorUtils.validateEntity(dingshikongzhi);
dingshikongzhiService.updateById(dingshikongzhi);
returnR.ok();
}使用了定时控制相应设备的用户在前台也可以查看定时控制的状态,用户定时控制如图5.25所示:图STYLEREF1\s5.25用户定时控制时间界面5.10网络控制管理管理员在智能家电管理后台点击“控制时间管理”按钮,就可以进入控制时间管理界面,管理员可以在控制时间管理界面对网络控制的时间进行查询、删除和设定操作,控制时间管理界面如图5.26所示:图STYLEREF1\s5.26控制时间管理界面管理员在设置好控制时间后,就可以通过网络控制管理来选择网络控制的时间,从而达到网络控制的目的,网络控制界面如图5.27所示,在设置好网络控制时间后,用户可以进行查看,用户查看网络控制界面如图5.28所示:图STYLEREF1\s5.27网络控制管理界面图STYLEREF1\s5.28用户网络控制管理界面相关实现代码如下:@RequestMapping("/query")publicRquery(WangluokongzhiEntitywangluokongzhi){EntityWrapper<WangluokongzhiEntity>ew=newEntityWrapper<WangluokongzhiEntity>();ew.allEq(MPUtil.allEQMapPre(wangluokongzhi,"wangluokongzhi"));WangluokongzhiViewwangluokongzhiView=wangluokongzhiService.selectView(ew);returnR.ok("查询网络控制成功").put("data",wangluokongzhiView);}@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
wangluokongzhiService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();
}5.11家电监控管理管理员在智能家电管理界面点击“家电监控”按钮,就可以进入家电监控界面,管理员可以家电监控界面对家电监控记录按设备名查询操作、进行批量删除、单个删除和更新操作,家电监控管理界面如图5.29所示,监控时间段设定如图5.30所示:图STYLEREF1\s5.29家电监控管理界面图STYLEREF1\s5.30监控时间段设置界面相关实现代码如下:@RequestMapping("/query")
publicRquery(JiankongjiadianEntityjiankongjiadian){
EntityWrapper<JiankongjiadianEntity>ew=newEntityWrapper<JiankongjiadianEntity>();
ew.allEq(MPUtil.allEQMapPre(jiankongjiadian,"jiankongjiadian"));
JiankongjiadianViewjiankongjiadianView=jiankongjiadianService.selectView(ew);
returnR.ok("查询监控家电成功").put("data",jiankongjiadianView);
}5.12公告信息管理以管理员的身份进入系统后,在公告信息管理界面可以对公告信息进行管理,界面如图5.31所示,管理员可以输入关键字,点击左上角的查询按钮,对公告信息进行模糊搜索,如图5.32所示,还可以点击右上角按钮,对信息进行新增操作,如图5.33所示,除此之外还可以进行删除、批量删除、修改等操作。图STYLEREF1\s5.31公告信息管理界面图STYLEREF1\s5.32公告信息模糊搜索界面图STYLEREF1\s5.33公告信息发布界面以用户身份进入系统后,可以进入公告信息界面查询公告信息,如图5.34所示,用户点击详情按钮就可以查看公告信息,如图5.35所示:图STYLEREF1\s5.34用户公告信息界面图STYLEREF1\s5.35用户查看公告信息界面相关实现代码如下:@RequestMapping("/query")
publicRquery(GonggaoxinxiEntitygonggaoxinxi){
EntityWrapper<GonggaoxinxiEntity>ew=newEntityWrapper<GonggaoxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre(gonggaoxinxi,"gonggaoxinxi"));
GonggaoxinxiViewgonggaoxinxiView=gonggaoxinxiService.selectView(ew);
returnR.ok("查询公告信息成功").put("data",gonggaoxinxiView);
}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyGonggaoxinxiEntitygonggaoxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(gonggaoxinxi);gonggaoxinxiService.updateById(gonggaoxinxi);returnR.ok();}5.13用户留言管理为了能实现用户与管理员的沟通,用户可以在用户留言板块对自己的留言进行编辑、删除等操作,界面如图5.36所示,点击右上角新增按钮,用户可以进行编辑留言操作,如图5.37所示:图STYLEREF1\s5.36用户留言界面图STYLEREF1\s5.37用户留言编辑界面用户进行留言之后,管理员进入系统后就可以对用户留言进行管理,如图5.38所示,可以对留言进行查询、删除、回复等操作,用户点击绿色回复按钮就可以对用户进行回复,如图5.39所示,用户就可以在留言界面查看回复信息,如图5.40所示。图STYLEREF1\s5.38管理员管理用户留言界面图STYLEREF1\s5.39管理员回复用户留言界面图STYLEREF1\s5.40用户查看回复界面相关实现代码如下:@RequestMapping("/update")
@Transactional
publicRupdate(@RequestBodyYonghuliuyanEntityyonghuliuyan,HttpServletRequestrequest){
//ValidatorUtils.validateEntity(yonghuliuyan);
yonghuliuyanService.updateById(yonghuliuyan);
returnR.ok();
}@RequestMapping("/delete")
publicRdelete(@RequestBodyLong[]ids){
yonghuliuyanService.deleteBatchIds(Arrays.asList(ids));
returnR.ok();
}@RequestMapping("/query")
publicRquery(YonghuliuyanEntityyonghuliuyan){
EntityWrapper<YonghuliuyanEntity>ew=newEntityWrapper<YonghuliuyanEntity>();
ew.allEq(MPUtil.allEQMapPre(yonghuliuyan,"yonghuliuyan"));
YonghuliuyanViewyonghuliuyanView=yonghuliuyanService.selectView(ew);
returnR.ok("查询用户留言成功").put("data",yonghuliuyanView);
}第6章系统测试在设计了服务端功能模块和前端操作界面之后,用户正式使用系统之前,为了让系统的运行可靠稳定,方便在正式使用之前对系统进行更正和改进,需要进行完善的功能和性能测试。功能测试是一种对整个系统进行全面测试的方法,测试者首先要站在使用者的立场上,对不同的测试案例进行对比,找出系统中的问题。功能测试中,主要使用了和等价类划分法。系统故障往往出现在输入量与输出量的交界处,且其发生概率远大于其内部,通过边界值法可以更好地判断系统的稳定性与可靠性。6.1测试步骤类似开发流程,在试运行期间也必须执行分期执行。因此,每个步骤都是从前面一个步骤开始发展形成的。大型的程序一般都是包含由若干个子程序,而每一个子程序中又包含许多个模块。所以,大型的软件测试基本上由下列几个步骤组成:1.测试模块的目的是为了确定一个程序中的代码和细节问题。2.接下来就是对这个系统进行测试,并且确定在这个项目中发现的问题。3.将测试步骤标准化,以便确定错误的测试方案。6.2测试用例6.2.1登录测试用例用户界面的测试用例是按照用户的需求来设计的,它使用了功能测试的技术,处于篇幅考虑,在此仅列出了一些典型的测试用例,如表6.1所示。表STYLEREF1\s6.SEQ表\*ARABIC\s11登录测试用例表测试编号测试目的操作步骤预期结果实际结果001登录测试输入正确的用户名和密码登录成功登录成功002登录测试输入错误的用户名登录失败登录失败003登录测试输入错误的的密码登录失败登录失败6.2.2设备管理测试用例管理端在运行时要满足系统的运行需求,比如添加设备信息测试、修改设备信息测试、删除设备信息测试等。本节根据管理端各模块进行测试,因考虑到本文篇幅有限,这里代表性的部分测试用例,如表6.2所示。表STYLEREF1\s6.SEQ表\*ARABIC\s12设备管理测试用例表测试编号测试目的操作步骤预期结果实际结果001添加设备信息测试在添加页面输入设备信息,点击确认按钮添加成功添加成功002修改设备信息测试在修改页面修改设备信息,点击确认按钮修改成功修改成功003删除设备信息测试在管理设备信息页面,点击某一用户的删除按钮删除成功删除成功004查询设备信息测试在管理设备信息页面查询输入框输入要查询的用户名字,点击查询按钮查询成功查询成功6.2.3设备共享测试用例管理端要实现设备共享功能,进行用户使用,查询共享家电测试,管理员查看、回收、修改智能家电测试,测试用例表如表6.3所示。表STYLEREF1\s6.3设备共享测试用例表测试编号测试目的操作步骤预期结果实际结果001用户获取共享设备测试用户在智能家电界面点击使用按钮共享成功共享成功002管理员回收共享设备测试管理员在共享设备界面点击删除按钮回收成功回收成功003用户查看信息测试用户在共享设备界面点击详情按钮查看成功查看成功004管理员查询共享设备测试管理员在设备共享界面点击详情按钮查询成功查询成功005管理员修改共享设备测试管理员在设备共享界面点击修改按钮修改成功修改成功6.2.4设备分类测试用例为了更好地管理智能家电,系统需要实现设备分类的功能。进行设备分类的新增、移除、更新、查看操作,设备分类测试用例表如表6.4所示。表STYLEREF1\s6.4设备分类测试用例表测试编号测试目的操作步骤预期结果实际结果001管理员查看设备分类测试管理员在设备分类界面点击查询按钮查看成功查看成功002管理员修改设备分类测试管理员在设备分类界面点击修改按钮修改成功修改成功003管理员增加设备分类测试管理员在设备分类界面点击新增按钮增加成功增加成功004管理员删除设备分类测试管理员在设备分类界面点击删除按钮删除成功删除成功6.2.5定时控制测试用例系统实现了管理员对设备的定时控制,进行定时控制的监视、设置和取消操作,定时控制测试用例表如表6.5所示。表STYLEREF1\s6.5定时控制测试用例表测试编号测试目的操作步骤预期结果实际结果001管理员监视定时控制时间测试管理员在定时控制界面点击详情按钮监视成功监视成功002管理员更新定时控制时间测试管理员在定时控制界面点击修改按钮更新成功更新成功003管理员取消定时控制时间测试管理员在定时控制界面点击删除按钮取消成功取消成功6.2.6网络控制测试用例系统实现了管理员对设备的网络控制,进行网络控制的查看、定时和删除操作,网络控制测试用例表如表6.6所示。表STYLEREF1\s6.6网络控制测试用例表测试编号测试目的操作步骤预期结果实际结果001管理员查看网络控制测试管理员在网络控制界面点击详情按钮查看成功查看成功002管理员为网络控制定时测试管理员在网络控制界面点击修改按钮定时成功定时成功003管理员删除网络控制测试管理员在网络控制界面点击删除按钮删除成功删除成功6.2.7电量统计测试用例系统实现了用电量统计的功能,在设置完家电的用电量之后,管理员可以通过柱状图查看各电器用电的比例,电量统计测试用例表如表6.7所示,柱状图如图6.1所示。表STYLEREF1\s6.7电量统计测试用例表测试编号测试目的操作步骤预期结果实际结果001电量统计测试设置家电用电量,点击智能家电模块电量统计按钮表示准确表示准确图STYLEREF1\s6.1电量统计测试用例图6.2.8设备详情上传测试用例设备详情上传功能支持了多种方时,包括文本、图片、链接、视频,对各种方式进行黑盒测试,设备详情上传示例表如表6.8所示。表STYLEREF1\s6.8设备详情上传测试用例表测试编号测试目的操作步骤预期结果实际结果001文本上传测试在设备详情框中上传文本上传成功上传成功002图片上传测试在设备详情框中上传图片上传成功上传成功003链接上传测试在设备详情框中上传链接上传成功上传成功004视频上传测试在设备详情框中上传视频上传成功上传成功6.2.9用户须知发布测试用例为了使用户了解家电使用说明,智能家电管理系统包含了发布使用须知的功能,现对使用须知功能进行测试,测试用例表如表6.9所示。表STYLEREF1\s6.9使用须知测试用例表测试编号测试目的操作步骤预期结果实际结果001发布测试管理员在用户须知框中输入用户须知信息,点击确定按钮发布成功发布成功002发布测试管理员未在用户须知框中输入用户须知信息,点击确定按钮发布失败发布失败003查看测试正确发布用户须知,用户在智能家电详情用户须知中查看查看成功查看成功6.3测试结论通过多个测试用例的使用,对系统的部分功能展开了多方位的功能测试,整个系统在测试的过程中都能够正确的把结果反馈给使用者,其中包含了基础的登录系统,退出系统和对设备信息新增,更新,删除,查找等功能,并验证了系统操作的健全性和稳定性,系统的使用上和系统的功能上都大体上上都能够达到开始设计时计划的效果。结论及展望在本次所实现的以SpringBoot为基础的智能家电管理系统的开发过程中,首先对本研究的现实意义以及研究现状进行了分析,接着对开发中所用到的有关技术以及基本原理进行了介绍,重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师资格考试初中美术面试强化训练精练试题解析
- 宁乡社区工作者考试真题库(2025版)
- 【2024】新湘美版艺术美术七年级上册第五单元第3课 非遗文化潮起来 教案
- 中医骨科护理的饮食指导
- 护理服务质量提升方法
- 前置胎盘心理支持护理查房
- 山西省朔州市怀仁市城镇第七小学校2025年数学三年级下学期期末监测试题(含解析)
- 山西省晋中市寿阳县2025届四下数学期末预测试题含答案
- 徐州市重点中学2026年中考押题物理预测卷含解析
- 2026届区级联考上海市青浦区市级名校中考物理模试卷含解析
- 儿童肾病患者的饮食管理
- 肥胖患儿的饮食与营养
- 骨质疏松联合用药方案
- 海洋机器人与人工智能(哈尔滨工程大学)知到智慧树网课答案
- 护士给药错误的应急预案演练脚本
- 美食旅游课件
- DB61∕T 1440-2021 公路预应力混凝土连续刚构桥施工技术规范
- (正式版)DB15∕T 1895-2020 《建筑消防设施维护保养技术规程》
- 坚定马克思主义信仰课件
- 物业管家转正答辩
- 中山大学《空气动力学基础》2023-2024学年第一学期期末试卷
评论
0/150
提交评论