此文章为本人亲自指导加编写,禁止任何人抄袭以及各类盈利性传播, 相关的代码+部署+论文+ppt+代码讲解+答辩指导文件都有可私
计算机专业毕业设计任何项目-程序-论文-想单独指导的可以私

第一章 绪  论

1.1系统开发背景

随着人们生活水平的提高和宠物文化的普及,宠物行业在全球范围内持续增长。2024年,宠物行业在市场规模、消费习惯、以及新兴趋势等方面都表现出显著的变化与发展。2024年全球宠物行业市场规模预计将达到数千亿美元。北美、欧洲和亚洲是主要的市场区域,其中美国和中国市场占据了显著份额。随着宠物拥有率的上升,宠物食品、医疗、保险及服务等子行业的市场规模也不断扩大。

当今的宠物主人普遍年轻化,90后和00后成为主要消费群体。这些群体具有较高的消费意愿,更注重宠物的健康与生活品质。宠物主人的消费习惯正趋向多样化和高端化。从基本的宠物食品到高级宠物营养品、从传统宠物医疗到个性化医疗服务,消费者更愿意为宠物的健康和幸福投资。

网站上也存在很多的宠物店信息管理系统,比如“宠老板”。这款系统专注于对宠物店的日常运营进行管理,功能包括了宠物信息管理、疫苗接种提醒、美容预约、寄养管理等。系统还具备着会员管理和营销功能,能帮助宠物店吸引和留住客户。各类宠物店都可以与西系统进行合作使用,宠物店管理者可以根据系统会员的管理功能,为会员提供积分、折扣、福利等,这可以提高店铺的回头率,提高店铺的盈利能力。

桂林理工大学信息学院的黄琳、林国钦等,于2019年发表了《基于Java web的宠物店管理系统的设计》。其中就是根据宠物的养育现状而设计出来了宠物及其相关物品的管理、销售、流浪猫狗的收养和公告、美容相关服务等功能,这些功能的设计提升了宠物店管理流程的网络化、信息化、智能化。

在国外也有很多知命的宠物店信息管理系统,比如“PetPoint”。这是一款功能强大且广泛应用于国外宠物店及动物收容所的信息管理系统。它为这些机构提供了全面的宠物信息管理功能,其中包括宠物的基本信管理息、健康记录管理、领养信息管理等。当有新宠物进入宠物店时,工作人员可以通过系统快速录入宠物的详细信息,建立宠物档案。在宠物被领养时,系统能够自动记录领养过程中的各项信息,方便后续的跟踪和查询。

国外的宠物店管理系统主要包括以下几种: Zoho CRM是一个功能全面的客户关系管理系统,特别适合小型企业使用。它提供了客户管理、营销自动化、销售自动化和数据分析等功能,用户界面友好,易于上手。Zoho CRM可以帮助宠物服务企业更好地跟踪客户信息、管理预约和记录客户互动,提升客户满意度。HubSpot CRM是一个免费的宠物客户关系管理系统,适合初创企业和小型企业使用。它提供了基本的客户管理功能,包括联系人管理、公司管理和交易管理。虽然免费版本功能有限,但对于初创企业来说已经足够使用。宠物门店管理系统是一种专门为宠物门店设计的管理系统,涵盖了宠物信息管理、客户关系管理、预约管理、库存管理、财务管理等功能。它可以帮助门店提高工作效率、优化管理流程、提升客户体验,实现智慧化管理。这些系统各有特点,适用于不同规模和需求的宠物店。例如,Zoho CRM适合需要全面功能的企业,而HubSpot CRM则适合预算有限的初创企业。宠物门店管理系统则提供了全面的管理功能,适合需要高度定制化服务的门店。

以上这些宠物店信息管理系统可以为顾客提供更加便捷、高效、个性化的服务,提高顾客的满意度。宠物店还可以直接根据系统对顾客的购买记录和偏好等数据的分析,为顾客提供针对性的推荐和优惠活动。这类型的系统可以对宠物、员工、客户等信息进行实时的掌握,宠物店则可以通过对这些数据进行汇总查看,便于推进下一步的工作内容。

1.2系统开发意义

消费者们现在对于信息的获取希望是非常便捷和快速的,他们希望能够通过多种渠道就可以了解宠物店的宠物信息、项目、价格等。而且不同的顾客对于宠物的需求和偏好各不相同,宠物店也需要根据顾客的需求提供不同的个性化服务。采用信息化的管理系统,就可以实现宠物信息的查询、购买或领养流程的自动化处理、对客户信息的有效管理等,可以大大提高工作人员的工作效率和服务质量。通过信息管理系统,宠物店还可以对自己店铺的销售数据、客户数据、宠物信息等进行统计和分析,可以让宠物店的管理者更方便的汇总了解到市场变化和顾客的喜好等。通过开发一个功能完善、易于操作的宠物店管理系统,将解决目前宠物管理系统存在的信息不全、操作复杂、服务不规范等问题。该系统将提供全面的宠物管理功能,方便宠物主人和宠物店经营者进行信息查询、购买、预约等操作,提高管理效率和服务质量。

1.3可行性分析

1.3.1技术可行性

在技术选型中既要考虑到自己的个人软件水平,同时也要考虑到系统的一些集成性和并发性,综合来说最后选择SSM架构,通过SSM架构的一些配置的简化以及开发插件的集成可以有效的完成项目的编码,数据库方面选择MySQL,MySQL数据库操作简单,安装方便,对于SQL的编写也非常的专业,对于数据的存储也很安全,在Orm层选择Mybaits进行底层交互处理,通过将业务Java代码与SQL分离来降低项目的代码耦合度,提升代码的拓展性。

