Spring Boot猪疾病信息查询系统

摘    要

随着信息技术在农业领域的不断渗透,猪疾病信息管理的需求日益增长。然而,传统的疾病信息查询与管理系统存在资源分散、信息更新不及时和交互性差等问题。本系统基于Spring Boot框架,结合Java语言和MySQL数据库,设计了一个针对猪疾病的综合信息查询系统。该系统通过区分普通用户、兽医专家和管理员的不同权限,实现了功能模块的分离,包括首页、交流论坛、学习资源、疾病信息查询、专家咨询及预约、病例记录等功能。普通用户能够便捷地获取疾病知识、提交病例;兽医专家可以管理咨询和预约记录;管理员则负责整体内容和用户的管理,确保系统的高效运作。此外,系统还支持学习资源和疾病信息的点赞、收藏及评论,增强了用户的参与度和平台的实用性。通过这一系统,不仅提升了猪疾病信息管理的效率,也改善了用户体验,为猪病防治提供了强有力的支持。

关键词: MySQL数据库;猪疾病信息查询系统;Spring Boot;Java

Spring Boot Pig Disease Information Inquiry System

Abstract

With the continuous penetration of information technology in the agricultural field, the demand for swine disease information management is increasing. However, the traditional disease information query and management system has problems such as scattered resources, untimely information update and poor interaction. Based on the Spring Boot framework, combined with Java language and MySQL database, this system designs a comprehensive information query system for pig diseases. The system realizes the separation of functional modules by distinguishing the different permissions of ordinary users, veterinary experts and administrators, including the home page, communication forum, learning resources, disease information inquiry, expert consultation and appointment, case record and other functions. Ordinary users can easily obtain disease knowledge and submit cases; Veterinary specialists can manage consultation and appointment records; The administrator is responsible for the overall content and user management to ensure the efficient operation of the system. In addition, the system also supports liking, favorites, and comments on learning resources and disease information, enhancing user engagement and the practicability of the platform. Through this system, it not only improves the efficiency of swine disease information management, but also improves the user experience, and provides strong support for swine disease prevention and control.

Keywords: MySQL database; swine disease information query system; Spring Boot; Java

目    录

第1章 绪    论

1.1 系统开发背景及意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.3 研究内容

1.4 论文组织结构

第2章 关键技术介绍

2.1 Java语言

2.2 Spring Boot框架

2.3 Vue框架

2.4 B/S体系结构

2.5 MySQL数据库

第3章 系统分析

3.1 可行性分析

3.1.1 技术可行性

3.1.2 经济可行性

3.1.3 操作可行性

3.2 系统功能需求分析

3.3 非功能性需求分析

3.4 系统流程分析

第4章 系统设计

4.1 系统架构设计

4.2 功能模块设计

4.3 数据库设计

4.3.1 概念设计

4.3.2 逻辑设计

第5章 系统实现

5.1 前端用户模块的实现

5.1.1 用户注册界面

5.1.2 用户登录界面

5.1.3 前台首页界面

5.1.4 交流论坛界面

5.1.5 学习资源界面

5.1.6 疾病信息界面

5.1.7 专家信息界面

5.1.8 病例记录界面

5.1.9 个人中心界面

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 系统管理界面

第6章 系统测试

6.1 测试目的

6.2 测试类型

6.3 功能测试

6.4 可用性测试

6.5 测试结果分析

第7章 结  论

参考文献

致    谢

附    录

第1章 绪    论

1.1 系统开发背景及意义

1.1.1 研究背景

随着养殖业的不断发展,猪疾病的预防和控制变得尤为重要。传统的疾病信息查询与管理系统存在资源分散、信息更新滞后及用户交互性差等问题,难以满足现代养殖业对于快速获取准确疾病信息的需求。此外,兽医专家与普通养殖户之间缺乏一个有效的沟通平台,导致疾病诊断不及时、治疗方案不适合等情况时有发生。这些问题迫切需要一种集成化、信息化的解决方案来提升疾病管理效率,改善信息交流方式,为养殖户提供科学的疾病防控指导。

基于上述背景,本系统应运而生,旨在利用Spring Boot框架结合Java语言和MySQL数据库的优势,构建一个集疾病信息查询、专家咨询预约、病例记录分享等多功能于一体的综合信息服务平台。该系统不仅支持不同用户角色的功能模块分离,便于普通用户、兽医专家和管理员根据各自需求进行操作,还通过引入点赞、收藏、评论等功能增强用户的参与感和平台的实用性。系统的开发不仅提升了猪病防治工作的效率和准确性,也为养殖业的健康发展提供了强有力的技术支持。

1.1.2 研究意义

本系统的研究为动物疾病管理信息系统的开发提供了新的思路和方法,特别是在利用Spring Boot框架进行快速开发与高效资源整合方面展现了显著优势。通过构建一个集成化、模块化的平台,实现了不同用户角色之间的信息流畅交互,不仅推动了信息技术在农业领域的应用研究,也为相关学术领域探索更先进的养殖业信息管理系统奠定了基础。此外,系统采用的前后端分离设计理念,对于优化用户体验和提高系统可维护性具有重要的理论价值。

