基于SpirngBoot的宠物寄养服务系统的设计与实现_第1页
基于SpirngBoot的宠物寄养服务系统的设计与实现_第2页
基于SpirngBoot的宠物寄养服务系统的设计与实现_第3页
基于SpirngBoot的宠物寄养服务系统的设计与实现_第4页
基于SpirngBoot的宠物寄养服务系统的设计与实现_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

-1-第1章绪论1.1研究背景及意义在现今社会的今天,宠物的存在已经成为了我们生活中不可或缺的一部分,它们陪伴我们成长,给了我们许多未曾感受到的快乐,教会我们如何去爱,在枯燥的生活中战胜孤独,无论贫穷或是富有都不曾离开,最后,人类对于宠物的依赖往往远远大过了人类对自己的依赖。宠物对于人类精神方面的疾病治疗也有很大帮助,日积月累的孤独往往正是老年痴呆疾病的诱因,但是正因为有了这些宠物猫狗的存在,不但解决了很多独居老人的精神问题,让他们不再孤独,并且因为它们让生活更加充满阳光。随着宠物的服务行业不断发展,宠物寄养也不断流行起来。由于公交地铁高铁等公共交通工具不准携带宠物,而托运手续复杂,路途长远颠簸,携带猫猫狗狗出门对主人和宠物来说都十分折腾。一到小长假期间,这些毛孩子就成了“留守儿童”,没有人喂养,寄养就成了最主要的解决方式。为了给宠物主人的寄养提供便利,所以这就要引用宠物寄养服务系统。1.2国内外研究现状宠物寄养管理系统近年来也引起了国内学者的关注。本节文献综述将考察国内学者对宠物寄养管理制度的研究现状。2021年,李乐天在《宠物寄养产品服务系统设计研究》[1]中采用Java技术开发了宠物寄养产品服务系统。允许宠物主人预订和管理他们的宠物在设施中的住宿,以及接收宠物活动的实时更新,通过测试,结果显示,与传统预订方式相比,客户满意度有了显着提高,但是宠物系统的大数据统计能力和智能识别能力李乐天做得不够好,为了提升宠物系统的大数据统计能力和智能识别能力,在2021年杨熙妍的另一项研究《宠物乐园服务模式研究》[2]采用.net技术开发了一种宠物寄宿管理系统,该系统结合面部识别技术来识别宠物及其主人,该系统在中国一家宠物寄养机构进行了测试,发现可以提高识别宠物的准确性并减少出错的可能性。但是杨熙妍的设计不能轻松预订和管理宠物住宿,这方面赵一诺等人更为出色。2021年,赵一诺等人的文章《基于数据分析的宠物服务APP设计》[3]其利用C、QBasic等编程语言进行宠物管理的网站设计,可以为设施管理人员提供有关其运营的实时见解,包括入住率、收入和客户反馈。该研究在中国一家宠物寄养机构对该系统进行了测试,发现它可以提高该机构的收入和整体绩效。此外,宠物寄宿管理系统的采用也可以提高宠物在设施内的安全和安心,然而赵一诺等人提升系统的安全性方面不如包春兰等人。2022年,包春兰等人的一项研究《宠物寄养服务需求分析及平台设计》[4]采用SpringBoot框架开发了一种宠物寄宿管理系统,该系统使用智能项圈来跟踪和监控设施中宠物的位置和活动,通过对比测试,该系统在可以提高该设施中宠物的安全和保障。宠物寄养管理系统的采用已引起发达国家学者的关注,并进行了许多研究以调查其在改善宠物寄养服务方面的有效性。本节文献综述将考察国外学者对宠物寄养管理系统的研究现状。2012年,KlaytongA在其文章《acasestudyofVeterinaryClinicDongKhuyPhetchabunprovince》[5]文章中将.NET技术、C/S结构进行结合运用实现宠物住宿系统,该系统可以帮助宠物主人预订和管理他们的宠物在设施中的住宿,并为设施管理者提供一个有效的平台来管理他们的运营,该系统个基于云的系统,宠物主人和设施工作人员都可以访问该系统,该系统在中国的一家宠物寄养机构进行了测试,发现可以提高该机构的运营效率并提高客户满意度,但该系统的缺乏一定的完整性,然而SuB就做的非常好。2022年,SuB在其文章《TheBusinessModelofDigitalPlatformsfortheSharingEconomy》[6]文章中采用Java开发技术进行开发了一个基于移动的系统,允许宠物主人预订和管理他们的宠物在设施中的逗留,该系统通过实际实施,结果显示,与传统预订方式相比,客户满意度有了显着提高,完整性也得到了一定提高。但是宠物识别方面SuB没有完善,SalesaA等人在宠物识别准确性的问题上作出了更好的优化。2023年,SalesaA等人在文章《Airlinespracticestoincorporatecirculareconomyprinciplesintothewastemanagementsystem》[7]文章中提到采用MVC设计模式和J2EE、Web等技术对宠物管理系统进行设计,相较于其他系统,该系统发现可以提高识别宠物的准确性并减少出错的可能性。但是Shih等人的系统的数据分析能力较为欠佳,GodoyJ.等人在这方面造诣更深。2017年,GodoyJ.等人在其文章《Aholisticapproachtoemergencyevacuationinformationsupportsystems》[8]基于J2EE平台,在系统设计和开发的过程中结合采用Spring和B/S框架设计宠物寄宿管理系统,可以为设施管理人员提供有关其运营的实时见解,包括入住率、收入和客户反馈,通过测试发现它可以提高该设施的收入和整体绩效。1.3研究内容本设计基于SpringBoot框架采用Java语言进行开发[9],开发工具选用IDEA,数据将会存放在MySQL数据库中,运行于Windows环境,实现用户管理、寄养服务管理、员工信息管理、寄养宿舍管理、寄养医疗管理、轮播图管理、寄养订单管理、订单留言管理、寄养接送管理、医疗预约管理。应完成主要工作有:(1)对国内外相关研究进行梳理,确定系统开发的技术路线。(2)对系统需求进行分析。(3)在需求分析的基础上,确定系统的功能结构。(4)选择合适的数据库进行数据的存储。(5)对系统的各功能模块进行详细的设计与实现。(6)选择合适的测试方法对系统进行测试,根据测试结果对系统进行修改完善。