SSM架构组成为Spring、SpringMVC、Mybaits,这也是当前的稳定性Java流行架构之一。Spring的核心业务为Aop和IOC,通俗来说就是切面编程和控制反转,AOP通常用于Service层的业务事务机制处理,以及一些日志的拦截处理,而控制反转则主要是对象的重新定义方式,通过注入的方式反向生成对象。Mybaits作为orm层的核心架构,相比较Hibernate来说更为轻便,Mybatis主要是mapper和XML组成,Mapper主要是负责底层接口的定义,而XML则为真实SQL的设计,这样就可以实现业务代码和SQL维护的耦合度降低,便于代码的阅读和维护。且将JDBC进行了封装,对于数据库的连接形成自动化的管理,提升效率。在控制层采用SpringMVC架构,通过SpringMVC中的DispatcherServlet进行URL的路由分配处理,SpringMVC架构基于MVC的模式,在调用业务层后通过ModelandViews进行界面的返回。总体来说采用SSM架构可以让系统的编码逻辑更为简单。

MySQL数据库是常用的中小型开源数据库。MySQL的操作以及安装都非常的简单,对SQL的定义也非常的统一,执行标准的SQL语句即可完成基础增删改查操作。在MySQL中对权限的管理没有Oracle那么复杂,但同样也做到了安全稳定。MySQL数据库中既包含了库表的定义,同时也包含了一些视图、触发器等操作。MySQL作为关系型数据库同样也是通过库表的形式对数据进行存储,每个表都定义唯一的主键id,在MySQL中通常可通过自增的int类型id完成,同时设计数据库表要遵从第三范式即可很好的完成设计,数据库MySQL同样支持多线程开发,支持自带的自动备份服务,因此选择MySQL数据库非常的方便。

1.3.2法律可行性

在软件设计中法律是遵从的底线,任何的开发的功能、思路以及采用的一些手段和技术等都不可逾越法律底线,首先是设计的系统是否为国家允许,功能是否有越界的地方,采用的一些技术等是否为正版或者是开源,代码设计中不存在有盗用代码的部分。

1.3.3经济可行性

从经济角度来看,目前前期的投入主要是开发以及运维,前期开发人为的成本主要是个人时间基本可控,编码采用的技术和语言例如Java、JSP等都是开源免费技术,采用的软件maven、MySQL也都是免费的,后期服务器部署可采用租赁方式节约成本,因此基本可控。

第二章 需求分析

2.1组织结构与业务流程

在系统中组织结构主要分为2层,管理员和用户,管理员主要是对系统的全部信息进行管理,而用户则主要是对自己的一些宠物信息相关业务进行操作,管理员可以对操作的业务数据进行管理和维护操作。

在管理员端,主要通过自己账号进行登录操作,可以对注册的用户信息进行管理,调用用户信息表对用户所有信息进行查看,可以对用户充值进行管理,输入用户的充值信息,绑定对应用户形成充值记录信息,对用户发布的一些宠物美容进行审核操作并更新到美容信息表中。对用户的宠物疫苗接种信息进行审核操作,且更新到疫苗信息表中,可以对宠物预约就诊信息进行查看和审核操作。且在线进行就诊,记录就诊信息形成就诊记录。管理员可以对用户发布的宠物寄养信息进行审核,形成寄养基础数据信息。可以对寄养宠物的每日健康日志进行记录形成日志信息表。

图2-1管理员业务流程图

在用户端可以通过注册个人信息形成账号,可以查询自己的充值记录信息,对充值记录进行查看。可以在线进行宠物美容预约,填写信息保存到美容信息表中。可以对宠物的预约疫苗接种进行在线填写,形成疫苗记录申报表。可以对宠物就诊进行预约,填写宠物就诊信息,形成宠物就诊记录。对自己的个人宠物信息进行记录,形成我的宠物信息表。可以在线进行宠物寄养申请操作,填写信息形成寄养记录以及查询寄养日志。

图2-2 用户业务流程图

2.2业务需求

在管理员端,可以对注册在此平台的所有宠物主人用户信息进行查看,对账号信息进行维护操作,可对用户信息进行分页查询,可以设置寄养套餐类型,不同的类型套餐匹配不同的金额进行录入,便于用户选择。对用户的美容预约可以进行审核操作以及对用户的宠物就诊信息进行审核操作,审核通过后,在就诊完成后要对宠物的就诊情况和结果信息进行录入操作。可以对用户进行充值操作,以及对用户的消费记录详情进行查看,对用户申请的疫苗预约接种信息进行审核。

在用户端可以对自己的宠物信息记录,对宠物的一些基本描述情况进行录入操作。以及对个人的一些宠物信息进行编辑操作,可以在线对美容预约进行申请,选择对应的美容宠物以及事项等进行录入操作,查看美容预约结果。可以在线进行宠物就诊预约操作,录入就诊的病情描述,形成预约数据信息。对宠物进行寄养申请,在详情端可以查看寄养数据健康信息。可以查询用户自己的历史消费扣款记录以及充值记录。

2.3非功能需求

在系统非功能分析中要对系统的一些安全性、拓展性、并发性、响应度等进行考虑,除了系统的功能点需要考虑外,要对系统的一些客观因素影响等进行考虑,比如采用的技术要优先考虑可拓展性以及后期易维护。在用户数据量上要考虑可存储的量以及用户的同时在线并发量,对于用户的一些数据安全性和权限管理性等进行考虑,保证整个平台不受客观因素而出现的宕机或者是流程卡顿情况。

响应度指标,系统的响应度通常可从几个影响因素考虑,比如代码的复杂度、网络的延迟性、底层数据的处理效率,通常拉说除了服务器的长链接可影响效率外,其实最为主要的就是底层的数据查询效率,通常由于一些多表的关联查询,或者是库表的设计问题会导致复杂查询慢,后期出现这种情况可通过一些缓存机制、索引机制以及视图等处理。

资源利用指标,资源的利用通常包含服务器CPU的利用和内存、磁盘的一些占有率,通过对CPU的一些等待态、空闲态以及系统态等占比进行分析,要保证正常sys%在30%以内,而且磁盘的占有率一般低于70%。

可靠性指标,可靠性中包含了对安全的可靠以及软件的维护和拓展的可靠,要充分的保证数据的安全,做到数据的严密,可通过一些同步备份实现,针对于架构以及代码等要保证拓展性能,在后期业务繁琐时保证可延展性。

第三章 系统设计

3.1用例建模

