摘要
随着国民情感需求的不断升级,宠物领养也由原来的个人善行变成了大众化的公益活动。但是传统的领养方式仍然存在着信息发布分散、线下流程繁杂、各个参与主体的权限不清楚等现象,严重影响了领养效率以及行业的规范化程度。为此本文设计并实现了以Spring Boot+Vue为技术架构的宠物领养管理系统,以建立统一的信息管理系统为依托,对领养流程进行优化,明确角色权限,提高用户体验,从而达到规范宠物领养行为、促进宠物领养可持续发展的目的。
系统使用前后端分离的架构,后端使用Spring Boot框架,整合了Spring Security、MyBatis等技术来完成业务逻辑处理、数据持久化以及权限控制等工作,前端使用Vue.js和Element UI构建响应式的界面,使用Axios进行数据交互,用MySQL存储主要的数据,用Redis提高访问速度。系统按照软件工程理论以及RBAC权限模型来划分用户端、救助机构端、管理员端三个模块,包含用户认证、宠物信息发布审核、领养申请处理、领养后跟踪、系统配置等主要功能,从而完成领养全流程的数字化管理。
该系统把领养资源集中起来,简化业务流程,削减管理费用,给领养人,救助机构和管理员创建起高效协同的平台,对于推动宠物领养行业健康发展有着十分重要的意义。
关键词:宠物领养 Spring Boot Vue 前后端分离
目录
第1章 绪论
1.1 研究背景
1.2 研究意义
1.3 研究现状
1.3.1 国外研究现状
1.3.2 国内研究现状
1.4 研究内容与结构
1.4.1 研究内容
1.4.2 论文结构
第 2 章 相关理论与技术基础
2.1 相关理论
2.1.1 软件工程理论
2.1.2 数据库设计原理
2.1.3 RBAC 模型
2.2 核心技术栈
第3章 系统分析与设计
3.1 功能需求分析
3.2 非功能需求分析
3.3 业务流程分析
3.3.1 宠物领养业务流程
3.3.2 文章发布业务流程
3.4 整体架构设计
3.5 模块设计
3.5.1 用户管理模块
3.5.2 宠物信息管理模块
3.5.3 领养申请管理模块
3.5.4 文章资讯管理模块
3.5.5 系统管理模块
3.6 数据库设计
第4章 系统实现
4.1 开发环境搭建
4.1.1 后端开发环境
4.1.2 前端开发环境
4.2 后端功能实现
4.3 前端功能实现
第5章 系统测试
5.1 测试环境
5.1.1 硬件环境
5.1.2 软件环境
5.2 测试方法
5.3 功能测试
5.3.1 测试用例设计原则
5.3.2 核心功能测试结果
5.3.3 功能测试总结
5.4 性能测试
5.4.1 响应时间测试
5.4.2 稳定性测试
5.5 兼容性测试
5.6 测试总结
第6章 总结与展望
6.1 研究总结
6.2 未来展望
参考文献
致谢
附录
第1章 绪论
1.1 研究背景
伴随着国民生活水平的不断提高和情感陪伴需求的不断增加,宠物领养也由原来的公益活动转变为一种有组织、有规模的社会服务形式。据2025年中国宠物行业白皮书数据显示,我国宠物领养需求年均增长率为18%,说明大众对科学、透明、方便的领养方式有很强的愿望。与此同时,在城市流浪动物治理、动物福利倡导以及“领养代替购买”等社会观念的影响下,越来越多的人和组织开始关注到宠物领养活动,并且参与到其中来,领养方式也由原来的线下救助站“面对面”领养,发展为线上信息发布、申请审核、线下沟通为一体的综合模式。但是目前宠物领养模式还存在着许多现实问题,阻碍了它的规模化、规范化的发展。
其一就是信息渠道很分散,没有统一的信息聚合和管理平台。目前大量的待领养宠物信息大多依靠社交媒体平台(微信、微博)、线下救助站公告以及零散的志愿者群来发布。由于信息发布的分散化,领养者在获取信息的时候要频繁地切换不同的渠道,而且信息更新的速度比较慢,重复性较高,容易造成“宠物已经被领养但是信息还没有下架”的现象,既浪费了领养者的资源,又加重了送养机构的沟通压力。同时由于没有统一的信息发布模板,宠物档案中关于健康状况、绝育情况、性格特点等重要信息常常存在缺失或者表述不清的情况,从而降低领养者做出正确选择的能力以及效率。
第二,业务流程没有统一的规范,重要的环节依靠人工来完成,造成效率低、透明度不高。在传统的模式下,从领养申请的提出、审核、领养后的跟踪等大部分工作都是靠人工来完成,并且是通过纸质的表格来进行记录。一方面送养机构需要手工处理大量的申请信息,审核周期长、反馈慢,容易造成申请积压或者信息遗漏;另一方面领养者不能实时掌握申请的进度,处于被动等待的状态,不能及时得知审核的结果和需要补充的资料,从而造成沟通成本高、用户体验差。另外,领养之后的回访、跟踪工作比较欠缺,没有形成系统的记录和提醒机制,不能保证宠物领养的质量。
第三,缺少多角色权限管理,操作边界不清,造成数据安全和协同管理的风险。宠物领养场景里一般包含着三类主要人物,即普通领养者、送养人(救助机构或者个人)以及系统管理员。各个角色对于信息查看、内容发布、申请审核、数据统计等各方面权限的要求也大相径庭。目前依靠社交平台或者简单的表单工具建立起来的流程,很难达到精细化的权限控制效果,容易造成信息误操作、数据被越权访问等状况,不但会扰乱平台运行秩序,还会给领养者和送养人个人隐私带来潜在风险[1]。
在这种情况下,前后端分离的架构模式成了现代Web应用开发的主要方式。采用该模式之后,把前端用户界面同后端业务逻辑解耦开,使得系统在开发效率、维护费用以及扩充性等各个方面都有明显的好处。Spring Boot是后端开发框架,具有自动配置、开箱即用的特点,可以快速搭建出稳定、安全的服务端应用,很好支持RESTful API、数据持久化、权限控制等核心功能。Vue框架凭借响应式数据绑定、组件化开发以及良好的生态系统,很好地改善了前端交互体验以及界面的可维护性。二者的结合可以实现前后端的并行开发,缩短系统建设周期,也方便以后的功能更新和扩展,已经被广泛地应用到各种信息管理系统开发中[2]。
根据以上技术以及现实需求背景,设计并实现一个基于Spring Boot和Vue的宠物领养管理系统,有很强的现实意义和应用价值。该系统创建起统一的宠物信息发布和查询平台,把零散的领养资源集中起来,达成宠物信息的标准化呈现以及多方面筛选,凭借规范化的领养申请流程,加入申请状况追踪,在线审核以及消息交流的要素,加强业务流程的透明度和处理速度,创建起完备的用户权限体系,明晰领养者,送养人和管理员的操作范围,保证平台数据的安全以及运行的合规性。在此基础上,系统还可以增加智能推荐、领养知识科普、成功案例分享等特色功能,从用户体验和领养成功率两个方面提高平台的价值,为推动宠物领养行业数字化转型提供切实可行的技术支持。
1.2 研究意义
本系统采用Spring Boot+Vue的前后端分离架构来设计,丰富了中小型管理系统的设计方案,给同类宠物相关系统开发提供可以借鉴的技术框架和设计思路。系统设计时对宠物领养业务流程进行梳理和优化,给相关领域业务流程规范化提供理论依据[3]。
系统可以将宠物领养的相关信息进行整合,给领养人提供方便的宠物信息查询和领养申请渠道,给宠物救助机构或者个人提供高效的宠物信息发布和申请审核工具。采用数字化的方式简化领养流程,提升领养速度,削减信息不对称状况,守护好宠物及领养者的权益,促进宠物领养事业朝着规范化、规模化方向发展[4]。
普通用户用例图如图3-1所示:

管理员用例图如图3-1所示:

模块设计
根据系统的功能需求,结合整体架构设计,将系统划分为五大核心功能模块,各模块既相互独立又协同配合,共同完成系统的整体业务流程。模块划分遵循 “高内聚、低耦合” 的设计原则,每个模块聚焦于特定的业务领域,便于开发、测试和维护,整体模块图如图3-10所示。

为加快用户访问页面的访问速度、提升用户体验,每条查询语句配置对应的 B+树索引和联合索引。设计特点为所有的表都带有创建时间、更新时间字段,可以追溯数据的来源;核心表(领养申请、文章)设置了自增主键,字段注释清楚,中文命名符合业务理解。表结构具体设计说明如下表 3-1 至表 3-7 所示。
(1)access_token 表
该表用于存储用户访问令牌相关信息,支持系统的身份验证和会话管理,确保用户访问的安全性和连续性。
表3-1 access_token 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
|
2 |
info |
text |
65535 |
否 |
否 |
附加信息 |
|
3 |
maxage |
int |
– |
是 |
否 |
最大有效时间(秒) |
|
4 |
token |
varchar |
64 |
否 |
否 |
访问令牌 |
|
5 |
token_id |
int |
– |
是 |
是 |
令牌 ID |
|
6 |
update_time |
timestamp |
– |
是 |
否 |
更新时间 |
|
7 |
user_id |
int |
– |
是 |
否 |
关联用户 ID |
(2)application_for_adoption 表
该表是宠物领养申请的核心数据表,存储领养申请的详细信息,包括宠物信息、领养人信息、申请状态等,支持领养申请的审核和跟踪。
表3-2 application_for_adoption 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
application_for_adoption_id |
int |
– |
是 |
是 |
领养申请 ID |
|
2 |
pet_name |
varchar |
64 |
否 |
否 |
宠物名称 |
|
3 |
pet_number |
varchar |
64 |
否 |
否 |
宠物编号 |
|
4 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态(待审核 / 通过 / 驳回) |
|
5 |
examine_reply |
varchar |
255 |
否 |
否 |
审核回复 |
|
6 |
location_address |
varchar |
64 |
否 |
否 |
所在地址 |
|
7 |
create_by |
int |
– |
是 |
否 |
创建人 ID |
|
8 |
update_time |
timestamp |
– |
是 |
否 |
更新时间 |
|
9 |
extra |
text |
65535 |
否 |
否 |
额外信息 |
|
10 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
11 |
source_user_id |
int |
– |
否 |
否 |
来源用户 ID |
(3)article 表
该表用于存储系统发布的文章资讯信息,为用户提供宠物相关知识和动态,支持文章的浏览和查询。
表3-3 article 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
article_id |
mediumint |
– |
是 |
是 |
文章 ID |
|
2 |
content |
longtext |
4294967295 |
否 |
否 |
文章内容 |
|
3 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
|
4 |
description |
text |
65535 |
否 |
否 |
文章描述 |
|
5 |
hits |
int |
– |
是 |
否 |
浏览量 |
|
6 |
img |
varchar |
255 |
否 |
否 |
文章封面图片 URL |
|
7 |
praise_len |
int |
– |
是 |
否 |
点赞数 |
|
8 |
source |
varchar |
255 |
否 |
否 |
文章来源 |
|
9 |
tag |
varchar |
255 |
否 |
否 |
文章标签 |
|
10 |
title |
varchar |
125 |
是 |
否 |
文章标题 |
|
11 |
type |
varchar |
64 |
是 |
否 |
文章类型(关联文章类型表) |
(4)article_type 表
该表用于定义文章的类型,实现文章的分类管理,方便用户按类型查询相关文章。
表3-4 article_type 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
type_id |
smallint |
– |
是 |
是 |
类型 ID |
|
2 |
display |
smallint |
– |
是 |
否 |
显示状态(0 – 隐藏,1 – 显示) |
|
3 |
name |
varchar |
16 |
是 |
否 |
类型名称 |
|
4 |
description |
varchar |
255 |
否 |
否 |
类型描述 |
|
5 |
icon |
text |
65535 |
否 |
否 |
类型图标 |
|
6 |
url |
varchar |
255 |
否 |
否 |
类型相关 URL |
|
7 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
(5)auth 表
该表用于存储系统的权限相关信息,实现基于角色的权限控制,确保不同用户只能访问其权限范围内的功能。
表3-5 auth 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
add |
tinyint |
– |
是 |
否 |
新增权限(0 – 无,1 – 有) |
|
2 |
auth_id |
int |
– |
是 |
是 |
权限 ID |
|
3 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
|
4 |
del |
tinyint |
– |
是 |
否 |
删除权限(0 – 无,1 – 有) |
|
5 |
field_add |
text |
65535 |
否 |
否 |
新增字段权限 |
|
6 |
field_get |
text |
65535 |
否 |
否 |
查询字段权限 |
|
7 |
field_set |
text |
65535 |
否 |
否 |
修改字段权限 |
|
8 |
get |
tinyint |
– |
是 |
否 |
查询权限(0 – 无,1 – 有) |
|
9 |
mod_name |
varchar |
64 |
否 |
否 |
模块名称 |
|
10 |
mode |
varchar |
32 |
是 |
否 |
权限模式 |
|
11 |
option |
text |
65535 |
否 |
否 |
可选权限 |
|
12 |
page_title |
varchar |
255 |
否 |
否 |
页面标题 |
|
13 |
parent |
varchar |
64 |
否 |
否 |
父权限 |
|
14 |
parent_sort |
int |
– |
是 |
否 |
父权限排序 |
|
15 |
path |
varchar |
255 |
否 |
否 |
权限路径 |
|
16 |
position |
varchar |
32 |
否 |
否 |
权限位置 |
|
17 |
set |
tinyint |
– |
是 |
否 |
修改权限(0 – 无,1 – 有) |
|
18 |
table_name |
varchar |
64 |
否 |
否 |
关联表名 |
|
19 |
table_nav |
varchar |
500 |
否 |
否 |
表导航 |
|
20 |
table_nav_name |
varchar |
500 |
否 |
否 |
表导航名称 |
|
21 |
update_time |
timestamp |
– |
是 |
否 |
更新时间 |
|
22 |
user_group |
varchar |
64 |
否 |
否 |
用户组 |
(6)code_token 表
该表用于存储代码令牌相关信息,支持系统的相关验证功能,如验证码验证、接口调用验证等。
表3-6 code_token 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
|
2 |
expire_time |
timestamp |
– |
是 |
否 |
过期时间 |
|
3 |
code |
varchar |
64 |
否 |
否 |
验证码 |
|
4 |
id |
bigint |
– |
是 |
是 |
主键 ID |
|
5 |
ip |
varchar |
64 |
否 |
否 |
访问 IP |
|
6 |
status |
tinyint |
– |
是 |
否 |
状态(0 – 未使用,1 – 已使用) |
|
7 |
type |
varchar |
32 |
否 |
否 |
令牌类型 |
|
8 |
update_time |
timestamp |
– |
是 |
否 |
更新时间 |
|
9 |
user_id |
bigint |
– |
否 |
否 |
关联用户 ID |
(7)user 表
该表用于存储系统用户的基本信息,是系统的基础数据表,关联多个业务表,支持用户身份认证和权限管理。
表3-7 user 表
|
序号 |
字段名 |
数据类型 |
长度 |
非空 |
主键 |
备注 |
|
1 |
user_id |
int |
– |
是 |
是 |
用户 ID |
|
2 |
username |
varchar |
64 |
是 |
否 |
用户名(唯一) |
|
3 |
password |
varchar |
128 |
是 |
否 |
密码(加密存储) |
|
4 |
mobile_phone |
varchar |
16 |
否 |
否 |
手机号 |
|
5 |
|
varchar |
128 |
否 |
否 |
邮箱 |
|
6 |
user_role |
varchar |
32 |
是 |
否 |
用户角色(普通用户 / 管理员 / 发布者) |
|
7 |
create_time |
timestamp |
– |
是 |
否 |
创建时间 |
|
8 |
status |
tinyint |
– |
是 |
否 |
账号状态(0 – 禁用,1 – 正常) |
前端功能实现
(1)登录与注册页面
登录页面
UI实现部分使用Element UI的Form、Input、Button组件搭建登录表单,布局为居中,系统logo和轻量级背景图提高视觉效果,表单包括用户名输入框、密码输入框(密码显示/隐藏切换)、记住我复选框、登录按钮,输入框添加图标提示增强交互性。