第2章关键技术简介2.1MySQL数据库MySQL数据库的存储结构是完全符合关系型数据库规则的,并且符合行式数据库的美学,存放的数据是以表格的形式存在的,每一行都会对应相关的字段用来存储相关字段的值,并且可以对每个字段进行数据定义和空间大小定义,数据定义解决了同类数据的存储精度,空间定义则是对数据的大小进行了完美的规划。比如当前国内的手机号码都是不超过11位的纯数字,那么定义手机号的字段完全可以定义为int(11),这样即使表内大量的存储相关数据,最起码在手机号这个字段存储效率上达到了压缩极致,还有其他的字段类型也是一样的考虑。充分分析项目所需要的数据模式,以及当前在现实生活中的具体实例,可以有效的帮助我们定义好相关的数据库存储模块。之所以不使用其他的关系型数据库,比如SQLServer数据库和Oracle数据库[10],最主要的原因就是它们两个的安装包都好几个G,安装过程和使用过程会占用当前使用的计算机的大量性能,影响使用效果,并且卸载和安装都是很麻烦,稍微有点问题就需要对电脑的操作系统进行重装,这样会浪费时间,并且影响开发效率的。所以最终选择使用了MySQL数据库。2.2IDEA开发工具IDEA这款软件也是有二十多年的历史了,Java语言推出之后,刚开始人们开发用的是最简单的记事本来进行编写,随着时间的发展,业务不断的增加,功能也变多了,代码自然而然也就变多了,人们急需一款可以辅助人们管理代码的软件,前期记事本和高级记事本也只是多了些代码标记而已,并没有大的提升,好多环境还是需要手动配置的,随着Eclipse的发展,MyEclipse这款商业集成曾经占领了很大一部分市场,当年用WindowsXP系统的时候都可以用Eclipse和MyEclipse软件,那个时候也有了IDEA,但是国内用的人比较少,随着国内经济的不断发展,计算机硬件的不断提升,人们的眼界越来越宽阔,所以IDEA就出现了中文版,然后用的人就越来越多了。IDEA能做的事情,MyEclipse都能做到,但是IDEA首先颜值很高,可以选择好几种开发模式,看起来很漂亮,让程序员使用的时候赏心悦目,功能并不少,还有国人喜欢的绿色功能,不需要安装,解压就可以用,而MyEclipse官网下载的是必须安装才能使用的。2.3Java语言Java语言的流行到现在依然是程序开发行业的标杆之一,就能看出Java语言的魅力所在了。Java语言是强类型语言,特别适合某些大中型企业对于程序运行的稳定要求,之所以说Java稳定,在于Java的可移植性,适合各种类型的服务器平台,像那些嵌入式语言或者其他只能在某个平台上运行的语言,已经逐渐的开始学习Java语言的特性了,各种语言都在不断的吸收对方的优点来强化自身,虽然出现了很多小众的语言来解决特定的业务需求,但是非特定需求还是需要强壮的Java语言来进行开发。Java这个强类型语言,要求对各种数据类型进行强制性的定义,就像考驾照一样,大家必须遵守一定的规则,类似于红灯停绿灯行这样的要求,Java语言比考驾照更严谨,如果出现未定义的变量类型,那么在开发过程中,只能的IDE就会提示你未定义某某变量,甚至不用等你运行程序就能明白错误在哪里。Java语言可移植的特性在于Java程序并不是直接运行在各种服务器平台上面,而是运行在属于自己的Java平台上面,也就是翻译过来的Java虚拟机,Java虚拟机有各种服务器版本,这个由Java语言的公司来进行开发和提供,我们只需要免费使用即可,不用考虑开发出来的程序具体是运行在哪个平台上面。2.4SpringBoot框架随着计算机语言的不断发展,比如Python或者JavaScript,只需要敲几行命令就可以把一些需要的库文件下载下来,然后敲少许的代码就可以引用,而Java的开发者还需要研究可能会用到哪些JAR包或者哪些Maven里面的库,以及如何在代码里进行引用,这是一个问题。所以,吸收了其他语言的优点,SpringBoot框架就出现了。SpringBoot框架里面内置的一个通用的配置,除非项目比较小众,如果是大众化的项目完全可以不需配置,直接使用内置的配置即可。采用SpringBoot开发一些微型的项目是速度很快的。