在管理员端可以对所有宠物的寄养的记录信息进行管理,且可以对宠物寄养的健康日志和对应的寄养视频信息进行上传录入,可以对用户预约的宠物疫苗接种信息进行审核,对注册的所有人员信息进行查询,可对人员信息进行删除。管理员可以对会员端的宠物美容预约和宠物就诊预约进行审核,审核后可对就诊的一些详情进行记录,且对每个项目都可以进行扣款操作,可查询客户的所有消费扣款记录。

图3-1 管理员用例图

在用户端可以对自己的宠物所有信息进行录入,可以对个人宠物信息进行编辑,用户可以在线进行宠物的寄养登记操作,登记成功后管理员端可以查询到登记详情。用户可以对自己的宠物寄养信息以及日志信息进行查看。用户可以在线进行疫苗接种和宠物就诊预约以及宠物美容预约操作,可查询预约结果信息,可查询自己的充值记录和所有项目的扣款记录。

图3-2 用户用例图

根据前期的用例图进行用例描述如表3-1到3-7所示。

表3-1为宠物寄养套餐管理,主要是对宠物寄养套餐信息进行记录。

表3-1  寄养套餐管理

用例说明

寄养套餐管理

说明

管理员对寄养套餐进行管理

参与者

管理员

条件

本模块的使用需要管理员的身份

操作流程

  1. 管理员打开本网站,进入后台界面。
  2. 进入寄养套餐管理模块,进行增删改查。
  3. 完成操作

表3-2为宠物寄养管理,主要是对宠物寄养信息进行记录。

表3-2  宠物寄养管理

用例说明

宠物寄养管理

说明

用户对宠物寄养进行登记管理

参与者

用户

条件

本模块的使用需要用户的身份

操作流程

  1. 用户打开本网站,进入后台界面。
  2. 进入宠物寄养管理模块。
  3. 完成操作

表3-3为平台用户管理,主要是对平台注册的所有用户信息进行记录。

表3-3  用户管理

用例说明

用户管理

说明

管理员对用户进行管理

参与者

管理员

条件

本模块的使用需要管理员的身份

操作流程

  1. 管理员打开本网站,进入后台界面。
  2. 进入用户管理模块。
  3. 可以新增用户人和删除或修改已有的用户。
  4. 完成操作

表3-4为寄养日志管理,主要是对用户宠物的所有寄养日志记录。

表3-4  寄养日志管理

用例说明

寄养日志管理

说明

管理员或用户对寄养日志进行管理

参与者

管理员或用户

条件

本模块的使用需要管理员或用户的身份

操作流程

  1. 管理员或用户打开本网站,进入后台界面。
  2. 进入寄养日志管理模块。
  3. 可以查看寄养日志的视频情况并进行下载。
  4. 完成操作

表3-5为宠物美容管理,主要是对用户宠物的美容预约审核记录。

表3-5  宠物美容管理

用例说明

宠物美容管理

说明

管理员对宠物美容进行管理

参与者

管理员

条件

本模块的使用需要管理员的身份

操作流程

  1. 管理员打开本网站,进入后台界面。
  2. 进入宠物美容管理模块。
  3. 可以对宠物美容进行审核,且进行扣款。
  4. 完成操作

表3-6为用户充值管理,主要是对用户充值记录。

表3-6  用户充值管理

用例说明

用户充值管理

说明

管理员对用户充值进行管理

参与者

管理员

条件

本模块的使用需要管理员的身份

操作流程

  1. 管理员打开本网站,进入后台界面。
  2. 进入用户充值管理模块。
  3. 可以添加用户充值。
  4. 完成操作

表3-7为宠物疫苗预约管理,主要是对用户宠物的疫苗预约审核记录。

表3-7  宠物疫苗管理

用例说明

宠物疫苗管理

说明

管理员对宠物疫苗预约进行管理

参与者

管理员

条件

本模块的使用需要管理员的身份

操作流程

(1)管理员打开本网站,进入后台界面。

(2)进入宠物疫苗预约管理模块。

(3)可以对宠物美容进行审核,且进行扣款。

(4)完成操作

在宠物店信息管理系统中主要包含两种角色,管理员和用户,核心模块为用户端:我的宠物管理、宠物寄养预约、宠物美容预约、宠物寄存信息查询、宠物就诊预约、宠物疫苗接种、我的充值记录。管理员端:用户信息管理、疫苗接种管理、宠物就诊预约、宠物寄存管理、宠物就诊套餐管理、宠物寄存健康日志、用户充值。

图3-3 系统功能结构图

3.2静态建模

3.2.1类图设计  

在系统设计前期要对数据的类图进行设计,在本系统中类图包含用户类、管理员类、宠物类、美容预约类、疫苗接种类、宠物就诊类、寄养类、寄养日志类。

   

 

图3-4 系统类图

3.2.2数据库概念设

宠物主人用户信息实体

图3-6用户信息实体属性图

宠物信息实体

图3-7 宠物信息实体属性图

宠物寄养信息实体

图3-8 宠物寄养信息实体属性图

     

用户充值信息实体

  图3-9 宠物充值信息实体属性图

宠物寄养信息实体

图3-10 宠物充寄养信息实体属性图

  

宠物预约就诊实体

图3-11 宠物预约信息实体属性图

宠物美容预约实体

图3-12 宠物美容预约信息实体属性图

宠物疫苗接种预约实体

图3-13 宠物疫苗预约信息实体属性图

管理员信息实体

图3-14 管理员信息实体图

3.2.3数据库逻辑设计  

系统中主要包含就诊预约、宠物主人信息、宠物店信息、宠物信息、宠物健康信息、寄养套餐、宠物美容、充值记录等。如图3-15所示。

 

3-15 系统E-R图

3.2.4数据库物理表设计  

表3-8管理员信息表主要是对管理员信息保存。如下所示:

表3-8 管理员信息管理表

字段名

描述

数据类型&长度

主键标识

id

管理员主键

int(12)

主键

Username

账号

varchar(20)

pass

密码

varchar(20)

表3-9用户信息主要存储用户的姓名、电话、描述、账号等信息,如下所示:

表3-9 用户信息管理表

字段名

描述

数据类型&长度

主键标识

userid

宠物主人信息主键

int(12)

主键

name

用户的姓名

varchar(20)

tel

电话

varchar(11)

description

描述