从实际应用角度来看,该系统极大地提升了猪病防治工作的效率和准确性,为养殖户提供了一个便捷获取疾病信息、专家咨询以及病例分享的有效途径。通过这一平台,养殖户能够及时了解最新的疾病预防措施和治疗方法,有效降低猪只发病率和死亡率,从而保障养殖效益。同时,兽医专家可以通过系统更好地管理和响应咨询预约,增强服务覆盖范围和响应速度。因此,本系统在促进养殖业健康发展、提升疫病防控水平方面展现出了巨大的实用价值。

1.2 国内外研究现状

在国内,随着养殖业向规模化、集约化方向发展,猪疾病的防控需求日益增加,促使了猪疾病信息查询系统的逐步发展。早期的研究多集中在基础数据库的建立和简单查询功能的实现,但近年来,随着信息技术的迅速进步,特别是大数据、云计算等技术的应用,系统逐渐向智能化、集成化方向转变,不仅能够提供详细的疾病信息查询,还能支持专家在线咨询服务以及病例分享等功能。然而,目前仍存在地区间发展不平衡、数据标准化不足等问题。

在国外,尤其是欧美发达国家,猪疾病信息管理系统的研发起步较早,初期注重于疾病监控与预警体系的建设,通过整合多种信息技术手段提高疾病预防和控制效率。随着时间的发展,这些系统已经具备了高度的专业性和实用性,不仅涵盖了广泛的疾病数据库,还融合了最新的研究成果和技术手段,如人工智能辅助诊断等。此外,国际间的合作交流频繁,促进了疾病信息共享和标准统一,但在数据隐私保护和跨区域协作方面依然面临挑战。

总体而言,国内外在猪疾病信息查询系统方面的研究均取得了显著进展,从简单的疾病信息记录到如今的智能诊断、专家咨询等多功能集成平台,展示了信息技术在提升疫病防控能力上的巨大潜力。然而,无论是国内还是国外,系统的发展仍然面临着数据标准化、隐私保护及地区间不平衡等共性问题。未来的发展需要进一步加强国际合作,共同推动疾病信息管理系统向更加高效、便捷和安全的方向发展。

1.3 研究内容

本文主要研究内容是开发一个基于Spring Boot框架的猪疾病信息查询系统,旨在通过信息化手段提升猪病防治工作的效率和准确性。该系统针对普通用户、兽医专家和管理员的不同需求,设计了包括首页、交流论坛、学习资源、疾病信息查询、专家咨询预约、病例记录等多功能模块,并支持点赞、收藏及评论功能以增强用户互动性。技术路线上,系统采用Java语言进行后端开发,结合MySQL数据库实现数据存储管理,并利用前后端分离的设计理念,前端通过Vue.js展示,确保系统的扩展性和可维护性。此外,系统还注重用户体验与数据安全,为养殖业提供了一个科学、便捷的疾病防控信息平台。

1.4 论文组织结构

本文的结构按逻辑顺序分为以下几个章节:

第1章绪论,本章节介绍研究背景和意义,回顾当前研究现状,并阐明本文主要工作和组织结构。

第2章系统关键技术,本章节将对猪疾病信息查询系统的实现关键技术进行简要介绍。

第3章系统分析,本章节基于市场调研,分析猪疾病信息查询系统的可行性、功能、角色、性能等需求,明确各模块的业务需求。

第4章系统设计,本章节详细阐述系统的整体架构设计,包括前后端结构、数据库设计及功能模块的设计思路。

第5章系统实现,本章节介绍系统各主要模块的具体实现,包括代码示例、业务逻辑及界面设计等。

第6章系统测试,本章节描述系统的测试方法及结果,分析系统的性能、稳定性及用户反馈。

第7章结论,本章节对主要对研究成果进行总结。

第2章
关键技术介绍

2.1 Java语言 

Java是一种跨平台的高级编程语言[1],具有广泛应用于各个领域的优势。它拥有简单易学、可靠稳定、安全性强和良好的性能等特点。在猪疾病信息查询系统中,Java将作为主要的后端编程语言来实现系统的核心功能[2]。通过使用Java,我们可以实现数据的处理、业务逻辑的编写以及与前端界面的交互。同时,Java还提供了丰富的类库和开发工具,方便开发人员进行系统设计和开发。

2.2 Spring Boot框架

Spring Boot[3],作为Spring生态系统中一颗璀璨的明星,以其“约定优于配置”的核心理念,极大地简化了Java应用的开发、部署与管理流程。它并非是对Spring框架的颠覆,而是在其基础上进行了深度封装与优化,旨在快速搭建独立的、生产级别的Spring应用[4]。Spring Boot通过自动配置功能,减少了大量繁琐的配置工作,让开发者能够更加专注于业务逻辑的实现。同时,它集成了众多常用库,如数据库连接池、缓存、消息队列等,为开发者提供了一站式的解决方案。此外,Spring Boot还支持多种部署方式,无论是传统的WAR包部署,还是现代的容器化部署,都能轻松应对。因此,选择Spring Boot作为猪疾病信息查询系统的开发框架,不仅能够提升开发效率,还能确保系统的稳定性和可维护性。