宠物列表与详情页面
宠物列表页面
UI实现页面顶部为筛选区,宠物类型(下拉选择)、品种(输入+下拉联想)、年龄区间(滑块选择)、性别/是否绝育(复选框)等筛选条件都有了,还有重置和查询按钮,下方为宠物列表,用卡片式布局呈现宠物名称、品种、年龄、缩略图以及查看详情按钮,底部为分页组件,支持页码切换与每页显示条数修改(10/20/50条)。

宠物详情页面
UI实现页面分成左右两栏,左侧为宠物照片展示区(多图轮播、点击放大),右侧为信息展示区,宠物基本信息(名称、品种、年龄等),健康状况(疫苗、驱虫、病史),性格特点,饲养要求等;页面底部有一个提交领养申请的按钮,只有在领养宠物没有被选择的时候才会出现;未登录用户点击按钮就会跳转到登录页面。

领养申请页面
UI实现采用分步提交的方式,分为个人信息、领养信息、确认提交三个步骤;第一部分是真实姓名、身份证号、手机号、居住地址(省市区联动选择+详细地址),第二部分是居住环境(自有住房/租房、居住面积)、饲养经验(下拉选择)、领养动机(多行文本框)、是否同意承诺书(复选框),第三部分为所有填写信息,支持返回修改。