varchar(20)

username

账号

varchar(20)

password

密码

varchar(20)

表3-10宠物主人充值记录信息,包含充值用户和充值金额,如下所示:

表3-10 宠物主人充值记录管理表

字段名

描述

数据类型&长度

主键标识

chongzhi

宠物主人充值记录id

int(12)

主键

userid

用户编号

int(12)

外键

Money

充值金额

int(10)

chongzhidate

日期

Date

descrip

备注

varchar(60)

表3-11宠物寄养记录信息保护寄养记录id、宠物id、寄养开始日期和结束日期以及所属的套餐等,如下所示:

表3-11 宠物寄养记录管理表

字段名

描述

数据类型&长度

主键标识

jiyangid

宠物寄养记录id

int(12)

主键

userid

用户编号

int(12)

外键

chongwuid

接种宠物id

int(12)

外键

Taocan

寄养套餐

varchar(60)

startriqi

开始日期

Date

Endriqi

结束日期

Date

day

天数

int(8)

money

金额

int(8)

表3-12寄养每日健康日志信息,包含宠物寄养日志id、宠物视频、进食等信息如下所示:

表3-12 寄养每日健康日志管理表

字段名

描述

数据类型&长度

主键标识

id

健康日志主键

int(12)

主键

xinqing

宠物心情

varchar(20)

fenbian

宠物粪便

varchar(60)

foods

进食

varchar(60)

video

寄养视频

varchar(100)

表3-13宠物美容预约信息,包含宠物id、用户id、美容内容、驳回理由等信息,如下所示:

表3-13 宠物美容预约表

字段名

描述

数据类型&长度

主键标识

meirongid

宠物美容预约主键

int(12)

主键

userid

用户编号

int(12)

外键

content

美容内容

varchar(60)

chongwuid

接种宠物id

int(12)

外键

status

状态

int(2)

content

驳回理由

varchar(40)

riqidate

日期

Date

表3-14宠物疫苗预约信息,包含疫苗信息、预约id、宠物id等信息,如下所示:

表3-14 宠物疫苗预约表

字段名

描述

数据类型&长度

主键标识

yuyueid

宠物疫苗预约主键

int(12)

主键

content

接种疫苗

varchar(20)

status

状态

int(2)

liyou

驳回理由

varchar(40)

chongwuid

接种宠物id

int(12)

外键

表3-15宠物就诊表信息包含就诊id、宠物id、诊断、开药、状态等信息,如下所示:

表3-15 宠物就诊表

字段名

描述

数据类型&长度

主键标识

cwjzkey

宠物就诊主键

int(12)

主键

chongwuid

宠物id

int(12)

外键

description

病情描述内容

varchar(60)

zhenduan

诊断

varchar(20)

kaiyao

开药

varchar(30)

status

状态

int(2)

riqidate

日期

Date

表3-16 用户的宠物信息存储,包含宠物的名称、描述、大类、年龄等信息,如下所示:

表3-16 宠物表

字段名

描述

数据类型&长度

主键标识

chongwukey

宠物主键

int(12)

主键

userid

用户id

int(12)

外键

description

宠物描述

varchar(60)

types

宠物类型

varchar(20)

niceng

宠物昵称

varchar(20)

age

宠物年龄

int(12)

3.3动态建模

3.3.1时序图

在商家端点击进入到寄养套餐新增界面后,可以输入套餐的名称、描述、对应的金额等信息进行新增操作。在控制层controller层接收到信息后,通过对信息进行验证,然后调用service层进行insert数据保存,保存后通过findByPage将数据信息展示到界面中,若填写中文内容不完整,则提醒error数据错误。

图3-19 套餐新增时序图

在用户端进入到寄养预约界面后,可以选择对应的寄养套餐类型、输入寄养的内容和日期等进行寄养预约操作,通过前端JS进行数据验证后提交到控制层controller层,Controller层接收到信息后,通过isEmpty对数据进行为空验证操作。建立新的对象Beans信息进行数据存储,调用service层的insert将数据进行保存。若输入数据不完整,则通过modelAndViews将error信息进行返回操作。若数据正确则保存数据,同时将重定向到queryListByPage进行数据展示。

图3-20 寄养预约新增时序图

     在用户对宠物进行寄养后,管理员端可以对宠物的寄养日常记录信息进行录入操作,通过对每日的寄养的饮食等情况进行录入操作,后台controller层接收操后,通过StringUtils对数据进行验证,然后通过调用service进行每日的健康日志存储。在用户端可以查询到对应的某个寄养宠物的健康日志信息。

图3-21 寄养日志新增时序图

在用户端进入到个人的宠物新增界面后,可以选择对应的宠物所属的类型、输入名称、描述等基本信息,通过前端JS进行数据验证后提交到控制层controller层,Controller层接收到信息后,通过isEmpty对数据进行为空验证操作。建立新的对象Beans信息进行数据存储,调用service层的insert将数据进行保存。若输入数据不完整,则通过modelAndViews将error信息进行返回操作。若数据正确则保存数据,同时将重定向到queryListByPage进行数据展示。

图3-22 宠物新增时序图

在用户端进入到就诊预约界面后,输入预约就诊的宠物病情信息、选择就诊宠物、输入寄养的内容和日期等进行就诊预约操作,通过前端JS进行数据验证后提交到控制层controller层,Controller层接收到信息后,通过isEmpty对数据进行为空验证操作。建立新的对象Beans信息进行数据存储,调用service层的insert将数据进行保存。若输入数据不完整,则通过modelAndViews将error信息进行返回操作。若数据正确则保存数据,同时将重定向到queryListByPage进行数据展示。

图3-23 宠物就诊新增时序图

3.3.2活动图

在用户进行宠物就诊时,进入到就诊页面,输入宠物的病情内容,选择对应的就诊宠物选择就诊时间提交。在后台确定就诊信息是否完整,若信息正常写入到数据库中,将就诊预约信息保存,返回到界面预约就诊成功。

580e16516c92dd94e80fdb9e31b6dca

图3-15 宠物就诊活动图