2.3 Vue框架

Vue框架[5]是一个用于构建用户界面的渐进式JavaScript框架,旨在通过简洁的API和高效的数据绑定机制简化Web应用的开发过程。它允许开发者创建可复用的组件,实现视图层的快速开发,并且能够轻松地与其他库或现有项目集成。Vue的核心库专注于视图层,同时其生态系统提供了包括路由管理、状态管理和工具支持等丰富的扩展能力,使得开发者可以构建出复杂而高效的单页应用(SPA)或多页应用。凭借其灵活性、易学性和强大的功能,Vue已经成为现代Web开发中最受欢迎的前端框架之一。

2.4 B/S体系结构

B/S(Browser/Server)结构是一种用于WEB应用程序的架构模式[6],用户通过浏览器与服务器进行交互。与传统的C/S(Client/Server)架构相比,B/S结构具有更好的普适性和简便性,用户无需安装客户端软件,只需通过浏览器即可访问应用,降低了维护和升级的成本。

2.5 MySQL数据库

MySQL数据库[7],作为开源关系型数据库管理系统的佼佼者,以其高性能、可靠性、易用性和灵活性,在全球范围内被广泛应用于各类企业级应用中。MySQL采用SQL(结构化查询语言)作为数据操作的标准语言,支持复杂的查询、数据更新、索引优化等功能,确保数据的高效存取和完整性。其强大的事务处理能力,为业务逻辑的原子性、一致性、隔离性和持久性提供了坚实保障。此外,MySQL还具备高度的可配置性和可扩展性,通过优化存储引擎、调整配置参数等手段,可以轻松应对高并发、大数据量的应用场景。在猪疾病信息查询系统中,MySQL作为后端数据存储的核心[8],不仅为系统提供了稳定可靠的数据支持,还通过其丰富的数据操作功能,助力系统实现复杂的业务逻辑和高效的数据管理。

第3章
系统分析

3.1 可行性分析

3.1.1 技术可行性

基于Spring Boot与MySQL开发的猪疾病信息查询系统,能够高效处理数据并提供稳定的服务。Spring Boot简化了开发流程,提升了开发效率,而MySQL则保证了数据存储的安全性和可靠性。采用的数据加密技术和权限管理策略有效保护用户隐私,确保系统在技术层面的高度可行。

3.1.2 经济可行性

从经济角度考量,本系统的开发和维护成本在可控范围内,且预期的投资回报率较高。初期投入主要包括软件开发、硬件采购和人员培训等方面,但通过合理的预算规划和资源分配,可以有效控制成本。更重要的是,系统上线后将显著提升猪疾病信息查询系统的运营效率,减少人工干预,降低管理成本。

3.1.3 操作可行性

在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是后台管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。

3.2 系统功能需求分析

本系统旨在通过信息化手段提升猪病防治工作的效率和用户体验,主要满足普通用户、兽医专家和管理员三大角色的需求。系统提供疾病信息查询、学习资源获取、病例记录提交与管理、咨询预约、交流互动等功能模块,并支持点赞、收藏、评论等增强用户参与度的操作。技术上采用Spring Boot框架结合MySQL数据库,确保系统的高效性和可扩展性。具体功能描述如下:

  1. 普通用户模块:

首页:展示最新通知公告和推荐内容,为用户提供便捷的信息入口。

交流论坛:允许用户讨论猪疾病相关话题,分享经验和见解。

通知公告:发布重要消息或更新,让用户了解最新的动态。

学习资源:提供培训视频和资料,帮助用户提高对猪疾病的认识。

疾病信息:提供详细的疾病介绍,包括症状、诊断方法和预防措施。

专家信息:展示专家的详细信息,方便用户选择合适的专家进行咨询或预约。

病例记录:用户可以提交自己的病例记录,供专家和其他用户参考。

我的账户:允许用户查看和编辑个人信息,维护个人资料的准确性和完整性。

个人中心:集中管理咨询记录、预约记录、病例记录以及收藏和评论,便于用户跟踪进展。

普通用户角色用例图如下所示。

图3-1 普通用户用例图

  1. 兽医专家模块:

后台首页:提供工作概览,便于专家快速访问常用功能。

专家信息管理:专家可以更新个人资料,包括擅长领域和在线时间。

咨询记录管理:查看并回复用户的咨询请求,提供专业建议。

预约记录管理:审核用户的预约请求,安排合理的咨询服务时间。

兽医专家角色用例图如下所示。

图3-2 兽医专家用例图

  1. 管理员模块:

后台首页:展示疾病信息的数据统计,帮助管理员监控平台健康状况。

系统用户:管理系统内所有用户的信息,保证平台安全和秩序。

学习资源管理:维护和更新学习资源,确保内容的准确性和时效性。

疾病信息管理:编辑和更新疾病相关的详细信息,为用户提供准确的知识库。

疾病分类管理:管理和优化疾病分类,使信息查找更加便捷。

