21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。
论文主要是对雪洁雪洁宠物领养管理系统进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对雪洁雪洁宠物领养管理系统进行了一些具体测试。
本文以springboot为开发技术,实现了一个雪洁雪洁宠物领养管理系统。雪洁雪洁宠物领养管理系统的主要使用者分为用户、管理员;主要功能包括有:首页、轮播图、系统公告、模块管理(宠物信息、疫苗接种、领养中心、志愿者活动、互动问答、领养申请、活动报名、宠物类型、回答信息)等功能。通过这些功能模块的设计,基本上实现了整个雪洁雪洁宠物领养管理系统的过程。
具体在系统设计上,采用了springboot的结构,后台上采用Mysql数据库,是一个非常优秀的雪洁雪洁宠物领养管理系统。
关键词:宠物领养管理,Mysql数据库,Java技术
Springboot Snow Clean Pet Adoption Management System
Today in the 21st century, with the continuous development and progress of society, people's understanding of the scientific nature of information has developed from a low level to a high level, and the importance of management work has gradually been recognized by people. Scientific management enables information storage to achieve accuracy, speed, and perfection, and can improve work management efficiency and promote its development.
The paper mainly introduces the Xuejie Xuejie Pet Adoption Management System, including the current research status and the development background involved. It also discusses the design objectives of the system, the system requirements, and the entire design scheme. The design and implementation of the system are also discussed in detail. Finally, some specific tests are conducted on the Xuejie Xuejie Pet Adoption Management System.
This article uses spring boot as the development technology to implement a snow clean pet adoption management system. The main users of the Xuejie Xuejie Pet Adoption Management System are divided into users and administrators; The main functions include: homepage, rotation chart, system announcement, module management (pet information, vaccination, adoption center, volunteer activities, interactive Q&A, adoption application, activity registration, pet type, answer information), and other functions. Through the design of these functional modules, the entire process of Xuejie Xuejie Pet Adoption Management System has been basically implemented.
Specifically, in terms of system design, the structure of Springboot is adopted, and the MySQL database is used in the backend, making it a very excellent Snow Clean Pet Adoption Management System.
Keywords: pet adoption management, MySQL database, Java technology
目 录
摘 要
第1章 概述
1.1 研究背景
1.2 研究现状
1.3 研究内容
第二章 开发技术介绍
2.1 系统开发平台
2.2 平台开发相关技术
2.2.1 B/S架构
2.2.2 Java技术介绍
2.2.3 mysql数据库介绍
第三章 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 系统性能分析
3.3 系统功能需求分析
3.4 系统操作流程
3.4.1用户登录流程
3.4.2信息添加流程
3.4.3信息删除流程
第四章 系统设计
4.1 系统的功能结构图
4.2 数据库概念结构设计
4.2.1 数据库E-R图
4.2.2 数据库逻辑结构设计
表access_token (登陆访问时长)
表adoption_application (领养申请)
表adoption_center (领养中心)
表answer_information (回答信息)
表auth (用户权限管理)
表collect (收藏)
表comment (评论)
表confirm_adoption (确认领养)
表event_registration (活动报名)
表hits (用户点击)
表interactive_qa (互动问答)
表notice (公告)
表pet_information (宠物信息)
表pet_type (宠物类型)
表praise (点赞)
表return_visit_records (回访记录)
表slides (轮播图)
表system_user (系统用户)
表upload (文件上传)
表user (用户账户:用于保存用户登录信息)
表user_group (用户组:用于用户前端身份和鉴权)
表vaccination (疫苗接种)
表volunteer_activities (志愿者活动)
第五章 系统功能实现
5.1系统功能模块
第六章 系统测试
6.1 测试目的
6.2 测试方案设计
6.2.1 测试策略
6.2.2 测试分析
6.3 测试结果
结束语
致 谢
参考文献
1.1 研究背景
在人们环保意识进一步的强化下,大家都意识到领养动物的社会意义远远高于经济意义。提出“宠物领养”活动的初衷,是想通过宠物领养,唤起人们热爱自然、关注环境的良好意识。
生活上富裕了,人们就越来越追求精神上的幸福感。领养宠物正是人们追求的重要一部分。与此同时,网络普及程度的广泛,发展的如此迅速,两者有效的结合,更加带动了人们领养宠物的热潮。然而,寥寥几个的实体市场的存在不足以满足世界各地的需求,从而更加体现通过网络领养宠物地位的重要性。因此一个实用、高效、稳定的可实现雪洁雪洁宠物领养管理系统正是利用信息提高效率、服务质量的最佳选择。通过构建一个较完善的宠物领养系统,同时利用电子化信息化的技术更为有效的、方便的实现宠物的领养,提高效率,取得更多的社会效益。
1.2 研究现状
与其他国家相比,我国的软件产业相对落后,在信息化建设方面起步也比较晚,但是随着我国经济的不断发展,以及网络技术的不断提高,我国也在不断的进行软件行业的摸索,也得到了一些成果,我国的软件产业得到了快速的发展,越来越多的软件系统出现在人们的视线中,也逐渐改变着人们生活工作的方式。但是,对于信息化的建设,与很多发达国家相比,由于信息化程度的落后以及经费的不足,我国的宠物领养管理开发方面还是相对落后的,因此,要不断的努力探索,争取开发出一个实用的信息化的雪洁宠物领养管理系统,来实现宠物管理的信息化。因此本课题以宠物为例,目的是开发一个实用的雪洁雪洁宠物领养管理系统。
雪洁雪洁宠物领养管理系统的开发运用java技术,MIS的总体思想,以及MYSQL、springboot等技术的支持下共同完成了该网站系统的开发,实现了宠物领养管理的信息化,用户可以有一个非常好的宠物体验,管理员也可以通过该系统进行更加方便的管理操作,实现了之前指定好的计划。
1.3 研究内容
通过对管理员和用户的需求分析,我们将该雪洁宠物领养管理系统的功能逐步进行了添加,然后进行功能分析和检测,而且针对这两方面进行了深入研究探讨,该雪洁宠物领养管理系统主要对开发背景、市场需求、数据库分析、功能模块以及开发技术进行了着重介绍和分析。最后对系统中的功能信息进行测试和分析。本次毕业实现的雪洁宠物领养管理系统,不管是可行性分析、系统整体框架设计还是编码,都需要严格遵守软件开发的三个周期八个阶段,在该系统的开发过程中,要保证系统具有良好的时效性、易安装性以及稳定性。在代码编写时一定要按照要求进行,让代码编写看起来更美观,开发出一个便于用户的使用的雪洁宠物领养管理系统是本次开发的主要目标。在系统完成之后,利用电脑来将系统进行安置,并且用户可以通过电脑随时进行宠物领养管理。此次在雪洁宠物领养管理系统的开发中,对系统要进行可行性分析、系统需求分析等基本分析,并且完成系统的部署和测试,在这些功能都实现之后,通过电脑进行操作系统。系统规划分析中,需要按照以下所示的技术路线。
第二章 开发技术介绍
此次B/S结构、Java技术以及mysql数据库是该雪洁宠物领养管理系统的主要开发技术,然后对系统的整体设计、数据库设计、功能模块设计、系统页面设计以及系统程序设计进行了详细的研究与规划。
2.1 系统开发平台
在该雪洁宠物领养管理系统中,Eclipse 技术可以给用户带来极大方便,其主要特点就是可以使用户学习起来方便、快捷,另一方面就是信息储存量也是非常大的,该功能主要被应用为数据库中进行查询和编程。并且该功能的数据应用比较灵活,通过我们现在的发展可以得知,只要利用一小部分代码就可以来实现非常强大的功能。因此,该系统数据库开发主要是由Eclipse 技术进行系统代码管理。
2.2 平台开发相关技术
2.2.1 B/S架构
B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。
2.2.2 Java技术介绍
Java语言擅长开发互联网类应用和企业级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。
Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。
为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。在Java中难能可贵的一点就是它的垃圾回收机制,它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。
2.2.3 mysql数据库介绍
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实宠物环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
本系统使用了MySQL数据库,建立了多张数据库表来存储宠物以及宠物领养管理相关数据。系统中主要应用查询(select),修改(update),删除(delete)以及增加(insert)等语句来实现系统功能。
第三章 系统分析
通过对系统功能模块分析可以得知,主要是对项目元素组合、分解和更换做出相应的单元,再通过系统模块来规划出一个原则,系统的设计首先是围绕管理员需求进行开发设计的,主要是为了能够更好的管理信息和服务于用户,其次就是围绕宠物领养管理进行设计,最终的设计必须要满足管理员和用户的需求,这样才能够实现系统的最大意义和价值,并且在设计的时候一定要避免代码相互重复的情况发生。
3.1 可行性分析
可行性分析是每开发一个项目必不可少的一部分,可行性分析可以直接影响一个系统的存活问题,针对开发意义进行分析,还有就是是否可以通过所开发的系统来弥补传统宠物领养管理模式的不足,是否能够更好的解决宠物领养管理问题等,通过对该雪洁宠物领养管理系统的开发设计,不仅能够逐步减少工作人员的工作量,而且还可以进行高效工作和管理。所以该系统的开发实现了最大的意义和价值,在系统完成后,利益是否大过于成本,是否能够达到预期效果,这些方面都要进行可行性分析,再通过分析之后,就可以决定是否开发此系统。该雪洁宠物领养管理系统的开发设计中,以下几点进行了可行性分析:技术可行性:通过Java技术的采用,由于该技术不断成熟,所以使用该技术设计雪洁宠物领养管理系统是具有可行性的。经济可行性:在开发过程中,系统完成后的利益是否大过于开发成本。操作可行性:雪洁宠物领养管理系统的开发设计中,方便用户的可操作性和实用性。
3.1.1 技术可行性
由于Java技术的不断成熟,所以它在本次雪洁宠物领养管理系统中是非常重要的,该系统的开发主要是基于服务端采用Java 、B/S结构和mysql数据库进行开发设计的。通过对这些技术进行使用,从而保证了系统的完整性和简单性。并且在数据库中保证数据的安全性和稳定性。在校时间我们对Java语言技术和mysql数据库技术进行了学习和交流,并且对软件测试也是简单的了解,然后根据这些销售方式我们可以做出一个简单的系统开发、检验和辨别。通过Java技术和Mysql数据库的相互配合开发出一个高效、稳定的雪洁宠物领养管理系统。
(1)轻量级系统,使用灵活:雪洁宠物领养管理系统,设计时,考虑到不同使用者的习惯,让系统比较轻量级,便于安装,也完成了系统所具备的所有功能,在以上基础上,通过系统测试与优化,让操作更加灵活。
(2)系统开发0成本:该雪洁宠物领养管理系统,以开源的Windows 7 操作系统为基础,采用Java技术编码开发,并使用MySQL轻量级数据库,没有多余的开发成本。
(3)覆盖范围:任何城市,都能安装使用本次设计的雪洁宠物领养管理系统,对系统使用方没有严格的规定,平台搭建好了就能使用。
3.1.2 经济可行性
通过经济效益和社会价值来决定一个系统的存活问题,是否通过开发雪洁宠物领养管理系统来帮助管理员减少工作,是否能够方便用户的使用,假如开发的软件不能够实现成本节约和资源节约,并且还要投入大量的时间、经济和精力,那么这个系统的开发设计是没有意义和价值的,就不具备开发设计的条件。
3.1.3 操作可行性
此次开发的雪洁宠物领养管理系统登录界面是我们最常见的一种登录窗口进行造成的,只需通过电脑就可以登录访问,没有那些复杂的登录过程。该雪洁宠物领养管理系统主要是采用B/S结构、Java语言技术以及mysql数据库进行开发设计的,使得系统的开发更高效和稳定,也体现出来该系统的的现代化和规范化。用户可以轻松的进行学习,其系统主要特点就是易操作和易管理。
3.2 系统性能分析
1.系统功能完整性:根据系统每一个功能模块,都能够设计出当初的算法和代码,用户信息主要是以文字和表格的模式进行介绍。
2.系统运行分析:系统中的每一个功能都要有相应的代码和编写数据的关系。系统的物理的数据主要是通过需求分析和可行性分析进行分析和显示的。
3.界面设计:系统中的软件都是由不同的代码来进行处理和分析的,并且保证了系统界面的易操作性能。
4.安全分析:不同的角色要有不同的信息,所以我们登录系统时必须要使用自己的账号和密码进行登录,不能随意进行操作,这样才可以保证系统的安全性。
3.3 系统功能需求分析
任务需求分析是每个系统开发设计必不可少的一部分,系统质量的好坏可以直接影响系统的存活问题,所以我们必须要将任务需求分析做到位,雪洁宠物领养管理系统的设计在初期的分析是尤为重要的,通过任务分析可以更顺利的进行系统设计,并且保证了用户的满意度。
(1)用户界面功能表
用户进入系统可以查看首页、系统公告、单独地图、宠物信息、疫苗接种、领养中心、志愿者活动、互动问答、我的(我的账户、我的收藏、个人中心)操作。用户用例图如图3-1所示。
图3-1 用户界面表
管理员登陆后,主要功能模块包括首页、轮播图管理、系统公告管理、系统用户(管理员、系统用户)、模块管理(宠物类型、宠物信息、疫苗接种、领养中心、志愿者活动、互动问答、领养申请、活动报名、回答信息)等功能如图3-2所示。
图3-4 管理员功能表
3.4 系统操作流程
3.4.1用户登录流程
图3-1登录操作流程图
3.4.2信息添加流程
对于雪洁宠物领养管理系统,需要随时添加所需要的数据信息,对于用户添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,用户所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。
图3-2 信息添加流程图
3.4.3信息删除流程
不管是哪个用户角色进入到不通的系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,用户一旦将信息删除,那么该删除的数据信息将无法恢复,所以用户在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。
图3-3 信息删除流程图
第四章 系统设计
4.1 系统的功能结构图
通过系统需求分析,该雪洁宠物领养管理系统的设计与实现功能结构图如图4-1所示:
图4-1 雪洁宠物领养管理系统系统结构图
4.2 数据库概念结构设计
4.2.1 数据库E-R图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
(1) 用户信息E-R图,如图4-3所示:
图4-3 用户信息实体属性图
(2) 宠物信息E-R图如图4-4所示:
图4-4宠物信息实体图
4.2.2 数据库逻辑结构设计
数据库的主要功能就是对相关信息就行存储,通过某种计算进行数据储存,其数据库的数据存储是井井有条的。并且其中的数据具有一定的独立性和安全性。通过对系统功能设计的要求和功能模块的规划,该雪洁宠物领养管理系统的设计与实现设计到了多个数据表。以下信息是介绍数据库表的设计结构以及功能建立数据库表:
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 用户编号: |
表adoption_application (领养申请)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | adoption_application_id | int | 10 | 0 | N | Y | 领养申请ID | |
2 | pet_number | varchar | 64 | 0 | Y | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | data_attachment | varchar | 255 | 0 | Y | N | 资料附件 | |
9 | application_date | date | 10 | 0 | Y | N | 申请日期 | |
10 | system_user | int | 10 | 0 | Y | N | 0 | 系统用户 |
11 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
12 | user_address | varchar | 64 | 0 | Y | N | 用户地址 | |
13 | income_range | varchar | 64 | 0 | Y | N | 收入范围 | |
14 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
15 | reason_for_adoption | text | 65535 | 0 | Y | N | 领养理由 | |
16 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
17 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
18 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
19 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
20 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
21 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表adoption_center (领养中心)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | adoption_center_id | int | 10 | 0 | N | Y | 领养中心ID | |
2 | pet_number | varchar | 64 | 0 | N | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | data_attachment | varchar | 255 | 0 | Y | N | 资料附件 | |
9 | pet_details | longtext | 2147483647 | 0 | Y | N | 宠物详情 | |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | limit_times | int | 10 | 0 | N | N | 0 | 限制次数 |
13 | limit_type | tinyint | 4 | 0 | N | N | 2 | 限制次数类型1-每天次,2-总计次 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表answer_information (回答信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | answer_information_id | int | 10 | 0 | N | Y | 回答信息ID | |
2 | question_number | varchar | 64 | 0 | Y | N | 问题编号 | |
3 | ask_users | int | 10 | 0 | Y | N | 0 | 提问用户 |
4 | pet_type | varchar | 64 | 0 | Y | N | 宠物类型 | |
5 | question_title | varchar | 64 | 0 | Y | N | 提问标题 | |
6 | question_content | text | 65535 | 0 | Y | N | 提问内容 | |
7 | answer_content | text | 65535 | 0 | Y | N | 回答内容 | |
8 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表collect (收藏)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表confirm_adoption (确认领养)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | confirm_adoption_id | int | 10 | 0 | N | Y | 确认领养ID | |
2 | pet_number | varchar | 64 | 0 | N | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | data_attachment | varchar | 255 | 0 | Y | N | 资料附件 | |
9 | system_user | int | 10 | 0 | Y | N | 0 | 系统用户 |
10 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
11 | user_address | varchar | 64 | 0 | Y | N | 用户地址 | |
12 | income_range | varchar | 64 | 0 | Y | N | 收入范围 | |
13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
14 | date_of_adoption | date | 10 | 0 | Y | N | 领养日期 | |
15 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表event_registration (活动报名)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | event_registration_id | int | 10 | 0 | N | Y | 活动报名ID | |
2 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
3 | topic_name | varchar | 64 | 0 | Y | N | 主题名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | venue | varchar | 64 | 0 | Y | N | 活动地点 | |
6 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
7 | registration_time | date | 10 | 0 | Y | N | 报名时间 | |
8 | system_user | int | 10 | 0 | Y | N | 0 | 系统用户 |
9 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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: |
表interactive_qa (互动问答)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | interactive_qa_id | int | 10 | 0 | N | Y | 互动问答ID | |
2 | question_number | varchar | 64 | 0 | Y | N | 问题编号 | |
3 | ask_users | int | 10 | 0 | Y | N | 0 | 提问用户 |
4 | pet_type | varchar | 64 | 0 | Y | N | 宠物类型 | |
5 | question_title | varchar | 64 | 0 | Y | N | 提问标题 | |
6 | cover | varchar | 255 | 0 | Y | N | 封面 | |
7 | question_content | text | 65535 | 0 | Y | N | 提问内容 | |
8 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表pet_information (宠物信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | pet_information_id | int | 10 | 0 | N | Y | 宠物信息ID | |
2 | pet_number | varchar | 64 | 0 | Y | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | pet_details | longtext | 2147483647 | 0 | Y | N | 宠物详情 | |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
12 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表pet_type (宠物类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | pet_type_id | int | 10 | 0 | N | Y | 宠物类型ID | |
2 | pet_type | varchar | 64 | 0 | Y | N | 宠物类型 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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已取消 |
表return_visit_records (回访记录)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | return_visit_records_id | int | 10 | 0 | N | Y | 回访记录ID | |
2 | pet_number | varchar | 64 | 0 | Y | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | data_attachment | varchar | 255 | 0 | Y | N | 资料附件 | |
9 | system_user | int | 10 | 0 | Y | N | 0 | 系统用户 |
10 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
11 | user_address | varchar | 64 | 0 | Y | N | 用户地址 | |
12 | income_range | varchar | 64 | 0 | Y | N | 收入范围 | |
13 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
14 | return_visit_date | date | 10 | 0 | Y | N | 回访日期 | |
15 | content_of_follow_up_visit | text | 65535 | 0 | Y | N | 回访内容 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表system_user (系统用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | system_user_id | int | 10 | 0 | N | Y | 系统用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
4 | user_address | varchar | 64 | 0 | Y | N | 用户地址 | |
5 | income_range | varchar | 64 | 0 | Y | N | 收入范围 | |
6 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 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 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
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 | 更新时间: |
表vaccination (疫苗接种)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vaccination_id | int | 10 | 0 | N | Y | 疫苗接种ID | |
2 | pet_number | varchar | 64 | 0 | Y | N | 宠物编号 | |
3 | pet_name | varchar | 64 | 0 | Y | N | 宠物名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | type_of_pet | varchar | 64 | 0 | Y | N | 宠物类型 | |
6 | pet_age | varchar | 64 | 0 | Y | N | 宠物年龄 | |
7 | sex_of_pet | varchar | 64 | 0 | Y | N | 宠物性别 | |
8 | vaccine_name | varchar | 64 | 0 | Y | N | 疫苗名称 | |
9 | vaccination_certificate | varchar | 255 | 0 | Y | N | 接种证明 | |
10 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表volunteer_activities (志愿者活动)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | volunteer_activities_id | int | 10 | 0 | N | Y | 志愿者活动ID | |
2 | activity_number | varchar | 64 | 0 | Y | N | 活动编号 | |
3 | topic_name | varchar | 64 | 0 | Y | N | 主题名称 | |
4 | cover | varchar | 255 | 0 | Y | N | 封面 | |
5 | venue | varchar | 64 | 0 | Y | N | 活动地点 | |
6 | activity_time | varchar | 64 | 0 | Y | N | 活动时间 | |
7 | introduction | text | 65535 | 0 | Y | N | 活动简介 | |
8 | activity_content | longtext | 2147483647 | 0 | Y | N | 活动内容 | |
9 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
10 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
11 | timer_title | varchar | 64 | 0 | Y | N | 计时器标题 | |
12 | timing_start_time | datetime | 19 | 0 | Y | N | 计时开始时间 | |
13 | timing_end_time | datetime | 19 | 0 | Y | N | 计时结束时间 | |
14 | limit_times | int | 10 | 0 | N | N | 0 | 限制次数 |
15 | limit_type | tinyint | 4 | 0 | N | N | 2 | 限制次数类型1-每天次,2-总计次 |
16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
第五章 系统功能实现
雪洁宠物领养管理系统,在系统首页可以查看首页、系统公告、单独地图、宠物信息、疫苗接种、领养中心、志愿者活动、互动问答、我的、注册登录以及站内搜索等内容,如图5-1所示。
图5-1系统功能界面图
注册,在注册页面通过填写用户名、密码、昵称、身份、手机号、用户编号、用户姓名、用户性别等内容进行注册,如图5-2所示。
图5-2用户注册界面图
注册代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
领养中心,在领养中心页面查看宠物序号、宠物昵称、动物分类、动物种类、领养地址、宠物年龄、宠物性别、发布日期、相关视频、领养状态、发布者编号、发布者姓名等信息并可根据需要申请领养、点赞、收藏,如图5-3所示。
图5-3领养中心界面图
领养中心代码如下:
@SpringBootApplication
@EnableJpaRepositories
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
宠物信息,在宠物信息页面中可以查看宠物编号、宠物类型、宠物名称、宠物年龄、宠物性别、图片等信息进行或收藏,如图5-4所示。
图5-4宠物信息界面图
宠物信息的逻辑代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
疫苗接种:在疫苗接种页面可以查看宠物编号、宠物类型、宠物名称、宠物年龄、宠物性别、疫苗名称、接种证明等信息,可进行点赞、收藏或下载接种证明等操作,如图5-5所示。
图5-5疫苗接种信息界面图
疫苗接种信息代码如下:
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
@Transactional
public void delete(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");
sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));
log.info("[{}] - 删除操作:{}",table,sql);
Query query1 = runCountSql(sql.toString());
query1.executeUpdate();
}
互动问答:用户在此页面可搜索宠物名称查看其他用户的提问进行互动回答,也可发布提问内容等操作,如图5-5 5-6所示。
图5-5发布提问界面图
图5-6回答提问界面图
5.2管理员功能模块
管理员登录,通过填写注册时输入的用户名、密码、权限、验证码进行登录,如图5-7所示。
图5-7管理员登录界面图
登录代码如下:
/**
* 登录
* @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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
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());
tokenService.save(accessToken);
// 返回用户信息
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, "账号或密码不正确");
}
}
管理员登录进入雪洁宠物领养管理系统可以查看系统后台首页、系统用户(管理员、系统用户)轮播图管理、系统公告管理、模块管理(宠物类型、宠物信息、疫苗接种、领养中心、志愿者活动、互动问答、领养申请、活动报名、回答信息)等信息,如图5-8所示。
图5-8管理员功能界面图
系统公告管理,在系统公告管理列表可以查看标题、内容等信息,管理员可根据需要进行详情、添加、删除等操作。图5-9所示。
图5-9系统公告管理界面图
系统用户管理,管理员在此页面可以查看用户名,昵称,姓名,性别等信息,并可根据需要进行查询,重置,删除,新增等操作,如图5-10所示:
图5-10系统用户管理界面图
第六章 系统测试
通过一系列的测试,找出其中的错误。并且将测试作为软件开发的重要部分,在有了程序编程以后,测试就成为了系统中必不可少的一部分。通过统计分析,系统的软件测试占据了整个系统开发45%的工作量,从软件开发的成本中,测试成本已经包含了很多的测试工作。在测试中,每个程序都有可能出现错误。在该程序开发的过程中当中,利用人工方式去查找错误是比较繁琐和困难的,所以有必要找一些测试工具进行测试和分析。在系统整个程序的设计当中,出现一些错误的信息是时常发生的。对于这些指令当中语法是错误的,同时程序执行过程当中会提示,这样就方便找出错误。但是另一种类型的错误是由计算出来的,但是这些错误也是隐藏的,有时候它是不会发生的,所以解决这些错误是十分费时的。在进行系统运行的时候我们要对前期工作进行一个系统测试工作,通过测试来发现系统当中所存在的错误。当我们在测试过程当中要提早发现错误,并且发现错误以后要及时去改正,这样就能保证系统的长期运行。逐渐系统测试也就成为了一个系统设计必不可缺少的一部分。测试软件的时候要尽可能的去提高软件的可行性。
6.1 测试目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中难以避免,这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果 如系统崩溃,安全信息,系统无法正常启动,导致安装用户手机屏幕等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们 ,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要 系统的开发。
软件测试与开发过程是一样的,都必须按照软件工程的正规原理进行,遵守管理学理论。不过,目前国内的软件测试已经积累了大量经验和方法,步骤相对成熟,软件测试的效率也越来越高。
雪洁宠物领养管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在雪洁宠物领养管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
6.2 测试方案设计
6.2.1 测试策略
1、功能测试
从用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。
2、性能测试
测试软件程序的整体状况(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载测试和压力测试之间进行分配,在某些情况下,将这两种情况结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但负载测试可以测试系统如何响应增加的负载。
6.2.2 测试分析
测试评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。
软件测试应遵循以下原则:
(1)软件测试应尽快进行,整个测试部分应在软件开发和设计的整个过程中进行。如发现错误,立即处理,将大大减少软件开发的时间,并提高软件的质量。
(2)在软件的各种测试中,测试过程中使用的计划、报告等应妥善处理和存储。其主要目的是为了便于以后系统的维护。
(3)软件测试整个过程中的聚类现象应优先考虑。
(4)对于软件测试,我们应该尽量不去和自己设计的系统进行参考,而是要测试对方的程序,以确保软件测试结果的客观性和公平性。
(5)整个测试计划严格按照软件测试的具体实施细则进行。
(6)对整个测试结果进行综合检查,尽量避免重复错误。
本雪洁宠物领养管理系统满足用户的要求和需求,本雪洁宠物领养管理系统的使用能够有效的提高用户的使用率。
6.3 测试结果
测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。
在本次毕业设计的过程中,从开始的懵懂无知,感觉设计一个系统非常困难,不知道该从何做起,但是通过查阅相关资料和网站之后,让我对该系统的开发有了新的认知,开发系统最重要的就是需求调查和系统分析,也通过老师指导和学过相关的知识,在加上我的不懈努力,最后将该系统逐步完成。在此次毕业设计中,让我知道了做什么事都必须要坚持,努力去查阅资料,并且善于发现和研究,充分利用身边资源,我相信办法总比困难多,所有问题都会迎刃而解。通过此次雪洁宠物领养管理系统的开发设计,将我在大学期间所学的知识都应用到了其中。使理论知识和现实实践进行相结合,开发雪洁宠物领养管理系统将理论知识和实践相结合,也将计算机信息与实践问题进行了相结合,通过现代计算机网络的便利来解决生活中的问题,并且还提高了我的计算机编程能力,在这次的开发设计过程中,虽然我遇到了很多的问题和困难,但是通过老师和同学们的帮助下,所有的问题都迎刃而解了,让我顺利的完成了此次的毕业论文设计,通过此次毕业设计的开发与设计,大大的提高了我的动手动脑能力,并且为我以后的工作奠定了坚实的基础。
通过本次设计,让我学到了更多的知识,而且在设计中会有一些问题出现,最后通过查阅资料和在老师和同学的帮助下完成了系统的设计和开发,使得这次系统的开发非常的有意义。同时通过这次系统的设计也让我明白了自己在哪方面有不足,以后加以学习争取可以开发住更多有用的适用的系统软件。
致 谢
此次毕业设计的结束,也代表着我的大学生活即将结束,这次毕业设计的过程中,我非常感谢我的老师和同学们对我的帮助,让我完成了这次的毕业设计,首先我要感谢我的指导老师,当我遇到困难时,老师在第一时间为我指导,为我解决了很多困难,在这里,感谢您对我耐心的指导,我还要感谢我的每一位老师,感谢你们把知识传授于我们,让我们学会了做人做事的道理。
最后,我要感谢各位答辩老师,感谢你们在百忙之中抽出时间为我的论文进行点评。
参考文献
[1]王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
[2]王亚东,李晓霞,陈强强,剡美娜.基于SpringBoot的需求发布平台设计[J].信息与电脑(理论版),2023,35(01):105-107.
[3]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[4]赵亚洲,杨晓冬.动物领养管理系统的设计与实现[J].无线互联科技,2022,19(18):61-65+72.
[5]欧阳桂秀.基于Java和MySQL的数据库管理系统的设计与实现[J].信息记录材料,2022,23(09):240-242.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.007.
[6]邵志豪,于子桐.基于Java语言的传感健身系统设计与研究[J].电脑编程技巧与维护,2022(08):7-9.DOI:10.16184/j.cnki.comprg.2022.08.016.
[7]郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.DOI:10.14004/j.cnki.ckt.2022.1517.
[8]宋旸.使用Java语言开发Web应用软件的知识探讨[J].中国设备工程,2022(14):121-123.
[9]贺斌.计算机软件开发中JAVA语言的应用研究[J].中国设备工程,2022(11):247-249.
[10]王景.基于MySQL的数据库查询性能优化技术研究[J].电脑与电信,2022(06):90-93.DOI:10.15966/j.cnki.dnydx.2022.06.007.
[11]曹嵩彭,王鹏宇.浅析Java语言在软件开发中的应用[J].信息记录材料,2022,23(03):114-116.DOI:10.16009/j.cnki.cn13-1295/tq.2022.03.009.
[12]叶欣若,肖松鸿,杨妍.“爱宠e+”宠物综合服务平台开发模式研究[J].电脑知识与技术,2021,17(28):79-80.DOI:10.14004/j.cnki.ckt.2021.3000.
[13]周粉妹,吴仁平,钱荣华,陈思.基于SSM的宠物领养网站设计[J].扬州职业大学学报,2021,25(01):32-35.DOI:10.15954/j.cnki.cn32-1529/g4.2021.01.009.
[14]Siyi Liu. Explore Java Language and Android Mobile Software Development[J]. International Journal of Frontiers in Engineering Technology,2021,3.0(2.0).
[15]吴文洋,刘世宇.基于B/S架构宠物领养管理系统设计[J].软件,2020,41(11):85-87.
[16]杨芹. 宠物领养Web App的设计与实现[D].华中科技大学,2020.DOI:10.27157/d.cnki.ghzku.2020.006892.
[17]Kevin Kline. The Java Language Extension for SQL Server Is Now Open Source[J]. Database Trends and Applications,2020,34(4).
[18]Hu Xin,Yan Chaobing. Development and application of JAVA language development test evaluation system software[J]. Journal of Computational Methods in Sciences and Engineering,2020,20(4).
[19].免费领养宠物犬 小心“萌宠骗局”[J].中国防伪报道,2019(01):90-91.
[20]Evaristus Didik Madyatmadja,Chelsea Adora. Designing and Using a MySQL Database for Human Resource Management[J]. Advances in Science Technology and Engineering Systems Journal,2019,4(6).
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~