在用户进行宠物美容时,进入到美容预约页面,输入宠物的美容内容,选择对应的美容宠物,选择美容时间提交。在后台确定就诊信息是否完整,若信息正常,写入到数据库中,将美容预约信息保存,返回到界面预约美容成功。

20eeaa56c56f536952eb3a5ea55afee

图3-16 宠物美容活动图

用户在进行宠物寄养时,选择寄养的宠物信息,选择寄养的套餐,输入寄养的时间信息提交。在系统端可以对寄养数据填报进行查验,确保信息完整,然后保存到数据库,在管理员端可以对寄养信息进行审核,审核通过之后要对宠物寄养的每日健康日志进行填写,且上传对应视频信息提交到系统,系统查验寄养日志内容保存数据库。在用户端可以对寄养日志进行查看。

图3-17 宠物寄养活动图

用户可以选择宠物进行疫苗预约接种,输入疫苗信息,输入接种信息提交到系统端,系统端可以查验疫苗数据信息是否完整,然后保存到数据库。在管理员端可以对疫苗接种信息进行审核。审核通过之后,要对接种信息进行录入且更新数据库。若审核不通过,则显示错误信息。

图片1

图3-18 宠物疫苗接种活动图

 

第四章 系统实现

4.1开发环境与工具

开发环境:Java语言、SSM架构、JSP、Ajax

工具:IDEA2022、 MySQL5.7数据库  Maven3.3、JDK1.8、Navicat11

JDK即Java Development Kit,它作为Java开发的关键工具包,为编译、调试以及运行Java程序给予了完备的环境,其囊括JRE也就是Java Runtime Environment用于程序运行,同时以及编译器javac、调试工具jdb、打包工具jar等开发工具。JDK的核心部件是Java编译器,它可把源代码也就是.java文件转变成字节码即.class文件,之后由JVM也就是Java虚拟机来执行,不同版本的JDK支持特定的Java语言特性,开发者要依据项目需求挑选合适的版本像JDK 8、11或者17,而且JDK还提供了丰富的标准类库也就是Java API,这使得开发工作得到了很大程度的简化。在安装并配置好JDK环境变量后,便可凭借命令行或者IDE比如Eclipse、IntelliJ IDEA来开展Java开发。

MySQL 作为一款开源的关系型数据库管理系统,也就是 RDBMS,在 Web 开发、企业级应用以及云计算环境中都有着广泛的应用,它采用的是客户端 - 服务器架构,可支持 SQL 即结构化查询语言来进行数据管理,有高性能、高可靠性以及易用性等特性,MySQL 支持事务处理也就是 ACID 特性,还支持多用户并发访问、主从复制以及分区表等功能,适用于高并发的在线事务处理也就是 OLTP 和大规模数据存储。另外MySQL 提供了多种存储引擎,比如 InnoDB、MyISAM 等,这使得开发者可以依据自身需求来优化数据库性能,作为 LAMP 技术栈的核心组件之一,LAMP 指的是 Linux + Apache + MySQL + PHP/Python/Perl,MySQL 在互联网行业有着关键的地位,并且被 Oracle、Facebook、Twitter 等众多企业广泛采用。

Maven是一款借助项目对象模型也就是POM的Java项目管理工具,主要是在项目构建、依赖管理以及项目信息管理方面发挥作用,它依靠pom.xml配置文件去明确项目结构、依赖库以及构建流程,自动把编译、测试、打包以及部署等任务给完成,Maven的核心优势是其有强大的依赖管理机制,可自动下载并且管理第三方库像JAR文件,防止手动维护依赖时出现的繁杂情况。Maven还提供标准的项目目录结构,保证团队协作时的一致性,并且支持多模块项目管理,适合大型企业级应用开发,身为Apache软件基金会的开源项目,Maven已然成为Java生态系统里不可缺少的工具,和Jenkins、Spring等框架实现无缝集成,大大提升了开发效率。

Java是一种有跨平台特性且面向对象的高级编程语言,它是由Sun Microsystems公司在1995年所推出的,它的核心特性是“一次编写,到处运行”,简称为WORA,而这一特性得益于Java虚拟机所有的跨平台特点,Java在诸多领域有着广泛的应用,像企业级开发领域中的Spring、Hibernate,Android应用开发领域,大数据领域的Hadoop,以及云计算等领域。它可支持多线程、网络编程、强类型检查以及自动内存管理也就是垃圾回收机制,还拥有丰富的标准类库即Java SE API以及强大的社区支持,这些因素使得它成为全球颇为流行的编程语言之一。

SSM是在Java Web开发里被广泛运用的轻量级框架组合,其适用于构建企业级应用程序,Spring身为核心框架,有依赖注入以及面向切面编程等功能,让企业应用的开发得到了简化,Spring MVC是依据MVC设计模式的Web框架,主要负责请求分发以及视图渲染工作。MyBatis是一个出色的持久层框架,借助XML或者注解来配置SQL映射,可灵活且高效地对数据库进行操作,SSM框架组合的结构清晰明了,配置也十分灵活,和传统的SSH相比,它更加轻量,而且易于扩展,适合中小型项目进行快速开发。

AJAX这项技术主要用于创建异步的Web应用,可让网页在不进行刷新操作的情况下,与服务器实现数据的交换,并且更新部分网页内容,它的核心原理是借助JavaScript里的XMLHttpRequest,向服务器发送HTTP请求,接着对返回的数据进行动态处理。AJAX极大地提升了用户体验,使得Web应用在流畅性方面更趋近于桌面应用,被广泛运用在表单验证、实时搜索、无刷新分页等诸多场景当中,虽说AJAX最初是基于XML的,但如今JSON已然成为了更为主流的数据格式,搭配jQuery、Axios等库使用,AJAX的开发变得更加便利,是现代前端技术达成动态交互的基础所在。

JSP作为一种依托Java的动态网页技术,可在HTML里嵌入Java代码,以此来生成动态内容,它于服务器端运行,最终会被编译成Servlet并由如Tomcat这样的Web容器执行,JSP对JSTL以及EL给予支持,可减少Java代码在页面中的直接嵌入情况,提升可维护性。尽管JSP曾经是Java Web开发的主流技术,然而随着前后端分离架构的盛行,其使用渐渐变少,不过在传统企业级应用以及遗留系统当中仍然有着广泛应用,JSP的优势在于和Java生态实现无缝集成,适宜于需要复杂业务逻辑的后端渲染场景。