专家信息管理:负责专家信息的审核和管理,确保服务质量。

咨询记录管理:监督和管理用户的咨询记录,保障服务流程顺畅。

预约记录管理:处理用户的预约请求,协调专家和服务时间。

病例记录管理:审查和管理用户提交的病例记录,促进知识共享。

系统管理:维护首页轮播内容,吸引用户关注重要信息。

通知公告管理:发布和管理通知公告,及时向用户传达重要信息。

交流管理:监督和管理交流论坛的内容,维持良好的讨论氛围。

权限管理:设置不同用户角色的权限,确保系统的安全性和稳定性。

管理员角色用例图如下所示。

图3-3 管理员用例图

3.3 非功能性需求分析

在设计和开发猪疾病信息查询系统时,除了考虑其功能性需求,还需要对非功能性需求进行深入的分析,以确保系统能够满足用户在使用过程中的安全性、可靠性、性能、易用性、可维护性等方面的要求。以下是对猪疾病信息查询系统非功能性需求的详细分析。在如下3-1表格中:

表3-1 Spring Boot猪疾病信息查询系统非功能需求表

安全性

数据安全:系统应采取有效的加密和验证措施,确保数据的机密性、完整性和可用性。

访问控制:系统应实现严格的访问控制机制,确保只有授权用户才能访问相关数据和功能。

防止攻击:系统应具备抵御常见网络攻击的能力,如SQL注入、跨站脚本攻击等。

可靠性

故障恢复:系统应具备故障恢复能力,在出现故障时能够迅速恢复正常运行,避免长时间的服务中断。

数据备份与恢复:系统应定期备份数据,并确保在数据丢失或损坏时能够迅速恢复,以保障数据的完整性。

性能

响应时间:系统应确保快速的响应时间,特别是在高峰时段,用户进行信息查询、更新等操作时的响应时间应控制在合理范围内,以提升用户体验。

吞吐量:系统应能够处理大量的并发请求,确保在高并发场景下仍能稳定运行,不会出现卡顿或崩溃现象。

资源利用率:系统应优化资源使用,减少不必要的资源消耗,以提高系统的整体性能。

易用性

界面设计:系统界面应简洁明了,易于理解和操作,方便用户快速上手。

操作流程:系统应提供清晰的操作流程指引,减少用户在使用过程中的困惑和误操作。

帮助文档:系统应提供详尽的帮助文档,以便用户在遇到问题时能够迅速找到解决方案。

可维护性

模块化设计:系统应采用模块化设计,便于后续的扩展和维护。

日志记录:系统应记录关键操作和系统事件,以便在出现问题时能够快速定位和解决。

文档完备性:系统应提供完整的开发文档和维护手册,以便维护人员能够迅速了解系统架构和功能。

3.4 系统流程分析

猪疾病信息查询系统支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对就业数据自身特点和面临的现实条件,对系统进行流程图设计。活动图是一种用于对系统的动态行为建模的另一种常用图表,通常用于可视化展示系统中各个活动的执行顺序、流程控制和数据交互,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;但活动图着重表现从一个活动到另一个活动的控制流。因此,这里列举了2个业务活动图。

(1)用户登录查询的业务流程如下。

用户注册登录,系统从数据库获取用户数据信息,登录成功用户进入查询页面,用户输入查询关键字,数据库查询用户所输入的关键字,查询成功显示查询的模块信息,查询失败不显示。用户登录查询功能的活动图如图3-4所示。

图3-4 用户登录查询活动图

(2)管理员添加信息的业务流程如下。

此活动图描述了管理员添加信息。管理员可以通过信息管理模块页面选择要添加的基本信息。添加成功传入数据库中,失败则不添加。管理员可以保存信息并更新系统中的信息。管理员添加信息功能的活动图如图3-5所示。

图3-5 管理员添加信息活动图

第4章 系统设计

4.1 系统架构设计

从技术角度来看,猪疾病信息查询系统的架构设计至关重要。我们将采用MVC架构,包括表现层、业务逻辑层和数据访问层。表现层负责用户界面展示,业务逻辑层处理核心功能逻辑,数据访问层负责数据库交互。通过三层架构模式,确保系统的可靠性和可扩展性。

系统架构图如图4-1所示。

图4-1 系统架构图

4.2 功能模块设计

通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。

图4-2 系统功能模块图

4.3 数据库设计

数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。

4.3.1 概念设计

概念模型设计通过实体关系图(ER图)描绘了系统中核心实体及其之间的关联,为数据组织提供了高层次的抽象视图。本系统的ER图如下所示。

图4-3 系统总体E-R图

4.3.2 逻辑设计

逻辑结构设计则细化了概念模型,定义了具体的数据表、字段类型及约束条件,如用户表包含用户ID、用户名、密码等字段,并设置了主键和外键以确保数据的完整性和一致性。猪疾病信息查询系统所需要的部分数据结构表如下表所示。