第3章系统分析课题的确定,对本人的后续研究提供了主要方向。通过在各大专业网站上搜索相关文献,了解相关可实现的技术知识以及功能大致相同的实现,结合本课题的具体实现具体分析,才能分析出课题的具体功能。系统分析主要是对功能实现提供最主要的理论支撑,会影响到后续的所有开发环节,所以很重要。3.1可行性分析任何系统的开发过程都非常漫长且充满坎坷,所以一旦确定系统进入开发阶段,就不能放弃。为了避免出现中途放弃开发系统这样的现象,提高系统的开发成功率,前期的可行性分析就能够为系统是否能够达到目标提供充分的分析材料,也是为系统能否进入开发阶段提供依据。3.1.1技术可行性在宠物寄养服务系统的开发中,所使用的语‎‏言是Jav‎‏a,在开发过程中主要基于‎‏SpringBoot框架‎‏,并且‎‏整个开发思路‎‏采用M‎‏VC设计模式‎‏,弹性管理代码,Idea‎‏是现今‎‏做得最‎‏好的一款多语‎‏言集成开发环‎‏境。目前来说,这些技术在相关系统里的应用是广泛的,所以说用这些技术来完成宠物寄养服务系统的开发是没有问题的。并且这些技术我可以很好的掌握。因此,在技术上是可行的。3.1.2经济可行性在系统开发期间,无论是系统的开发平台,还是系统开发运用的技术目前都能通过网络成功获取,并且不需要支付费用,所以在技术方面不存在费用支出。但是本系统用于计算机代替人工处理种类繁多的数据,在一定程度上方便了管理者,在数据处理效率上也有明显的提升,同时相较于之前的人工管理,该系统也节省了人工成本,所以系统开发经济可行。3.1.3操作可行性每个用户在使用系统过程中,可能运用的浏览器和操作系统都不一样,所以本系统在设计中,需要考虑系统兼容性,让不同用户在不同环境以及不同条件下都能正常使用系统。同时系统的界面布局合理,界面导航功能清晰,用户能够在短期培训之后可以轻松使用系统,对于那些有计算机操作基础的用户,可以免培训即可操作本系统。因此,系统操作可行。3.2功能需求分析本系统主要分为用户和管理员两种角色,具体功能描述如下。针对管理员角色,系统允许其操作所有的功能,主要包括增删改查寄养服务信息,寄养宿舍信息,寄养接送信息,寄养医疗信息,医疗预约信息等。管理员用例图如图3.1所示。针对用户角色,可以进行注册、登录、查看订单、服务类型浏览、支付、充值、订单评价、订单留言。用户用例图如图3.2所示。寄养订单管理寄养订单管理订单留言管理订单留言管理寄养服务管理寄养服务管理寄养宿舍管理寄养宿舍管理寄养接送管理寄养接送管理寄养医疗管理寄养医疗管理用户管理用户管理轮播图管理轮播图管理员工信息管理员工信息管理图3.1管理员用例图服务类型浏览服务类型浏览支付充值订单评价订单留言注册登录订单查看图3.2用户用例图3.3非功能性需求分析本节将从接口设计要求,可靠性需求等角度来分析系统在非功能层面上的需求。3.3.1性能需求本系统投入使用之后,不可能只是单一用户操作使用,因此该系统要支持很多个用户的连接,同时也能支持许多用户同时操作本系统。3.3.2功能操作故障当系统运行期间,遇到了功能操作上的故障时,系统应该不能受到任何影响,还能继续提供功能服务。3.3.3接口设计要求本系统在接口的设计上一定要规范化设计,在定义接口时要始终遵循使用方便,扩展方便以及很容易让人理解的原则进行开展。3.3.4可靠性需求系统的可靠性需求表现在系统可利用性以及系统维护时间上面这两方面的需求。从系统可利用性方面来讲,系统应做到7×24小时连续运行。3.4系统流程分析任何一个流程图都是反应了对应事务的处理逻辑,通常都有开始与结束的标识,中间是事务处理的各种逻辑,包括输入的数据以及判断逻辑等信息。3.4.1系统操作流程用户在登录界面,输入用户名和密码后,会与数据库里的数据进行比对查看是否正确,如果正确将进入网站首页,不正确将返回登录页面。如图3.3所示。开始开始系统登录界面系统登录界面输入用户名密码输入用户名密码验证信息是否正确否验证信息是否正确否信息错误信息错误是是网站首页网站首页结束结束图3.3系统操作流程3.4.2信息添加流程用户添加数据会先判断是否符合这数据的合法性,才会进行添加或者重新输入,用户添加数据不仅需要根据宠物寄养服务系统的界面的提示字段填写信息,还要注意已录入数据的合法性,因为系统只会成功提交合法的数据。如图3.4所示。是是开始自动生成号输入数据是否合法写入数据库结束否图3.4信息添加流程3.4.3信息删除流程宠物寄养服务系统经历了长时间使用之后,用户就需要删除无用或重复的数据。系统为了保护这些数据,也为了避免用户的误删现象,每次在删除数据前则会再三提示用户是否确定删除数据。当用户确定之后,系统才会执行数据删除功能。如图3.5所示。更新数据库更新数据库结束开始选择要删除的记录是否删除是否删除是否删除

图3.5信息删除流程