智能助手页面
UI实现为左侧功能导航栏+右侧交互区,左侧有“养宠咨询”、“领养指南”、“宠物疾病自查”、“智能匹配”四个功能入口,右侧为交互主体区,不同的功能入口对应不同的交互界面,底部固定输入框和发送按钮,可以进行文字或者图片的输入。

总结与展望
6.1 研究总结
本文设计并实现了一个基于SpringBoot和Vue的宠物领养管理系统,针对传统宠物领养模式的不足,使用前后端分离的架构,实现了用户管理、宠物信息管理、领养申请管理、文章资讯管理等功能。系统的主要成果有以下几点:
完成了系统的功能需求分析以及架构设计,确定了系统的技术方案,给系统的开发指明了方向;
设计出合理的数据库结构,包括用户表、宠物领养申请表、文章表等主要的数据表,提高了数据的存储以及访问效率;
基于SpringBoot实现后端接口的开发,基于Vue实现前端页面及交互功能,完成系统的全部开发;
对系统进行了全面的测试,即功能测试、性能测试、兼容性测试,保证系统的可用性、稳定性。
系统实现了宠物领养的简化,提高了领养效率,解决了信息不透明、管理效率低的问题,给领养双方提供方便的服务。
6.2 未来展望
尽管系统已经实现了大部分的功能,但是仍然存在可以继续改进和扩展的地方。
功能拓展,增加宠物领养后跟踪功能,定时提醒领养人上传宠物生活状况,保证宠物生活质量,增加宠物救助机构入驻功能,支持多机构协同管理
用户体验优化,使用人工智能推荐算法,根据用户的浏览历史、喜好等信息,向用户推荐合适的宠物信息;改善页面交互设计,提高用户操作的方便程度;
数据安全增强,对用户的敏感信息进行加密保护,采用短信验证、人脸识别等方式多因素认证,使系统更安全;
移动端适配,开发专用的移动端APP,支持iOS和Android系统,满足用户随时随地使用系统的要求。
今后会持续关注宠物领养领域的动态,改善系统的功能和性能,推进宠物领养事业的数字化、智能化发展。
网硕互联帮助中心



评论前必须登录!
注册