springboot流浪动物管理系统--附源码98448

SpringBoot流浪动物管理系统

摘要

随着城市化进程的加快,流浪动物问题日益严重,成为城市管理中的一个突出社会问题。流浪动物不仅面临生存困境,还对公共安全、环境卫生等方面产生不良影响。因此,如何有效管理流浪动物、促进领养与救助,成为了亟待解决的课题。基于SpringBoot与MySQL技术开发的流浪动物管理系统,旨在为流浪动物救助、领养及信息管理提供一站式解决方案。系统通过对不同用户角色的权限划分,提升了管理效率和参与度。普通用户可以在平台上浏览流浪动物信息,申请领养或救助,并参与互动论坛,增强社会对流浪动物问题的关注和参与。管理员则可对流浪动物、领养申请、救助记录等进行集中管理,发布通知公告、新闻资讯等信息,确保平台内容的时效性和准确性。救助机构和志愿者能够有效协调资源,管理救助记录与申请,进一步优化流浪动物的救助流程。通过这一系统的实现,不仅提高了流浪动物的救助效率,减轻了动物的困境,也促进了社会各界对流浪动物保护的参与与关注,对于推动社会公益事业的发展、构建和谐社会具有积极意义。

关键词:流浪动物管理系统;SpringBoot;MySQL

Abstract

As urbanization accelerates, the problem of stray animals has become increasingly severe, emerging as a prominent social issue in urban management. Stray animals not only face survival difficulties but also pose negative impacts on public safety, environmental sanitation, and other areas. Therefore, how to effectively manage stray animals and promote adoption and rescue has become a pressing issue that needs to be addressed. The stray animal management system, developed using SpringBoot and MySQL technologies, aims to provide a one-stop solution for the rescue, adoption, and information management of stray animals. By dividing user roles and permissions, the system enhances management efficiency and participation. Ordinary users can browse information about stray animals on the platform, apply for adoption or rescue, and participate in interactive forums, which helps raise public awareness and involvement in stray animal issues. Administrators can centrally manage stray animals, adoption applications, rescue records, etc., and publish notifications, news, and other information, ensuring the timeliness and accuracy of platform content. Rescue organizations and volunteers can effectively coordinate resources and manage rescue records and applications, further optimizing the rescue process for stray animals. The implementation of this system not only improves the efficiency of stray animal rescue and alleviates the animals' plight but also encourages participation and attention from all sectors of society towards the protection of stray animals, contributing positively to the development of public welfare and the building of a harmonious society.

Key words: Stray animal management system; SpringBoot; MySQL

目录

摘要

Abstract

1 绪论

1.1 研究背景与意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.2.1 国内现状

1.2.2 国外现状

1.3 主要研究内容

2 相关技术介绍

2.1 Java语言

2.2 B/S框架

2.3 SpringBoot框架

2.4 Vue技术

2.5 MySQL数据库

3 系统需求分析

3.1 功能需求分析

3.1.1 用户需求

3.1.2 功能需求

3.2 可行性分析

3.2.1 技术可行性

3.2.2 操作可行性

3.2.3 经济可行性

4 系统设计

4.1 系统设计流程

4.1.1 用户登录流程

4.1.2 添加信息流程

4.1.3 修改信息流程

4.1.4 删除信息流程

4.2 数据库表ER

4.3 数据库表物理设计

5 系统实现

5.1 普通用户功能实现

5.1.1 新闻资讯

5.1.2 流浪动物

5.1.3 救助申请

5.1.4 个人中心

5.2 救助机构功能

5.2.1 流浪动物管理

5.2.2 领养申请管理

5.2.3 救助申请管理

5.3 管理员功能

5.3.1 系统用户

5.3.2 系统管理

5.3.3 通知公告管理

5.3.4 资源管理

5.3.5 交流管理

5.4 志愿用户功能

5.4.1 救助申请管理

6 系统测试

6.1 测试目的

6.2 测试方法

6.3 测试内容

6.4 测试结论

7 总结

参考文献

致谢

1绪论

1.1研究背景与意义

1.1.1研究背景

随着城市化进程的加速,流浪动物问题逐渐成为城市管理中的一大难题。大量流浪动物在城市街头游荡,不仅面临生存困境,还可能对公共安全、卫生环境等方面带来影响。许多流浪动物因缺乏有效的救助和领养渠道,导致其健康状况不断恶化,甚至无法得到及时的救助。传统的流浪动物救助方式往往存在信息不畅、资源分配不均等问题,造成救助工作效率低下。因此,亟需一个信息化、系统化的管理平台来高效组织救助资源、连接各方力量,并为公众提供参与和支持流浪动物救助的途径。在此背景下,开发一个基于现代技术的流浪动物管理系统显得尤为重要。

1.1.2研究意义

流浪动物问题不仅是社会管理中的一项挑战,更是反映社会文明和公益精神的重要标志。开发基于SpringBoot与MySQL的流浪动物管理系统,不仅能有效提高流浪动物的救助效率,还能通过信息化手段推动社会各界参与流浪动物保护事业。该系统通过对不同角色用户的功能划分,能够确保流浪动物的领养与救助流程更加规范、高效,同时为救助机构和志愿者提供一个协同工作的平台。系统的建立有助于提高社会公众对流浪动物问题的关注度,促进更多人参与到流浪动物的救助和领养工作中,推动社会对动物保护的认知与支持,从而为建设更具人文关怀的社会环境提供技术保障。

1.2国内外研究现状

1.2.1国内现状