第4章系统设计4.1系统总体设计根据需求分析的结果,按照了高内聚和低耦合的原则将系统划分为用户管理模块、寄养服务管理模块、员工信息管理模块、寄养宿舍管理模块、寄养医疗管理模块、轮播图管理模块、寄养订单管理模块、订单留言管理模块、寄养接送管理模块、医疗预约管理模块。其系统功能结构图如图4.1所示。基于SpringBoot的宠物寄养服务系统基于SpringBoot的宠物寄养服务系统订单留言管理寄养服务管理寄养接送管理寄养订单管理轮播图管理医疗预约管理寄养宿舍管理寄养医疗管理员工信息管理用户管理 订单留言管理寄养服务管理寄养接送管理寄养订单管理轮播图管理医疗预约管理寄养宿舍管理寄养医疗管理员工信息管理用户管理图4.1系统功能结构图4.2数据库设计数据库的设计是对系统相关数据要求的具体设计。需要对各个对象进行数据类型具体化,比如每个表都要有自己的主键,有些关键性数据不可以直接采用删除操作,只能采用伪装删除的操作,比如专门设置一个字段就是删除标记字段,默认没删除就是0,如果已经删除则设置为1,这样如果有大量数据的删除,只需要更新相关字段的值就行,不需要大量的对磁盘进行删除操作,在性能上面有很大的提升。目前市场上主流的数据库基本上都符合设计的功能需求,但是一切要根据实际出发,首先开发使用的电脑是自己上学用的,那么首选对电脑性能要求没那么高的数据库,其次尽量使用自己曾经学习过的数据库,这样学习成本会降低,时间上就有空余的时间来安排其他事情。本系统通过数据库设计相关的分析,采用MySQL数据库。4.2.1概念结构设计数据库概念设计的目的就是为了建立概念数据模型,现实世界有很多相关的数据,如何应用到数据库存放就需要进行归类,实体和属性之间的关系是需要用图的形式进行描述的,接下来展示本系统的部分实体属性图。(1)寄养服务实体属性图如图4.3所示。寄养服务寄养服务是否上架服务标题ID现价/天服务类型寄养地址录入时间服务编号服务内容服务介绍服务热度图4.3寄养服务实体属性图(2)寄养医疗实体属性图如图4.4所示。寄养医疗寄养医疗医疗类型录入时间ID医疗花费医疗时间医疗编号医疗状态员工服务订单医疗标题医疗地点图4.4寄养医疗实体属性图(3)寄养宿舍实体属性图如图4.5所示。寄养宿舍寄养宿舍宿舍类型宿舍备注ID宿舍位置住宿编号寄养服务订单住宿状态床号录入时间图4.5寄养宿舍实体属性图(4)寄养接送实体属性图如图4.6所示。寄养接送寄养接送接送编号地点ID接送标题员工寄养服务订单接送时间类型录入时间图4.6寄养接送实体属性图(5)用户实体属性图如图4.7所示。用户用户身份证号用户姓名ID头像创建时间性别手机号账户密码邮箱余额图4.7用户实体属性图(6)宠物实体属性图如图4.8所示。宠物重量宠物重量宠物类型宠物类型宠物宠物名字宠物大小宠物宠物名字宠物大小图4.8宠物实体属性图4.2.2逻辑结构设计逻辑结构设计是将概念结构设计阶段完成的概念模型,转换成能被选定的数据库管理系统(DBMS)支持的数据模型。通过对数据进行分析和归纳,二维表用来描述和存储相关数据。宠物寄养服务系统数据表设计结果展示如下:(1)公告表用来存储公告信息,其表结构如表4.1所示。表4.1公告表字段类型说明允许空id(主键)int(11)编号不允许空namevarchar(10)公告名称允许空photovarchar(15)公告图片允许空typesint(11)公告类型不允许空insert_timetimestamp公告发布时间允许空contenttext公告详情允许空create_timetimestamp创建时间允许空(2)寄养服务表用来存储服务的全部信息,其表结构如表4.2所示。表4.2寄养服务表字段类型说明允许空id(主键)int(11)编号不允许空namevarchar(12)寄养服务标题允许空numbervarchar(10)服务编号允许空photovarchar(20)服务内容允许空addressvarchar(10)寄养地址允许空typesint(11)寄养服务类型允许空old_moneydecimal(10,2)寄养服务原价允许空new_moneydecimal(10,2)现价/天允许空clicknumint(11)寄养服务热度允许空contenttext寄养服务介绍允许空typesint(11)是否上架允许空deleteint(11)逻辑删除允许空insert_timetimestamp录入时间允许空create_timetimestamp创建时间允许空(3)员工表用来存储员工信息,其表结构如表4.3所示。表4.3员工表字段类型说明允许空id(主键)int(11)编号不允许空usernamevarchar(15)账户允许空passwordvarchar(10)密码允许空numbervarchar(20)员工编号允许空namevarchar(20)员工姓名允许空phonevarchar(15)员工手机号允许空id_numbervarchar(13)员工身份证号允许空photovarchar(10)员工头像允许空sex_typesint(11)性别允许空emailvarchar(20)员工邮箱允许空new_moneydecimal(10,2)余额允许空create_timetimestamp创建时间允许空(4)寄养服务订单表用来存储订单信息,其表结构如表4.4所示。表4.4寄养服务订单表字段类型说明允许空id(主键)int(11)编号不允许空numbervarchar(20)订单编号允许空idint(11)寄养服务允许空yonghu_idint(11)用户允许空namevarchar(20)宠物名字允许空zhongliangdecimal(10,2)宠物重量允许空typesint(11)宠物类型允许空typesint(11)宠物大小允许空ianxirenvarchar(20)联系人允许空lianxifangshivarchar(20)联系手机号允许空buy_numberint(11)寄养天数允许空timetimestamp寄养时间允许空true_pricedecimal(10,2)实付价格允许空typesint(11)订单类型允许空insert_timetimestamp申请时间允许空create_timetimestamp创建时间允许空(5)寄养宿舍表用来存储宿舍信息,其表结构如表4.5所示。表4.5寄养宿舍表字段类型说明允许空id(主键)int(11)编号不允许空idint(11)寄养服务订单允许空numbervarchar(8)住宿编号允许空weizhivarchar(10)宿舍位置允许空chuanghaovarchar(9)床号允许空typesint(11)宿舍类型允许空Zhusu_typesint(11)住宿状态允许空texttext宿舍备注允许空insert_timetimestamp录入时间允许空create_timetimestamp创建时间允许空(6)寄养服务留言表用来存储留言信息,其表结构如表4.6所示。表4.6寄养服务留言表字段类型说明允许空id(主键)int(11)编号不允许空jiyangfuwu_idint(11)寄养服务允许空yonghu_idint(11)用户允许空texttext留言内容允许空insert_timetimestamp留言时间允许空reply_texttext回复内容允许空update_timetimestamp回复时间允许空create_timetimestamp创建时间允许空(7)寄养接送表用来存储接送订单信息,其表结构如表4.7所示。表4.7寄养接送表字段类型说明允许空id(主键)int(11)编号不允许空jiyang_idint(11)寄养服务订单允许空yuangong_idint(11)员工允许空namevarchar(10)接送标题允许空numbervarchar(5)接送编号允许空timetimestamp接送时间允许空addressvarchar(6)地点允许空typesint(11)类型允许空contenttext接送备注允许空insert_timetimestamp录入时间允许空create_timetimestamp创建时间允许空(8)寄养医疗表用来存储医疗订单信息,其表结构如表4.8所示。表4.8寄养医疗表字段类型说明允许空id(主键)int(11)编号不允许空yuangong_idint(11)员工允许空jiyang_idint(11)寄养服务订单允许空numbervarchar(8)医疗编号允许空namevarchar(10)医疗标题允许空timetimestamp医疗时间允许空addressvarchar(10)医疗地点允许空typesint(11)医疗类型允许空moneydecimal(10,2)医疗花费允许空contenttext医疗详情允许空typesint(11)医疗状态允许空insert_timetimestamp录入时间允许空create_timetimestamp创建时间允许空(9)管理员表用来存储管理员信息,其表结构如表4.9所示。表4.9管理员表字段类型说明允许空id(主键)bigint(20)编号不允许空usernamevarchar(10)学生名不允许空passwordvarchar(10)密码不允许空rolevarchar(10)角色允许空addtimetimestamp新增时间不允许空(10)医疗预约表用来存储医疗预约信息,其表结构如表4.10所示。表4.10医疗预约表字段类型说明允许空id(主键)int(11)编号不允许空yonghu_idint(11)用户允许空jiyang_idint(11)寄养服务订单允许空numbervarchar(8)医疗编号允许空namevarchar(10)申请医疗标题允许空timetimestamp申请治疗时间允许空addressvarchar(100)申请医疗地点允许空typesint(11)医疗类型允许空contenttext申请医疗内容允许空insert_timetimestamp申请时间允许空typesint(11)预约状态允许空texttext审核意见允许空timetimestamp审核时间允许空create_timetimestamp创建时间允许空(11)用户表用来存储用户信息,其表结构如表4.11所示。表4.11用户表字段类型说明允许空id(主键)int(11)编号不允许空usernamevarchar(80)账户允许空passwordvarchar(10)密码允许空yonghu_namevarchar(10)用户姓名允许空yonghu_phonevarchar(20)用户手机号允许空yonghu_id_numbervarchar(20)用户身份证号允许空yonghu_photovarchar(15)用户头像允许空sex_typesint(11)性别允许空yonghu_emailvarchar(200)用户邮箱允许空new_moneydecimal(10,2)余额允许空create_timetimestamp创建时间允许空