表 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-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-3-case_records(病例记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

case_records_id

int

病例记录ID

2

record_title

varchar

64

记录标题

3

user_information

int

用户信息

4

user_name

varchar

64

用户姓名

5

record_date

date

记录日期

6

health_status

text

65535

健康状况

7

disease_history

text

65535

疾病历史

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-4-classification_of_diseases(疾病分类)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

classification_of_diseases_id

int

疾病分类ID

2

classification_of_diseases

varchar

64

疾病分类

3

create_time

datetime

创建时间

4

update_time

timestamp

更新时间

表 4-5-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-6-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-7-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-8-consulting_records(咨询记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

consulting_records_id

int

咨询记录ID

2

advisory_title

varchar

64

咨询标题

3

expert_user

int

专家用户

4

consulting_users

int

咨询用户

5

consulting_content

text

65535

咨询内容

6

expert_reply

text

65535

专家回复

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

9

source_table

varchar

255

来源表

10

source_id

int

来源ID

11

source_user_id

int

来源用户

表 4-9-disease_information(疾病信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

disease_information_id

int

疾病信息ID

2

name_of_disease

varchar

64

疾病名称

3

classification_of_diseases

varchar

64

疾病分类

4

disease_symptoms

varchar

64

疾病症状

5

disease_pathogen

varchar

64

疾病病原

6

route_of_transmission

varchar

64

传播途径

7

diagnostic_method

varchar

64

诊断方法

8

release_date

date

发布日期

9

cover_image

varchar

255

封面图片

10

preventive_measures

text

65535

预防措施

11

treatment_plan

longtext

4294967295

治疗方案

12

hits

int

点击数

13

praise_len

int

点赞数

14

collect_len

int

收藏数

15

comment_len

int

评论数

16

recommend

int

智能推荐

17

create_time

datetime

创建时间

18

update_time

timestamp

更新时间

表 4-10-expert_information(专家信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

expert_information_id

int

专家信息ID

2

expert_user

int

专家用户

3

name_of_expert

varchar

64

专家姓名

4

experts_are_good

varchar

64

专家擅长

5

online_time

varchar

64

在线时间

6

expert_photos

varchar

255

专家照片

7

personal_profile

longtext

4294967295

个人简介

8

praise_len

int

点赞数

9

collect_len

int

收藏数

10

comment_len

int

评论数

11

consulting_records_limit_times

int

咨询限制次数

12

reservation_record_limit_times

int

预约限制次数

13

create_time

datetime

创建时间

14

update_time

timestamp

更新时间

表 4-11-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-12-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-13-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-14-learning_resources(学习资源)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

learning_resources_id

int

学习资源ID

2

resource_name

varchar

64

资源名称

3

resource_tags

varchar

64

资源标签

4

release_date

date

发布日期

5

training_video

varchar

255

培训视频

6

resource_attachments

varchar

255

资源附件

7

cover_image

varchar

255

封面图片

8

content_details

longtext

4294967295

内容详情

9

hits

int

点击数

10

praise_len

int

点赞数

11

collect_len

int

收藏数

12

comment_len

int

评论数

13

recommend

int

智能推荐

14

create_time

datetime

创建时间

15

update_time

timestamp

更新时间

表 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

contact_phone

varchar

16

联系电话

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-reservation_record(预约记录)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

reservation_record_id

int

预约记录ID

2

expert_user

int

专家用户

3

name_of_expert

varchar

64

专家姓名

4

experts_are_good

varchar

64

专家擅长

5

user_information

int

用户信息

6

user_name

varchar

64

用户姓名

7

contact_phone

varchar

64

联系电话

8

appointment_time

datetime

预约时间

9

appointment_content

text

65535

预约内容

10

examine_state

varchar

16

审核状态

11

examine_reply

varchar

255

审核回复

12

create_time

datetime

创建时间

13

update_time

timestamp

更新时间

14

source_table

varchar

255

来源表

15

source_id

int

来源ID

16

source_user_id

int

来源用户

表 4-19-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-20-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-21-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-22-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-23-veterinary_specialist(兽医专家)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

veterinary_specialist_id

int

兽医专家ID

2

name_of_expert

varchar

64

专家姓名

3

gender_of_experts

varchar

64

专家性别

4

expert_phone

varchar

16

专家电话

5

experts_are_good

varchar

64

专家擅长

6

examine_state

varchar

16

审核状态

7

user_id

int

用户ID

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

第5章
系统实现

5.1 前端用户模块的实现

5.1.1 用户注册界面

用户可以通过注册功能创建个人账号,填写包括用户名、密码、邮箱或手机号等基本信息,选择所属的投票人群分类完成注册流程。系统会对输入信息进行校验,确保唯一性和格式正确性,并将用户数据存储至数据库中。用户注册界面如下图所示。

图5-1 用户注册界面

5.1.2 用户登录界面

用户登录模块允许用户通过输入用户名和密码进入系统,系统会验证凭据的正确性并生成会话令牌以保持登录状态。成功登录后,用户可直接跳转至首页或其他功能页面,未匹配的凭据则提示重新输入或找回密码。用户登录界面如下图所示。

图5-2 用户登录界面    

5.1.3 前台首页界面

普通用户的首页设计注重用户体验,设计实现了直观的用户界面,展示最新的通知公告、推荐的学习资源和热门讨论话题。用户可以通过首页快速访问系统的主要功能模块,并获取最新动态。前台首页界面如下图所示。

图5-3 前台首页界面

5.1.4 交流论坛界面

交流论坛模块提供了一个便捷的平台,让用户可以发布帖子、参与讨论猪疾病相关的各种话题,分享经验和见解。通过分类标签和搜索功能,用户能够轻松找到感兴趣的话题或信息。交流论坛界面如下图所示。

图5-4 交流论坛界面

5.1.5 学习资源界面

学习资源模块集成了丰富的培训视频和文档资料,支持按类别、关键词搜索以及根据发布时间排序,方便用户查找所需的学习材料。同时,用户可以对资源进行点赞、收藏和评论,增加互动性。学习资源界面如下图所示。

图5-5 学习资源界面

5.1.6 疾病信息界面

疾病信息模块详细列出了多种猪疾病的症状、诊断方法、预防措施等关键信息,并提供了搜索和筛选功能,帮助用户快速定位到特定疾病的信息。此外,用户还可以对每条疾病信息进行评价和收藏,便于日后查阅。疾病信息展示界面如下图所示。

图5-6 疾病信息界面

5.1.7 专家信息界面

专家信息模块展示了注册专家的详细资料,包括专长领域、在线时间及个人简介,用户可以根据这些信息选择合适的专家进行咨询或预约。通过点击专家头像或姓名,可以直接进入专家详情页面查看更多信息。专家信息展示界面如下图所示。

图5-7 专家信息界面

提交咨询记录界面如下图所示。

图5-8 提交咨询记录界面

提交预约记录界面如下图所示。

图5-9 提交预约记录界面

5.1.8 病例记录界面

病例记录模块允许用户提交自己的病例记录,填写详细的健康状况、疾病历史等信息,并可以选择是否公开分享给其他用户参考。提交后,用户还能在个人中心查看和管理自己的所有病例记录。病例记录提交界面如下图所示。

图5-10 病例记录提交界面

5.1.9 个人中心界面

个人中心模块为用户提供了一个集中管理个人信息、查看咨询与预约记录、病例记录、管理收藏和评论的地方。用户可以在这里修改个人信息、设置偏好选项,以及追踪自己在平台上的所有活动记录。普通用户个人中心界面如下图所示。

图5-11 普通用户个人中心界面

5.2 兽医专家管理模块的实现

5.2.1 专家信息管理界面

专家信息管理模块允许兽医专家更新和维护个人资料,包括专业领域、擅长技能、在线时间以及个人简介等信息。通过简洁直观的界面设计,专家可以轻松添加或修改自己的详细资料,确保用户能够获取最准确的专家信息,从而提高咨询预约的有效性和针对性。专家信息添加界面如下图所示。

图5-12 专家信息添加界面

5.2.2 咨询记录管理界面

咨询记录管理模块为兽医专家提供了一个集中处理用户咨询请求的平台,专家可以查看所有收到的咨询问题,并直接在系统内进行回复。此模块支持按状态筛选咨询记录,确保专家能高效管理和响应用户的咨询需求,同时也可以追踪每个咨询的历史互动情况,提升服务质量和用户体验。咨询记录回复界面如下图所示。

图5-13 咨询记录回复界面

5.2.3 预约记录管理界面

预约记录管理模块设计用于帮助兽医专家审核和管理来自用户的预约请求,专家可以通过该模块查看预约详情,如预约时间、咨询内容等,并决定是否接受预约。此外,系统提供了提醒功能,确保专家不会错过任何重要的预约安排,同时也支持调整预约时间和状态更新,以便更好地协调日常工作安排和服务流程。预约记录审核界面如下图所示。

图5-14 预约记录审核界面

5.3 后台管理员模块的实现

5.3.1 后台首页界面

管理员的后台首页设计为一个综合性的仪表盘,集中展示了系统的关键性能指标和重要信息,如疾病信息统计等。通过直观的数据可视化图表和快捷操作入口,管理员能够快速获取系统的整体运行状况,并高效执行日常管理任务。后台首页界面如下图所示。

图5-15 后台首页界面

5.3.2 系统用户界面

管理员通过系统用户模块能够全面管理平台内的所有用户账户,包括创建新用户、分配角色权限、重置密码等操作。此外,管理员还可以监控用户的活跃状态,确保系统的安全性和正常运行,为不同角色提供稳定的服务支持。系统用户界面如下图所示。

图5-15 系统用户界面

5.3.3 学习资源管理界面

学习资源管理模块允许管理员上传、编辑和删除平台上的学习资源,包括培训视频、文档资料等,支持按照类别、标签进行分类管理,确保内容的组织有序。学习资源管理界面如下图所示。

图5-16 学习资源管理界面

5.3.4 病例记录管理界面

病例记录管理模块设计用于管理员审查和管理系统内的所有病例记录,提供强大的搜索和筛选功能,以便快速定位特定病例。管理员不仅可以查看病例详情,还能对不完整或不适当的病例记录进行标记或删除处理,确保数据的质量与可靠性。病例记录管理界面如下图所示。

图5-17 病例记录管理界面

5.3.5 系统管理界面

在轮播图管理模块中,管理员可以轻松上传、编辑和排序首页展示的轮播图内容,以吸引用户的注意力并传达重要信息。轮播图管理界面如下图所示。

图5-18 轮播图管理界面

第6章 系统测试

6.1 测试目的

系统的测试目的在于确保猪疾病信息查询系统在功能、性能、安全性和用户体验等方面均达到预期标准。通过全面的测试,验证各模块的正确性和稳定性,确保不同类型的用户能够顺畅地使用系统完成各自的任务。同时,测试还致力于发现并修正潜在的问题和缺陷,优化系统响应速度和数据处理能力,保障系统的可靠运行,并为用户提供一个安全、高效、便捷的购物和服务平台。

6.2 测试类型

检测系统是否合格,需要用到很多的测试类型。接下来就对这部分内容进行描述。

功能测试:这是系统测试中,首先进行的测试内容,其属于黑盒测试。主要检验制作的系统与需求说明文档的相符程度,还有它们之间存在的差异问题。

性能测试:主要测试制作的系统,在同时面对很多的用户请求时,该系统的应对能力。同时也是检查制作的系统跟事先预定的系统性能存在的差距问题。这样的方法通常在实时系统中,或者是嵌入式系统中运用得比较多。

容量测试:这种方法针对数据。检查正常运行的系统对数据处理的容量值。

安全性测试:这种方法常用于检验系统中设置的安全保护机制对来自非法用户的攻击时是否有效。而检测系统中的信息保护机制就需要使用常见安全测试中的保护测试来验证。

健壮性测试:这种测试还有一个别称是容错测试,通常运用故障插入法来检测系统的容错能力,看系统是否可以忽略故障保持继续运行,或者是检测系统应对故障时的自动恢复能力。

兼容性测试:面对计算机的各种软硬件环境,检测本系统是否可以兼容。

易用性测试:这种方法主要是面向用户,检测用户是否很容易理解和使用系统。

6.3 功能测试

猪疾病信息查询系统在经历最后的测试环节,需要检验本系统的功能安全性,功能适用性等内容,最终得出测试结论。

表6-1 功能测试数据表

测试内容

测试结果

系统功能的适用性

符合要求

系统功能的依从性

符合要求

系统功能的安全性

符合要求

系统功能的准确性

符合要求

系统功能的可操作性

符合要求

6.4 可用性测试

通常来说,一个布局合理,显示的内容无错别字,并具备合理正常的操作逻辑的系统往往很受欢迎,而且可以提升访问者的使用时间以及访问率。

表6-2 可用性测试数据表

测试内容

测试结果

检查系统的操作逻辑合不合理

合理

检查系统的功能布局合不合理

合理

检查系统能否支持鼠标和键盘

检查系统反馈的提示有无错别字

检查系统功能有无友好性

检查系统页面能否正常关闭

检查系统各数据项有无错误

检查系统有无提供帮助信息

6.5 测试结果分析

猪疾病信息查询系统经过了编码阶段的单元测试,和最后的系统整体测试等测试后,对于用户要求的功能,本系统都进行了实现,各个模块都运行正常。在面对一些故障性问题时,本系统也有相应的应对办法,并且本系统可以保持24小时正常运转。因此,基于大数据的Spring Boot猪疾病信息查询系统可以交付用户使用。

第7章 结  论

在本研究中,我成功构建了一个Spring Boot猪疾病信息查询系统,实现了丰富的功能如首页、交流论坛、通知公告、学习资源、疾病信息、专家信息、病例记录等。系统运用了Java语言的灵活性、Spring Boot框架的快速开发特性和MySQL数据库的稳定性,为猪疾病信息管理提供了可靠的支持。通过系统的设计和实现,提高了猪疾病信息管理的效率和用户体验,为系统运营和数据管理提供了便捷、高效的解决方案。

在系统的设计和开发过程中,需要进一步加强对用户体验和界面设计的重视,提升系统的易用性和美观性,以增强用户对系统的吸引力和满意度。此外,对异常情况和错误处理的完善也是需要加强的地方,确保系统的稳定性和安全性。在未来的改进中,可以考虑引入更多的数据分析和报告功能,以帮助管理员更好地了解猪疾病信息管理情况,提高决策的科学性和准确性。同时,加强系统的扩展性和可维护性,以应对未来基于用户隐私保护发展和功能拓展的需求。

总的来说,通过本次研究,我成功搭建了一套Spring Boot猪疾病信息查询系统,实现了丰富的功能并取得了一定的成果。在未来的发展中,将继续优化系统功能和用户体验,不断提升系统的性能和稳定性,为猪疾病信息查询系统的长期发展和用户需求提供更好的服务和支持。

参考文献

  1. 陈敬宗.计算机软件Java编程特点与技术应用分析[J].中国信息界,2025,(01):162-164.
  2. 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.
  3. 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
  4. 李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.
  5. 秦冬. 浅析Vue框架在前端开发中的应用 [J]. 信息与电脑(理论版), 2024, 36 (13): 61-63.
  6. 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
  7. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  8. 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
  9. Release I .Seasonal conditions, sex raise feral pig disease risk[J].National Hog Farmer,2025,
  10. 吴长屏,顾丽群,陈亮锦.试论猪疾病诊断方法及治疗手段[J].吉林畜牧兽医,2025,46(03):28-30.
  11. 谢雪桃,陆翼强.猪疾病混合性感染特征及防控措施[J].吉林畜牧兽医,2025,46(03):31-33.
  12. 王志鹏,王钰斐,谢凯.畜牧兽医工作中猪疾病的预防及治疗措施[J].新农民,2025,(07):124-126.
  13. Mainenti M ,Derscheid J R ,Piñeyro P , et al.Guide for nonswine practitioners to enhance swine disease diagnoses.[J].Journal of the American Veterinary Medical Association,2025,1-9.
  14. Release I .PRRSV research paves way for targeted swine disease management[J].National Hog Farmer,2025,
  15. 潘玉建.猪疾病的类型与防治措施分析[J].粮油与饲料科技,2024,(10):150-152.
  16. 陶思源,王海楠.基于J2EE和Android的动物疾病辅助诊断平台设计与测试[J].科技创新与应用,2024,14(13):120-123.
  17. 张明江.现代养猪场的生物安全措施及其在猪疾病预防中的应用[J].畜牧业环境,2024,(03):112-113.
  18. 水生动物疾病远程诊断系统[J].中国水产,2023,(12):96.
  19. 李明遥.畜牧兽医工作中猪疾病的预防及治疗措施[J].畜牧业环境,2023,(07):52-54.
  20. 强光平.基于Springboot的种猪管理系统开发与应用研究[D].四川农业大学,2021.


致    谢

在这篇论文即将完成之际,我想用真挚的心意向一些特别的人们表达我的感激之情。

我要衷心感谢我的父母和家人。他们一直以来给予我无私的支持和鼓励,是我坚强的后盾。他们的理解与支持让我能够专注于学业,并为我提供了一个温暖的家庭环境。没有他们,我无法顺利完成这篇论文。

接下来,我要感谢我的导师。感谢您在整个研究过程中给予我的耐心指导和宝贵建议。您的专业知识和经验对我产生了深远的影响。您的教诲和指导使我能够更好地理解和运用所学知识,在研究中取得了显著的进展。我非常感激您的辛勤付出和悉心指导。

此外,我要感谢我的同学和朋友们。在这段学习旅程中,你们给予了我无尽的支持和鼓励。我们一起度过了难忘的时光,互相帮助、相互学习。你们的智慧和见解为我提供了新的思路和灵感,使我的论文更加丰富和有深度。

最后,我要感谢所有为这篇论文提供支持和帮助的人们,包括实验室的工作人员、图书馆的工作人员以及其他相关专业领域的专家和学者。你们的专业知识和资源为我的研究提供了重要的支持和参考,使我能够深入探索和展示我的观点。

在完成这篇论文的过程中,我不仅获得了学术上的收获,还结交了许多宝贵的友谊和支持。再次向所有给予我帮助和支持的人们表示衷心的感谢!

整理归纳不易,点赞❤关注+私信博主,免费领取项目源码,谢谢
附    录

系统关键代码

登录代码如下:

  /**

     * 登录

     * @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, "账号或密码不正确");

        }

    }

注册代码如下:

      /**

     * 注册

     * @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);

}  

找回密码代码如下:

 /**

     * 找回密码

     * @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, "密码不能为空");

        }

        // 查询用户

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

        query.put("username",username);

        List list = service.selectBaseList(service.select(query, service.readConfig(request)));

        if (list.size() > 0) {

            User o = (User) list.get(0);

            JSONObject query2 = new JSONObject();

            JSONObject form2 = new JSONObject();

            // 修改用户密码

            query2.put("user_id",o.getUserId());

            form2.put("password",service.encryption(password));

            service.update(query, service.readConfig(request), form2);

            return success(1);

        }

        return error(70000,"用户不存在");

    }

修改密码代码如下:

 /**

     * 修改密码

     * @param data

     * @param request

     * @return

     */

    @PostMapping("change_password")

    public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){

        // 根据Token获取UserId

        String token = request.getHeader("x-auth-token");

        Integer userId = tokenGetUserId(token);

        // 根据UserId和旧密码获取用户

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

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

        query.put("user_id" ,String.valueOf(userId));

        query.put("password" ,service.encryption(o_password));

        int count = service.selectBaseCount(service.count(query, service.readConfig(request)));

        if(count > 0){

            // 修改密码

            Map<String,Object> form = new HashMap<>();

            form.put("password",service.encryption(data.get("password")));

            service.update(query,service.readConfig(request),form);

            return success(1);

        }

        return error(10000,"密码修改失败!");

    }

增删查改代码如下:

 @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);

 }

 @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());

    }

    @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);

    }

图片/文件/视频等的上传方法通过MultipartFile,代码如下:

   @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, "上传失败");

    }

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