




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGEIII摘要随着中国城市经济社会的迅速发展,以及人民的生活水平日益提升,更多的家庭开始选择以饲养宠物作为排解压力的一种方法,也有人更将宠物视为亲人,成为生活中不可缺少的一部分。然而由于寄养模式的落后,在节假日前后需要寄养宠物的不断增多,随之而来的是卫生、交通和安全等问题越来越突出。如何有效的加强对宠物寄养的管理,促使人们在进行宠物寄养时,能更好地得到享有的权益,更加规范、专业化的寄养宠物,成为相关管理部门和饲养宠物的主人所关注的重点。本文通过对宠物寄养的现状进行分析,总结了目前宠物寄养平台在各方面存在的优缺点,再对课题的研究背景和实现意义做了详细的分析和介绍,对国内外的宠物市场及其相关行业发展情况做了简要的对比和介绍。其次简要介绍了实现本宠物寄养系统所需要的关键技术,SpringBoot的使用可以让我们进行更为简单、快速、方便地开发,使用MyBatis持久层框架降低SQL语句使得代码结构低耦合,使用开源免费的MySQL数据库来存储宠物寄养业务数据和基础用户数据,前端框架使用LayUI使得系统界面简洁、操作便捷。总的来说,宠物寄养系统的功能基本实现,同时性能和安全性也得到了相应的保障;系统解决了饲主由于工作或度假等多方面原因无法照料宠物的问题,利用Java等相关开发技术,提出并实现了一个基于SpringBoot的宠物寄养系统,为宠物寄养管理提供一个综合、全面的信息管理系统。关键字:SpringBoot;宠物寄养;管理系统目录TOC\o"1-2"\h\u30589第一章绪论 1211001.1项目研究背景与意义 1272951.2国内外研究现状 3233521.3论文主要研究内容 33261.4论文组织结构 432061第二章相关概念与技术理论综述 5322242.1前端开发技术介绍 585932.2后端技术介绍 5317762.3MySQL介绍 6144042.4本章小结 62641第三章系统需求分析 77483.1可行性分析 716113.2用户需求分析 8185063.3软件需求 1289353.4非功能性需求 12252023.5本章小结 1325118第四章系统总体设计 14253094.1系统总体设计思路 14290004.2系统总体架构设计 1592844.3系统功能模块设计 1774.4系统数据库设计 1982614.5本章小结 2512266第五章系统详细设计与实现 26202405.1系统环境 26270865.2寄养商品管理模块设计与实现 27188735.3宠物寄养模块设计与实现 3039615.4寄养工作管理模块设计与实现 37276185.5宠物领养模块设计与实现 40294655.6本章小结 4522482第六章系统测试 4629386.1测试环境 4662046.2主要功能测试 46213016.3性能测试 53136316.4本章小结 5429231第七章总结与展望 55323607.1总结 5530917.2展望 556587参考文献 569146致谢 57PAGEPAGE1绪论1.1项目研究背景与意义随着中国九十年代的经济快速发展,人们在思想上不断进步改变,而且生活上也开始富裕起来了,大批人也就是从此刻开始饲养宠物,宠物开始逐渐成为人们最好的朋友。在美国,以猫和狗等宠物为伴侣大多数都为老年人和穷人,而中国却相反,在家里养宠物的的人则更多地集中在“80”和“90”的年轻群体上。青年人的教育水平有所提高,由于生活和工作的快速发展以及高房价带来的压力,人们的生育意愿急剧下降,猫和狗开始成为家庭中不可缺少的一员。在中国,养宠物的家庭越来越多,宠物数量在急剧飙升,同时宠物已经成为很多家庭不可或缺的成员[1]。但由于饲养家庭中会出现出差或者旅行等各种原因,拥有宠物者不得不与宠物暂时分别,造成“空巢宠物”的出现,此如何合理地安置宠物就成了宠物主人必须考虑的一大问题[2]。面对宠物店寄养的高额消费且寄养品质得不到充分保证,以及朋友家寄养的不便等问题,人们往往会陷入两难的境地。传统的寄养模式往往出现不规范或者“一笼难求”的现象,现拟制作一个用户在出行期间可以寄养宠物的网站,为用户提供宠物寄养和查看宠物寄养日常等功能。本章将围绕上述存在的问题,详细介绍基于SpringBoot宠物寄养管理系统的背景及意义。1.1.1研究背景根据网络调查显示,目前我国的宠物主人在离开宠物时,3.68%的人选择关在家里,47.95%的人选择找其他人代养,只有8.19%的人选择专业机构寄养[3]。因为一线城市的经济消费能力较高,饲养宠物人数比例较为多,加剧了宠物寄养行业的发展,但对于经济稍落后的二三线城市而言来说,一线城市进行宠物寄养的人数较多,二三线城市的家庭更多都是让宠物独自在家。但随着饲养宠物的人不断增多,很多家庭对宠物寄养的需求,尤其是节假日前后,出现“一笼难求”的现象[4]。但很多的宠物寄养的不是很规范,甚至会威胁到宠物的生命安全。现有的传统的寄养模式多为在宠物医院或是宠物店里的众多服务项目中的一项服务,只能去店内询问有没有此服务,有时预约满了只能去下一家,十分的不方便。且服务者没有能力提供较为正规的寄养,面对店内众多的服务类型,不能够专业的照料所需要寄养的宠物,从而出现了宠物在寄养期间出现一些不良反应
。且宠物寄养收费不规范,寄养的方式单一,宠物主人不能按照自己的需求所选择适合的宠物寄养方式。由于宠物主人外出与自己的宠物产生了一定的距离,宠物主人对于宠物的寄养情况是有一定的顾虑的,对于宠物寄养的安全、饲养和生活等问题比较担心,对寄养机构不放心和不信任。鉴于宠物寄养行业出现了的很多不同的问题,并结合宠物饲养者对宠物寄养的日益增长的需求,将宠物护理与宠物医院、宠物超市和其他设施分开,不再是兽医诊所和宠物超市的附属服务,而是与兽医诊所和宠物超市合作,实现互利共赢,促进宠物寄养市场不断地发展。将宠物寄养与互联网进行密切合作,宠物主人可以在线预约宠物寄养,还可以使用计算机以实时照片的形式查看护理过程中的所有环节,如宠物喂养、娱乐活动、预防性诊断和治疗,并对护理工作提供及时有效的反馈,使宠物护理过程和护理活动透明、公开。解决宠物主人对宠物安全、喂养和营养的担忧。信息化管理和精细化服务是市场对未来畜养设施质量建设的新要求。经过分析研究,我将采用SpringBoot来完成后台管理系统的搭建与实现,系统中的功能数据能够得到高效规范的管理,通过物联网技术结合互联网技术的综合运用,实现宠物信息的整合和高效管理[5],为宠物主人提供一个方便快捷的移动终端进行宠物寄养的窗口,更好地为消费者提供全方位、全过程的服务,有利于消费者更好地进行宠物的寄养,从一定程度上可以解决消费者对于出行不便照料宠物的难题,提高寄养机构的工作效率,使得寄养道路更为专业化。1.1.2研究意义宠物产业的繁荣在一定程度上丰富了人们的精神文化生活,也促进了宠物市场的经济增长。相比国际宠物市场,国内宠物行业起步较晚,但发展势头迅猛,中国宠物产业联盟等联合发布的《2016年度中国宠物行业白皮书》显示,2016年中国宠物行业市场总体消费规模达1220亿元,预计到2020年,国内宠物市场规模将超2000亿元,年均增速有望达到20%,整个宠物行业将迎来“井喷时代”[6]。研究表明,目前国内宠物饲养数量不断增长,截至2017年,国内饲养宠物的家庭占全国家庭总数的17%,以猫狗为主的宠物数量高达8746万只。而美国饲养宠物的家庭占比高达68%[7]。数据显示,中国的宠物主要是年轻人。然而,由于一系列原因,例如无可避免的旅行、旅行、海外居住,甚至在工作和城市生活中怀孕和分娩,宠物主人被迫暂时与宠物分离。这时,如何妥善安置宠物成为宠物主人的一个重要问题。由于饲养宠物的家庭数量的增加,寄养宠物的需求急剧增加,使得宠物寄养的服务逐渐被人们所接受。宠物寄养系统主要结合互联网时代发展的需求,顺应时代发展,使用SpringBoot框架开发的宠物寄养系统完成宠物的寄养,使得宠物主人能合理利用此系统方便快捷的解决外出安置宠物的问题,有效提高寄养宠物机构的工作效率;将宠物信息存储于MySQL数据库,节约人工成本,低碳环保,使得预约宠物寄养信息更容易存储;取代excel表格统计宠物收养和订单统计,将数据以ECharts组件来完成统计图的显示,更能反映出数据的实时变化,再对寄养的工作更好的改进与反馈。此宠物寄养系统致力于实现透明化、高效化、专业化的宠物寄养,以满足在数字信息化时代宠物主人对于宠物寄养的需求。1.2国内外研究现状当前,我国已经完全进入了信息时代,互联网在各个方便为人们的生活带来了便利。纵观国内外,已经出现了很多令人满意的宠物寄养线上平台。国外的一个寄养平台“Rover”,它提供一系列搜索、沟通服务、评分和支付服务。爱护小动物的人可以接触到更多的宠物,同时获得一笔收入。对于由于出差或生病等种种原因而对宠物寄养所有需求的人,在“Rover”平台上可以获得可提供寄养宠物服务的家庭的详细信息,让自己的宠物可以低廉的价格得到照料。而国内在一些宠物经济发达的城市,出现了“小狗在家App”和智能宠物笼监控系统设计与研发[8],该应用依托移动互联网,以家庭寄养为切入点,为宠物主人提供寄养、接送、洗澡等服务[9]。然而,对于这类寄养模式所能容纳或接受的宠物数量、状态或者种类过于局限,从寄养家庭规模和疾病防疫检疫来看,不能完全保证宠物周围的环境的安全,生活质量保障不足,所能接受容纳的宠物有限,宠物的生命安全得不到完全的保障,寄养服务的质量参差不齐。现如今需要的是一个专业化的管理和建设出宠物寄养经济空缺。与传统渠道相比,互联网平台的维护过程严格规范,监控管理系统完善,不仅便于动物的护理,而且让人安心。将互联网技术应用于宠物产业,可以为市场上宠物寄养提供更科学、更方便、更实惠、更可靠的方向。综上所述,虽然国内外的宠物寄养平台功能相对完善,但市面上依旧缺少更为透明化、高效化、专业化的宠物寄养系统的开发。1.3论文主要研究内容通过针对国内外现有宠物寄养系统的优缺点来展开研究,再对用户的需求分析,本宠物寄养管理系统将合理利用互联网,解决由于工作或度假等多方面原因无法照料宠物的现状出发,实现宠物寄养系统实现,本文主要研究以下几点内容:对国内外已拥有寄养系统系统做一个分析,发现他们的共同的优缺点,分析得出系统的主要功能为:寄养宠物、领养宠物、查看宠物寄养工作、留言、寄养数据可视化。结合用户需求与社会的发展的研究,采用网页进行开发宠物寄养管理系统,使消费者能在互联网环境下使用此寄养系统,解决由于工作或度假等多方面原因无法照料宠物的问题。研究宠物寄养系统的可行性,了解宠物寄养的流程,对宠物寄养系统在互联网上进行设计研究。通过分析宠物寄养的需求分析与设计,完成系统的主要功能需求设计,最终采用SpringBoot技术来开发宠物寄养系统,并对此系统的设计与实现进行详细的介绍。3.实现宠物寄养系统的基本功能,并对其核心功能宠物寄养、宠物领养、宠物寄养工作、宠物工作留言加以测试,并对实现的功能与未来的发展进行分析。1.4论文组织结构第一章:绪论。本章从人们进入科技时代、人们生活需求的变化以及宠物寄养管理的需求出发,阐明了人们对宠物寄养管理系统需求,从而引出开发宠物寄养系统的必要性。第二章:相关概念与技术理论综述。本章鉴于当下使用的开发软件技术与宠物寄养系统的需求,介绍了本系统将使用于开发的软件与技术,其中包括SpringBoot、MyBatis、LayUI、MySQL等技术的介绍。第三章:系统需求分析。本章首先对宠物寄养管理系统的主要需求进行分析,然后对系统的角色设计,再设计系统所需要的业务流程,最后对宠物寄养系统的需求功能设计与研究。第四章:系统总体设计。本章以宠物寄养系统对用户的需求与寄养环节的流程展开进一步的分析,包括宠物寄养工作、宠物领养、宠物工作、宠物寄养、基础数据管理等,概述了宠物寄养管理系统的设计思路与总体架构设计思路等内容。第五章:系统详细设计与实现。本章对宠物寄养管理系统的需求进行了进一步的以角色来加以区分,再将系统的需求功能一一介绍设计实现思路,并展现实现的过程,充分展示设计系统的实现功能介绍。第六章:系统测试。本章主要介绍了宠物寄养系统的基本测试环境,对宠物寄养管理系统的功能模块进行测试分析并解决其中出现的问题。第七章:总结与展望。本章总结了宠物寄养管理系统与论文的实际成果,并阐述系统存在的不足,以及对宠物寄养系统的实际应用前景的展望。相关概念与技术理论综述由于“科技时代”的到来,越来越多的设计者提出的基于SpringBoot快速开发平台,此技术能更加快速搭建各行各业的管理系统,开发人员无需掌握大量底层技术架构,大大减少项目开发工作量,缩短项目的实施周期,大幅提升交付率,节约了企业的研发成本和人力成本,使用平台快速实现用户需求[10]。以宠物寄养系统对用户的需求与当下的开发软件的发展相结合分析得出,后端使用SpringBoot与MyBatis,前端使用LayUI开发。SpringBoot用于搭建管理系统不仅方便,还保障了安全性。同时,可以满足多种角色的需求,使得用户的体验感更好。2.1前端开发技术介绍2.1.1LayUI介绍LayUI是一组开源的webUI解决方案。它采用自己的经典模块化规范,并遵循原生HTML格式CSSendJS的开发模式。它通常适用于web界面的快速开发。LayUI不同于那些基于底层MVVM的前端框架。它不必使用不同的前端工具。它只需要查看浏览器本身就可以与所有必需的元素进行通信。2.1.2JQuery介绍JQuery是一个快速简洁的JavaScript框架,具有独特的链语法和简洁明了的多功能界面。CSS选择器可以通过提供高效灵活的CSS选择器进行扩展。它具有简单的插件扩展机制和丰富的插件。它封装了JavaScript的常见功能代码,并提供了一个简单的JavaScript设计模型来优化HTML文档操作、事件处理、动画设计和Ajax交互。2.2后端技术介绍2.2.1SpringBoot介绍SpringBoot设计目的是用来简化新Spring应用的初始搭建以及开发过程,提高开发效率。更多开发者使用SpringBoot开发的java应用程序,可直接使用java-jar运行,无需配置服务器,内置Servlet容器,即Tomcat,Jetty或Undertow三种常用web服务器,达到开箱即用的效果。同时SpringBoot使用注解的方式,对代码进行自动配置,能有效减少代码的工作量,降低代码的冗余度,从而达到快速开发的效果。2.2.2MyBatis介绍MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOrdinaryJavaObjects,普通的Java对象)映射成数据库中的记录。2.3MySQL介绍MySQL是最流行的关系型数据库管理系统之一,跨平台,支持多个操作系统,支持多种语言,MySQL的适用范围更加广泛,开放源代码且无版权制约,自主性强、使用成本低。MySQL是开源的,不需要支付额外的费用,使用MySQL作为后台存储数据库的容器,能有效降低开发成本,支持大型系统的数据库。可以处理拥有上千万条记录的大型数据库,MySQL是完全网络化的,其数据库可在因特网上的任何地方访问,因此,可以和任何地方的任何人共享数据库。本系统使用MySQL5.5.27版本对数据库数据管理。2.4本章小结第二章节主要是介绍了目前所使用的各种技术,以及在后端和前端的应用。后端部分介绍了SpringBoot技术和MyBatis数据库的底层操作数据库技术,在前面对LayUI和其他技术做了简单的介绍,并将MySQL作为数据库的存储库。系统需求分析而对于系统开发中最首要的阶段为需求分析阶段,需求分析阶段得到的结果是项目开发中设计阶段、编码阶段、测试阶段和维护阶段的重要基础[11]。本章通过对宠物寄养系统的切实需求、与当下宠物寄养的需求背景出发,本章主要围绕可行性分析和系统功能性需求等展开分析与结果。3.1可行性分析在项目成立之后,可行性分析是一个可以检测项目是否能继续进行的一个分析手段。而这个手段是在我们发展和研究项目的时候,对于评估系统的可研究性而言是一个非常重要的一个手段,将决定了这个软件是否可以继续进行研究和发展的。3.1.1技术可行性对国内市场上的同类宠物寄养平台进行简单对比分析可知:系统的设计与实现必须依照用户的需要不断进行迭代,才能更好的给用户带来新的使用体验,更好的解决相关的问题与完成需求的功能。随着互联网不断的深入人们的生活的方方面面,互联网经济不断的快速发展,互联网在生活中不断的被普及,完善的网络的设施的极大的为网上交易市场的发展提供了良好的技术基础。现在的网络对于计算机的安全性有着很高的需求,包括再对于数据上使用了加密算法,使得我们的网络数据管理更为安全,网络传输数据将会更为安全性、持久性和完整性,保障了我们在互联网上的人生安全。电子技术应用,人们可以通过电子支付来对商品进行交易,极大的方便了我们的日常生活,使得我们的交易更加透明与安全。对于硬件来说,计算机硬件的处理速度已经完全满足了当下的社会的需求了。高速大容量硬盘非常常见,网络速度一般可达100MB。在软件方面,数据库技术已经很强。3.1.2经济可行性近年来,截至2020年底,中国宠物产业市场规模2988亿元,比上年增加467亿元,增长18.5%;预计2021年动物产业规模将达到3488亿元。中国的宠物家庭可到达每年平均花销一万元左右在宠物所需要的用品上。中国宠物市场消费增长趋势明显,促进了当下的宠物市场的发展。由于宠物国产用品不断增多,相应的价格越来越低,大多数人都可以接受饲养宠物的花费,使得养宠物已经成为近年来的一种流行趋势,未来国内宠物行业发展潜力巨大[12]。此外,系统开发采用的后台SpringBoot和MyBatis,数据库MySQL等所有开发技术都是开源免费的,硬件只需购买或租用一台标准的WindowsServer服务器即可,系统投入使用后,由于后台框架和服务器体系结构相对稳定,新项目的实施成本和系统后期的管理和维护成本不高,减少了大量的人工,同时可以为宠物寄养相关企业带来一定的经济效益,因此从经济的角度讲是可行的。3.1.3社会可行性至今为止,互联网时代发展已经非常成熟,而宠物市场处于一个快速增长阶段,对面宠物寄养市场的管理还存在一定的空缺。从就整体而言,现存在的宠物寄养平台不能够更能方便进行宠物寄养的一个预约,且寄养期间不能完全保障宠物寄养工作的安全性和专业性,无法与宠物主人建立信息渠道,这一点是需要系统需要解决与设计的功能。由此证明,拥有此功能的系统具有较大的市场需求。3.2用户需求分析本文所讨论的宠物寄养系统,主要是根据现宠物寄养市场的需求,以宠物主人因故不能照料自己的宠物的问题为研究对象,其具体问题如下概述:宠物主人有寄养需求时,因为现有的传统的寄养模式多为宠物医院或是宠物店的一种附属类型服务,需要花费一定的时间去询问店内是否有寄养服务或是寄养服务是否还有预约名额,浪费了宠物主人的精力与时间。对于传统的寄养模式而言,面对店内拥有着众多的服务类型,养机构管理者大多数没有专业化照顾宠物的经验与知识,不能够专业的照料所需要寄养的宠物,特别是一些需要特殊照顾的宠物,如孕期或是生病的宠物,不能为此提供专业的寄养,从而导致了宠物在寄养期间出现一些不良反应,甚至死亡
。宠物寄养收费不规范,寄养的方式单一,宠物主人不能按照自己的需求所选择适合的宠物寄养的房间与饲料,却要付出所不对等的价格。由于宠物主人外出与自己的宠物产生了一定的距离,对于宠物寄养的安全、饲养和生活等问题比较顾虑,但传统的寄养由于是附属类型服,一般寄养机构不能够及时准确的给予相应的回应。有部分宠物主人过了寄养结束的日子却不来接自己的宠物回家,也失去联系,将宠物弃养,造成了宠物寄养机构的一些困扰,导致街道上出现了很多可怜的流浪猫和流浪狗。传统的订单与系统数据信息统计的方式大多以excel表格的来管理与保存,不能很好的观察到数据的变化。由以上六点的需求分析,得以看出,开发一款实用专业化管理的宠物寄养系统的必要性。3.2.1系统需求概述当前国内宠物市场对宠物寄养的需求日渐旺盛,但是与之相关的宠物寄养平台与机构所能提供的宠物寄养服务却十分不规范。例如“Rover”、“小狗在家App”等的宠物寄养互联网产品,其重点在于为宠物寻找可寄养的家庭,但这其中也出现了一系列寄养不规范、不安全等问题,相对于为宠物主人提供专业且透明化的寄养宠物的系统资源却十分匮乏。为解决这一问题,通过将互联网技术应用于宠物行业的方式,为市场上宠物寄养提供更加规范合理的环境,研发一个有针对性的宠物寄养系统,该系统的目的就是为因外出的宠物主人无法照料自己的爱宠而提供合理规范的宠物寄养、宠物工作的查看留言以及对被遗弃宠物的领养。通过互联网的便利交互,目标明确用户,提供专业化寄养宠物服务事项,抢占宠物寄养的市场,真正实现线上结合线下服务,实现利益最大化。综上所述,本系统的开发工作应当解决以下问题:寄养商品管理。包括对宠物寄养房间以及宠物用品等各类产品的上架与库存数量的管理;包括在线支付体系以及对寄养商品的评价体系。在线预约宠物寄养。宠物主人可以进行填写寄养宠物、寄养预约时间等的寄养信息。宠物寄养工作。用户通过平台可以实时查看宠物寄养工作日常,同时以留言的方式对工作进行反馈。宠物领养。用户可以通过本系统查看待领养的宠物信息,结合自身的实际情况合理进行领养自己喜欢的宠物。订单管理。依据用户的购买记录以及领养记录,为管理员提供更为直观且方便的订单与领养视图,可以为用户提供更好的使用此系统的体验。3.2.2需求用例分析对于以下针对包括宠物寄养信息管理、寄养商品管理、在线预约宠物寄养、宠物寄养工作、宠物领养和订单管理在内的核心功能进行展开说明分析。寄养商品管理通过需求分析得出寄养商品管理所涉及的两个主要用户角色,即宠物主人、工作人员两个执行者。根据每一个执行者所涉及到的需求,分别分析出各自的用例:宠物主人拥有寄养商品购买、宠物寄养使用以及对寄养商品评价的用例。工作人员拥有订单管理、寄养商品管理以及商品营销的用例。具体如图3-1所示。图3-1寄养商品管理用例图宠物寄养通过需求分析得出宠物寄养所涉及的两个主要用户角色,即宠物主人、工作人员两个执行者。根据每一个执行者所涉及到的需求,分别分析出各自的用例:宠物主人拥有填写宠物寄养信息和查看宠物寄养信息的用例。工作人员拥有宠物寄养信息管理和宠物寄养状态统计的用例。具体如图3-2所示。图3-2宠物寄养用例图宠物寄养工作通过需求分析得出宠物寄养工作管理所涉及的两个主要用户角色,即宠物主人、工作人员两个执行者。根据每一个执行者所涉及到的需求,分别分析出各自的用例:宠物主人拥有查看宠物寄养工作和寄养工作留言的用例。工作人员拥有寄养工作管理的用例。具体如图3-3所示。图3-3宠物寄养工作管理用例图宠物领养通过需求分析得出宠物领养所涉及的两个主要用户角色,即宠物主人、工作人员两个执行者。根据每一个执行者所涉及到的需求,分别分析出各自的用例:宠物主人拥有领养宠物和查看已领养宠物的用例。工作人员拥有待领养宠物管理、宠物领养状态统计的用例。具体如图3-4所示。图3-4宠物领养用例图订单管理根据每一个执行者所涉及到的需求,分别分析出各自的用例:宠物主人可以新增包含支付等细节在内的订单。工作人员可以管理支付模块以及订单模块,并可以对此模块中的订单查看与统计,将支付管理功能中包括的微信与支付宝展开的支付功能加入此管理功能模块中。具体如图3-5所示。图3-5订单管理用例图3.3软件需求在需求分析初始阶段,使用关联图对系统进行分析,可得3.2.1所描述的大致模块,后续使用用例分析等建模方法对这些模块进行细化分析,最终得到如图3-6所示的功能结构。图3-6系统功能结构图3.4非功能性需求系统的非功能要求包括界面美观、系统易用性、安全性等。界面美观性系统最重要的使用户的体验感受。而界面的色彩搭配、布局排版、总体格调对于用户的使用感尤为重要,良好的界面感官操作能让用户视觉感很为喜爱,也能为功能的实现操作带来更加便利。因此,要求本系统的界面要做到好看的同时又便于用户的操作。系统易用性对数据的读取和显示,在不影响使用者操作的情况下,可以优化读取和显示的读取和显示。安全性该系统需要对使用者的个人资料及有关购买细节的保护。该系统采用md5密码对系统用户的口令进行加密,从而在一定程度上确保了密码不会被盗用或破坏,从而保护使用者的财产。3.5本章小结本章首先介绍了宠物寄养管理系统的基本需求,接着对系统功能性需求进一步的探究,得出了系统所需的基础功能以及核心功能,并对系统的核心功能:寄养商品管理、宠物寄养、宠物寄养工作管理、宠物领养等几个系统重点功能展开详细叙述。系统总体设计本章主要从宠物寄养系统的主要功能与与社会需求等方面分析,在此基础上,详细介绍了PC机后台和PC机的各功能模块的设计。最后,本文对系统的数据库进行了详细的描述,包括对数据库的概念模型进行了分析和设计,并对各个数据表的结构和域进行了设计。4.1系统总体设计思路宠物寄养系统总体上采用的是B/S的架构模式。对于再此结构中,用户使用浏览器对此操作,浏览器只处理少数业务逻辑,主要负责数据的传输和显示,绝大多数业务逻辑由服务器实现。在PC后台管理系统中,管理员和员工可以通过浏览器来获取到寄养的数据,从而可以更好的运营宠物寄养,而我们的用户可以通过PC客户端系统来完成宠物寄养的需求与对宠物寄养的工作查看反馈的一个功能操作。系统的物理架构如图4-1所示。图4-1系统物理架构图本系统的总体设计方案中涉及到的几个部分给出如下详细解释:1.PC后台管理端PC后台管理端是与数据库交互的主要区域,其实现的主要功能包含寄养商品管理、宠物寄养信息管理、寄养工作管理、待领养宠物管理、用户、菜单管理等基本信息的管理,PC后台管理端是系统最重要的地方。2.PC用户端PC用户端承载着宠物寄养功能模块,宠物主人通过PC用户端查看寄养商品,进行宠物寄养、查看宠物寄养信息、对寄养商品评价、查看待领养宠物信息、领养宠物、查看寄养工作、对寄养工作留言、维护个人信息等操作,满足宠物主人在对于宠物寄养上的需求,合理运用互联网技术与宠物寄养行业相结合,摒弃传统的寄养模式,为宠物主人对宠物寄养开辟新形式,使得宠物主人进行宠物寄养更安心、高效、便利。3.数据库服务器端本系统使用最为便捷的MySQL数据库服务,MySQL数据库服务承载着宠物寄养系统的所有数据,数据库的安全性与准确性,极大的保障了系统正常的运行。4.2系统总体架构设计软件的总体架构设计在开发软件的阶段里面骑着开头的作用,总体架构设计对系统的设计起着决定性作用。合理的软件架构图在一定程度上减轻了开发系统的难度,开发系统时能够更加容易实现系统的需求,并能发现系统设计的合理程度,为以后系统能正常运行起到了奠定的作用。宠物寄养系统使用SpringBoot技术开发,主要操作集中于代码的Controller控制层,用户在电脑端进行相关的操作,在界面上进行数据的交互,进行对需求的数据请求,代码与数据库进行一个接口传送,后台数据库进行交互,在前端显示相关的数据需求,并完成用户的需求请求。综上所述,对系统进行总体架构分析,得出系统的架构包括:前端、展现层、数据交互层、数据持久层、数据库、基础层,系统的总体架构设计图如图4-2所示。图4-2系统总体架构设计图依据系统的总体架构设计图,可将系统层次划分为四层:表示层、控制层、业务逻辑层、数据持久层。其具体介绍如下文所示:1.表示层表示层为用户在系统中使用的功能界面,用于用户对系统的操作来完成自己的需求。此系统的表示层主要采用了相对简洁明了的LayUI作为前端开发的基础,使用户使用系统时更为简单快捷,在繁忙的时候更方便进行宠物寄养需求。2.控制层控制层又叫控制层,它是一个连接到后台的系统前端的接口。因为service是一种商业计划,因此在这个层次上,应该编写一些商业计划代码,将特定的商业过程写入到服务中,服务并不是单纯的对DAO的增删和修改,service作为一个商业层面,更接近于特定的商业需求,因此,在这个层次上,一种方式就是可以向外部提供服务,比如在购物中心中产生订单,这并不是简单的添加订单,而是要查看库存,核实货物等一系列的业务流程。3.业务逻辑层业务逻辑层是对系统的业务逻辑进行处理,按照功能要求来编写逻辑代码,使得系统能够很好地实现需求函数。这一层从控制层接收对应的资料,执行与业务有关的处理,并在需要时呼叫资料持久层,以实现与系统的数据交互。4.数据持久层数据保存层,就是将数据保存在计算机数据库中,不会被破坏。该系统采用MyBatis作为数据持久层,MyBatis的界面实现就相当于.xml文件,将数据库操作语句和代码分开,便于操作和维护。4.3系统功能模块设计功能模块的划分直接影响到整个系统的功能架构。在此基础上,根据需求的挖掘,对系统的功能进行了划分,将系统分为两个部分,分别是PC和PC用户,前者负责处理基本的宠物信息和服务,后者负责宠物的寄养。4.3.1PC后台管理端功能模块设计PC后台管理端是支撑起整个系统运转的关键所在,宠物寄养系统的后台数据管理包括系统管理、寄养商品管理、宠物寄养管理、订单管理、寄养工作管理、宠物领养管理等模块,其PC后台管理端的功能模块结构图如图4-3所示。图4-3PC后台管理端功能结构图4.3.2PC用户端功能模块设计PC用户端部分主要由宠物主人操作。通过分析用户需求,划分出用户端的主要功能模块包含宠物寄养、我的两大模块,再由两大模块向下划分,再划分出更加详细的功能模块,其中宠物寄养模块包含宠物商品、领养宠物两大模块;我的模块包括个人信息、宠物寄养信息、寄养工作、领养宠物信息、订单信息等模块,其用户端功能结构图如图4-4所示。图4-4用户端功能结构图4.4系统数据库设计合理地设计好数据库尤为重要,合理的数据库设计能加快数据的存储、读取速度,节约开发时间[13]。下面详细介绍了概念模型设计与数据库设计。4.4.1概念模型设计数据库概念设计过程需要生成系统中所有信息的数据模型[14]。采用E-R图对概念性模型设计来详细介绍与设计,本系统的主要实体包括:管理员、工作人员、宠物主人、寄养商品、宠物寄养信息、待领养宠物信息等。以下主要介绍本系统的寄养商品、宠物寄养、成绩管理、讨论帖管理功能模块的E-R模型设计。1.寄养商品模块E-R模型设计寄养商品的实体主要包括工作人员、宠物主人、寄养商品。其中一个工作人员可以上新多件寄养商品,一件寄养商品仅由唯一工作人员上架。其E-R图设计如图4-5所示。图4-5寄养商品模块E-R图2.宠物寄养模块E-R模型设计宠物寄养的实体主要包括工作人员、宠物主人、订单、宠物寄养信息、评价记录。其中一个宠物主人可以订购多个订单,宠物主人的一条订单只可以填写一条宠物寄养信息;一条评价记录仅与一条订单相对应,宠物主人可以查看评价;宠物寄养信息、订单信息由工作人员管理。其E-R图设计如图4-6所示。图4-6宠物寄养模块E-R图3.寄养工作管理模块E-R模型设计寄养工作管理模块的实体主要包括工作人员、宠物主人、宠物工作信息、工作留言。其中一个工作人员可以发布多条寄养工作记录,多条寄养工作记录仅能被一个寄养此宠物的宠物主人查看;宠物主人的一条寄养工作信息只可以进行一次工作留言,一条工作留言仅与一条寄养工作信息相对应,工作人员可以多条查看评价。其E-R图设计如图4-7所示。图4-7寄养工作管理模块E-R图4.宠物领养模块E-R模型设计宠物领养模块的实体主要包括工作人员、宠物主人、待领养宠物信息、已领养宠物。其中一个工作人员可发布多条待领养宠物信息;一个待领养宠物只能由一个宠物主人领养,一个宠物主人可以领养多个宠物。其E-R图设计如图4-8所示。图4-8宠物领养模块E-R图4.4.2表结构设计本系统最终设计出9张数据表。使用MySQL作为数据储存的容器,提供用于管理、检查、优化数据库操作。宠物寄养系统的部分数据表设计如下所示:宠物寄养信息表(addr_list)。用于宠物主人进行宠物寄养时,存储系统在确认订单信息操作时填写的宠物寄养信息,包括宠物寄养信息寄养编号、联系人、联系方式、预约时间、会员编号、宠物昵称、宠物性别、宠物性别、宠物体型、宠物图片、身体状况等基本信息。宠物寄养信息表的数据表结构如表4-1宠物寄养信息表(addr_list)所示。表4-1宠物寄养信息表(addr_list)名称字段字段类型(长度)是否为空备注寄养编号addr_idint(11)notnull主键(数据库设置自动递增)联系人contact_namevarchar(100)联系方式contact_phonevarchar(13)预约时间addr_ptimedatetime(0)会员编号addr_uidint(11)宠物昵称addr_pnamevarchar(255)宠物性别addr_psexvarchar(255)宠物性别addr_ptypevarchar(255)宠物体型addr_pshapevarchar(255)宠物图片addr_pgimagevarchar(255)身体状况addr_phealthvarchar(255)寄养商品信息表(goods)。用于存储寄养商品的信息,其中字段名包括其中字段名包括商品编号、商品名称、商品图片、商品价格、商品详情、商品库存、录入时间、商品信息修改时间等基本信息。寄养商品信息表的数据表结构如表4-2寄养商品信息表(goods)所示。表4-2寄养商品信息表(goods)名称字段字段类型(长度)是否为空备注商品编号gidint(11)notnull主键(数据库设置自动递增)商品名称good_namevarchar(128)商品图片good_imgvarchar(128)商品价格good_priceint(11)商品详情good_detailtext(0)商品库存good_inventint(11)录入时间create_timebigint(20)商品信息修改时间update_timebigint(20)寄养商品评论表(order_comments)。用于存储寄养商品评论的信息,其中字段名包括评论编号、订单编号、商品编号、用户编号、评价内容、评价时间等基本信息。寄养商品评论表的数据表结构如表4-3寄养商品评论表(order_comments)所示。表4-3寄养商品评论表(order_comments)名称字段字段类型(长度)是否为空备注评论编号cidint(11)notnull主键(数据库设置自动递增)订单编号order_idint(11)商品编号good_idint(11)用户编号uidint(11)评价内容comment_contenttext(0)评价时间create_timebigint(20)评价修改时间update_timebigint(20)订单信息表(orders)。用于存储订单的信息,其中字段名包括订单编号、订单号、下单时间、订单状态、订单总价、购买的数量、商品编号、下单的用户等基本信息。订单信息表的数据表结构如表4-4订单信息表(orders)所示。表4-4订单信息表(orders)名称字段字段类型(长度)是否为空备注订单编号oidint(11)notnull主键(数据库设置自动递增)订单号order_novarchar(64)下单时间create_timebigint(20)订单状态statustinyint(4)1.表示未支付;2.表示已支付;3.表示已寄养;4.表示已完成;5.表示已取消订单总价order_priceint(11)购买的数量select_countint(11)商品编号good_idint(11)下单的用户uidint(11)待领养宠物信息表(pet_info)。用于存储待领养宠物信息,其中字段名包括宠物编号、宠物照片、宠物品种、宠物年龄、宠物出生地、宠物性别、发布时间、宠物详情、宠物疫苗情况、宠物状态等基本信息。待领养宠物信息表的数据表结构如表4-5待领养宠物信息表(pet_info)所示。表4-5待领养宠物信息表(pet_info)名称字段字段类型(长度)是否为空备注宠物编号pidint(11)notnull主键(数据库设置自动递增)宠物照片pet_avatarvarchar(128)宠物品种pet_kindvarchar(50)宠物年龄pet_ageint(11)宠物出生地pet_cityvarchar(20)宠物性别pet_gendertinyint(4)0.公;1.母发布时间create_timebigint(20)宠物详情commentstext(0)宠物疫苗情况pet_vaccinevarchar(100)宠物状态statustinyint(4)0.未领养;1.已领养用户信息表(user_info)。用于存储用户信息,其中字段名包括用户编号、用户名、手机号、邮箱、用户账户密码、用户类型、账户创建时间、账户信息更新时间等基本信息。用户信息表的数据表结构如表4-6用户信息表(user_info)所示。表4-6用户信息表(user_info)名称字段字段类型(长度)是否为空备注用户编号uidint(11)notnull主键(数据库设置自动递增)用户名user_namevarcha(50)手机号phonevarcha(13)邮箱emailvarcha(50)用户账户密码passwordvarcha(64)用户类型managertinyint(4)账户创建时间create_timebigint(20)账户信息更新时间update_timebigint(20)寄养工作表(work_info)。用于存储寄养工作信息,其中寄养工作表包含工作编号、宠物昵称、工作人员姓名、用户编号、工作照片、时间、工作留言等字段。寄养工作表的数据表结构如表4-7寄养工作表(work_info)所示。表4-7寄养工作表(work_info)名称字段字段类型(长度)是否为空备注工作编号widint(30)notnull主键(数据库设置自动递增)宠物昵称pnamevarchar(225)工作人员姓名user_namevarchar(50)用户编号uidint(11)内容contentvarchar(255)工作照片photovarchar(255)工作时间timedatetime(0)工作留言wcommentvarchar(255)留言时间create_timebigint(20)购物车表(shop_car)。用于临时存储用户添加的寄养商品,其字段设计包括购物车编号、商品编号、购买的数量、购买的用户等字段。购物车表的数据表结构如表4-8购物车表(shop_car)所示。表4-8购物车表(shop_car)名称字段字段类型(长度)是否为空备注购物车编号sidint(11)notnull主键(数据库设置自动递增)商品编号good_idint(11)购买的数量select_countint(11)购买的用户uidint(11)notnull领养宠物信息表(adopt_info)。用于用户在进行宠物领养操作时,所存储的领养宠物的信息,其中字段名包括宠物领养编号、宠物编号、会员编号、领养时间等基本信息。领养宠物信息表的数据表结构如表4-9领养宠物信息表(adopt_info)所示。表4-9领养宠物信息表(adopt_info)名称字段字段类型(长度)是否为空备注领养编号aidint(11)notnull主键(数据库设置自动递增)宠物编号pidint(11)会员编号uidint(11)领养时间adopt_timebigint(20)4.5本章小结第四章节首先根据系统的总体需求以及系统的重点功能为重点研究对象,整体上对功能结构设计、架构设计和数据库设计三个主要设计点,得出系统的进一步设计的目标与方向。系统详细设计与实现5.1系统环境5.1.1系统软件配置环境系统采用IntelliJIDEA2019.2.4x64作为开发平台,配置JDK1.8保证Java运行环境,配置Tomcat9.0.8作为Web服务器,选择maven的项目结构方便进行项目构建,依赖管理以及仓库管理等工作。而把MysQL5.6作为数据库存储数据,并采用Navicat12forMySQL作为管理数据库,并通过界面来操作数据库的工具,以达到改善工作流程并提高工作效率的目的[15]。系统开发软件环境要求如表5-1系统开发软件环境表所示。表5-1系统开发软件环境表环境项环境参数JDK版本JDK1.8数据库Mysql5.6Web服务器Tomcat9.0.8浏览器IE7/8、chrome5.1.2系统硬件配置环境系统硬件配置要求如表5-2系统硬件配置表所示。表5-2系统硬件配置表指标项配置值CPUIntel(R)Core(TM)i5-6500UCPU@2.30GHz内存4GB操作系统Windows10硬盘容量120G5.2寄养商品管理模块设计与实现通过对普通用户对宠物寄养的需求进行分析可知,现在对面消费者而言最需要的是对宠物寄养需要的住址和食物的自主选择性,而寄养商品管理模块是用来管理宠物寄养系统中交易的寄养商品的。寄养商品包括与宠物相关的各种寄养房间、三餐粮食等。系统工作人员在后台以列表的形式管理寄养商品,包括商品的图片、数量、价格和描述等信息。寄养商品管理模块包括新增商品、编辑商品、删除商品、查询商品等功能。寄养商品模块仅限于工作人员使用,普通用户不可见该模块,该模块主要包括添加寄养商品,其功能模块流程图如图5-1所示,具体流程分析如下所示:系统员工通过电脑后台管理系统,通过宠物寄养清单的链接,点击“添加”键,进入新的寄养栏,填写相应的信息;寄养商品信息填写正确,即可完成上架寄养商品,上架后的寄养商品将展现于PC用户端的寄养商品中所对应的详情界面中。图5-1寄养商品管理模块流程图一般用户在货架上放置物品是可以进行宠物寄养的必要条件,而在货架上放置物品,则可以让系统工作人员更加方便地操作,并且可以永久保存宠物的信息。本系统使用了layui的动态数据表格,可以进行表格属性名的选择查看。在删除方面,可以选择单个的删除,也可以进行的批量删除。实现寄养商品模块需要分别建立寄养商品信息的相应controller类,通过控制类创建的实体类,调用service层的相应方法,服务层的Service用于从GoodsController发送的请求,然后利用GoodsService中的方法进行特定的业务逻辑处理,来进行数据的增删改查的操作,最终保存宠物寄养商品数据到数据库同时返回操作结果,最终实现用户的请求。该模块的相关类图如图5-2所示。图5-2寄养商品管理模块类图寄养商品功能模块中寄养商品上架的代码的实现对于系统的进行有着尤为重要的地位,其中controller层部分核心代码如GoodsController.java所示,而价格从数字变成相应统一价格标签的代码如public.js所示。GoodsController.java@PostMapping("/save")
publicObjectsaveGoods(Goodsgoods){
if(StrUtil.isBlank(goods.getGoodImg())){
thrownewBusinessException("请上传商品图片");}
if(goods.getGoodPrice()<=0){
thrownewBusinessException("非法商品价格");}
if(goods.getGoodInvent()==null){
thrownewBusinessException("请输入商品数量");}
if(goods.getGoodInvent()<=0){
thrownewBusinessException("商品数量必须大于1");}
GoodssaveGood=goodsService.saveGood(goods);
if(Optional.ofNullable(saveGood).isPresent()){
returnResponseResult.ok();}
thrownewBusinessException("商品录入失败,请重试");}public.jsfunctionconvertIntToPrice(number){
letdecimal=number%100
letinteger=number/100
integer=parseInt(integer)
if(decimal<10){
return`${integer}.0${decimal}`}
return`${integer}.${decimal}`}通过对代码的详细设计与编写,得出添加寄养商品管理界面如图5-3所示。图5-3寄养商品管理界面通过后台查询寄养商品信息,以jsion形式将数据传送到PC用户端,将数据显示于PC用户端中首页的对应寄养宠物内的寄养商品信息列表中,寄养商品信息列表页面如图5-4所示,而寄养商品详情界面如图5-5所示。图5-4用户端寄养商品信息列表页面图5-5寄养商品详情页面5.3宠物寄养模块设计与实现宠物寄养模块是本系统中最为重要的一个模块,而本模块又涵盖了购物车模块、订单管理模块和支付模块。宠物寄养模模块是由普通用户和系统工作人员共同使用的功能模块,其中查看订单列表详情、修改订单状态是由系统工作人员进行的,修改订单状态以用户已经成功支付后默认生成为已支付和工作人员将订单中需要寄养的宠物寄养时将订单修改成已寄养状态,且查看订单包含有查看订单日交易量折线图与查看订单状态分布图;而加入购物车、创建订单、宠物寄养信息填写和订单评价是由普通用户进行的,在用户端寄养完成后可以对本次订单寄养商品进行评价,且可以在商品详情下可以显示给其他用户参考查看。宠物寄养模块功能包含添加购物车、创建订单、填写宠物寄养信息、订单结算、查看宠物寄养信息、对订单的状态修改、订单评价七大部分,其功能模块流程图如图5-5所示,具体流程分析如下所示:宠物主人登录宠物寄养系统,可选择性地浏览相应寄养商品列表。选择所想寄养商品,点击进入寄养商品界面,此处可浏览寄养商品概况;点击开寄养商品,进入寄养商品详情界面,选商品的数量,点击加入购物车或者立即购买,加入购物车的可以看到购物车里的商品,可以删除购物车的商品或是修改数量,再进行结算;进入结算界面后,要填写宠物寄养信息,系统判断填写正确后,点击结算;系统自动生成付款码,用户进行支付后,跳转订单详情,也可以查看已寄养宠物的信息,而工作人员可以获取到订单信息和宠物寄养信息并可以修改订单的状态。图5-6宠物寄养功能流程图其用户端功能模块时序图如图5-7所示:图5-7用户端宠物寄养功能时序图该模块的相关类图如图5-8所示:图5-8宠物寄养模块类图在寄养宠物功能时,后端三个层级设计如下:控制层:ShopCarController收到一个视图层的请求,首先通过保存ShopCar的方式添加到购物车中,随后向ShopCarServiceImpl发送该请求,并且将ShopCarService的返回结果打包并传送到前端。同样,OrdersController和AddrListController通过submitOrder、submitImmediately以及saveAddr的方式来处理这个命令。然后再通过OrderCommentController接收视图层传递的请求,先经过saveOrderComment的方法进行订单评论的操作。服务层:服务层的服务是用来从OrdersController发出的要求在OrdersServiceImpl中进行特定的业务逻辑处理。在这个模块中,要完成寄养的功能,所要存取的数据库表格如下:在OrdersServiceImpl实例化时,输入相应的映射,然后调用相应的Mapper界面中的方法,把插入成功的信息发送到OrdersController。加入购物车和订单评论的操作同理。数据访问层:数据Dao层的映射接口包含了不同的数据库表操作方法,在实体层中,ShopCar、PetrList、OrderComments、数据库表中的成员变量一一对应,并使用对应的Example实例函数来设置SQL语句,当MyBatis用MyBatis反向工具生成映射实体和对应的ExampleExample函数。用户登录后,通过判断则将用户信息和相对应的用户信息存入到JavaScript的Session中,在通过返回一个json对象给前端进行首页的跳转操作,再通过JSONObject创建一个对象,把购物车的值通过put的方法存储进去,返回到前端,寄养宠物模块的数据处理主要放于前端处理,后台接口负责数据的查询与添加操作,寄养宠物订单核心代码如OrdersController.java代码所示:OrdersController.java@PostMapping("/submit")
publicObjectsubmitOrder(HttpServletRequestrequest,@RequestParamStringsid,@RequestParamStringsessionId){
UserInfouserInfo=accountValidUtil.getLoginUser(request,sessionId);
List<Orders>orders=ordersService.batchSaveOrder(sid,userInfo.getUid());
List<Integer>idList=customArrayUtil.convertStrToList(sid);
intdeleteResult=0;
for(Integerid:idList){
deleteResult+=shopCarService.deleteShopCar(id);}
if(idList.size()!=0&&deleteResult==idList.size()*HttpStatus.HTTP_OK){
returnResponseResult.ok("下单成功,前往支付!",orders);}
thrownewBusinessException("订单结算失败,请重新页面后重试!");}
@PostMapping("/submit/immediately")
@SuppressWarnings("unchecked")
publicObjectsubmitImmediately(HttpServletRequestrequest,@RequestParamStringsessionId,@RequestParamStringorderJson){
UserInfologinUser=accountValidUtil.getLoginUser(request,sessionId);
List<JSONObject>orders=JSONObject.parseObject(orderJson,List.class);
StringorderNo=IdUtil.simpleUUID();
longnow=System.currentTimeMillis();
intresult=0;
intorderPrice=0;
intcarResult=0;
for(JSONObjectobj:orders){
Ordersorder=newOrders()
.setUid(loginUser.getUid())
.setGoodId(obj.getInteger("goodId"))
.setOrderPrice(obj.getInteger("goodPrice"))
.setSelectCount(obj.getInteger("selectCount"))
.setOrderNo(orderNo)
.setStatus(Orders.NOT_PAY)
.setCreateTime(now);
OrderssaveOrder=ordersService.saveOrder(order);
if(Optional.ofNullable(saveOrder).isPresent()){
result++;
orderPrice+=order.getOrderPrice()*order.getSelectCount();
carResult+=shopCarService.deleteShopCar(obj.getInteger("sid"));
}}if(result==orders.size()&&carResult==orders.size()*HttpStatus.HTTP_OK){
JSONObjectreturnObj=newJSONObject();
returnObj.put("orderNo",orderNo);
returnObj.put("orderPrice",orderPrice);
returnResponseResult.ok(returnObj);}
thrownewBusinessException("订单提交失败");}对于用户寄养结束时,是通过session传值给前端赋值在用户ID和寄养商品ID上,进行一个添加评论的操作,将数据传输到后台,其中评论功能的核心数据处理代码如OrderCommentsController.java代码所示。OrderCommentsController.java@PostMapping("/save")
publicObjectsaveOrderComment(HttpServletRequestrequest,@RequestParamStringsessionId,
OrderCommentsorderComments){
UserInfologinUser=accountValidUtil.getLoginUser(request,sessionId);
Goodsgoods=goodsService.queryByGid(orderComments.getGoodId());
if(!Optional.ofNullable(goods).isPresent()){
thrownewBusinessException("未知的商品");}
orderComments.setUid(loginUser.getUid());
OrderCommentssaveComment=orderCommentsService.saveOrderComment(orderComments);
if(Optional.ofNullable(saveComment).isPresent()){
returnResponseResult.ok("评价成功!",StrUtil.SPACE.trim());}
thrownewBusinessException("评价失败!");}宠物寄养是本系统的重点功能,同时也是本系统开发的初衷。图5-9显示了用户购物车的界面,在这个表单界面中,可以进行结算和删除寄养商品的操作。图5-9购物车页面在用户订单结算界面中,用户需要填写宠物寄养信息,包括联系人、联系电话、寄养宠物、预约时间等详细信息,如图5-10所示。图5-10确认订单信息界面点击提交订单后,跳转至支付页面,付款成功后即成功下单,如图5-11所示。图5-11支付页面用户下单并付款成功后即可在管理员的订单列表中显示图5-12所示。此时订单的状态是根据系统使用者的实际操作而自动修改为已支付或未支付,而随后订单发生状态变化为寄养或已完成时,可以手动修改,还可以查看订单的分布图。图5-12管理端订单页面用户支付成功后,自动跳转至我的订单,查看相关的订单信息和宠物寄养信息,如图5-13所示。在页面里可以进行订单评价的操作,评价后的信息可以在寄养商品的详情界面下给其他用户参考,如图5-14所示。图5-13订单信息相关页面图5-14用户评价页面5.4寄养工作管理模块设计与实现寄养工作管理模块的功能由普通用户和系统工作人员共同使用,该模块包含宠物寄养工作管理与对寄养工作留言两大部分。其宠物寄养工作管理只能是系统的工作人员通过PC后台管理系统使用,包括上传宠物寄养工作与查看寄养工作留言主要两大功能。而普通用户可以查看自己宠物寄养的工作记录和对寄养工作留言。其功能模块流程图如图5-15所示,具体流程分析如下所示:系统工作人员在PC后台管理系统中从宠物寄养信息列表链接进入列表显示界面,查看寄养宠物信息;系统工作人员在宠物寄养信息页面里选择需要发布寄养工作记录的宠物信息,点击添加按钮,填写寄养工作相关信息;系统工作人员寄养工作信息格式填写正确,即可完成发布寄养信息,发布成功后将展现于PC用户端的寄养工作中所对应的详情界面中;用户在宠物寄养工作查看页面下,查看并选择需要留言寄养工作记录,点击添加留言按钮,填写留言信息;用户书写留言填写格式正确,点击确定按钮,即可完成留言,发布成功后将展现于PC用户端和PC后台管理端的寄养工作中所对应的详情界面中。图5-15寄养工作管理功能流程图在寄养工作功能时,后端三个层级设计如下:控制层:WorkInfoController通过一个saveWorkInfo的方式来处理发布寄养任务,随后向ServiceWorkInfoService发送该请求,再将该请求和该参数一起传送到该服务层,并将该返回的结果打包并传送到该前端。服务层:服务层的Service用于从WorkInfoController发出的要求中接受一个包在WorkInfoServiceImpl中的特定业务逻辑。在此模块中,要完成寄养任务,必须要存取的资料库表格:在WorkInfoServiceImpl实例化时,输入相应的映射,然后调用相应Mapper界面中的方法,把插入成功的信息发送到WorkInfoController。数据访问层:在数据Dao层中的映射界面包括了多种操作数据库表格的方式,实体层中的WorkInfo与数据库中的寄养工作表对应,成员变量与数据库表一一对应,相应的Example实例函数用于设定SQL声明的条件,映射、实体类和相应的Example均由MyBatis反向工具产生。寄养工作管理模块的类图如图5-16所示。图5-16寄养工作管理模块类图本系统按照类图进行了具体的流程设计,并通过对寄养工作管理模块进行了相应的编码,用户在登陆时获取到Uid的数据再赋值到session传值,使得发布寄养工作时可以让宠物寄养信息的数据与寄养工作的数据所关联,寄养工作留言也同理。在寄养工作管理模块的数据中,操作数据库的特定核心代码如WorkInfoController.java所示:WorkInfoController.java@PostMapping("/save")
publicObjectsaveWorkInfo(WorkInfoworkInfo,HttpServletRequestrequest,@RequestParamStringsessionId,HttpSessionsession){
UserInfologinUser=accountValidUtil.getLoginUser(request,sessionId);
AddrListaddrList=addrListService.queryByAddr(loginUser.getUid());
UserInfouserInfo=userInfoService.queryByUid(loginUser.getUid());
session.setAttribute("username",userInfo.getUserName());
session.setAttribute("pname",addrList.getPname());
session.setAttribute("uid",addrList.getUid());
if(StrUtil.isBlank(workInfo.getPname())){
thrownewBusinessException("请填写寄养宠物昵称");}
if(workInfo.getUid()==null){
thrownewBusinessException("请填写用户编号");}
if(StrUtil.isBlank(workInfo.getContent())){
thrownewBusinessException("请填写工作内容详情");}
if(StrUtil.isBlank(workInfo.getPhoto())){
thrownewBusinessException("请输入工作记录照片");}
workInfo.setTime(newDate());
WorkInfosaveWorkInfo=workInfoService.saveWorkInfo(workInfo);
if(Optional.ofNullable(saveWorkInfo).isPresent()){
returnResponseResult.ok();}
thrownewBusinessException("工作记录添加失败,请重试");}通过代码的详细编写,实现了该模块的核心功能,其中PC后台管理端的宠物寄养信息列表界面如图5-17所示、PC后台管理端的寄养工作列表界面如图5-18所示、用户端寄养工作界面如图5-19所示。图5-17管理端宠物寄养信息管理页面图5-18管理端寄养工作管理页面图5-19用户端寄养工作界面5.5宠物领养模块设计与实现宠物领养子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 认知自动化在商务服务中
- 评估美国的医保体系
- 《一年级下册语文园地二》课件
- 李践有效提升销售的12大黄金法则1541497991
- 财会教材大全
- 江西省2025年中考生物真题试题 (无答案)
- 财务会计向管理会计转型的必要性【五篇】
- 吉林省松原市长岭县2025届九年级下学期综合练习数学试卷(含答案)
- 2025年吉林省第二实验学校九年级中考二模数学试题(含部分答案)
- 幼儿园《礼物》教案及教学反思
- 美术课程标准测试卷及答案(2022年修订版)详细全面
- 2024年江西省中考英语试题(附答案)
- 建筑面积计算术语
- 主动脉夹层患者的护理查房
- JT-T-566-2004轨道式集装箱门式起重机安全规程
- 反有组织犯罪法主题班会
- 商户安全管理培训课件
- MOOC 统计学-南京审计大学 中国大学慕课答案
- MOOC 嵌入式系统-西北工业大学 中国大学慕课答案
- 工程造价专业《工程项目管理实训》课程标准
- 《高温熔融金属吊运安全规程》(AQ7011-2018)
评论
0/150
提交评论