第5章系统实现当需要描述系统具体实现的功能点的时候,一方面肯定是要用文字表达实现的功能,另一方面完全可以从系统的具体实现页面把可以用文字描述的操作界面以图片的形式放到文字的下方,这样的表达方式可谓之言之有物,更容易理解系统实现的功能部分。5.1登录1、当用户为首次进入系统时,需要点击“注册用户”按钮来进行登录注册,用户注册时需要输入账号、密码、姓名、手机号、身份证号等信息,用户注册界面如图5.1所示。图5.1用户注册界面2、当用户注册成功后,可以去用户登录界面进行登录,如图5.2所示。管理员和员工可以直接进行登录,如图5.3所示。图5.2用户登录界面图5.3管理员和员工登录界面关键代码如下:*登录@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",username));if(u==null||!u.getMima().equals(password)){returnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(u.getId(),username,"yonghu","用户");returnR.ok().put("token",token);*注册*/@IgnoreAuth@RequestMapping("/register")publicRregister(@RequestBodyYonghuEntityyonghu){//ValidatorUtils.validateEntity(yonghu);YonghuEntityu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("zhanghao",yonghu.getZhanghao()));if(u!=null){returnR.error("注册用户已存在");}LonguId=newDate().getTime();yonghu.setId(uId);yonghuService.insert(yonghu);returnR.ok();}5.2用户管理1、图5.4展示的是用户管理界面。此界面展示了用户的账号,用户姓名,留言内容等信息。每个用户的右侧区域都展示了可供管理员操作的功能,包括修改,重置密码,删除,查看详情。图5.5展示个人信息维护界面。可以更改用户自己的各种信息,充值等操作。图5.4用户管理界面图5.5个人信息维护界面2、用户可以进行密码修改,如果密码修改的两次新密码不一致就会显示如图5.6,如果两次密码一致密码修改完成就会显示如图5.7修改密码成功。图5.6用户修改密码失败界面图5.7用户修改密码成功界面用户修改信息关键代码:publicclassUserChangePwdextendsHttpServlet{privateUserServiceuService=newUserService();protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringpassword=request.getParameter("password");StringnewPwd=request.getParameter("newPassword");Useru=(User)request.getSession().getAttribute("user");if(password.equals(u.getPassword())){u.setPassword(newPwd);uService.updatePwd(u);request.setAttribute("msg","密码修改成功!,请重新登录");request.getRequestDispatcher("/login_01.jsp").forward(request,response);}else{request.setAttribute("failMsg","Error,oldPasswordnotture");request.getRequestDispatcher("/ce_user_password.jsp").forward(request,response);}}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}5.3寄养服务管理1、图5.8展示的是寄养服务管理界面。此界面展示了服务内容,服务类型,是否上架等信息。每条寄养服务的右侧区域都展示了可供管理员操作的功能,包括修改,上架或者下架,删除,查看详情。图5.8寄养服务管理界面2、图5.9展示的是用户寄养界面。此界面展示订单类型,实付价格,申请时间等信息。同意寄养的宠物可以点击寄养来进行付款寄养,完成该宠物的寄养服务。图5.10展示的是用户寄养付款后界面。用户点击了寄养就会自动扣除用户余额的钱,然后发出申请等待管理员审核就可以开始寄养宠物。图5.9用户寄养界面图5.10用户寄养付款后界面实现该部分关键代码:publicPageUtilsqueryPage(Map<String,Object>params,Wrapper<FangyuanxinxiEntity>wrapper){Page<FangyuanxinxiView>page=newQuery<FangyuanxinxiView>(params).getPage();page.setRecords(baseMapper.selectListView(page,wrapper));PageUtilspageUtil=newPageUtils(page);returnpageUtil;}publicQuery(Map<String,Object>params){this.putAll(params);if(params.get("page")!=null){currPage=Integer.parseInt((String)params.get("page"));}if(params.get("limit")!=null){limit=Integer.parseInt((String)params.get("limit"));}this.put("offset",(curr1)*limit);this.put("page",currPage);this.put("limit",limit);Stringsidx=SQLFilter.sqlInject((String)params.get("sidx"));Stringorder=SQLFilter.sqlInject((String)params.get("order"));this.put("sidx",sidx);this.put("order",order);//mybatis-plus分页this.page=newPage<>(currPage,limit);//排序if(StringUtils.isNotBlank(sidx)&&StringUtils.isNotBlank(order)){this.page.setOrderByField(sidx);this.page.setAsc("ASC".equalsIgnoreCase(order));}5.4员工信息管理1、图5.11展示的是员工管理界面。此界面展示了员工手机号,员工邮箱,员工姓名等信息。每条员工信息都有可供管理员操作的功能,包括修改信息,重置密码,删除。图5.11员工管理界面2、员工点击个人中心后进入个人信息界面,如图5.12所示可以看到员工头像、编号、手机号。现把手机号进行修改,修改后的界面如图5.13所示。图5.12员工修改信息前界面图5.13员工修改信息后界面修改员工信息关键代码:@RequestMapping("/update")publicRupdate(@RequestBodyYuangongEntityyuangong,HttpServletRequestrequest)throwsNoSuchFieldException,ClassNotFoundException,IllegalAccessException,InstantiationException{logger.debug("update:,,Controller:{},,yuangong:{}",this.getClass().getName(),yuangong.toString());YuangongEntityoldYuangongEntity=yuangongService.selectById(yuangong.getId());//查询原先数据Stringrole=String.valueOf(request.getSession().getAttribute("role"));if("".equals(yuangong.getYuangongPhoto())||"null".equals(yuangong.getYuangongPhoto())){yuangong.setYuangongPhoto(null);}yuangongService.updateById(yuangong);//根据id更新returnR.ok();}5.5寄养宿舍管理1、图5.14展示的是寄养宿舍管理界面。此界面展示了宿舍订单类型,宿舍位置,宿舍编号等信息。每条宿舍信息都有可供管理员操作的功能,包括修改信息,查看详情,删除。图5.14寄养宿舍管理界面2、管理员可以在后台对已经寄养的宠物进行宿舍分配,可以为宠物分配宿舍床号、位置、宿舍类型、选择住宿状态,如图5.15所示。管理员分配后的宿舍,用户可以在自己的寄养宿舍中查看到自己的宠物名字、住宿类型、住宿编号等如图5.16所示。图5.15管理员分配宿舍界面