4.2功能模块实现

4.2.1宠物信息管理实现

在用户端可以对宠物基本信息进行录入操作,包括宠物名称、对应的宠物类型以以及宠物的年龄、宠物的毛发颜色和宠物的特征等信息进行录入操作。录入时前端界面要对录入数据进行验证操作,点击提交后形成我的宠物记录信息,可以在宠物信息管理里对宠物列表进行查看。以及对宠物信息进行编辑和删除操作。在add.jsp界面中,可通input对宠物的一些相关信息输入框进行设置录入操作,然后通过submit进行提交操作,通过将界面的数据参数进行json封装,然后post方式提交到controller层,通过对数据进行dataVO封装,然后调用dao层的insert进行数据插入,数据保存后通过重定向跳转到showdatalist界面。

图4-1 宠物信息新增界面

图4-2 宠物列表信息展示界面

以下是该功能实现核心代码:

@RequestMapping(value = "/add" )

    private String add(Chongwu chongwu, HttpServletRequest request) throws Exception {

        HttpSession session=request.getSession();

        Integer usersid=(Integer) session.getAttribute("userId");

        chongwu.setUserid(usersid);

            chongwuService.add(chongwu);

        return "redirect:/chongwu/showchongwu";

    }

    @RequestMapping(value = "/addpage" )

    private String add1(Model model) throws Exception {

        return "user/addchongwu";

    }

4.2.2宠物寄养管理实现

用户可以对宠物进行在线寄养预约,选择寄养的开始日期和寄养的宠物信息,选择寄养结束时间和天数等进行提交操作,提交后形成预约寄存信息列表。可以对预约天数以及寄养的预约套餐绑定,自动化计算出对应金额信息。可以在我的宠物寄养里对寄养记录进行查看,以及对寄养的健康记录信息进行查询。

图4-3 宠物寄养信息新增界面

图4-4 宠物寄养信息列表界面

以下是该功能实现核心代码:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        Date date1 = sdf.parse(jicun.getStatrttime());

        Date date2 = sdf.parse(jicun.getEndtime());

        long diff = Math.abs(date2.getTime() - date1.getTime());

        long diffDays = diff / (24 * 60 * 60 * 1000); // 一天的毫秒数

        jicun.setTianshu(diffDays+"");

        jicun.setMoney(device.getNumber()*Integer.parseInt(jicun.getTianshu()));

            jicunService.add(jicun);

        Date currentTime = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        String dateString = formatter.format(currentTime);

        Xiaofei xiaofei=new Xiaofei();

        xiaofei.setRiqi(dateString);

        xiaofei.setUserid(usersid);

        xiaofei.setMoney(jicun.getMoney());

        Users users=usersService.findById(xiaofei.getUserid());

        users.setMoney(users.getMoney()-xiaofei.getMoney());

        xiaofei.setTypes("宠物寄养");

        usersService.update(users);

        xiaofeiService.add(xiaofei);

4.2.3宠物美容预约管理实现

用户可进行宠物美容预约操作,选择对应的美容预约内容输入,以及选择对应的预约美容的宠物信息进行绑定。提交后形成待预约美容订单,可以对订单状态进行查看,以及对预约日期和预预约商家等信息进行查看。用户在跳转界面时,通过在controller层对用户的宠物信息进行findlistbyuserid获取操作,通过Session获取到用户信息,然后在界面中对美容预约宠物进行select选择,获取到美容宠物id,输入其他内容进行submit提交,在controller层接收到数据信息后设置status状态为0,待审核进行操作。

图4-5 宠物美容预约界面

图4-6 宠物美容列表界面

以下是该功能实现核心代码:

  @RequestMapping(value = "/add")

    private String add(Meirong meirong, HttpServletRequest request) throws Exception {

        HttpSession session = request.getSession();

        Integer usersid = (Integer) session.getAttribute("userId");

        meirong.setStatus(0);

        Date currentTime = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        String dateString = formatter.format(currentTime);

        meirong.setUserid(usersid);

       /* meirong.setApplydate(dateString);*/

        meirongService.add(meirong);

        return "redirect:/meirong/showmeironguser";

    }

4.2.4宠物疫苗接种预约管理实现

用户可以对宠物的疫苗接种进行预约操作,输入疫苗接种预约信息和接种疫苗宠物的名称进行提交操作。提交后形成宠物疫苗预约记录信息可以对状态进行更新查看以及进行删除操作。

图4-7 宠物疫苗预约新增界面

图4-8 宠物疫苗列表新增界面

以下是该功能实现核心代码:

   @RequestMapping(value = "/add")

    private String add(Yimiao yimiao, HttpServletRequest request) throws Exception {

        HttpSession session = request.getSession();

        Integer usersid = (Integer) session.getAttribute("userId");

        yimiao.setStatus(0);

        yimiao.setUserid(usersid);

        Date currentTime = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        String dateString = formatter.format(currentTime);

       /* yimiao.setRiqi(dateString);*/

        yimiaoService.add(yimiao);

        return "redirect:/yimiao/showyimiaouser";

    }

4.2.5宠物就诊预约管理实现

用户可以对宠物就诊预进行预约操作,输入就诊病情内容描述信息和就诊的宠物信息进行提交操作,提交时生成就诊预约记录信息。商家端可对就诊预约进行诊在线诊断,输入诊断结果和诊断记录信息,以及对就诊记录进行查看。用户在跳转界面时,通过在controller层对用户的宠物信息进行findlistbyuserid获取操作,通过Session获取到用户信息,然后在界面中对就诊宠物进行select选择,获取到就诊宠物id,输入其他内容进行submit提交,在controller层接收到数据信息后设置status状态为0,待审核进行操作。

图4-9 宠物疫苗列表新增界面

图4-10 宠物就诊信息列表查询界面

以下是该功能实现核心代码:

