springboot流浪猫标注及领养平台的设计与实现 计算机毕业设计源码69987
流浪猫标注及领养平台旨在通过现代信息技术手段提升流浪猫的管理效率和公众参与度,为流浪猫及其潜在领养者提供便捷的服务。该平台分为两个主要用户角色,领养用户和管理员。领养用户可以通过注册账号并登录系统,浏览首页展示的网站公告、新闻资讯和流浪猫信息等内容。用户能够通过搜索关键字查看详细的流浪猫信息列表,并对心仪的猫咪进行收藏或申请领养。在申请过程中,用户需要填写详细的领养信息,包括个人基本信息和领养备注。此外,用户可以在个人中心管理自己的账户信息、查看领养记录以及回访记录等。管理员则通过后台管理系统实现对平台内容的全面管理,包括流浪猫信息的添加与审核、用户信息的管理、领养申请的审批以及新闻资讯和轮播图的更新等。
该平台不仅提供了高效便捷的流浪猫管理和领养服务,还增强了社会对动物保护的关注和责任感。通过智能技术和信息化手段的应用,平台实现了流浪猫信息的精准标注和实时更新,提升了救助效率。同时,平台鼓励公众广泛参与,为爱心人士提供了方便快捷的领养途径。管理员通过对领养申请的严格审核和回访登记,确保每一只流浪猫都能找到合适的家庭,保障其健康和生活质量。这种多方协作的方式不仅有效解决了流浪猫问题,还促进了人与动物和谐共处的社会环境建设,具有重要的社会意义和实际应用价值。
关键词: SpringBoot,流浪猫标注及领养平台,Java
The Stray Cat tagging and Adoption platform aims to enhance the management efficiency and public participation of stray cats through modern information technology means, and provide convenient services for stray cats and their potential adopters. The platform is divided into two main user roles, adopter and administrator. Adoption users can register an account and log in to the system to browse the website announcements, news and stray cat information displayed on the home page. Users can search for a keyword to see a detailed list of stray cats and collect or apply for adoption. During the application process, users are required to fill in detailed adoption information, including basic personal information and adoption notes. In addition, users can manage their account information, access adoption records and return visit records in the Personal center. The administrator realizes the comprehensive management of the platform content through the background management system, including the addition and review of stray cat information, the management of user information, the approval of adoption applications, and the update of news information and rotation charts.
The platform not only provides efficient and convenient stray cat management and adoption services, but also enhances society's concern and responsibility for animal protection. Through the application of intelligent technology and information means, the platform realizes the accurate annotation and real-time update of stray cat information, and improves the rescue efficiency. At the same time, the platform encourages extensive public participation and provides a convenient and fast way for caring people to adopt. Through strict review of adoption applications and return visit registration, the manager ensures that every stray cat can find a suitable family and protect its health and quality of life. This way of multi-party cooperation not only effectively solves the problem of stray cats, but also promotes the construction of a social environment of harmonious coexistence between humans and animals, which has important social significance and practical application value.
Key words:SpringBoot, Stray Cat tagging and adoption platform, Java
目录
1 绪论
-
- 研究背景与意义
流浪猫问题在全球范围内广泛存在,对城市生态、公共卫生以及动物福利构成了严峻挑战。流浪猫数量的增加不仅会扰乱城市的生态平衡,还可能导致野生动物数量减少,破坏生物多样性。此外,流浪猫由于缺乏必要的医疗照顾,容易成为疾病的传播源,对公共健康构成威胁。因此,如何有效管理和救助这些无家可归的小生命成为了亟待解决的问题。社会对动物保护意识的提高,促使人们寻找更加科学和有效的解决方案来应对这一问题。
随着智能技术的发展,现代信息技术手段为流浪猫管理提供了新的思路和方法。通过先进技术的应用,可以实现对流浪猫的精准定位、行为监测以及健康管理。例如,智能猫屋可以通过传感器实时监控流浪猫的生活状态,并将数据上传至云端进行分析,帮助管理者制定更为科学的救助方案[1]。同时,利用图像识别技术可以实现对流浪猫的身份识别和追踪,提高管理效率[2]。基于这些技术的进步,设计和实现一个综合性的流浪猫标注及领养平台具有重要的现实意义。
流浪猫管理不仅仅是政府或动物保护组织的责任,更需要全社会的共同参与。设计一个便捷高效的流浪猫标注及领养平台,不仅可以促进流浪猫的有效管理,还能增强公众的参与度和社会责任感。通过该平台,爱心人士可以方便地了解流浪猫的信息,选择合适的领养对象,并获得相关的领养指导和支持。这种多方协作的方式不仅能改善流浪猫的生活质量,还能营造一个人与动物和谐共处的社会环境,推动社会文明进步。因此,构建这样一个平台不仅有助于解决实际问题,也具有深远的社会价值。
当前,关于流浪猫管理的研究已经取得了一定成果,并且呈现出多学科交叉的特点。例如,刘健等人在《基于智能猫屋的城市流浪猫管理初探》中探讨了智能猫屋在流浪猫管理中的应用,提出了一种集成了物联网技术的解决方案,实现了对流浪猫的实时监控和数据收集。王腾在其研究《基于猫脸智能识别的校园流浪猫救助管理系统的设计与实现》中详细介绍了利用图像识别技术进行流浪猫身份识别的方法,提高了管理系统的智能化水平。裴浩强则从共生理论的角度出发,设计了一个城市流浪猫服务系统,强调了人与动物和谐共处的重要性[3]。
此外,针对流浪猫领养平台的设计与实现也有诸多探索。梁会成和王黎光提出了基于JSP+SSM框架的在线领养猫咪系统,通过网络平台连接需要领养的家庭和流浪猫,简化了领养流程[4]。秦豆豆等人开发了AIT——流浪猫狗救助平台管理系统,集成了多种功能模块,包括信息发布、用户交流等,极大地提升了用户体验[5]。聂力等人进一步优化了这一领域,他们基于微信小程序“送它回家”的设计与实现展示了移动互联网技术在流浪动物救助中的潜力[6]。
柳贺文、陆涛和杜昕宇在《线上E猫圈与线下流浪猫的交互设计研究》中探讨了如何通过线上线下结合的方式提升流浪猫救助的效果,提出了一个综合性的互动平台设计方案,增强了用户参与感和互动性[7]。邵帅和殷晓晨在《城市社区流浪猫救助服务设计研究》中分析了城市社区内流浪猫救助的具体需求,并提出了一系列基于社区的服务设计策略,旨在提高流浪猫救助效率和服务质量[8]。邓波、朱九超和葛杰基于TNR(Trap-Neuter-Return)救助原则,设计并研究了一个城市流浪猫APP的交互方案,强调了科技手段在流浪猫管理中的重要性[9]。
邹玲怡在其研究《基于服务设计的城市流浪动物救助站空间设计研究》中,从空间设计角度探讨了如何优化流浪动物救助站的功能布局,以提高救助效率和服务体验[10]。柯琅则在《流浪猫救助的知识可视化研究》中,提出了通过知识图谱和数据可视化的手段来展示流浪猫救助的相关信息,使信息更加直观易懂,提升了公众的理解和支持度[11]。
综上所述,尽管现有研究已经在流浪猫管理与领养方面取得了显著进展,但仍存在一些不足之处,如信息更新不及时、用户体验有待提高等。因此,本研究拟构建一个更加高效、便捷的流浪猫标注及领养平台,以弥补现有系统的不足,为流浪猫及其潜在领养者提供更优质的服务。通过集成先进的信息技术手段,该平台不仅能够提升流浪猫管理的智能化水平,还能增强公众参与度和社会责任感,推动流浪猫救助事业的发展。
本文共分为六章,章节内容安排如下:
第一章:引言。第一章主要介绍了课题研究的背景与意义,研究现状以及本文的研究内容与主要工作。
第二章:系统需求分析。第而章主要从系统的用户、功能等方面进行需求分析。
第三章:系统概要设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
2 系统需求分析
系统需求分析是系统开发的一个关键环节,它在系统的设计和实现上起到了一个承上启下的位置。系统需求分析是对所需要做的系统进行一个需求的挖掘,如果分析的准确可以精准的解决现实中碰到的问题。如果分析不到位会影响后期系统的实现。一个系统的优秀程度需求分析也是占据了非常大的比例,如果需求分析不到位,后面的系统设计要实现就是一个偏离导航的设计。
2.1 可行性分析
系统可行行分析是对系统对系统可行性进行一个探讨。在探讨系统的可行性上我们主要从技术上的可行性和经济上的可行性以及操作层面的可行性上进行分析,如果三个层面都通过,我们则认为系统是比较可行的。
2.1.1 技术可行性分析
流浪猫标注及领养平台的设计与实现是一个基于流浪猫领养管理平台,我们在实现这个系统所采用的技术方案是基于Java语言,采用的是比较流行的SpringBoot框架以及MySQL数据库,在大学的学习中这两门课程都已经学过,而且自己也用这些技术开发过小的项目,在平时的课程设计以及作业也经常用到Java、SpringBoot和MySQL,在技术上实现自己的自主开发是可行的。
2.1.2 经济可行性分析
开发本流浪猫标注及领养平台的技术都是可以从网上直接免费下载,不用花一分钱,而且系统的源代码都是自己进行设计开发的,不需要成本,如果后期想要进行运营,只要把配置到服务器上,花费服务器的租赁费用,在使用中可以进行增加广告收益,因此在经济方面是可性的。
2.1.3 操作可行性分析
当下网络新时代,计算机已经得到了普及,多数人对计算机都比较的熟悉,知道如何使用它,当然也存在对计算机比较陌生的这一群体,也需要对其进行考虑。在进行流浪猫标注及领养平台页面的设计的时候,考虑到使用人群,可能也存在对计算机比较陌生的人,所以,在页面的设计方面,设计的很是简单、简洁,布局明了,色调明朗,让无论是对计算机陌生还是对计算机熟悉的使用者,都可以使用自如,这也说明了该程序的操作方面非常可行。
2.2 系统用例分析
流浪猫标注及领养平台的完整用例图分别是图2-1和图2-2。在参与者上包括领养用户以及管理员。
领养用户角色用例如图2-1所示。
图2-1 系统领养通用户角色用例图
管理员角色用例如图2-2所示。
2.3 功能需求分析
领养用户:
(1)注册登录:用户可以通过注册成为系统用户,注册后可以用账号密码登录系统。
(2)首页:当用户进入流浪猫标注及领养平台的时候,首先映入眼帘的是系统首页、网站公告、新闻资讯、流浪猫信息等内容。
(3)网站公告:领养用户点击可查看网站公告、关于我们、联系方式和网站介绍等信息,方便用户浏览了解系统公告信息。
(4)新闻资讯:领养用户点击可通过局部搜索进行浏览书籍咨讯,同时可对咨讯进行点赞、收藏和评论。
(5)流浪猫信息:领养用户点击可通过搜索关键字进行查看流浪猫信息列表,点击进入心仪的动物信息可查看详情,可对动物信息进行收藏;点击“申请领养”按钮可填写领养信息,包括领养编号、猫咪编号、猫咪昵称、猫咪种类、猫咪年龄、猫咪性别、领养地址、疫苗情况、申请日期、领养人、用户姓名、手机号码、用户住址和领养备注。
(6)我的账户:领养用户可以在个人账户中查看并管理自己的个人信息。包括个人资料、修改密码等。
(7)个人中心:个人中心包含多个功能模块,如个人首页、领养申请、领养记录、回访记录、收藏和评论管理,点击可查看和管理相关功能。
管理员:
(1)登录:管理员账号密码由系统生成,可使用账号密码可进行登录系统后台,使用系统功能进行管理,并可对自己的个人信息和密码进行管控。
(2)后台首页:管理员点击可查看流浪猫信息和猫咪种类信息统计数据图。
(3)系统用户:管理员可以查看系统用户(管理员、领养用户)列表中某个用户的详情,可以对用户信息进行查询、审核、添加和删除操作。
(4)流浪猫信息管理:管理员点击可查看流浪猫信息列表和流浪猫信息添加;点击“流浪猫信息添加”可填写相关信息,包括猫咪编号、猫咪昵称、猫咪种类、封面图、猫咪年龄、猫咪性别、猫咪数量、领养条件、领养地址、疫苗状况、生活图集和详情介绍。
(5)猫咪种类管理:管理员点击可查看猫咪种类列表和猫咪种类添加;点击“猫咪种类添加”可填写相关信息,包括猫咪种类、总数量和成功领养数。
(6)领养申请管理:管理员点击可查看领养申请列表,同时可对用户的领养申请进行审核回复。点击“同意领养”按钮可填写相关信息,包括领养日期和资料文件。
(7)领养记录管理:管理员点击可查看领养记录列表,点击“回访登记”按钮可填写回访信息,包括回访日期和回访内容。
(8)回访登记管理:管理员点击可查看回访登记列表。
(9)系统管理:管理员点击可查看轮播图管理;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题和链接,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。
(10)网站公告管理:当管理点击“网站公告管理”时,可查看网站公告;如需添加新的公告信息,点击右侧“添加”按钮,输入标题和正文,点击“确认”按钮进行添加。
(11)资源管理:管理员点击可查看新闻咨讯和咨讯分类;如需添加新的资讯,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“确认”按钮进行添加。同时可对咨讯和分类进行增删改查。
2.4 非功能性需求分析
流浪猫标注及领养平台的非功能性需求比如流浪猫标注及领养平台的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下2-1表格中:
表2-1流浪猫标注及领养平台非功能需求表
|
安全性 |
主要指流浪猫标注及领养平台数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
|
可靠性 |
可靠性是指流浪猫标注及领养平台能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
|
性能 |
性能是影响流浪猫标注及领养平台占据市场的必要条件,所以性能最好要佳才好。 |
|
可扩展性 |
比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
|
易用性 |
用户只要跟着流浪猫标注及领养平台的页面展示内容进行操作,就可以了。 |
|
可维护性 |
流浪猫标注及领养平台开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
3 系统概要设计
3.1系统架构设计
本流浪猫标注及领养平台从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1 系统架构设计图
3.2系统功能结构设计
系统在结构上的设计至关重要,要考虑周全,设计全面,一个完善的结构体系,能够满足用户在使用时的各种需求,这样会让提高程序的使用率,保证程序被长久的利用。在设计流浪猫标注及领养平台的结构时,也列入重点,采用模块化的方法来进行设计,即首先将大模块确定下来,再慢慢的将大模块进行补充完善,向下分支出小模块,一起共同组成的系统的结构体系,下图是该流浪猫标注及领养平台的结构设计图,直观明了的可以看出本项目程序的功能。
流浪猫标注及领养平台模块图如图3-2所示。
图3-2 系统功能结构图
3.3系统数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个流浪猫标注及领养平台中主要的数据库表总E-R实体关系图。
图3-3 系统总E-R关系图
3.3.2 数据库逻辑结构设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本流浪猫标注及领养平台的主要的数据库表如下:
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
adoption_application_id |
int |
10 |
0 |
N |
Y |
领养申请ID |
|
|
2 |
adoption_number |
varchar |
64 |
0 |
Y |
N |
领养编号 |
|
|
3 |
cat_id |
varchar |
64 |
0 |
Y |
N |
猫咪编号 |
|
|
4 |
cat_nickname |
varchar |
64 |
0 |
Y |
N |
猫咪昵称 |
|
|
5 |
cat_species |
varchar |
64 |
0 |
Y |
N |
猫咪种类 |
|
|
6 |
cat_age |
varchar |
64 |
0 |
Y |
N |
猫咪年龄 |
|
|
7 |
cat_gender |
varchar |
64 |
0 |
Y |
N |
猫咪性别 |
|
|
8 |
adoption_address |
varchar |
64 |
0 |
Y |
N |
领养地址 |
|
|
9 |
vaccine_status |
varchar |
64 |
0 |
Y |
N |
疫苗状况 |
|
|
10 |
application_date |
date |
10 |
0 |
Y |
N |
申请日期 |
|
|
11 |
adopters |
int |
10 |
0 |
Y |
N |
0 |
领养人 |
|
12 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
13 |
phone_number |
varchar |
16 |
0 |
Y |
N |
手机号码 |
|
|
14 |
user_address |
varchar |
64 |
0 |
Y |
N |
用户住址 |
|
|
15 |
adoption_remarks |
text |
65535 |
0 |
Y |
N |
领养备注 |
|
|
16 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
17 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
18 |
adoption_record_limit_times |
int |
10 |
0 |
N |
N |
1 |
同意领养限制次数 |
|
19 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
21 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
22 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
23 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
adoption_record_id |
int |
10 |
0 |
N |
Y |
领养记录ID |
|
|
2 |
adoption_number |
varchar |
64 |
0 |
N |
N |
领养编号 |
|
|
3 |
cat_id |
varchar |
64 |
0 |
Y |
N |
猫咪编号 |
|
|
4 |
cat_nickname |
varchar |
64 |
0 |
Y |
N |
猫咪昵称 |
|
|
5 |
cat_species |
varchar |
64 |
0 |
Y |
N |
猫咪种类 |
|
|
6 |
cat_age |
varchar |
64 |
0 |
Y |
N |
猫咪年龄 |
|
|
7 |
cat_gender |
varchar |
64 |
0 |
Y |
N |
猫咪性别 |
|
|
8 |
adoption_address |
varchar |
64 |
0 |
Y |
N |
领养地址 |
|
|
9 |
vaccine_status |
varchar |
64 |
0 |
Y |
N |
疫苗状况 |
|
|
10 |
adopters |
int |
10 |
0 |
Y |
N |
0 |
领养人 |
|
11 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
12 |
phone_number |
varchar |
16 |
0 |
Y |
N |
手机号码 |
|
|
13 |
user_address |
varchar |
64 |
0 |
Y |
N |
用户住址 |
|
|
14 |
number_of_cats |
varchar |
64 |
0 |
N |
N |
猫咪数 |
|
|
15 |
adoption_date |
date |
10 |
0 |
Y |
N |
领养日期 |
|
|
16 |
data_files |
varchar |
255 |
0 |
Y |
N |
资料文件 |
|
|
17 |
follow_up_registration_limit_times |
int |
10 |
0 |
N |
N |
0 |
回访登记限制次数 |
|
18 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
19 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
20 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
21 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
22 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 |
|
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
cat_species_id |
int |
10 |
0 |
N |
Y |
猫咪种类ID |
|
|
2 |
cat_species |
varchar |
64 |
0 |
N |
N |
猫咪种类 |
|
|
3 |
total_quantity |
double |
9 |
2 |
Y |
N |
0.00 |
总数量 |
|
4 |
number_of_successful_adoption |
double |
9 |
2 |
Y |
N |
0.00 |
成功领养数 |
|
5 |
adoption_rate |
double |
9 |
2 |
Y |
N |
0.00 |
领养率 |
|
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y |
||
|
2 |
token |
varchar |
255 |
0 |
Y |
N |
||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 |
|
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
表follow_up_registration (回访登记)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
follow_up_registration_id |
int |
10 |
0 |
N |
Y |
回访登记ID |
|
|
2 |
cat_id |
varchar |
64 |
0 |
Y |
N |
猫咪编号 |
|
|
3 |
cat_nickname |
varchar |
64 |
0 |
Y |
N |
猫咪昵称 |
|
|
4 |
cat_species |
varchar |
64 |
0 |
Y |
N |
猫咪种类 |
|
|
5 |
cat_age |
varchar |
64 |
0 |
Y |
N |
猫咪年龄 |
|
|
6 |
cat_gender |
varchar |
64 |
0 |
Y |
N |
猫咪性别 |
|
|
7 |
adoption_address |
varchar |
64 |
0 |
Y |
N |
领养地址 |
|
|
8 |
vaccine_status |
varchar |
64 |
0 |
Y |
N |
疫苗状况 |
|
|
9 |
adopters |
int |
10 |
0 |
Y |
N |
0 |
领养人 |
|
10 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
11 |
phone_number |
varchar |
16 |
0 |
Y |
N |
手机号码 |
|
|
12 |
user_address |
varchar |
64 |
0 |
Y |
N |
用户住址 |
|
|
13 |
follow_up_date |
date |
10 |
0 |
Y |
N |
回访日期 |
|
|
14 |
follow_up_content |
longtext |
2147483647 |
0 |
Y |
N |
回访内容 |
|
|
15 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
16 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
17 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表 |
|
|
18 |
source_id |
int |
10 |
0 |
Y |
N |
来源ID |
|
|
19 |
source_user_id |
int |
10 |
0 |
Y |
N |
来源用户 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
表information_on_stray_cats (流浪猫信息)
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
information_on_stray_cats_id |
int |
10 |
0 |
N |
Y |
流浪猫信息ID |
|
|
2 |
cat_id |
varchar |
64 |
0 |
N |
N |
猫咪编号 |
|
|
3 |
cat_nickname |
varchar |
64 |
0 |
N |
N |
猫咪昵称 |
|
|
4 |
cat_species |
varchar |
64 |
0 |
N |
N |
猫咪种类 |
|
|
5 |
cover_image |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
6 |
cat_age |
varchar |
64 |
0 |
N |
N |
猫咪年龄 |
|
|
7 |
cat_gender |
varchar |
64 |
0 |
N |
N |
猫咪性别 |
|
|
8 |
number_of_cats |
varchar |
64 |
0 |
N |
N |
猫咪数 |
|
|
9 |
adoption_conditions |
varchar |
64 |
0 |
Y |
N |
领养条件 |
|
|
10 |
adoption_address |
varchar |
64 |
0 |
Y |
N |
领养地址 |
|
|
11 |
vaccine_status |
varchar |
64 |
0 |
Y |
N |
疫苗状况 |
|
|
12 |
life_atlas |
text |
65535 |
0 |
Y |
N |
生活图集 |
|
|
13 |
details_introduction |
longtext |
2147483647 |
0 |
Y |
N |
详情介绍 |
|
|
14 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
15 |
collect_len |
int |
10 |
0 |
N |
N |
0 |
收藏数 |
|
16 |
comment_len |
int |
10 |
0 |
N |
N |
0 |
评论数 |
|
17 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
18 |
adoption_application_limit_times |
int |
10 |
0 |
N |
N |
1 |
申请领养限制次数 |
|
19 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
pet_information_id |
int |
10 |
0 |
N |
Y |
领养用户ID |
|
|
2 |
user_name |
varchar |
64 |
0 |
N |
N |
用户姓名 |
|
|
3 |
phone_number |
varchar |
16 |
0 |
N |
N |
手机号码 |
|
|
4 |
user_address |
varchar |
64 |
0 |
N |
N |
用户住址 |
|
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
schedule_id |
smallint |
5 |
0 |
N |
Y |
日程ID:[0,32767] |
|
|
2 |
content |
varchar |
255 |
0 |
Y |
N |
日程内容 |
|
|
3 |
scheduled_time |
datetime |
19 |
0 |
Y |
N |
计划时间 |
|
|
4 |
user_id |
int |
10 |
0 |
N |
N |
用户id |
|
|
5 |
create_time |
datetime |
19 |
0 |
Y |
N |
创建时间 |
|
|
6 |
update_time |
datetime |
19 |
0 |
Y |
N |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: |
|
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
4 系统实现
4.1前台首页界面
进入系统后可以查看系统的信息,包含了程序的标题、导航栏、轮播图、网站公告、新闻资讯等,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.2注册界面
不是流浪猫标注及领养平台中正式用户的是可以在线进行注册的,如果你没有本流浪猫标注及领养平台的账号的话,添加“注册”,当填写上自己的账号+密码+确认密码+昵称+邮箱+身份+联系电话等信息后再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。注册界面实现了用户的注册,注册界面展示如下图4-2所示。
图4-2注册界面图
注册代码如下:
/**
* 注册
* @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);
}
流浪猫标注及领养平台中的前台上注册后的用户是可以通过自己的用户名+密码+验证码进行登录的,当用户输入完整的自己的用户名+密码+验证码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到流浪猫标注及领养平台的首页中;否则将会提示相应错误信息。登录界面如下图4-3所示。
图4-3 首页界面图
登录代码如下:
/**
* 登录
* @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<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.4领养用户功能模块
4.4.1 新闻资讯界面
新闻资讯:领养用户点击可通过局部搜索进行浏览书籍咨讯,同时可对咨讯进行点赞、收藏和评论。界面如下图所示。
图4-4 新闻资讯界面图
4.4.2流浪猫信息界面
流浪猫信息:领养用户点击可通过搜索关键字进行查看流浪猫信息列表,点击进入心仪的动物信息可查看详情,可对动物信息进行收藏;点击“申请领养”按钮可填写领养信息,包括领养编号、猫咪编号、猫咪昵称、猫咪种类、猫咪年龄、猫咪性别、领养地址、疫苗情况、申请日期、领养人、用户姓名、手机号码、用户住址和领养备注。界面如下图所示。
图4-5 流浪猫信息界面图
图4-6 申请领养界面图
4.4.3个人中心界面
个人中心:个人中心包含多个功能模块,如个人首页、领养申请、领养记录、回访记录、收藏和评论管理,点击可查看和管理相关功能。界面图如图所示。
图4-7个人中心界面图
4.5管理员功能模块
4.5.1猫咪种类管理界面
猫咪种类管理:管理员点击可查看猫咪种类列表和猫咪种类添加;点击“猫咪种类添加”可填写相关信息,包括猫咪种类、总数量和成功领养数。界面如下图所示。
图4-8 猫咪种类添加界面图
增加数据代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
4.5.2流浪猫信息管理界面
流浪猫信息管理:管理员点击可查看流浪猫信息列表和流浪猫信息添加;点击“流浪猫信息添加”可填写相关信息,包括猫咪编号、猫咪昵称、猫咪种类、封面图、猫咪年龄、猫咪性别、猫咪数量、领养条件、领养地址、疫苗状况、生活图集和详情介绍。界面如下图所示。
图4-9 流浪猫添加界面图
图片上传代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
4.5.3领养申请管理界面
领养申请管理:管理员点击可查看领养申请列表,同时可对用户的领养申请进行审核回复。点击“同意领养”按钮可填写相关信息,包括领养日期和资料文件。界面如下图所示。
图4-10 领养申请管理界面
4.5.4领养记录管理界面
领养记录管理:管理员点击可查看领养记录列表,点击“回访登记”按钮可填写回访信息,包括回访日期和回访内容。界面图如下。
图4-11 领养记录管理界面
4.5.5系统管理
系统管理:管理员点击可查看轮播图管理;如需添加新的轮播图,点击右侧“添加”按钮,上传图片,输入标题和链接,点击“确认”按钮进行添加;同时可对轮播图进行增删改查。界面图如下。
图4-12系统管理界面
4.5.6资源管理
资源管理:管理员点击可查看新闻咨讯和咨讯分类;如需添加新的资讯,点击“添加”按钮,上传封面图,输入标题,选择分类,输入标签、描述和正文,点击“确认”按钮进行添加。同时可对咨讯和分类进行增删改查。界面图如下。
图4-13资源管理界面
5 系统的测试
5.1测试的目的
一个系统测试的目的就是检验系统在真正的工作环境、条件下是不是能够正常运行,各种功能能不能符合设计的要求,通过测试发现系统当中存在的一些潜在的错误,然后对系统进行改进,使得系统最终以完美的形式展现给用户,提高用户使用过程中的体验度,真正达到项目的实际使用目的。
5.2 系统测试用例
系统测试包括:管理员登录功能测试、新闻咨讯查看功能测试、流浪猫信息添加功能测试功能测试,如表5-1、5-2、5-3所示:
表5-1 管理员登录功能测试表
|
测试名称 |
测试功能 |
操作过程 |
预期结果 |
测试结果 |
|
登录模块测试 |
登录成功的情况 |
管理员可以通过浏览器进入到流浪猫标注及领养平台后台登录界面,输入用户名:admin和密码admin后,点击“登录”按钮。 |
成功登录到管理员管理的界面 |
正确 |
|
登录模块测试 |
登录失败的情况 |
管理员可以通过浏览器进入到流浪猫标注及领养平台后台登录界面,输入用户名:admin和密码111后,点击“登录”按钮。 |
系统提示“用户名和密码不匹配” |
正确 |
新闻咨讯查看功能测试:
表5-2 新闻咨讯查看功能测试表
|
测试名称 |
测试功能 |
操作过程 |
预期结果 |
测试结果 |
|
查询新闻咨讯功能测试 |
查询成功的情况 |
用户在导航栏中点击“新闻资讯”,输入关键词,输入的信息在系统中存在,显示查询新闻咨讯 |
查询成功 |
正确 |
管理员流浪猫信息添加界面测试:
表5-3 管理员添加动物信息界面测试表
|
测试名称 |
测试功能 |
操作过程 |
预期结果 |
测试结果 |
|
流浪猫信息添加模块测试 |
流浪猫信息添加成功的情况 |
在“流浪猫信息管理”菜单中点击“流浪猫信息添加”会显示出所有的流浪猫信息,点击“添加”,输入猫咪信息,输入正确的信息后,点击“提交”按钮。 |
提示添加成功 |
正确 |
|
流浪猫信息添加模块测试 |
流浪猫信息添加失败的情况 |
在“流浪猫信息管理”菜单中点击“流浪猫信息添加”会显示出所有的流浪猫信息信息,点击“添加”,不输入猫咪名称,其他信息正常填写后,点击“提交”按钮。 |
提示“添加失败,动物名称不能为空” |
正确 |
5.3 系统测试结果
本次开发的系统是一个流浪猫系统,主要功能就是实现用户在线领养流浪猫,通过对管理员登录功能测试、新闻咨讯查看功能测试、流浪猫信息添加功能等方面的测试可以看出系统的功能,而且在测试的过程中也对界面的展示进行了查看,发现界面并没有出现扭曲、混乱等情况,能够满足用户的需求,系统运行良好,是可以进行投入使用的。
结论
经过了几个月的努力,流浪猫标注及领养平台终于完成了,虽然在校期间也开发过一些小型的系统,但是都是在老师的讲解以及辅助下完成的,没有经历过开发之前的需求分析、系统分析,都是直接从系统设计开始的,因此本次开发的流浪猫标注及领养平台对我意义重大。
在开发系统最初,首先对用户宠物领养方面的需求进行调研,了解对于用户来说,开发的系统需要实现哪些功能才能满足使用者的需求,对需求进行分析;其次选择自己比较熟悉的Java语言,MySQL数据库,使用SpringBoot框架来设计开发,通过知网库、学校图书馆等地方查阅、学习这些技术,掌握编程的思想和方法,然后就是对系统进行分析,从系统开发的可行性、系统实现的功能、系统应该具备的性能以及系统的操作流程方面,对系统进行全方位的分析,确定系统的最终功能,从而对系统的功能和数据库进行设计,最后就是系统的实现以及对实现的功能的测试,确保系统能够稳定的运行。
在开发的过程中暴露出了自己的很多问题,比如前期的准备还是不够充分,不能完全掌握其操作流程;在开发过程中对SpringBoot的编程掌握的还不够熟练以及对系统的环境配置上还存在很多问题,经常会导致项目在运行的时候出现错误。学无止境,通过一边查阅资料一边向导师请教,慢慢的解决了这些问题,在以后的学习、工作者我会更加严谨,通过本项目的开发,我将会受益终生!
参考文献
- 刘健,孙清,白艺兰,等.基于智能猫屋的城市流浪猫管理初探[J].中国动物检疫,2024,41(05):39-42+58.
- 王腾.基于猫脸智能识别的校园流浪猫救助管理系统的设计与实现[D].浙江师范大学,2023.DOI:10.27464/d.cnki.gzsfu.2023.000859.
- 裴浩强.基于共生理论的城市流浪猫服务系统设计研究[D].青岛理工大学,2023.DOI:10.27263/d.cnki.gqudc.2023.000867.
- 梁会成,王黎光.基于JSP+SSM在线领养猫咪系统的设计与实现[J].电子制作,2022,30(24):59-62+45.DOI:10.16589/j.cnki.cn11-3571/tn.2022.24.018.
- 秦豆豆,赵佳意,徐池,等.AIT——流浪猫狗救助平台管理系统的设计与实现[J].电子技术与软件工程,2021,(14):158-159.
- 聂力,杜丹蕾,韦美雁,等.基于微信小程序“送它回家”的设计与实现[J].电脑知识与技术,2023,19(02):29-32.DOI:10.14004/j.cnki.ckt.2023.0059.
- 柳贺文,陆涛,杜昕宇,等.线上E猫圈与线下流浪猫的交互设计研究[J].滁州职业技术学院学报,2021,20(02):54-57+72.
- 邵帅,殷晓晨.城市社区流浪猫救助服务设计研究[J].设计,2021,34(01):60-63.
- 邓波,朱九超,葛杰,等.基于TNR救助原则的城市流浪猫APP交互设计与研究[C]//中国畜牧兽医学会.创新、融合、健康、未来—第九届全国畜牧兽医青年科技工作者学术研讨会论文集.上海市动物疫病预防控制中心;,2020:1.DOI:10.26914/c.cnkihy.2020.062437.
- 邹玲怡.基于服务设计的城市流浪动物救助站空间设计研究[D].南京理工大学,2023.DOI:10.27241/d.cnki.gnjgu.2023.001249.
- 柯琅.流浪猫救助的知识可视化研究[D].湖北美术学院,2023.DOI:10.27132/d.cnki.ghmsc.2023.000107.
- 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.DOI:10.14004/j.cnki.ckt.2024.1389.
- 柳武妹,王璐.流浪动物慈善救助中的“远狗近猫”效应及其机制探析[J].心理学报,2024,56(06):777-805.
- Jessica E L ,Sanoussi M A Y ,Mehdi E C , et al.A comprehensive review of State-of-The-Art methods for Java code generation from Natural Language Text[J].Natural Language Processing Journal,2023,3
- 范韵琳.扁平化风格在品牌形象设计中的应用研究[D].武汉纺织大学,2023.DOI:10.27698/d.cnki.gwhxj.2023.000208.
- Rina S .Analysis of language features of English corpus based on Java Web[J].Microprocessors and Microsystems,2021,80103611-.
- 邵帅.基于城市社区的社会创新设计研究[D].合肥工业大学,2020.DOI:10.27101/d.cnki.ghfgu.2020.001645.
“致谢”意味着论文的结束,也意味着自己的毕业设计顺利完成,同时也代表了自己的大学生涯即将结束,我即将要离开自己敬爱的老师和亲爱的同学们,在这里我首先要感谢的就是所有的老师,“春满江山绿满园,桃李争春露笑颜,东西南北春常在,唯有师恩留心间”,他们无论在我的学业还是在我的生活上付出了所有,对我谆谆教诲;其次我要感谢我的指导老师,他在我的整个毕业设计当中起着引导作用,每当我有困难的时候,他总会第一时间帮助我,引导我进行解决问题,而不是直接告诉我答案,“授人以鱼不如授人以渔”,指导老师的这种做法让我受益终生,同时我也从指导老师身上学习到了许多的开发技巧以及检验,这对我今后的开发起着十分重要的作用;再次,我需要感谢我的同学、室友,他们不仅仅在毕业设计上给我许多帮助意见,在大学同窗四年,他们给过我的帮助太多了,我对他们有太多的不舍,无法用言语表示,我相信在以后的人生道路上只要想到他们,我心里就会很温暖,这种友情是任何感情替代不了的;最后我还要感谢家人,感谢自己,感谢家人对我的支持,感谢自己在学业上的坚持,我相信我以后的道路会越来越好。
点赞+收藏+关注 → 私信领取本源代码、数据库
更多推荐
所有评论(0)