在国内,随着流浪动物问题日益突出,相关研究和管理实践逐渐得到重视。许多城市和地方政府已开始采取一定措施应对流浪动物的救助与管理问题。研究者们多集中于流浪动物的行为特征、救助策略及资源配置等方面,探索如何通过科学管理提高救助效率和动物福利。近年来,国内的一些学者尝试通过信息化手段来提升流浪动物管理的效率,探索构建线上平台来发布流浪动物信息、管理领养申请等内容。这些研究通过借助现代信息技术,推动了流浪动物救助流程的规范化,改善了公众参与和资源协调的渠道。然而,尽管国内已有一些地方开展了流浪动物管理的数字化探索,整体而言,流浪动物管理系统的普及和成熟度较低,平台的功能设计、数据整合及用户体验方面仍存在较多不足,尤其在动物救助信息的透明化和管理的高效性上仍有较大提升空间。因此,国内亟需更多关于流浪动物管理的系统性研究和技术实践。

1.2.2国外现状

在国外,流浪动物问题早已得到广泛关注,并且在许多国家和地区已经形成了较为成熟的流浪动物管理体系。欧美国家普遍建立了完善的动物保护法规,许多城市和组织通过数字平台对流浪动物进行监控、收养以及领养匹配。国外的研究主要集中在流浪动物的救助机制、动物收容所的管理优化以及智能化技术在动物保护中的应用等领域。例如,利用大数据和人工智能技术,国外的动物保护机构能够更精准地对流浪动物进行数据分析,追踪其领养进程和健康状态。这些研究和实践表明,信息技术在流浪动物管理中的应用能够显著提高资源利用效率,减少动物过度收容和浪费的情况。在流浪动物领养领域,许多平台还提供了在线申请、定期跟踪、志愿者协调等功能,提升了领养的成功率和动物福利。尽管如此,国外的流浪动物管理依然面临着如资源不足、管理不规范等挑战,需要进一步优化和发展相关的技术手段和管理流程。

1.3主要研究内容

本研究主要围绕流浪动物管理系统的设计与实现展开,旨在通过现代信息技术提升流浪动物救助与领养的效率。首先,研究将探索如何利用SpringBoot框架和MySQL数据库技术,构建一个具有多角色管理功能的系统平台。系统将分为普通用户、管理员、救助机构和志愿者等多个角色,每个角色拥有不同的操作权限,确保不同用户能够高效地完成流浪动物的救助、领养、记录管理等任务。对于普通用户,系统将提供流浪动物信息浏览、领养申请、救助申请、互动论坛等功能,鼓励公众积极参与到流浪动物的救助和领养中。对于管理员,系统将提供流浪动物管理、领养申请审核、救助记录管理等多项后台管理功能,并能够发布通知公告、新闻资讯等,确保信息的及时性和准确性。此外,救助机构和志愿者将在平台上协调资源,管理和处理救助申请、救助记录等信息,以优化流浪动物救助的流程。研究还将涉及系统的前端与后端设计,确保用户界面的简洁易用,数据交互的流畅与安全,以及系统的稳定性与可扩展性。通过对系统的设计与实现进行深入探讨,本研究旨在为流浪动物的救助和领养提供一种高效、透明的信息化管理模式,推动社会各界对流浪动物保护的参与和关注,提升流浪动物救助工作的整体效率。

2相关技术介绍

2.1Java语言

Java语言是一种广泛使用的高级编程语言,具有平台无关性、面向对象特性和丰富的标准库。Java通过Java虚拟机(JVM)实现跨平台运行,开发者可以编写一次代码,在任何支持JVM的环境中执行[1]。Java的面向对象特性使得代码复用和模块化变得更加容易,促进了软件的维护和扩展。Java支持多线程编程,允许开发者在同一程序中同时执行多个任务,提升了应用程序的性能。

Java语言的语法结构简洁且易于理解,吸引了大量开发者。Java的标准库包含数据结构、输入输出处理、网络编程等众多功能模块。这使得开发者在构建应用程序时能够高效利用已有工具,减少重复劳动。Java广泛应用于企业级应用、移动应用、Web开发和大数据处理等领域。

2.2 B/S框架

B/S(Browser/Server)架构是一种基于浏览器和服务器的系统架构模式,用户通过浏览器与服务器进行交互。B/S架构简化了客户端的部署和管理,用户无需在本地安装复杂的软件,只需使用标准浏览器即可访问应用程序。服务器端负责处理业务逻辑和数据存储,客户端则主要负责展示用户界面和数据交互[2]。B/S架构的设计使得系统更新和维护集中在服务器端,降低了维护成本。

B/S架构通常采用Web技术进行实现,包括HTML、CSS和JavaScript等。用户在浏览器中发起请求,服务器响应并返回数据。数据传输通常通过HTTP或HTTPS协议进行,B/S架构的灵活性使其适用于在线购物、信息管理系统和社交网络等各类应用场景[3]。由于其易于扩展性,B/S架构可以方便地支持大规模用户访问,适应不断变化的业务需求。

2.3 SpringBoot框架

SpringBoot框架是基于Spring框架的开源项目,简化Java应用程序的开发过程。SpringBoot通过约定优于配置的理念,减少了传统Spring应用的繁琐配置,开发者可以快速搭建和部署应用程序。框架提供了一系列默认配置,支持自动化配置,简化了应用启动的复杂性[4]。SpringBoot内置了嵌入式Web服务器,使得开发者能够独立运行Java应用,无需外部容器。

SpringBoot支持微服务架构,开发者可以轻松创建和管理多个微服务。框架集成了丰富的功能模块,包括安全、数据访问和消息中间件等,支持RESTful API和JSON数据格式的处理[5]。SpringBoot还提供了强大的监控和管理功能,允许开发者实时监控应用的健康状态和性能指标。借助SpringBoot,开发者能够高效构建和维护现代企业级应用,满足复杂业务需求。