Jiuzhen jiuzhen1=   jiuzhenService.findById(jiuzhen.getId());

        jiuzhen1.setKaiyao(jiuzhen.getKaiyao());

        jiuzhen1.setZhenduan(jiuzhen.getZhenduan());

        jiuzhen1.setStatus(3);

     /*   Date currentTime = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        String dateString = formatter.format(currentTime);

        jiuzhen1.setRiqi(dateString);*/

        jiuzhenService.update(jiuzhen1);

        return "redirect:/jiuzhen/showjiuzhen";

4.2.6用户信息管理实现

平台端可以对注册的所有用户信息进行查询。对用户注册的账号信息和联系电话描述等信息进行在线查看,可进行分页数据查询以及进行用户的编辑和维护操作。本次查询采用的是分页查询的机制,在controller层通过对pagesize以及pagenum进行参数的接收和设定,然后通过分页对象pagehilper插件对分页数据计算,在service中通过querydatalistbypage对数据进行分页的查询,底层则在SQL中采用limit进行分页机制,最后将ArrayList进行封装返回到jsp的table界面中展示。

图4-11 用户信息查询界面

以下是该功能实现核心代码:

   public List<Users> findByPaging(Integer toPageNo) throws Exception {

        PagingVO pagingVO = new PagingVO();

        pagingVO.setToPageNo(toPageNo);

        List<Users> list = usersMapper.findByPaging(pagingVO);

        return list;

    }

4.2.7用户充值管理实现

管理员端可以对用户充值信息进行管理查看,在用户充值时选择对应用户信息以及充值金额提交操作,提交后生成用户充值。在用户进行一系列订单操作时进行自动化扣。

在addusermoney.jsp界面中,可通input对用户的充值信息操作,然后通过submit进行提交操作,通过将界面的数据参数进行json封装,然后post方式提交到controller层,通过对数据进行dataVO封装,然后调用dao层的insert进行数据插入,保存后通过userid进行数据的充值信息更新,调用userservice进行数据updateusermoney更新操作,数据保存后通过重定向跳转到showdatalist界面。

图4-12 用户充值界面

以下是该功能实现核心代码:

public List<Chongzhi> findByPaginguser(Integer toPageNo,int userid) throws Exception {

        PagingVO pagingVO = new PagingVO();

        pagingVO.setToPageNo(toPageNo);

        pagingVO.setUserid(userid);

        List<Chongzhi> list = chongzhiMapper.findByPaginguser(pagingVO);

        return list;

}

4.2.8用户消费扣款记录实现

管理员端可以对用户的消费扣款记录信息进行查询,通过showdatalist对消费表的所有数据进行信息page分页查询,通过limit进行分页查询操作,然后通过modelandviews返回到界面。

图4-13 用户消费扣款界面

以下是该功能实现核心代码:

  Meirong meirong=meirongService.findById(id);

        Date currentTime = new Date();

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        String dateString = formatter.format(currentTime);

        Xiaofei xiaofei=new Xiaofei();

        xiaofei.setRiqi(dateString);

        xiaofei.setUserid(meirong.getUserid());

        xiaofei.setMoney(money);

        Users users=usersService.findById(xiaofei.getUserid());

        users.setMoney(users.getMoney()-xiaofei.getMoney());

        xiaofei.setTypes("宠物美容");

        xiaofei.setSid(id);

        xiaofei.setContent(content);

        usersService.update(users);

        xiaofeiService.add(xiaofei);

        return "redirect:/meirong/showmeirong";

第五章 系统测试

5.1测试目的与方法

在此系统测试环节,主要是对本次的开发的功能进行测验,判断是否符合预期,是否跟前期需求分析一致,针对于系统的数据流向以及可持久性的存储数据一致性等都要进行验证,在测试中搭建测试环境,可通过Junit进行单元测试,对每个系统模块的输入值、逻辑计算、输出值等都要进行测验,从客观角度而言要对系统进行兼容性测试和并发性测试,对使用的人群的熟练度以及服务器数据的处理效率响应度和安全性等都要进行测试。

5.2测试过程

表5-1 宠物信息新增模块测试

测试说明

在宠物管理界面对宠物的主人、宠物昵称、年龄、品种、颜色、特征等信息进行填报

等价类

1)管理员填报的主人不可为空

2)管理员填写的宠物昵称不可为符号

3)管理员对年龄填写格式为数字

4)管理员填报的品种长度不超过6

5)管理员填报的颜色格式为文字

6)管理员填报的特征长度最少为5

 测试数据

  1. 管理员对主人信息不填报即提交

2)管理员填写宠物昵称信息为“===”

3)管理员对年龄填报为“ef”

4)管理员输入品种为“这个狗狗的品种是”

5)管理员填报的颜色“745”

6)管理员填报特征“黄色”

期望输出

1)系统提醒管理员主人信息未填报,重新提交

2)界面提示宠物昵称格式填写错误

3)界面提醒年龄格式错误

4)管理员填报品种字段长度错误

5)管理员填报颜色格式有误

6)管理员对特征的填报长度不符

真实输出

1)系统提醒管理员主人信息未填报,重新提交

2)界面提示宠物昵称格式填写不可为符号

3)界面提醒年龄格式必须为数字

4)管理员填报品种字段长度错误

5)管理员填报颜色格式有误

6)管理员对特征的填报长度不符

表5-2 宠物用品模块测试

测试说明

管理员在宠物用品管理界面对用品名称、描述、单价、库存、品牌等信息进行填报

等价类

1)管理员对用品名称填报必须为文字

2)管理员填报描述字段最少为10

3)管理员对单价填报格式为数字

4)管理员对库存填报不可为空

5)管理员填报品牌不可为符号

测试数据

1)管理员对用品名称填报“4564654”

2)管理员填写描述字段“用品作用于”

3)管理员输入单价“dstrre”

4)管理员不对库存进行填报即提交