图5.16用户查看宠物宿舍界面宿舍添加关键代码:publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;"); PrintWriterout=response.getWriter(); conncn=newconn(); Stringpltitle=request.getParameter("pltitle"); Stringpldetail=request.getParameter("pldetail"); Stringsql="insertintonotices(pltitle,pldetail,pldate)values('"+pltitle+"','"+pldetail+"',now())"; cn.update(sql); out.println("<script>"); out.println("alert('添加成功!');"); out.println("window.location='admin/notices/notices_Add.jsp'"); out.println("</script>"); out.flush(); out.close(); }5.6寄养医疗管理1、图5.17展示的是寄养医疗管理界面。此界面展示了医疗编号,医疗地点,医疗状态等信息。每条医疗信息都有可供管理员操作的功能,包括查看详情,修改信息,删除。图5.17寄养医疗管理界面2、用户的寄养医疗界面上显示了医疗时间、医疗地点等信息,用户提交寄养治疗需要缴费如图5.18所示。用户点击我要缴费会自动扣除用户余额,用户缴费成功后的界面如图5.19。图5.18用户医疗缴费前界面图5.19用户医疗缴费后界面寄养医疗关键代码: @RequestMapping("/update")

publicRupdate(@RequestBodyJiyangyiliaoEntityjiyangyiliao,HttpServletRequestrequest)throwsNoSuchFieldException,ClassNotFoundException,IllegalAccessException,InstantiationException{

logger.debug("updateController:{},,jiyangyiliao:{}" this.getClass().getName(),jiyangyiliao.toString());

JiyangyiliaoEntityoldJiyangyiliaoEntity=jiyangyiliaoService.selectById(jiyangyiliao.getId());

Stringrole=String.valueOf(request.getSession().getAttribute("role"));;

jiyangyiliaoService.updateById(jiyangyiliao);//根据id更新

returnR.ok();

}5.7寄养接送管理1、图5.20展示的是寄养接送管理界面,此界面展示了宠物名字,员工姓名,地点,接送时间等信息。每条寄养接送信息的右侧区域都有可供管理员选择的操作,包括修改,详情,删除等。图5.20寄养接送管理界面2、管理员可以进行寄养接送订单的增加如图5.21,可以填写寄养订单、宠物名字、宠物类型、联系人。管理员新增订单后,用户界面就可以看见接送订单信息,可以查看接送备注如图5.22所示