2.4 Vue技术

Vue是一种渐进式JavaScript框架,专注于构建用户界面。Vue采用组件化的开发模式,允许开发者将应用程序拆分为独立的、可重用的组件,从而提高了开发效率和代码的可维护性[6]。框架的核心库专注于视图层,支持数据绑定和DOM操作,提供了简洁的API。Vue的虚拟DOM机制提升了应用的性能,减少了实际DOM操作的次数。

Vue支持双向数据绑定,能够自动更新视图与模型之间的变化。开发者可以通过Vue的指令系统,简化数据展示和事件处理。Vue还支持路由管理和状态管理,使得开发复杂单页面应用变得更加容易[7]。借助Vue的生态系统,开发者能够使用多种工具和库来扩展功能,满足不同的业务需求。Vue在前端开发中逐渐成为主流选择,受到广泛关注和应用。

2.5 MySQL数据库

MySQL是一种开源关系型数据库管理系统,广泛应用于Web应用和企业级数据存储。MySQL支持结构化查询语言,允许开发者通过标准语句进行数据的创建、读取、更新和删除操作[8]。数据库通过表格形式组织数据,支持数据完整性和约束条件的定义。MySQL的存储引擎机制使得用户可以根据具体需求选择不同的存储引擎,以优化性能和功能。

MySQL具有高性能和可扩展性,支持大规模数据存储和高并发访问。系统提供了丰富的用户权限管理和数据加密安全特性。MySQL能够与多种编程语言和框架兼容,广泛应用于内容管理系统、电子商务平台和数据分析等各种场景。

3系统需求分析

3.1功能需求分析

3.1.1用户需求

在流浪动物管理系统的设计中,用户需求主要体现在平台能够提供便捷、高效的信息展示和操作体验。普通用户需要一个简单直观的界面来浏览流浪动物信息,了解动物的状况并参与领养或救助。用户希望能够随时查看流浪动物的详细信息,包括动物的品种、年龄、健康状况、所在地点等,并通过系统直接提交领养或救助申请。同时,用户还期望能在平台上参与互动论坛,与其他人分享救助经验,提出建议或评论,增加社会对流浪动物问题的关注度。对于管理员而言,系统需要提供强大的后台管理功能,包括对流浪动物信息、领养申请、救助记录等进行集中管理、审批和更新。管理员还希望能够通过平台发布通知公告、新闻资讯等内容,以便及时传达流浪动物救助相关的信息。救助机构和志愿者则需要能够高效管理救助记录、协调资源,确保动物得到及时救助和领养。总体来说,用户需求聚焦于系统的易用性、信息透明度、参与性和管理效率,旨在促进流浪动物救助和领养工作的顺畅进行。

3.1.2功能需求

流浪动物管理系统的功能需求主要包括四个方面:信息管理、用户管理、申请管理和资源管理。系统需要提供一个信息管理模块,允许管理员和相关用户查看、更新流浪动物的基本信息,并支持动物品种、健康状况、位置等详细描述的存储与展示。对于申请管理,系统应支持用户提交领养申请或救助申请,并提供审批、反馈、回访等流程,确保动物能够得到有效的领养或救助。管理员需要能够处理这些申请,进行审核和记录管理。同时,系统还需具备互动论坛功能,允许用户进行讨论、评论和交流,增强用户之间的互动与沟通。在资源管理方面,系统应支持发布新闻资讯、公告以及更新平台内容等功能,以保持信息的时效性。此外,为提高流浪动物救助的协调性,救助机构和志愿者需要一个专门的管理模块,帮助他们追踪救助记录、资源分配及后续的回访工作。系统还应具有权限管理功能,确保不同角色的用户只能访问与其职责相关的功能,从而提升数据安全性和管理效率。系统功能结构图如图3-1所示。

图3-1系统功能结构图

3.1.3用户用例图

图3-2 普通用户用例图

图3-3 救助机构用例图

图3-4 救助机构用例图

 图3-5 管理员用例图

3.2可行性分析

3.2.1技术可行性

系统采用当前主流的SpringBoot和Vue.js开发框架,具备良好的技术基础。这些技术已被广泛应用于多种商业项目,具备成熟的文档和社区支持,便于开发获取必要的资源与解决方案。个人拥有丰富的相关技术经验,能够有效应对潜在技术挑战。所需的软硬件资源易于获取,且具备良好的兼容性,降低了技术实现的难度。

3.2.2操作可行性

系统具备直观友好的用户界面,支持简便的导航和功能访问,极大地提升了用户的使用体验。系统提供了自定义的工作流程和角色权限管理,使不同层级的用户能够快速上手,完成各自的任务。。

3.2.3经济可行性

系统所使用的软件为开源技术,降低了使用费用,同时硬件成本较低,使得整体初始投入相对合理,具备较高性价比。因此,系统在经济上是完全可行的。

4系统设计

4.1系统设计流程

4.1.1用户登录流程

用户输入用户名和密码后,系统先检查输入是否为空,再验证用户名是否存在,若存在则通过用户名获取密码并校验。若密码正确则登录成功,否则提示密码错误。若用户名不存在或无法登录,提示用户操作无效。如图4-1所示。

图4-1登录流程图

4.1.2添加信息流程

管理员可以添加信息,用户添加可以自己权限内的信息,输入信息后,要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。添加信息流程如图4-2所示。

图4-2添加信息流程图

4.1.3修改信息流程

用户首先选择需要修改的记录,输入修改后的数据,系统判断输入数据是否合法。若数据不合法,提示重新输入;若数据合法,则将修改后的数据写入数据库,完成操作后流程结束。修改信息流程图如图4-3所示。