5)管理员填报品牌“/*-”

期望输出

1)界面提示用品名称填报格式错误

2)界面提示描述字段不符要求

3)系统提醒单价填写格式为数字

4)界面提示库存不可为空

5)系统界面提示品牌格式错误

真实输出

1)界面提示用品名称填报格式为数字

2)界面提示描述字段最少为10

3)系统提醒单价填写格式为数字

4)界面提示库存不可为空

5)系统界面提示品牌格式错误

表5-3 用品销售模块测试

测试说明

管理员在用品销售模块对购买人、购买物品、单价、数量、日期等信息进行填报

等价类

1)管理员对购买人填报格式为文字

2)管理员填报购买物品需为库存中存在的

3)管理员填报购买物品格式全为字母

4)管理员对单价填报格式为数字

5)管理员填报数量额度不超过51

6)管理员填报日期符号不为/

测试数据

1)管理员对购买人填写为“744”

2)管理员填报购买物品“逗猫棒”

3)管理员填写购买物品为“dtert”

4)管理员对单价填报为“//”

5)管理员填报数量为“80”

6)管理员对填报日期填报“2024/09/06”

期望输出

1)界面提醒购买人格式错误

2)系统界面提示库存中不含有购买物品“逗猫棒”

3)界面提醒购买物品格式不正确

4)界面提示单价格式错误

5)系统提示数量填写超出购买额度

6)界面提醒填报日期格式错误

真实输出

1)界面提醒购买人格式需为文字

2)系统界面提示库存中不含有购买物品“逗猫棒”

3)界面提醒购买物品格式不可为字母

4)界面提示单价格式需为数字

5)系统提示数量填写超出购买额度

6)界面提醒填报日期格式错误

表5-4 寄存记录模块测试

测试说明

管理员在寄存记录管理界面对主人、宠物昵称、近期注意事项、近期爱好、近期性格、套餐、寄存时间、天数、费用等信息进行填报

等价类

  1. 管理员填报主人格式为文字

2)管理员对宠物昵称的填报不可为空

3)管理员对近期注意事项的字段填写最少为6

4)管理员对近期爱好的填写分隔符为,

5)管理员填报近期性格字段不超过7

6)管理员对套餐需进行选择

7)管理员寄存时间符号不为/

8)管理员填报天数格式为数字

9)管理员填报费用格式为数字

测试数据

1)管理员对主人填报“iohio”

2)管理员不对宠物昵称进行填报

3)管理员填报近期注意事项“注意”

4)管理员对近期爱好填报“逗猫棒、遛遛”

5)管理员对近期性格填报“近期性格比较温顺乖巧”

6)管理员不对套餐进行选择即提交

7)管理员对寄存时间填报“2024/11/09”

8)管理员对天数填报“qw”

9)管理员对费用填报“三百元”

期望输出

1)界面提醒主人格式错误

2)界面提示宠物昵称不可为空

3)界面提醒近期注意事项字段有误

4)系统界面提示近期爱好填报分隔符错误

5)界面提醒主人近期性格字段不符合要求

6)系统界面提示套餐不可为空

7)管理员填写寄存时间符号错误

8)界面提示管理员天数格式填报需为数字

9)界面提示管理员费用格式填报需为数字

真实输出

1)界面提醒主人格式需为文字

2)界面提示宠物昵称不可为空

3)界面提醒近期注意事项字段有误

4)系统界面提示近期爱好填报分隔符错误

5)界面提醒主人近期性格字段不符合要求

6)系统界面提示套餐不可为空

7)管理员填写寄存时间符号错误

8)界面提示管理员天数格式填报需为数字

9)界面提示管理员费用格式填报需为数字

在用户注册时要对注册的人员信息填写进行测试验证,包括字段长度以及为空等进行测试。

图5-1 用户注册为空填写界面

图5-2 用户注册手机号长度测试填写界面

图5-3 用户宠物新增填写界面

图5-4 用户宠物美容新增填写界面

图5-5 用户宠物疫苗新增填写界面

图5-6 用户宠物疫苗接种长度新增填写界面

5.3测试结论

此次针对于宠物店管理系统主要进行了黑盒测试与白盒测试,通过大量的数据导入进行数据操作验证来对逻辑结构以及响应度和并发性等进行测试,测试功能结果与前期的需求分析相符合,满足正常的操作要求,测试通过。

第六章 总  结

整个项目的基本完成历时7个月,最终从项目的需求到最后的落地设计成型非常的不易,本次设计的题目为宠物店信息管理系统的分析与实践,在此系统开发中主要采用语言为Java,基于SSM架构进行开发,整体采用MVC设计模式,系统设计前端采用JSP进行界面设计,通过ajax进行异步交互,采用Tomcat进行项目部署服务。在系统开发中核心流程为首先进行项目的前期背景调研,对相关的一些文献以及相类似的软件进行分析,然后总结出自己要设计的软件的核心功能点,然后进行系统的需求分析,对系统的用户角色以及角色下的一些功能业务进行梳理,对相关的数据流向存储等进行分析,通过需求分析对系统的模块进行细节化的设计,对各个模块的交互过程以及交叉业务进行设计,然后对底层数据库表进行设计,最后为系统的编码和测试。在宠物店信息管理系统中主要包含两种角色,管理员和用户,核心模块为用户端:我的宠物管理、宠物寄养预约、宠物美容预约、宠物寄存信息查询、宠物就诊预约、宠物疫苗接种、我的充值记录。管理员端:用户信息管理、疫苗接种管理、宠物就诊预约、宠物寄存管理、宠物就诊套餐管理、宠物寄存健康日志、用户充值。

系统设计完成后依旧有依稀不足点,例如界面需进行美观优化,可以增加一些动态轮播图进行设置,同时对前端进行相应式设计,提升交互感,对系统数据库也要增加备份功能,保证数据的安全性。在支付方面目前只做到的了记录支付情况,没有做到支付的线上对接,且没有做到与宠物寄养的直接视频监管,后期针对于寄养视频也需做视频服务器分离处理。

在系统功能方面可以增加宠物店的AI宣传,以及宠消费的一些积分兑换和宠物产品销售等功能来提升网站的交互能力。同时可以加入一些宠物讲解和在线直播,提升用户的参与度,网站中可以加入一些小黄车等购物功能,增加用户宠物产品购物体验。


项目难度: 中等难度
适用场景: 相关题目的毕业设计
包含内容: 整套源码+完整毕业论文
大家点赞、收藏、关注、评论啦 。
资源下载|如果你正在做毕业设计,需要源码和论文,不局限于该项目,私聊我

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