图5.21管理员新增接送订单界面图5.22用户接送界面接送列表关键代码:@ResponseBodypublicStringupdateStatus(HttpSessionsession,Stringproduct_id,Stringstatus){Jeisong=newjiesong();Productproduct=newProduct();product.setProduct_id(Integer.valueOf(product_id));product.setProduct_isEnabled(Byte.valueOf(status));Booleanyn=productService.update(product);if(yn){jsonObject.put("success",true);}else{jsonObject.put("success",false);thrownewException();}returnjsonObject.toJSONString();}5.8医疗预约管理1、图5.23展示的是医疗预约管理界面。此界面展示了用户姓名,医疗编号,申请医疗地点,申请治疗时间等信息。每条医疗预约信息右侧区域都有可供管理员选择的操作,包括查看详情,修改,删除操作。图5.23医疗预约管理界面2、图5.24展示的是用户申请医疗预约界面。此界面展示了用户可以填写的申请医疗标题,申请治疗时间等信息。用户填写好医疗预约的信息就可以进提交医疗预约。然后管理员就会看到预约信息图5.25,管理员就可以进行审核是否同意医疗预约如图5.26。图5.24用户申请医疗预约界面图5.25医疗预约管理界面图5.26管理员审核医疗预约界面预约审核关键代码:@RequestMapping("/shenhe")publicRshenhe(@RequestBodyYiliaoyuyueEntityyiliaoyuyueEntity,HttpServletRequestrequest){logger.debug("shenhe:,,Controller:{},,yiliaoyuyueEntity:{}",this.getClass().getName(),yiliaoyuyueEntity.toString());YiliaoyuyueEntityoldYiliaoyuyue=yiliaoyuyueService.selectById(yiliaoyuyueEntity.getId());//查询原先数据yiliaoyuyueEntity.setYiliaoyuyueShenheTime(newDate());//审核时间yiliaoyuyueService.updateById(yiliaoyuyueEntity);//审核returnR.ok();}5.9轮播图管理图5.27展示的是轮播图管理界面。界面展示了轮播图图片,轮播图名称。每条轮播图右侧区域都有可供管理员选择的操作,包括查看详情,修改,删除操作。图5.27轮播图管理界面轮播图管理关键代码:publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html;"); PrintWriterout=response.getWriter(); conncn=newconn(); Stringpltitle=request.getParameter("pltitle"); Stringpldetail=request.getParameter("pldetail"); Stringsql="insertintonotices(pltitle,pldetail,pldate)values('"+pltitle+"','"+pldetail+"',now())"; cn.update(sql); out.println("<script>"); out.println("alert('添加成功!'); out.println("window.location='admin/notices/notices_Add.jsp'"); out.println("</script>"); out.flush(); out.close(); }5.10寄养订单管理1、图5.28展示的是寄养订单管理界面。此界面展示了订单编号,宠物名字,宠物重量,宠物类型,宠物大小等信息。每条订单右侧区域都有可供管理员选择的操作,包括查看详情,修改,删除操作。图5.28寄养订单管理界面2、用户查看寄养订单信息显示宠物大小、联系人、寄养天数、实付价格等信息,用户可以点击取消寄养按钮如图5.29所示,用户点击取消寄养后如图5.30所示。图5.29用户查看寄养订单信息界面图5.30用户取消寄养订单信息界面订单列表关键代码:@IgnoreAuth@RequestMapping("/list")

publicRlist(@RequestParamMap<String,Object>params,HttpServletRequestrequest){

logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

CommonUtil.checkMap(params);

PageUtilspage=jiyangfuwuJiyangService.queryPage(params);

List<JiyangfuwuJiyangView>list=(List<JiyangfuwuJiyangView>)page.getList();

for(JiyangfuwuJiyangViewc:list)

dictionaryService.dictionaryConvert(c,request);

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

}5.11订单留言管理1、图5.31展示的是订单留言管理界面。此界面展示了寄养服务标题,用户姓名,留言内容,留言时间,回复内容,回复时间。每条寄养服务留言右侧区域都有可供管理员选择的操作,包括查看详情,回复,删除操作。2、图5.32展示的是用户订单留言的界面。此界面可进行输入留言然后提交进行留言,还可以看到别的用户和自己的留言和管理员的回复内容。用进行留言后管理就会看到用户留言信息如图5.31,之后管理员可以进行回复用户的留言如图5.33可以进行提交在界面。图5.31订单留言管理界面图5.32用户订单留言界面图5.33管理员回复用户留言界面订单留言关键代码:@app.route('/commentLog',methods=['POST'])defcommentLog():get_id=request.get_json()uid=get_id.get('uid')pid=get_id.get('pid')cid=get_id.get('cid')curTime=get_id.get('time')comment=get_id.get('comment')parentId=get_id.get('parentId')withopen(f'log/comment.log','a+',encoding='utf-8')asf:f.write(f"{uid},{pid},{cid},{parentId},{curTime},{comment}\n")globalcommentCountcommentCount+=1第6章系统测试6.1测试方法本系统采用黑盒测试,在进行黑盒测试时,通过与期望结果进行对比,可以更容易地发现存在的问题。通过采用黑盒测试方法,可以有效地检测系统的功能和性能,为系统的稳定运行提供保障。6.2功能测试6.2.1用户管理测试过程:打开宠物寄养服务系统,登录管理员,测试是否可以管理每个用户和管理员的详细信息。1.管理员和用户在系统中输入相应的有效信息,并在输入错误的信息时会提示,界面如图6.1所示:图6.1用户或管理员登录失败提示界面2.用户输入正确的用户名和密码,会进入系统,界面如图6.2所示: 图6.2用户登录成功界面3.管理员输入正确的用户名和密码,会进入系统,界面如图6.3所示:图6.3管理员登录成功界面4.管理员修改用户信息,将用户余额从0修改为1000。修改结果界面如图6.4、6.5所示:图6.4管理员修改用户信息界面图6.5修改成功后的用户管理界面5.管理员添加员工个人信息,添加的用户为a6,姓名为守望先锋,性别男,员工邮箱为215625263@,余额为1111。如果填入无效或者省略部分选项的填写,则回给出相应的指引,填入有效正确的信息,会弹出相应的提示。如图6.6、6.7所示:图6.6管理员添加员工界面图6.7添加成功后的员工管理界面6.2.2寄养服务管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以对寄养服务进行管理。1.管理员点击寄养服务管理进入服务管理界面,点击修改进入修改寄养服务介绍的界面显示如图6.8所示:图6.8管理员编辑寄养服务介绍界面2.管理员修改服务订单,修改寄养服务介绍将一只美短猫修改为寄养服务介绍17,界面显示如图6.9所示:图6.9修改成功后的服务介绍界面3.管理员下架服务订单,下架寄养服务标题12的订单,点击下架后会询问是否要下架如图6.10所示,下架成功界面显示如图6.11所示:图6.10管理员点击寄养服务下架界面图6.11下架服务成功后的服务管理界面6.2.3员工信息管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以对员工进行管理。1.管理员点击员工管理,查看员工姓名为守望先锋的详情,界面显示如图6.12所示:图6.12管理员查看员工详情界面2.管理员重置员工登录密码,界面显示如图6.13所示:图6.13管理员重置员工登录密码界面6.2.4寄养宿舍管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以对寄养宿舍进行管理。1.管理员点击寄养宿舍管理,查看宿舍位置为1的内容,界面显示如图6.14所示:图6.14管理员查看宿舍详情界面2.管理员删除宿舍位置为1的宿舍,删除前的界面显示如图6.15所示,删除后的界面显示如图6.16所示:图6.15删除前宿舍管理界面图6.16删除后宿舍管理界面6.2.5寄养医疗管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以对寄养医疗进行管理。1.管理员添加医疗订单,先选择寄养服务订单,点击豆豆,再选择进行医疗的员工,选择守望先锋,填入医疗标题呕吐,填入医疗地点海伦,填入医疗花费100,选择医疗时间2023.4.900:00:00,医疗状态已缴费界面,添加界面如图6.17所示,添加成功在界面显示如图6.18所示:图6.17管理员添加寄养医疗订单界面图6.18管理员添加寄养医疗成功界面2.管理员查询已有的订单,查询订单类型为已取消寄养,查询结果如图6.19所示:图6.19管理员查询寄养医疗订单成功界面6.2.6寄养接送管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以寄养接送进行管理。1.管理员新增一个接送订单,接送地点为海伦,接送类型为接为界面显示如图6.20所示,成功界面如图6.21所示:图6.20管理员新增接送订单员界面图6.21新增订单成功后的接送管理界面2.管理员查看接送寄养时间为2023.3.10日的订单详情,成功界面如图6.22所示:图6.22接送订单详情界面6.2.7医疗预约管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以医疗预约进行管理。1.管理员查看订单编号为1678333789675的预约订单详情界面,成功界面如图6.23所示:图6.23医疗预约订单详情界面2.管理员医疗预约订单的状态改为同意预约,成功界面如图6.24所示:图6.24同意预约订单界面6.2.8轮播图管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以轮播图进行管理。1.管理员在轮播图管理界面点击新增,新增一个轮播图姓名为轮播图5的轮播图,成功界面如图6.25和图6.26所示:图6.25管理员添加轮播图界面图6.26添加轮播图成功后轮播图管理界面2.管理员点击轮播图管理,查看轮播图2的详情,如图6.27所示:图6.27轮播图详情界面6.2.9寄养订单管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以寄养服务订单进行管理。1.管理员可以进行对寄养订单的全部功能管理,订单管理详情界面如图6.28所示:图6.28订单管理详情界面2.管理员修改订单为已寄养、已同意寄养、已取消寄养和已申请寄养如图6.29所示,现在将订单编号为1678328834712从已寄养改为已取消寄养如图6.30和图6.31所示:图6.29订单类型界面图6.30订单类型修改前订单管理界面图6.31订单类型修改后订单管理界面6.2.10订单留言管理测试过程:打开宠物寄养管理系统,登录管理员,测试管理员是否可以寄养服务留言进行管理。1.管理员可以查看留言详情,界面如图6.32所示:图6.32订单留言详情界面2.管理员可以对留言进行回复,回复信息为你好界面如图6.33所示,提交成功界面如图6.34所示:图6.33管理员回复留言界面图6.34回复留言成功后留言管理界面6.3测试结论经过使用多个测试用例对系统的部分功能进行了全面测试,整个系统在测试过程中,都能很好的把正确数据呈现给用户,不管是从系统的功能上、还是从系统的使用上,基本上都能达到当初预计的结果。

结论本文设计实现了宠物寄养服务系统,该系统主要采用Java开发,使系统在安全、可维护和易扩展方面都有了极大的提高,在系统实现中,使用了SpringBoot框架提高了系统的开发效率和代码质量。本文介绍了该系统的需求分析和系统设计,包括系统架构、数据库设计、用户界面设计等。实现的功能主要有用户管理、寄养服务管理、员工信息管理、寄养宿舍管理、寄养医疗管理、轮播图管理、寄养订单管理、订单留言管理、寄养接送管理、医疗预约管理。已经修复在测试过程得知的bug等问题,现阶段系统可以正常的运行并使用。从背景到需求分析到系统设计与代码实现,再到部分功能测试,本次开发从每一个开发

温馨提示

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

评论

0/150

提交评论