图4-3修改信息流程图

4.1.4删除信息流程

用户选择需要删除的记录后,系统判断是否确认删除。若未确认,返回选择环节;若确认删除,则更新数据库,删除对应记录,完成操作后流程结束。删除信息流程图如图4-4所示。

图4-4删除信息流程图

4.2数据库表ER

数据库概念模型是数据库设计的一个阶段,它描述了数据库中数据的逻辑结构和之间的关系,而不关注具体的实现细节[9]。概念模型通常用于数据库设计的初期阶段,以帮助开发人员和用户理解数据库中存储的数据以及数据之间的关系。

数据库概念模型通常采用高层次的概念来描述数据,常见的概念模型包括实体-关系模型(Entity-Relationship Model,ERM)、面向对象模型(Object-Oriented Model)等。在概念模型中,数据被抽象为实体(Entity)和实体之间的关系(Relationship),并且定义了实体的属性(Attribute),通常以E-R图来表达。以下将展示系统的全局E-R图。

系统全局E-R图如图4-5所示。

图4-5系统E-R图

4.3数据库表物理设计

流浪动物管理系统中,数据库物理设计表,如下表所示。

表 4-1-access_token(登陆访问时长)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

token_id

int

临时访问牌ID

2

token

varchar

64

临时访问牌

3

info

text

65535

信息

4

maxage

int

最大寿命:默认2小时

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

7

user_id

int

用户编号

表 4-2-adoption_return_visit(领养回访)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

adoption_return_visit_id

int

领养回访ID

2

animal_name

varchar

64

动物名称

3

animal_breed

varchar

64

动物品种

4

publisher

int

发布机构

5

adoption_of_users

int

领养用户

6

user_name

varchar

64

用户姓名

7

user_phone

varchar

64

用户电话

8

return_visit_video

varchar

255

回访视频

9

create_time

datetime

创建时间

10

update_time

timestamp

更新时间

11

source_table

varchar

255

来源表

12

source_id

int

来源ID

13

source_user_id

int

来源用户

表 4-3-animal_breed(动物品种)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

animal_breed_id

int

动物品种ID

2

animal_breed

varchar

64

动物品种

3

create_time

datetime

创建时间

4

update_time

timestamp

更新时间

表 4-4-application_for_adoption(领养申请)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

application_for_adoption_id

int

领养申请ID

2

animal_name

varchar

64

动物名称

3

animal_breed

varchar

64

动物品种

4

publisher

int

发布机构

5

adoption_of_users

int

领养用户

6

user_name

varchar

64

用户姓名

7

user_phone

varchar

64

用户电话

8

supporting_documents

varchar

255

证明文件

9

application_for_adoption

text

65535

领养申请

10

adoption_agreement

varchar

255

领养协议

11

examine_state

varchar

16

审核状态

12

adoption_return_visit_limit_times

int

回访限制次数

13

create_time

datetime

创建时间

14

update_time

timestamp

更新时间

15

source_table

varchar

255

来源表

16

source_id

int

来源ID

17

source_user_id

int

来源用户

表 4-5-application_for_assistance(救助申请)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

application_for_assistance_id

int

救助申请ID

2

ordinary_user

int

普通用户

3

user_name

varchar

64

用户姓名

4

user_phone

varchar

64

用户电话

5

rescue_title

varchar

64

救助标题

6

relief_agencies

int

救助机构

7

volunteer_users

int

志愿用户

8

help_content

text

65535

求助内容

9

examine_state

varchar

16

审核状态

10

examine_reply

varchar

255

审核回复

11

salvage_record_limit_times

int

救助限制次数

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

表 4-6-article(文章)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

article_id

mediumint

文章id

2

title

varchar

125

标题

3

type

varchar

64

文章分类

4

hits

int

点击数

5

praise_len

int

点赞数

6

create_time

timestamp

创建时间

7

update_time

timestamp

更新时间

8

source

varchar

255

来源

9

url

varchar

255

来源地址

10

tag

varchar

255

标签

11

content

longtext

4294967295

正文

12

img

varchar

255

封面图

13

description

text

65535

文章描述

表 4-7-article_type(文章分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

display

smallint

显示顺序

3

name

varchar

16

分类名称

4

father_id

smallint

上级分类ID

5

description

varchar

255

描述

6

icon

text

65535

分类图标

7

url

varchar

255

外链地址

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-8-auth(用户权限管理)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

auth_id

int

授权ID

2

user_group

varchar

64

用户组

3

mod_name

varchar

64

模块名

4

table_name

varchar

64

表名

5

page_title

varchar

255

页面标题

6

path

varchar

255

路由路径

7

parent

varchar

64

父级菜单

8

parent_sort

int

父级菜单排序

9

position

varchar

32

位置

10

mode

varchar

32

跳转方式

11

add

tinyint

是否可增加

12

del

tinyint

是否可删除

13

set

tinyint

是否可修改

14

get

tinyint

是否可查看

15

field_add

text

65535

添加字段

16

field_set

text

65535

修改字段

17

field_get

text

65535

查询字段

18

table_nav_name

varchar

500

跨表导航名称

19

table_nav

varchar

500

跨表导航

20

option

text

65535

配置

21

create_time

timestamp

创建时间

22

update_time

timestamp

更新时间

表 4-9-code_token(验证码)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

code_token_id

int

验证码ID

2

token

varchar

255

令牌

3

code

varchar

255

验证码

4

expire_time

timestamp

失效时间

5

create_time

timestamp

创建时间

6

update_time

timestamp

更新时间

表 4-10-collect(收藏)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

collect_id

int

收藏ID

2

user_id

int

收藏人ID

3

source_table

varchar

255

来源表

4

source_field

varchar

255

来源字段

5

source_id

int

来源ID

6

title

varchar

255

标题

7

img

varchar

255

封面

8

create_time

timestamp

创建时间

9

update_time

timestamp

更新时间

表 4-11-comment(评论)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

comment_id

int

评论ID

2

user_id

int

评论人ID

3

reply_to_id

int

回复评论ID

4

content

longtext

4294967295

内容

5

nickname

varchar

255

昵称

6

avatar

varchar

255

头像地址

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_field

varchar

255

来源字段

11

source_id

int

来源ID

表 4-12-forum(论坛)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

forum_id

mediumint

论坛ID

2

display

smallint

排序

3

user_id

mediumint

用户ID

4

nickname

varchar

16

昵称

5

praise_len

int

点赞数

6

hits

int

访问数

7

title

varchar

125

标题

8

keywords

varchar

125

关键词

9

description

varchar

255

描述

10

url

varchar

255

来源地址

11

tag

varchar

255

标签

12

img

text

65535

封面图

13

content

longtext

4294967295

正文

14

create_time

timestamp

创建时间

15

update_time

timestamp

更新时间

16

avatar

varchar

255

发帖人头像

17

type

varchar

64

论坛分类

18

istop

int

是否置顶

表 4-13-forum_type(论坛分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

type_id

smallint

分类ID

2

name

varchar

16

分类名称

3

description

varchar

255

描述

4

url

varchar

255

外链地址

5

father_id

smallint

上级分类ID

6

icon

varchar

255

分类图标

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-14-hits(用户点击)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

hits_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

表 4-15-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

update_time

timestamp

更新时间

表 4-16-ordinary_user(普通用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

ordinary_user_id

int

普通用户ID

2

user_name

varchar

64

用户姓名

3

user_gender

varchar

64

用户性别

4

user_phone

varchar

64

用户电话

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-17-praise(点赞)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

praise_id

int

点赞ID

2

user_id

int

点赞人

3

create_time

timestamp

创建时间

4

update_time

timestamp

更新时间

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

status

tinyint

点赞状态:1为点赞,0已取消

表 4-18-relief_agencies(救助机构)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

relief_agencies_id

int

救助机构ID

2

name_of_institution

varchar

64

机构名称

3

institution_address

varchar

64

机构地址

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

6

create_time

datetime

创建时间

7

update_time

timestamp

更新时间

表 4-19-salvage_record(救助记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

salvage_record_id

int

救助记录ID

2

ordinary_user

int

普通用户

3

user_name

varchar

64

用户姓名

4

user_phone

varchar

64

用户电话

5

rescue_title

varchar

64

救助标题

6

relief_agencies

int

救助机构

7

volunteer_users

int

志愿用户

8

help_content

text

65535

求助内容

9

the_rescue_process

text

65535

救助过程

10

material_consumption

text

65535

物资消耗

11

create_time

datetime

创建时间

12

update_time

timestamp

更新时间

13

source_table

varchar

255

来源表

14

source_id

int

来源ID

15

source_user_id

int

来源用户

表 4-20-slides(轮播图)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

slides_id

int

轮播图ID

2

title

varchar

64

标题

3

content

varchar

255

内容

4

url

varchar

255

链接

5

img

varchar

255

轮播图

6

hits

int

点击量

7

create_time

timestamp

创建时间

8

update_time

timestamp

更新时间

表 4-21-stray_animals(流浪动物)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

stray_animals_id

int

流浪动物ID

2

animal_name

varchar

64

动物名称

3

animal_breed

varchar

64

动物品种

4

animal_gender

varchar

64

动物性别

5

animal_age

varchar

64

动物年龄

6

health_status

varchar

64

健康状态

7

publisher

int

发布机构

8

cover_image

varchar

255

封面图片

9

animal_video

varchar

255

动物视频

10

introduction_to_animals

longtext

4294967295

动物简介

11

hits

int

点击数

12

praise_len

int

点赞数

13

collect_len

int

收藏数

14

comment_len

int

评论数

15

mark_address

varchar

64

详细地址

16

mark_lng

varchar

64

详细地址经度

17

mark_lat

varchar

64

详细地址纬度

18

application_for_adoption_limit_times

int

领养限制次数

19

create_time

datetime

创建时间

20

update_time

timestamp

更新时间

表 4-22-upload(文件上传)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

upload_id

int

上传ID

2

name

varchar

64

文件名

3

path

varchar

255

访问路径

4

file

varchar

255

文件路径

5

display

varchar

255

显示顺序

6

father_id

int

父级ID

7

dir

varchar

255

文件夹

8

type

varchar

32

文件类型

表 4-23-user(用户账户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

user_id

int

用户ID

2

state

smallint

账户状态:(1可用|2异常|3已冻结|4已注销)

3

user_group

varchar

32

所在用户组

4

login_time

timestamp

上次登录时间

5

phone

varchar

11

手机号码

6

phone_state

smallint

手机认证:(0未认证|1审核中|2已认证)

7

username

varchar

16

用户名

8

nickname

varchar

16

昵称

9

password

varchar

64

密码

10

email

varchar

64

邮箱

11

email_state

smallint

邮箱认证:(0未认证|1审核中|2已认证)

12

avatar

varchar

255

头像地址

13

open_id

varchar

255

针对获取用户信息字段

14

create_time

timestamp

创建时间

表 4-24-user_group(用户组)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

group_id

mediumint

用户组ID

2

display

smallint

显示顺序

3

name

varchar

16

名称

4

description

varchar

255

描述

5

source_table

varchar

255

来源表

6

source_field

varchar

255

来源字段

7

source_id

int

来源ID

8

register

smallint

注册位置

9

create_time

timestamp

创建时间

10

update_time

timestamp

更新时间

表 4-25-volunteer_users(志愿用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

volunteer_users_id

int

志愿用户ID

2

volunteer_name

varchar

64

志愿姓名

3

voluntary_gender

varchar

64

志愿性别

4

examine_state

varchar

16

审核状态

5

user_id

int

用户ID

6

create_time

datetime

创建时间

7

update_time

timestamp

更新时间

5系统实现

5.1普通用户功能实现

5.1.1新闻资讯

普通用户可以进入新闻资讯页面,浏览最新的流浪动物救助动态、领养故事及相关法律法规等信息。通过分类筛选功能,用户可以快速找到感兴趣的内容,点击阅读详细文章,了解流浪动物保护相关的新闻和活动。其界面如图5-1所示。

图5-1新闻资讯界面。

5.1.2流浪动物

普通用户进入流浪动物信息页面,查看不同种类流浪动物的详细资料,包括动物名称、品种、健康状况、所在地点等信息。通过筛选功能,用户可以根据动物的年龄、性别等条件筛选流浪动物,便于快速找到适合领养的宠物。其界面如图5-2所示。

图5-2流浪动物界面。

5.1.3救助申请

普通用户可以进入救助申请页面,填写相关信息申请救助流浪动物。用户需提供详细的救助原因、个人信息及联系方式等,提交申请后等待管理员的审批与反馈。用户还可查看自己的历史救助记录,了解申请进度。其界面如图5-3所示。

图5-3救助申请界面。

5.1.4个人中心

普通用户可以进入个人中心,查看和管理自己的个人资料、领养申请、救助记录等信息。用户可以在个人中心查看已提交的领养申请和救助申请状态,更新个人信息,参与互动论坛,并查看评论和收藏记录。其界面如图5-4所示。

图5-4个人中心界面。

5.2救助机构功能

5.2.1流浪动物管理

救助机构进入流浪动物管理页面,浏览系统中的流浪动物信息,包括动物的基本资料、健康状况、所在地点等。通过筛选功能,按品种、年龄、健康等条件筛选流浪动物。点击具体动物查看详细信息,决定是否进行救助或其他管理操作。其界面如图5-5所示。

图5-5流浪动物管理界面。

5.2.2领养申请管理

救助机构进入领养申请管理页面,查看用户提交的领养申请。每个申请包含申请人信息、申请理由、对宠物的了解等内容。救助机构可对申请进行审核、审批,决定是否批准,并记录审批结果与处理意见,确保流浪动物得到合适的领养。其界面如图5-6所示。

图5-6领养申请管理界面。

5.2.3救助申请管理

救助机构进入救助申请管理页面,查看用户提交的救助申请,详细了解申请人的救助需求与联系方式。根据流浪动物的情况和资源,救助机构审核并处理救助请求,决定是否批准并安排救助,同时跟踪救助过程及后续记录。其界面如图5-7所示。

图5-7救助申请管理界面。

5.3管理员功能

5.3.1系统用户

管理员登录后台进入系统用户管理页面,查看和管理不同角色的用户信息,包括普通用户、志愿者、救助机构等。管理员可以编辑用户信息,调整用户权限,删除不合规用户,确保平台的用户信息准确和安全。其界面如图5-8所示。

图5-8系统用户界面。

5.3.2系统管理

管理员登录后台进入系统管理页面,管理平台的基础设置与功能配置。管理员可以对系统进行维护,包括数据库管理、系统日志查看、定期备份等,确保系统的稳定运行和数据安全。其界面如图5-9所示。

图5-9系统管理界面。

5.3.3通知公告管理

管理员登录后台进入通知公告管理页面,发布、编辑和删除平台的通知公告。管理员可以设置公告的标题、内容和发布时间,确保流浪动物救助相关的信息及时传达给用户,并可以查看公告的发布历史记录。其界面如图5-10所示。

图5-10通知公告管理界面。

5.3.4资源管理

管理员登录后台进入资源管理页面,管理新闻资讯、资讯分类等内容。管理员可以添加、编辑或删除新闻文章、更新资讯分类,确保平台内容的时效性与准确性,同时管理新闻的排序和展示方式。其界面如图5-11所示。

图5-11资源管理界面。

5.3.5交流管理

管理员登录后台进入交流管理页面,管理平台的互动论坛与评论内容。管理员可以查看用户发表的帖子、评论,进行删除或屏蔽不良内容的操作,并根据需要调整论坛的分类和话题,确保交流内容健康有序。其界面如图5-12所示。

图5-12交流管理界面。

5.4志愿用户功能

5.4.1救助申请管理

       志愿用户进入救助申请管理页面,查看自己提交的救助申请记录,包括申请内容、提交时间及申请状态。用户可以查看每个申请的详细信息,了解救助进度,并根据需要修改或更新申请内容,确保救助请求得到及时处理。其界面如图5-12所示。

图5-13救助申请管理界面。

6系统测试

6.1测试目的

测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性[10]。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。

6.2测试方法

在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。

常见的测试用例包括功能测试用例、边界测试用例和异常测试用例[12]。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。

在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。

6.3测试内容

系统用户测试用例表如表6-1所示。

表6-1 系统用户测试用例。

测试项

测试用例

预期结果

结论

系统用户

1. 用户登录系统,进入用户管理页面,查看所有用户信息。

系统显示所有用户的基本信息。

与预期结果一致。

系统用户

2. 管理员在用户管理页面,修改用户权限并保存。

系统提示修改成功,用户权限更新。

与预期结果一致。

系统用户

3. 管理员删除指定用户,查看用户列表是否更新。

系统提示删除成功,用户列表中不再显示该用户。

与预期结果一致。

系统用户

4. 管理员搜索特定用户,查看是否能准确定位该用户。

系统准确显示所搜索的用户信息。

与预期结果一致。


系统管理测试用例表如表6-2所示。

表6-2 系统管理测试用例。

测试项

测试用例

预期结果

结论

系统管理

1. 用户登录系统,进入系统管理页面,查看系统运行状态。

系统显示当前的运行状态。

与预期结果一致。

系统管理

2. 系统管理员进行数据备份操作,检查备份是否成功。

系统提示备份成功,备份文件出现在指定目录。

与预期结果一致。

系统管理

3. 系统管理员修改系统配置后,查看系统是否应用新配置。

系统提示配置更新成功,配置变更生效。

与预期结果一致。

系统管理

4. 系统管理员查看日志记录,确认系统日志正确。

系统准确记录操作日志。

与预期结果一致。


通知公告管理测试用例表如表6-3所示。

表6-3通知公告管理测试用例。

测试项

测试用例

预期结果

结论

通知公告管理

1. 管理员登录系统,进入通知公告管理页面,发布一条新的公告。

系统提示公告发布成功,公告显示在公告列表中。

与预期结果一致。

通知公告管理

2. 管理员编辑并更新已发布的公告,查看是否生效。

公告内容更新成功,公告页面显示新的内容。

与预期结果一致。

通知公告管理

3. 管理员删除一条公告并确认删除。

系统提示删除成功,公告列表中不再显示该公告。

与预期结果一致。

通知公告管理

4. 用户登录系统,查看公告页面,确认是否能看到最新的公告。

公告页面显示最新发布的公告。

与预期结果一致。


资源管理测试用例表如表6-4所示。

表6-5资源管理测试用例。

测试项

测试用例

预期结果

结论

资源管理

1. 管理员进入资源管理页面,上传一篇新的新闻资讯。

系统提示新闻发布成功,资讯显示在列表中。

与预期结果一致。

资源管理

2. 管理员编辑并更新新闻资讯的内容。

新闻资讯更新成功,资讯页面显示新的内容。

与预期结果一致。

资源管理

3. 管理员删除一篇新闻资讯并确认删除。

系统提示删除成功,资讯列表中不再显示该资讯。

与预期结果一致。

资源管理

4. 用户登录系统,查看新闻资讯页面,确认能看到最新的新闻内容。

用户能够看到最新的新闻资讯。

与预期结果一致。


交流管理测试用例表如表6-5所示。

表6-5交流管理测试用例。

测试项

测试用例

预期结果

结论

交流管理

1. 管理员进入交流管理页面,查看用户发表的论坛帖子。

系统显示所有用户发表的帖子。

与预期结果一致。

交流管理

2. 管理员删除不良论坛帖子,查看帖子是否被删除。

系统提示删除成功,帖子从论坛中消失。

与预期结果一致。

交流管理

3. 管理员编辑论坛帖子并保存,查看帖子内容是否更新。

帖子内容更新成功,显示更新后的内容。

与预期结果一致。

交流管理

4. 用户登录论坛,发表新帖子并查看帖子是否发布成功。

帖子发布成功,并在论坛中显示。

与预期结果一致。

6.4测试结论

本次系统测试验证了各功能模块的设计与实现是否符合预期,测试结果表明,各项功能均能正常运行,达到预期目标。通过对系统用户、系统管理、通知公告管理、资源管理及交流管理等模块的全面测试,确保了系统在用户管理、数据维护、信息发布等方面的高效性和稳定性。管理员可以顺利进行用户权限管理、系统配置更新、公告发布与资源管理,用户能够快速浏览和参与平台互动,整体操作流畅且符合用户需求。

此外,系统的各项功能具备良好的可用性,测试过程中未发现重大的系统故障或异常情况。平台的用户体验得到了有效保障,能够满足不同角色用户的操作需求,提供了便捷的信息管理和交流平台。通过本次测试,可以确认该系统在实际使用中能够为流浪动物管理、救助和领养等工作提供有力支持,有助于提高社会对流浪动物保护的参与度与效率,推动社会公益事业的发展。

7总结

本研究基于SpringBoot与MySQL技术,设计并实现了一个流浪动物管理系统,旨在解决流浪动物管理和救助过程中面临的各种挑战。通过系统的开发和测试,成功地实现了一个功能完备、易于操作的管理平台。系统不仅支持不同角色用户的权限管理,如普通用户、管理员、救助机构和志愿者,还提供了信息发布、救助申请、领养流程等多种功能,全面提升了流浪动物救助和领养的效率。通过平台,普通用户可以直接参与到流浪动物的救助和领养中,管理员则能够高效地管理平台内容并发布公告,救助机构和志愿者能够及时获取流浪动物的相关信息,协调资源,确保每一只流浪动物都能够得到应有的帮助。

在完成该系统的开发与测试后,深感信息化技术在公益事业中的巨大潜力。流浪动物的救助与领养本是一个充满挑战和困难的过程,但通过现代技术的应用,许多问题得到了有效解决。从系统的设计到测试的验证,我们看到技术不仅仅是为了提升效率,它还能够帮助我们更加关注和关爱社会中的弱势群体,推动社会公益事业向前发展。这一研究不仅为流浪动物的管理提供了一种创新的解决方案,也让我们意识到,随着技术的不断发展,未来将有更多的机会和方式,能够帮助更多需要帮助的生灵,建设一个更加温暖和谐的社会。

参考文献

  1. 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
  2. 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现[J].铁路计算机应用,2021,30(03):32-35.
  3. 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发[J].铁路通信信号工程技术,2024,21(09):44-48+106.
  4. 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
  5. 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2021,15(36):76-77.
  6. 赵媛.基于Vue的Web系统前端性能优化分析[J].电脑编程技巧与维护,2024,(09):44-46.
  7. 秦冬.浅析Vue框架在前端开发中的应用[J].信息与电脑(理论版),2024,36(13):61-63.
  8. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  9. 周晓玉,崔文超.基于Web技术的数据库应用系统设计[J].信息与电脑(理论版),2023,35(09):189-191.
  10. 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
  11. Helping tackle Bulgaria's stray animal population[J].Veterinary Record,2024,195(2):iii-iii.
  12. Choudhary K ,Palsaniya K V .Overview of the Stray Animals in India and Their Regulation[J].Journal of Advances in Biology & Biotechnology,2024,27(7):893-899.
  13. Pandey D H ,Shukla A ,Kankane V , et al.Clinico-radiological study in head injury due to road traffic accident caused by stray animals[J].Asian Journal of Medical Sciences,2024,15(4):183-187.
  14. 张雨蝶,周春柳.高校流浪动物的数字化管理探索[J].中国动物检疫,2023,40(11):41-45+88.
  15. Saba A ,Mirza M B ,Ali A S .The unreconciled dangers of stray animal attacks.[J].JPMA. The Journal of the Pakistan Medical Association,2023,73(6):1354-1354.
  16. 陈雷.流浪动物致人损害侵权责任研究[D].兰州大学,2023.DOI:10.27204/d.cnki.glzhu.2023.003035.
  17. Kumar R T ,Aditi W ,Kanika M , et al.Increasing Interference of Stray and Wild Animals in Farming: Reflections from Western Himalayan Foothills[J].Indian Journal of Ecology,2022,49(1):57-63.
  18. 王明珠.流浪动物管理制度研究[D].青海师范大学,2021.DOI:10.27778/d.cnki.gqhzy.2021.000512.
  19. 姜苏.基于互联网平台解决社会流浪动物问题的可行性研究[D].山东农业大学,2020.DOI:10.27277/d.cnki.gsdnu.2020.001043.
  20. 刘琴琴.我国流浪动物规范管理的法律研究[D].西北大学,2020.DOI:10.27405/d.cnki.gxbdu.2020.002158.

致谢

在此,我要衷心感谢在本论文研究与系统开发过程中给予我帮助和支持的所有人。感谢我的导师,他在课题的选定、研究方法的指导、技术问题的解答以及论文写作的过程中,给予了我极大的帮助和支持。导师的专业知识、严谨的学术态度和无私的教诲,让我在整个研究过程中受益匪浅。他不仅在学术上给予我指导,还在工作中给予我耐心和鼓励,使我能够顺利完成研究任务。

此外,我还要感谢我的家人和朋友,在我进行研究期间,始终给予我精神上的支持和鼓励。尤其是在遇到困难时,他们的理解与陪伴使我能够坚持下去,克服一个又一个挑战。感谢所有参与测试和反馈的用户们,你们的宝贵意见和建议对系统的优化和完善起到了至关重要的作用。最后,感谢所有曾为动物保护事业贡献力量的人们,正是因为你们的关爱与付出,我们才能够看到流浪动物救助工作的点滴进展。每一个为爱付出的人都值得敬佩,也正是你们让这个世界更加温暖。

代码:


连接数据库的文件在Resources 文件夹下的application.yml文件,代码如下:

server:

  port: 5000

  servlet:

    context-path: /api

spring:

  mvc:

    static-path-pattern: /upload/**

  resources:

    static-locations: file:此处填写地址/project93355/server/src/main/resources/static

datasource:    

jdbc:mysql://127.0.0.1:3306/projectxxxxx?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8

    username: root

    password: root

    driver-class-name: com.mysql.cj.jdbc.Driver

    type: com.alibaba.druid.pool.DruidDataSource

  jackson:

    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

    default-property-inclusion: ALWAYS

    time-zone: GMT+8

    date-format: yyyy-MM-dd HH:mm:ss

  servlet:

 项目启动文件Application.java,代码如下:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

@EnableJpaRepositories

@MapperScan("com.project.demo.dao")

public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class,args);

    }

}

修改数据代码如下:

    @PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

    }

删除一条数据代码如下:

    @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

通过请求的参数获取列表数据,代码如下:

    @RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

    }

获取某个组下面的数量,代码如下:

    @RequestMapping(value = {"/count_group", "/count"})

    public Map<String, Object> count(HttpServletRequest request) {

        Integer value= service.selectSqlToInteger(service.groupCount(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

注册页登录代码如下:

    /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        List list = service.selectBaseList(service.select(query, new HashMap<>()));

        if (list.size()>0){

            return error(30000, "用户已存在");

        }

        map.put("password",service.encryption(String.valueOf(map.get("password"))));

        service.insert(map);

        return success(1);

}     

MD5加密,代码如下:

    public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

}

登录页代码如下:

 /**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.selectBaseList(service.select(map, new HashMap<>()));

        }

       

找回密码,接收用户输入的用户名、密码、验证码,并进行条件判断,代码如下:

    /**

     * 找回密码

     * @param form

     * @return

     */

    @PostMapping("forget_password")

    public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {

        JSONObject ret = new JSONObject();

        String username = form.getUsername();

        String code = form.getCode();

        String password = form.getPassword();

        // 判断条件

        if(code == null || code.length() == 0){

            return error(30000, "验证码不能为空");

        }

        if(username == null || username.length() == 0){

            return error(30000, "用户名不能为空");

        }

        if(password == null || password.length() == 0){

            return error(30000, "密码不能为空");

        }

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值