关于小旭:

同学们,你们好!我从事计算机毕业设计服务已经有4年的时间了,在这个过程中,我帮助了许多学生顺利完成了他们的毕业设计。我熟练掌握多种计算机开发技术,包括Java、SSM、SpringBoot、Python、微信小程序、安卓APP等,能够为同学们的毕业设计提供全方位的技术支持。同时,我还提供远程部署安装服务确保项目能够稳定运行。

👇👇以下毕设均可提供远程部署安装服务,文末有微信联系方式有需要的可以添加👇👇

❤️❤️同学们在毕业设计选题、项目开发以及论文编写过程中遇到的任何问题,都可以随时留言咨询,我将尽力为大家提供帮助,希望能够助力更多同学顺利完成毕业设计。❤️❤️

摘    要

随着人们生活水平的提高和环境意识的增强,家庭绿植养护逐渐成为一种流行的生活方式。绿植不仅能美化家庭环境,还能净化空气,提升居住质量。然而,对于许多家庭用户而言,如何科学地养护绿植是一个难题。为了解决这一问题,本课题设计并实现了一款基于Spring Boot的家庭绿植养护系统。

系统的核心功能包括养护知识库、绿植识别功能和社区互动模块。养护知识库通过详细的植物养护指南、养护技巧和常见问题解答,为用户提供全面的绿植养护知识。绿植识别功能利用图像识别技术,允许用户通过拍摄植物图片来识别植物种类。社区互动模块则为用户提供了一个交流平台,用户可以在平台上分享养植心得,交流绿植经验,增加了社区的互动性和参与感。该系统基于Spring Boot框架进行开发,采用Vue框架作为前端技术,实现了前后端分离的架构设计。MySQL数据库用于存储植物信息、用户数据和社区互动内容,MyBatis Plus则简化了数据库操作,提高了开发效率。

本课题的意义在于通过技术手段帮助用户更好地养护家庭绿植,提升了人们的绿色生活品质。系统提供的植物养护知识和智能识别功能有效解决了绿植养护中遇到的难题,促进了绿色环保理念的普及。

关键词:家庭绿植养护;植物识别;养护交流;养护技巧;植物养护指南

1  相关技术介绍

1.1开发框架

Spring Boot是一个用于简化Spring框架配置和开发的开源框架,旨在加速Java应用程序的开发过程。它通过默认配置和自动化配置,避免了复杂的XML配置和大量的手动设置,从而大大减少了开发时间[1]。Spring Boot提供了一整套的开发工具,支持快速搭建基于Spring的应用程序,同时无需复杂的配置,使开发者可以专注于业务逻辑的实现。其核心特性包括嵌入式Web服务器(如Tomcat、Jetty)、无XML配置、自动化配置等。Spring Boot的集成开发环境(IDE)如SpringToolSuite(STS)使得开发更加便捷,并提供了丰富的开箱即用的功能,如健康检查、度量、外部化配置等。Spring Boot广泛用于Web应用、微服务和企业级应用的开发,尤其在构建可扩展、易于部署的系统时表现出色[2]。

Vue.js是一个渐进式的前端框架,旨在通过简洁的API和灵活的设计理念来构建用户界面。与传统的前端框架不同,Vue.js采用自底向上的开发方式,允许开发者逐步地将Vue集成到现有项目中,而不需要重构整个系统[3]。Vue.js的核心特点包括响应式数据绑定、组件化开发和虚拟DOM,极大提高了前端开发的效率。通过其组件化的结构,开发者可以将复杂的UI拆分为多个独立的模块,便于管理和维护。Vue.js具有轻量级、高效、易学易用的特点,因此被广泛应用于单页应用(SPA)和动态用户界面的开发。Vue与其他前端技术(如React和Angular)相比,提供了更简洁、直观的开发体验。

MyBatis Plus是MyBatis的增强工具库,简化了常见的数据库操作,同时保留了MyBatis的强大功能。MyBatis本身是一个优秀的持久层框架,但开发过程中会涉及到大量重复性的代码,如SQL映射、增删改查(CRUD)等操作,MyBatis Plus通过封装常用功能,提供了自动生成CRUD代码、简化查询构建器等特性,从而大大提高了开发效率[4]。MyBatis Plus提供了条件构造器、分页插件、代码生成器等功能,使得开发者可以更加专注于业务逻辑的实现,而无需编写大量重复的SQL代码。MyBatis Plus的使用简化了项目的开发难度,提升了系统的可维护性,广泛应用于Java开发中,尤其适用于大规模企业级应用和高并发系统[5]。

1.2编程语言

CSS(层叠样式表)是用于控制网页样式的标准语言,通过定义网页元素的外观样式,提升用户体验。CSS的核心作用是与HTML一起,设计页面的布局、字体、颜色、间距等视觉效果。CSS支持多种选择器,使得开发者可以精确控制页面元素的样式,而不会影响其他部分。随着响应式设计的普及,CSS3的媒体查询特性使得页面能够根据不同的设备和屏幕尺寸自动调整布局,确保在各种设备上都有良好的显示效果。CSS还提供了动画和过渡效果,使得网页更具动感和交互性[6]。

Java编程语言以其“编写一次,到处运行”的跨平台特性著称,通过Java虚拟机,Java程序可以在不同操作系统上无缝运行。Java是面向对象的编程语言,具有良好的封装、继承和多态性,适合开发复杂的企业级应用。它拥有庞大的标准库和丰富的第三方库,支持多线程编程,广泛应用于Web应用、移动应用、大型分布式系统和金融领域[7]。Java的强类型、稳定性和安全性使其在大规模、高并发的项目中占据重要位置。经过多年的发展,Java依然是全球最受欢迎的编程语言之一,拥有广泛的开发者社区和丰富的文档资源。

1.3数据库

MySQL是一个广泛使用的开源关系型数据库管理系统,广泛应用于Web开发和数据存储。作为一个关系型数据库,MySQL使用结构化查询语言(SQL)来管理数据并确保数据的完整性、稳定性和安全性。MySQL支持事务处理、外键约束和多种索引类型,可以处理大量数据并支持高并发操作[8]。它采用客户端-服务器架构,允许多个用户并发访问数据库。MySQL的高效查询处理能力、可靠性和灵活性使其成为许多企业级应用、内容管理系统(CMS)以及电子商务网站的首选数据库[9]。

1.4本章小结

本章介绍了基于Spring Boot的家庭绿植养护系统所采用的核心技术,包括Spring Boot框架用于快速构建后端服务,Vue.js实现前端交互界面,CSS用于页面样式设计,MySQL作为数据存储管理,MyBatis Plus简化数据库操作。这些技术共同作用,使得系统具备高效的数据处理能力、灵活的前端展示以及简洁的开发过程,为用户提供便捷的绿植养护解决方案。通过这些技术的整合,系统的性能、可维护性和用户体验得到有效提升。

2  需求分析

2.1可行性分析

(1)技术可行性

本系统选用Spring Boot、Vue.js、MySQL和MyBatis Plus等开源成熟技术,对硬件设备要求低,能在常见环境高效运行。其技术解决方案实用性与扩展性强,Spring Boot 简化后端开发、提高效率,Vue.js 实现良好前端交互,MySQL与MyBatis Plus保障数据存储[10]。系统用户界面简洁直观、操作流程符合习惯,功能模块贴合用户需求,能提升养护效率与管理水平,且操作简单易懂,有详细指南和提示,交互设计注重体验,可有效提升用户满意度,整体具备高度可行性。

(2)经济可行性

在经济可行性方面,本系统所采用的技术栈包括Spring Boot、Vue.js、CSS、MySQL和MyBatis Plus,这些技术均为开源免费软件,开发者无需支付许可费用,因此大大降低了开发成本[11]。开发环境方面,使用的Navicat和IDEA等工具也提供了免费的版本,可以满足基本的数据库管理和代码开发需求,因此在经济投入上具有较高的可行性。

(3)社会因素方面可行性

从法律可行性来看,本系统采用遵循开源协议的 Spring Boot、Vue.js、MySQL 和 MyBatis Plus 等开源技术,无版权纠纷,代码均为原创,杜绝抄袭盗用。同时严格依照《中华人民共和国网络安全法》等法规,加密存储传输用户数据,防范SQL注入、XSS 攻击等安全威胁,系统设计与功能符合国家政策和行业标准,如社区互动模块按互联网信息服务管理规定审核管理用户发布内容。在用户可行性方面,系统面向家庭绿植养护用户,契合日常使用习惯,不仅不会对用户内部组织管理制度造成负面影响,还能借助科学养护指导和智能化管理功能提升生活品质[12]。其界面简洁直观,操作流程贴合用户习惯,像查询养护知识、管理养护记录等操作都简便易行,无需复杂培训。而且,基于用户需求调研设计的功能,如社区互动、智能助手模块,有效提升用户满意度与接受度,利于系统广泛应用[13]。

2.2功能需求分析

本系统围绕家庭绿植养护,从用户选择植物开始,结合智能化的任务提醒、健康监测和社区互动,帮助用户科学、高效地进行日常养护。用户首先注册并登录系统,进入植物选择阶段,可以通过手动选择或图像识别获取植物信息。系统随后提供养护指导,包括植物的光照需求、浇水频率、施肥时间等,并基于植物种类和生长周期,生成每日养护任务,如浇水、施肥、修剪等。用户按照系统提示进行养护,并在系统中记录养护情况,如浇水时间、施肥量等。系统会基于这些数据进行健康监测,并结合环境因素(温湿度、光照等)进行异常分析,若植物出现问题,系统会提供预警信息和调整建议。用户还可以在社区模块交流经验、分享绿植养护心得。系统通过Spring Boot后端提供高效的数据处理,结合智能调度任务提醒,实现从植物选择到日常养护、健康监测、反馈调整,使绿植养护更加智能化、便捷化。

1.管理员功能

管理员系统:系统中的核心用户是管理员,管理员登录后,通过管理员功能来管理后台系统的各项功能如用户、绿植种类、养护知识、养护记录、绿植识别、社区互动、敏感词、系统管理、个人中心等。管理员用例图如图2.1所示

图2.1管理员用例图

(1)管理个人中心:包括管理员修改自己的用户名和密码,保障账户的安全性。

(2)管理养护知识:包括管理员对养护知识的新增、修改、删除以及查询,确保提供最新的植物养护指南。

(3)管理绿植种类:包括添加新的绿植品种、修改现有品种的信息、删除不需要的品种,并支持查询操作,以便用户获取准确的植物信息。

(4)管理系统:包含菜单列表管理、系统日志查看、轮播图的更新和智能助手的管理功能,确保平台运营的顺畅与安全。

(5)管理养护记录:包括管理员记录和管理用户的养护日志,操作记录的增删改查。

(6)管理绿植识别:包括管理员管理识别数据,确保平台提供准确的植物识别结果。

(7)管理社区互动:包括删除不当评论、查看评论内容、审核新发布的帖子,并支持查询操作。

(8)管理用户:包括对用户信息进行新增、修改、删除和查询,方便管理员维护平台的用户数据。

(9)管理敏感词:管理员可以查看和修改敏感词库,保障社区的健康互动环境。

2.用户功能

用户系统:主要功能模块有查看养护知识、参与社区互动、咨询智能助手、记录养护日志、进行绿植识别、参与社区互动、管理我的收藏、管理个人中心等。用户用例图如图2.2所示。

图2.2用户功能用例图

(1)查看个人中心:提供了修改个人信息和密码的功能,确保用户信息的私密性和安全性。

(2)查看养护知识:通过搜索植物名称查看相关的养护信息,帮助用户了解如何更好地照料植物。

(3)咨询智能助手:支持用户向智能助手提问并获取植物养护相关的建议。

(4)记录养护日志:包括用户添加新的养护日志,并查询历史记录,帮助跟踪植物的成长过程。

(5)进行绿植识别:让用户上传植物照片进行识别,获取植物名称及相关养护信息。

(6)参与社区互动:还支持用户发布新帖子和评论,方便与其他用户交流经验。

(7)管理我的收藏:包括用户通过搜索查看自己收藏的植物或知识内容,便于快速找到感兴趣的资源。

2.3系统性能需求分析

性能需求:系统应具备高效的数据处理能力,尤其是在用户数量和绿植种类逐渐增多的情况下,系统仍能保持流畅的响应速度[14]。对系统的访问响应时间应控制在合理范围内,确保用户在操作时不会出现明显的延迟,特别是在进行植物识别、健康监测和任务提醒时,要求快速准确地反馈信息[15]。

可靠性与稳定性:系统需保证高可用性,系统应支持自动恢复机制,当出现异常时能够迅速恢复,并确保用户数据的完整性和准确性[16]。

安全性需求:系统应具备严格的用户身份验证和权限管理机制。管理员和普通用户的权限应明确区分,防止未授权操作。敏感数据,如用户个人信息和养护记录,应进行加密存储,防止数据泄露[17]。

用户体验:系统应提供简洁、易用的界面,保证用户能够快速上手,尤其是对于不同技术背景的用户。

2.4本章小结

本章对家庭绿植养护系统进行了需求分析,涵盖了系统的可行性、功能需求和性能需求。从可行性角度,系统在经济上具有较低的开发和维护成本,技术上基于Spring Boot框架,具备成熟的开发环境和技术支持,操作上简便易用,符合用户需求。功能需求分析包括管理员和用户的用例图,明确了管理员对用户管理、绿植种类管理、养护知识管理等操作权限,用户则可以修改个人信息、查看养护知识、参与社区互动等。性能需求上,系统应具备良好的响应速度和稳定性,确保在高并发情况下依旧流畅运行。

3  系统设计

3.1总体设计

(1)功能模块设计

在基于Spring Boot的家庭绿植养护系统中,用户和管理员的功能结构有所区别。用户系统的功能主要集中在绿植养护的知识获取和互动交流上,包括通过养护知识模块查询和学习植物养护知识、参与社区互动发布和查看评论、利用智能助手获取养护建议、记录和查询养护日志、上传并识别绿植图片、管理收藏的内容、以及通过个人中心修改个人信息等功能。这些功能结构为用户提供了丰富的绿色植物管理和互动体验,方便更好地照料和了解植物。管理员系统则主要负责后台的管理与维护工作,功能包括对用户数据的管理、绿植种类的增删改查、养护知识和记录的管理、绿植识别结果的审核、社区互动内容的审核和管理、敏感词的监控与修改,以及系统的日志和菜单管理等。管理员通过个人中心功能可修改自己的账户信息,确保后台管理的安全性和有效性[18]。系统功能结构图如图3.1所示。

图3.1 系统功能结构图

(2)系统架构设计

本系统采用前后端分离的架构,前端使用Vue和CSS开发,能够提供良好的用户界面。用户通过前端界面进行养护知识浏览、绿植识别、社区互动等操作,前端与后端进行数据交互,提升了系统的可扩展性和可维护性。业务层主要负责处理后台信息录入、账户注册、登录注销、养护知识管理、绿植识别功能以及社区互动等,提供了良好的功能模块划分,确保系统在各个方面的高效运行。数据层采用MySQL数据库进行数据存储,使用MyBatis Plus简化数据库操作,确保高效、灵活的数据管理。为了提升系统性能,数据层还包括事务控制和缓存机制,以保障数据的一致性和响应速度。后台服务采用Spring Boot框架进行搭建,具备快速开发、自动配置等优势,同时集成MyBatis Plus,简化数据库操作,提高开发效率。开发环境中,IDEA作为主力开发工具,提供丰富的功能支持,Navicat则用于数据库的管理和操作。整体架构的设计充分考虑了系统的功能需求和性能要求,保证了系统的稳定性和扩展性。整体架构设计如图3.2所示。

图3.2家庭绿植养护系统整体架构设计

3.2详细设计

(1)养护知识

用户在养护知识页面输入植物名称进行搜索。系统接收到请求后,控制器层将请求转发给业务层。业务层调用数据访问层的查询接口,从数据库中检索相关的养护知识。查询结果返回给业务层,再由业务层传递给控制器层,最终控制器层将结果呈现给用户。养护知识时序图如图3.3所示。

图3.3养护知识时序图

(2)绿植种类管理

绿植种类管理功能允许用户新增、修改、删除和查询平台中的绿植品种。通过新增功能,用户可以将新的绿植品种添加到系统中,修改功能可更新植物的名称、类型、养护要求等信息,删除功能可以去除不再需要的品种,查询功能帮助用户快速查找并管理已有的植物种类。绿植种类管理时序图如图3.4所示。

图3.4绿植种类管理时序图

(3)绿植识别管理

管理员进入绿植识别管理功能模块,在此模块中,管理员可以对用户上传的绿植识别信息进行管理。比如新增识别信息时,管理员在系统界面录入相关识别信息,系统将信息存储到数据库,数据库返回存储结果,系统告知管理员操作是否成功;查询识别信息时,管理员输入查询条件,系统从数据库获取数据并展示给管理员。绿植识别管理时序图如图3.4所示。

图3.5绿植识别管理时序图

(4)养护记录管理

用户在养护记录页面添加或查询养护日志。控制器层接收到操作请求后,将其发送给业务层。业务层调用数据访问层的接口,执行添加或查询操作。操作结果返回给业务层,然后传递给控制器层,最后由控制器层将结果展示给用户,完成养护日志的管理。养护记录管理时序图如图3.6所示。

图3.6养护记录管理时序图

(5)智能助手

用户在智能助手页面提出养护相关的问题。控制器层接收到问题后,将其传递给业务层。业务层调用数据访问层的接口,从知识库中获取建议。获取到的建议返回给业务层,再由业务层传递给控制器层,最终控制器层将建议反馈给用户。智能助手时序图如图3.7所示。

图3.7智能助手时序图

(6)社区互动管理

用户在社区互动页面搜索感兴趣的讨论标题。控制器层接收到搜索请求后,将其发送给业务层。业务层通过数据访问层接口查询数据库中的相关讨论内容。查询结果返回给业务层,然后传递给控制器层,最后由控制器层将讨论内容展示给用户。社区互动时序图如图3.8所示。

图3.8社区互动管理时序图

3.3数据库设计

数据库的初步设计是整个系统开发过程中的关键起点,它为后续的详细设计和开发工作奠定了基础。在本项目的数据库初步设计阶段,采用了E-R图来清晰地描述数据库中的实体以及它们之间的关系。这种方法有助于直观地展示数据结构,为后续的设计决策提供了必要的参考。

家庭绿植养护系统的数据库E-R图如图3.9所示。

图3.9家庭绿植养护系统E-R图

(1)聊天智能助手表

表3.1展示了聊天智能助手表,该表记录了用户与智能助手之间的互动信息,具体包括:主键ID、创建时间、用户ID、管理员ID、提问内容、回复内容、是否回复状态、已读状态、用户头像、用户名以及内容类型。用户与智能助手之间的每一次问答都将被记录在此表中,以便后续的管理和查询。

表3.1 chat 智能助手

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

userid

bigint

用户id

4

adminid

bigint

NULL

管理员id

5

ask

longtext

NULL

提问

6

reply

longtext

NULL

回复

7

isreply

int

NULL

是否回复

8

isread

int

0

已读 未读

9

uname

varchar

(200)

NULL

用户头像

(续表3.1)

序号

列名

数据类型

长度

默认值

列说明

10

uimage

longtext

NULL

用户名

11

type

int

1

内容类型

(2)用户表  

表3.2展示了用户表,该表记录了用户的基本信息,具体包括:主键ID、创建时间、账号、密码、昵称、性别、年龄、联系方式、头像、注册时间、邮箱、密保问题、密保答案、用户状态以及密码错误次数。所有注册用户的信息均会在此表中保存,便于系统管理与用户管理。

表3.2 yonghu 用户

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

zhanghao

varchar

(200)

账号

4

mima

varchar

(200)

密码

5

nicheng

varchar

(200)

昵称

6

xingbie

varchar

(200)

NULL

性别

7

nianling

int

NULL

年龄

8

lianxifangshi

varchar

(200)

NULL

联系方式

9

touxiang

longtext

NULL

头像

10

zhuceshijian

date

NULL

注册时间

11

email

varchar

(200)

NULL

邮箱

12

pquestion

varchar

(200)

NULL

密保问题

13

panswer

varchar

(200)

NULL

密保答案

14

status

int

0

状态

15

passwordwrongnum

int

0

密码错误次数

(3)社区互动评论表

表3.3展示了社区互动评论表,该表记录了用户对社区内容的评论信息,具体包括:主键ID、创建时间、关联表ID、用户ID、头像、用户名、评论内容、回复内容、赞数、踩数、置顶状态、赞用户ID列表以及踩用户ID列表。用户的每一次评论及其互动都将被记录在此表中,便于后续的内容管理和互动分析。

表3.3 discussshequhudong 社区互动评论表

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

refid

bigint

关联表id

4

userid

bigint

用户id

5

avatarurl

longtext

NULL

头像

6

nickname

varchar

(200)

NULL

用户名

7

content

longtext

评论内容

8

reply

longtext

NULL

回复内容

9

thumbsupnum

int

0

10

crazilynum

int

0

11

istop

int

0

置顶

12

tuserids

longtext

NULL

赞用户ids

13

cuserids

longtext

NULL

踩用户ids

(4)邮箱验证码表  

表3.4展示了邮箱验证码表,该表记录了用户邮箱验证码的相关信息,具体包括:主键ID、创建时间、邮箱、角色以及验证码。用户在注册或找回密码时生成的邮箱验证码都会被记录在此表,以确保安全性和有效性。

表3.4 emailregistercode 邮箱验证码

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

email

varchar

(200)

邮箱

4

role

varchar

(200)

角色

5

code

varchar

(200)

验证码

(5)绿植识别表  

表3.5展示了绿植识别表,该表记录了用户提交的绿植识别信息,具体包括:主键ID、创建时间、绿植名称、图片、链接以及植物介绍、用户ID。用户对绿植的识别信息将被保存于此表,以便用户查询和共享。

表3.5 lvzhishibie 绿植识别

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

lvzhimingcheng

varchar

(200)

NULL

绿植名称

4

tupian

longtext

图片

5

lianjie

varchar

(200)

NULL

链接

6

zhiwujieshao

longtext

NULL

植物介绍

7

userid

bigint

NULL

用户id

(6)绿植种类表

表3.6展示了绿植种类表,该表记录了不同绿植种类的信息,具体包括:主键ID、创建时间和绿植种类名称。所有绿植的种类信息都将被记录在此表中,便于系统分类和管理。

表3.6 lvzhizhonglei 绿植种类

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

lvzhizhonglei

varchar

(200)

绿植种类

(7)养护知识表

表3.7展示了养护知识表,该表记录了关于植物养护的知识信息,具体包括:主键ID、创建时间、植物名称、绿植种类、图片、视频、养护教程、发布时间、最近点击时间及点击次数、收藏数。用户可以在此表中找到丰富的养护知识,以提升其绿植养护能力。

表3.7 yanghuzhishi 养护知识

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

zhiwumingcheng

varchar

(200)

植物名称

4

lvzhizhonglei

varchar

(200)

绿植种类

5

tupian

longtext

NULL

图片

(续表3.7)

序号

列名

数据类型

长度

默认值

列说明

6

shipin

longtext

NULL

视频

7

yanghujiaocheng

longtext

养护教程

8

fabushijian

date

NULL

发布时间

9

clicktime

datetime

NULL

最近点击时间

10

clicknum

int

0

点击次数

11

storeupnum

int

0

收藏数

(8)弹窗提醒表  

表3.8展示了弹窗提醒表,该表记录了用户的提醒信息,具体包括:主键ID、创建时间、发布人ID、标题、类型、简介、内容以及提醒时间。所有需要用户注意的事项都将通过此表进行管理和展示。

表3.8 popupremind 弹窗提醒

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

userid

bigint

发布人id

4

title

varchar

(200)

标题

5

type

varchar

(200)

'个人'

类型

6

brief

longtext

NULL

简介

7

content

longtext

内容

8

remindtime

datetime

NULL

提醒时间

(9)敏感词表  

表3.9展示了敏感词表,该表记录了系统内需要过滤的敏感词信息,具体包括:主键ID、创建时间及内容。所有需被屏蔽的敏感词汇都会在此表中进行管理,以维护社区环境的健康。

表3.9 sensitivewords 敏感词

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

content

varchar

(200)

内容

(10)社区互动表

表3.10展示了社区互动表,该表记录了用户在社区内发布的互动内容,具体包括:主键ID、创建时间、标题、图片、账号、内容、发布时间、审核状态、审核回复、赞数、踩数及评论数。社区中的每一条互动信息都将被记录在此表中,以进行管理和分析。

表3.10 shequhudong 社区互动

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

biaoti

varchar

(200)

标题

4

tupian

longtext

NULL

图片

5

zhanghao

varchar

(200)

NULL

账号

6

neirong

longtext

内容

7

fabushijian

datetime

NULL

发布时间

8

sfsh

varchar

(200)

'待审核'

是否审核

9

shhf

longtext

NULL

审核回复

10

thumbsupnum

int

0

赞数

11

crazilynum

int

0

踩数

12

discussnum

int

0

评论数

(11)收藏表

表3.11展示了收藏表,该表记录了用户对特定内容的收藏信息,具体包括:主键ID、创建时间、用户ID、商品ID、表名、名称、图片、类型、推荐类型和备注。用户的每一次收藏行为都会在此表中保存,以便于后续查询和管理。

表3.11 storeup 收藏表

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

userid

bigint

用户id

4

refid

bigint

NULL

商品id

5

tablename

varchar

(200)

NULL

表名

(续表3.11)

序号

列名

数据类型

长度

默认值

列说明

6

name

varchar

(200)

名称

7

picture

longtext

NULL

图片

8

type

varchar

(200)

'1'

类型

9

inteltype

varchar

(200)

NULL

推荐类型

10

remark

varchar

(200)

NULL

备注

(12)养护记录表

表3.12展示了养护记录表,该表记录了用户对绿植养护的详细记录,具体包括:主键ID、创建时间、绿植名称、绿植种类、绿植图片、账号、生长状态、养护记录及养护日期。用户的养护历史将被保存于此表中,方便用户回顾和管理。

表3.12 yanghujilu 养护记录

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

addtime

timestamp

创建时间

3

lvzhimingcheng

varchar

(200)

绿植种类

4

lvzhizhonglei

varchar

(200)

绿植种类

5

lvzhitupian

longtext

NULL

绿植图片

6

zhanghao

varchar

(200)

NULL

账号

7

shengzhangzhuangtai

varchar

(200)

NULL

生长状态

8

yanghujilu

longtext

NULL

养护记录

9

yanghuriqi

date

NULL

养护日期

(13)管理员表

表3.13展示了管理员表,该表记录了系统管理员的基本信息,具体包括:主键ID、用户名、密码、头像、角色及新增。

表3.13 users 管理员表

序号

列名

数据类型

长度

默认值

列说明

1

id

bigint

主键

2

username

varchar

(100)

用户名

3

password

varchar

(100)

密码

(续表3.13)

序号

列名

数据类型

长度

默认值

列说明

4

image

varchar

(200)

NULL

头像

5

role

varchar

(100)

'管理员'

角色

6

addtime

timestamp

新增时间

3.4本章小结

本章对家庭绿植养护系统进行了详细的设计,包括系统总体设计、核心功能设计和数据库设计。在系统总体设计中,明确了功能结构,划分了用户系统与管理员系统的不同模块,确保功能清晰、操作简便;同时,采用了Spring Boot框架,实现前后端分离的架构,确保系统的高效和稳定。核心功能设计涵盖了用户的养护知识查询、绿植识别、社区互动等模块,以及管理员的绿植种类管理、养护记录管理等操作。数据库设计方面,通过合理的表结构设计,确保了数据的高效存储与访问,支持系统高并发和数据一致性要求。整体设计为系统的实现奠定了坚实的基础。

4  系统实现

4.1用户系统功能模块

4.1.1养护知识

用户在养护知识页面,可以通过搜索植物名称查看相关的养护知识,帮助自己更好地了解不同植物的照料方法,确保植物健康生长。养护知识页面如图4.1所示。

图4.1养护知识页面

核心代码如下:

@IgnoreAuth

@RequestMapping("/list")

public R list(@RequestParam Map<String, Object> params, YanghuzhishiEntity yanghuzhishi, HttpServletRequest request) {

    // 创建EntityWrapper用于封装查询条件

    EntityWrapper<YanghuzhishiEntity> ew = new EntityWrapper<>();

    // 根据传入的实体类属性动态构建查询条件

    ew = MPUtil.likeOrEq(ew, yanghuzhishi);

    // 处理分页参数,确保分页查询的正确性

    PageUtils page = yanghuzhishiService.queryPage(params, MPUtil.sort(MPUtil.between(ew, params), params));

    // 初始化脱敏处理的Map

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

    // 对查询结果进行脱敏处理,保护敏感信息

    DeSensUtil.desensitize(page, deSens);

    // 检查分页结果是否为空,避免返回空指针异常

    if (page == null) {

        return R.error("未找到相关养护知识");

    }

    // 检查分页结果中的数据是否为空,提供更详细的提示信息

    if (page.getList() == null || page.getList().isEmpty()) {

        return R.error("未找到相关养护知识");

    }

    // 返回成功响应,并附带分页数据

    return R.ok().put("data", page);

}

4.1.2社区互动

用户在社区互动页面,可以通过搜索标题查找并浏览与自己兴趣相关的讨论内容,参与互动,分享经验或提出问题,增强社区交流。社区互动页面如图4.2所示。

图4.2社区互动页面

核心代码如下:

@IgnoreAuth

@RequestMapping("/detail/{id}")

public R detail(@PathVariable("id") Long id) {

    // 检查ID是否为空

    if (id == null || id <= 0) {

        return R.error("无效的ID");

    }

    // 查询社区互动信息

    ShequhudongEntity shequhudong = shequhudongService.selectById(id);

    // 检查查询结果是否为空

    if (shequhudong == null) {

        return R.error("未找到相关社区互动信息");

    }

    // 初始化脱敏处理的Map

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

    // 对查询结果进行脱敏处理

    DeSensUtil.desensitize(shequhudong, deSens);

    // 记录日志

    log.info("查询社区互动信息成功,ID: {}", id);

    // 返回成功响应,并附带查询结果

    return R.ok().put("data", shequhudong);

}

4.1.3智能助手

用户在智能助手页面,可以向智能助手提问,获取植物养护方面的建议,解决自己在绿植养护过程中的疑惑,提供快速的帮助。智能助手页面如图4.3所示。

图4.3智能助手页面

核心代码如下:

@SysLog("新增智能助手")

@RequestMapping("/add")

public R add(@RequestBody ChatEntity chat, HttpServletRequest request) {

    // 校验用户是否登录

    if (request.getSession().getAttribute("userId") == null) {

        return R.error("用户未登录");

    }

    // 设置用户ID

    chat.setUserid((Long) request.getSession().getAttribute("userId"));

    // 校验问题内容是否为空

    if (StringUtils.isBlank(chat.getAsk())) {

        return R.error("问题内容不能为空");

    }

    // 标记为未回复状态

    chatService.updateForSet("isreply=0", new EntityWrapper<ChatEntity>().eq("userid", chat.getUserid()));

    chat.setIsreply(1);

    // 如果有回复内容,设置管理员ID

    if (StringUtils.isNotBlank(chat.getReply())) {

        chat.setAdminid((Long) request.getSession().getAttribute("userId"));

    }

    // 插入数据

    try {

        chatService.insert(chat);

    } catch (Exception e) {

        log.error("新增智能助手失败,错误信息: {}", e.getMessage());

        return R.error("系统异常,新增失败");

    }

    // 记录日志

    log.info("新增智能助手成功,问题ID: {}", chat.getId());

    // 返回成功响应

    return R.ok().put("data", chat.getId());

}

4.1.4养护记录

用户在养护记录页面,可以添加自己的绿植养护日志,并查询历史记录,方便跟踪自己养护的进展和植物的成长状态。养护记录页面如图4.4所示。

图4.4养护记录页面

核心代码如下:

@RequestMapping("/list")

public R list(@RequestParam Map<String, Object> params, YanghujiluEntity yanghujilu,

              @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date yanghuriqistart,

              @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date yanghuriqiend,

              HttpServletRequest request) {

    // 创建EntityWrapper用于封装查询条件

    EntityWrapper<YanghujiluEntity> ew = new EntityWrapper<>();

    // 添加日期范围条件

    if (yanghuriqistart != null) {

        ew.ge("yanghuriqi", yanghuriqistart);

    if (yanghuriqiend != null) {

        ew.le("yanghuriqi", yanghuriqiend);

    // 动态构建其他查询条件

    ew = MPUtil.likeOrEq(ew, yanghujilu);

    try {

        // 查询分页数据

        PageUtils page = yanghujiluService.queryPage(params, MPUtil.sort(MPUtil.between(ew, params), params));

        // 初始化脱敏处理的Map

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

        // 对查询结果进行脱敏处理

}

4.1.5绿植识别

用户在绿植识别页面,可以上传植物照片进行识别,查询植物的名称和相关养护信息,帮助自己识别和照顾各种植物。绿植识别页面如图4.5所示。

图4.5绿植识别页面

核心代码如下:

@IgnoreAuth

@RequestMapping("/detail/{id}")

public R detail(@PathVariable("id") Long id) {

    // 检查ID是否为空或无效

    if (id == null || id <= 0) {

        log.warn("无效的ID: {}", id);

        return R.error("无效的ID");

    }

    try {

        // 查询绿植识别信息

        LvzhishibieEntity lvzhishibie = lvzhishibieService.selectById(id);

        // 检查查询结果是否为空

        if (lvzhishibie == null) {

            log.warn("未找到ID为{}的绿植识别信息", id);

            return R.error("未找到相关绿植识别信息");

        // 初始化脱敏处理的Map

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

        // 对查询结果进行脱敏处理

        DeSensUtil.desensitize(lvzhishibie, deSens);

        // 记录日志

        log.info("查询绿植识别信息成功,ID: {}", id);

        // 返回成功响应

        return R.ok().put("data", lvzhishibie);

    } catch (Exception e) {

        // 记录异常日志

        log.error("查询绿植识别信息失败,ID: {}, 错误信息: {}", id, e.getMessage());

        return R.error("查询失败,请稍后重试");

    }

}

4.2管理员系统功能模块

4.2.1用户管理

管理员在用户管理页面可以对系统中的所有用户进行操作,支持新增、修改、删除用户信息,并可查询现有用户的详细资料。管理员可以对不活跃或违规的用户进行删除,修改用户的权限或信息,以确保平台的用户管理合理有序。通过查询功能,管理员还可以方便地查找特定用户。用户管理页面如图4.6所示。

图4.6用户管理页面

核心代码如下:

@RequestMapping("/page")

public R page(@RequestParam Map<String, Object> params,YonghuEntity yonghu,

HttpServletRequest request){

EntityWrapper<YonghuEntity> ew = new EntityWrapper<YonghuEntity>();

PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonghu), params), params));

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

      DeSensUtil.desensitize(page,deSens);

      return R.ok().put("data", page);

  }

4.2.2绿植种类管理

在绿植种类管理页面,管理员可以新增绿植品种,修改已有品种的详细信息,或删除不再需要的品种。同时,管理员可根据需求查询不同的绿植种类,确保平台上的植物信息始终保持最新并满足用户的需求。查询功能也帮助管理员快速找到相关品种进行管理。绿植种类管理页面如图4.7所示。

图4.7绿植种类管理页面

核心代码如下:

@RequestMapping("/page")

public R page(@RequestParam Map<String, Object> params, YonghuEntity yonghu, HttpServletRequest request) {

    // 创建EntityWrapper用于封装查询条件

    EntityWrapper<YonghuEntity> ew = new EntityWrapper<>();

    // 动态构建查询条件

    ew = MPUtil.likeOrEq(ew, yonghu);

    try {

        // 查询分页数据

        PageUtils page = yonghuService.queryPage(params, MPUtil.sort(MPUtil.between(ew, params), params));

        // 检查分页结果是否为空

        if (page == null || page.getList() == null || page.getList().isEmpty()) {

            log.warn("未找到符合查询条件的用户信息");

            return R.error("未找到符合查询条件的用户信息");

        // 初始化脱敏处理的Map

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

        // 对查询结果进行脱敏处理

        DeSensUtil.desensitize(page, deSens);

        // 记录日志

        log.info("用户分页查询成功,查询参数: {}", params);

        // 返回成功响应

        log.error("用户分页查询失败,错误信息: {}", e.getMessage());

        return R.error("查询失败,请稍后重试");

    }

}

4.2.3养护知识管理

在养护知识管理页面,管理员可以新增、修改、删除养护知识文章,并可查询已有的知识内容。管理员可根据用户反馈或平台更新需要,调整现有养护内容,确保为用户提供最新的养护建议和技巧。查询功能帮助管理员快速找到需要更新或删除的知识文章。养护知识管理页面如图4.8所示。

图4.8养护知识管理页面

核心代码如下:

```java

// 引入日志记录器

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

// 引入工具类判断对象是否为空

import org.springframework.util.ObjectUtils;

@RequestMapping("/query")

public R query(YanghuzhishiEntity yanghuzhishi){

    // 获取日志记录器实例

    Logger logger = LoggerFactory.getLogger(this.getClass());

    // 记录查询养护知识的开始日志

    logger.info("开始查询养护知识,查询条件: {}", yanghuzhishi);

    EntityWrapper<YanghuzhishiEntity> ew = new EntityWrapper<>();

    ew.allEq(MPUtil.allEQMapPre(yanghuzhishi, "yanghuzhishi"));

    YanghuzhishiView yanghuzhishiView = yanghuzhishiService.selectView(ew);

    if (ObjectUtils.isEmpty(yanghuzhishiView)) {

        // 记录未查询到养护知识的日志

        logger.warn("未查询到符合条件的养护知识,查询条件: {}", yanghuzhishi);

        return R.error("未查询到相关养护知识");

}

4.2.4养护记录管理

在养护记录管理页面,管理员可以查看和修改用户的养护记录,支持新增、删除和查询功能。管理员可以对不完整或错误的养护记录进行修正。查询功能帮助管理员快速找到某个用户的养护历史。养护记录管理页面如图4.9所示。

图4.9养护记录管理页面

核心代码如下:

@RestController

@RequestMapping("/save")

public class YanghujiluSaveController {

    private static final Logger logger = LoggerFactory.getLogger(YanghujiluSaveController.class);

    @RequestMapping

    @SysLog("新增养护记录")

    public R save(@RequestBody YanghujiluEntity yanghujilu, HttpServletRequest request) {

        // 记录开始保存养护记录的日志

        logger.info("开始新增养护记录,养护记录信息: {}", yanghujilu);

        // 设置创建时间

        yanghujilu.setAddtime(new Date());

        // 获取当前登录用户信息(假设可通过request获取)

        Long userId = (Long) request.getSession().getAttribute("userId");

        if (userId != null) {

            yanghujilu.setUserid(userId);

        // 数据校验(假设ValidatorUtils.validateEntity已正确导入)

        //ValidatorUtils.validateEntity(yanghujilu);

            yanghujiluService.insert(yanghujilu);

            // 记录新增养护记录成功的日志

            logger.info("新增养护记录成功,养护记录ID: {}", yanghujilu.getId());

            return R.ok();

        } catch (Exception e) {

            // 记录新增养护记录失败的日志

            logger.error("新增养护记录失败", e);

            return R.error("新增养护记录失败,请稍后重试");

}

4.2.5绿植识别管理

在绿植识别管理页面,管理员可对用户上传的植物识别信息进行管理。可以新增、修改或删除植物识别记录,确保平台的识别结果正确有效。管理员还可查询用户提交的识别信息,及时更新系统,提供准确的识别服务。绿植识别管理页面如图4.10所示

图4.10绿植识别管理页面

核心代码如下:

 @RequestMapping("/page")

  public R page(@RequestParam Map<String, Object> params,LvzhishibieEntity lvzhishibie,

HttpServletRequest request){

      if(!request.getSession().getAttribute("role").toString().equals("管理员")) {

lvzhishibie.setUserid((Long)request.getSession().getAttribute("userId"));

      }

EntityWrapper<LvzhishibieEntity> ew = new EntityWrapper<LvzhishibieEntity>();

PageUtils page = lvzhishibieService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, lvzhishibie), params), params));

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

      DeSensUtil.desensitize(page,deSens);

      return R.ok().put("data", page);

  }

4.2.6社区互动管理

在社区互动管理页面,管理员可以查看、删除评论,审核并管理用户发布的帖子,确保社区内容符合规定并保持健康的互动氛围。管理员还可以查询社区互动内容,及时处理不当或违规的言论,确保社区的良好秩序。社区互动管理页面如图4.11所示。

图4.11社区互动管理页面

核心代码如下:

@RequestMapping("/shBatch")

public class CommunityInteractionAuditController {

    private static final Logger logger = LoggerFactory.getLogger(CommunityInteractionAuditController.class);

    @RequestMapping

    @Transactional

    @SysLog("审核社区互动")

    public R update(@RequestBody Long[] ids, @RequestParam String sfsh, @RequestParam String shhf) {

        logger.info("开始审核社区互动,待审核的帖子ID数量: {}", ids.length);

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

            logger.warn("未接收到有效的帖子ID,无法进行审核");

            return R.error("未接收到有效的帖子ID,无法进行审核");

        List<ShequhudongEntity> list = new ArrayList<>();

        for (Long id : ids) {

            ShequhudongEntity shequhudong = shequhudongService.selectById(id);

            if (shequhudong == null) {

                logger.warn("ID为{}的帖子不存在,无法进行审核", id);

            shequhudongService.updateBatchById(list);

            logger.info("社区互动审核成功,审核的帖子数量: {}", list.size());

            return R.ok();

        } catch (Exception e) {

            logger.error("社区互动审核失败", e);

}

4.3本章小结

本章介绍了基于Spring Boot的家庭绿植养护系统的设计与实现,包括用户系统和管理员系统的功能模块。在用户系统中,主要实现了养护知识查询、社区互动、智能助手咨询、养护记录管理和绿植识别等功能,帮助用户更好地照顾植物并与其他用户互动。管理员系统则包括用户管理、绿植种类管理、养护知识管理、养护记录管理、绿植识别管理及社区互动管理等功能,确保后台数据的有效管理与更新,保障平台的稳定运行。整体系统通过前后端分离的架构,结合数据库设计,实现了高效、灵活的功能布局。

5系统测试

5.1测试方案

本系统黑盒测试旨在验证家庭绿植养护系统功能的完整性与正确性,重点关注系统在不同操作场景下的输出是否符合预期[19]。针对用户端,模拟用户注册登录,测试不同账号密码组合,如为空、格式错误或正确输入时系统的响应;在养护知识模块输入多种植物名称,检查能否获取准确信息;在社区互动板块发布、评论帖子,检验互动功能;向智能助手提出各类养护问题,看回复是否合理。对于管理员端,模拟登录后执行各类管理操作,如新增、修改、删除用户信息,添加、调整、删除绿植种类,管理养护知识、记录、识别信息及社区互动内容等,查看数据变化和操作提示是否准确。此外,还将在Google、Edge、Firefox、搜狗等主流浏览器上进行兼容性测试,确保系统页面显示正常、功能操作流畅,为用户提供稳定的使用体验[20]。

5.2功能测试

该测试聚焦于管理员对养护知识信息的管理功能。通过添加新养护知识信息,检验系统能否成功添加并在列表中正确显示;删除养护知识信息的测试,则验证系统是否能准确提示删除成功并从列表移除相关信息,以此确保养护知识管理功能正常运行。如表5.1所示。

表5.1管理养护知识信息测试

测试内容

录入的数据

预期结果

实际结果

测试状态

添加新养护知识信息

职务名称:绿萝1

视频:视频1

收藏数:1558

系统显示养护知识信息添加成功的提示新的养护知识信息出现在养护知识信息列表中

系统显示养护知识信息添加成功的提示新的养护知识信息出现在养护知识信息列表中

成功

删除养护知识信息

选择要删除的养护知识信息,点击删除按钮

提示“删除成功”,并在养护知识信息列表中删除该养护知识信息

提示“删除成功”,并在养护知识信息列表中删除该养护知识信息

成功

此测试主要针对管理员管理用户信息的功能。添加新用户信息测试,旨在查看系统是否能正确处理新用户数据并在列表中展示;删除用户信息测试,用于确认系统能否按预期提示删除成功且从列表删除目标用户,保障用户信息管理的准确性。如表5.2所示。

表5.2管理用户信息测试

测试内容

录入的数据

预期结果

实际结果

测试状态

添加新用户信息

昵称:名称2

性别:男

年龄:25

系统显示用户信息添加成功的提示

新的用户信息出现在用户信息列表中

系统显示用户信息添加成功的提示

新的用户信息出现在用户信息列表中

成功

删除用户信息

选择要删除的用户信息,点击删除按钮

提示“删除成功”,并在用户信息列表中删除该用户信息

提示“删除成功”,并在用户信息列表中删除该用户信息

成功

这组测试围绕管理员对绿植识别信息的管理展开。添加新绿植识别信息的测试,检查系统添加信息的能力及列表显示情况;删除绿植识别信息测试,判断系统是否能正确删除信息并给出准确提示,保证绿植识别信息管理的可靠性。如表5.3所示。

表5.3管理绿植识别信息测试

测试内容

录入的数据

预期结果

实际结果

测试状态

添加新绿植识别信息

绿植名称:名称4

图片:图片4

系统显示绿植识别信息添加成功的提示

新的绿植识别信息出现在绿植识别信息列表中

系统显示绿植识别信息添加成功的提示

新的绿植识别信息出现在绿植识别信息列表中

成功

删除绿植识别信息

选择要删除的绿植识别信息,点击删除按钮

提示“删除成功”,并在绿植识别信息列表中删除该绿植识别信息

提示“删除成功”,并在绿植识别信息列表中删除该绿植识别信息

成功

该测试着重于管理员对社区互动信息的管理。审核互动信息测试,关注系统对审核内容的处理及用户发布信息的权限控制;删除社区互动信息测试,验证系统删除信息的功能及提示的准确性,维护社区互动环境的健康有序。如表5.4所示。

表5.4管理社区互动信息测试

测试内容

录入的数据

预期结果

实际结果

测试状态

审核互动

信息

审核内容:内容5

审核内容合法,用户可以发布社区互动的信息

审核内容合法,用户可以发布社区互动的信息

成功

删除社区互动信息

选择要删除的社区互动信息,点击删除按钮

提示“删除成功”,并在社区互动信息列表中删除该社区互动信息

提示“删除成功”,并在社区互动信息列表中删除该社区互动信息

成功

此测试针对用户登录功能。分别测试用户账号和密码为空,以及输入正确账号密码的场景,查看系统能否准确提示账号为空情况,能否让正确输入的用户顺利登录进入系统首页,确保登录功能正常。如表5.5所示。

表5.5用户登录系统测试用例

测试内容

录入的数据

预期结果

实际结果

测试状态

用户登录

用户账号:空

密码:空

提示请填写用户账号

提示请填写用户账号

成功

用户登录

用户账号:11

密码:123456

登录成功,进入系统首页

登录成功,进入系统首页

成功

这部分测试从智能助手、绿植识别、养护记录管理三个方面进行。智能助手测试不同问题类型、边界值和异常情况的处理;绿植识别针对不同图片类型、边界值图片和异常情况进行测试;养护记录管理则在添加和查询记录的边界值及异常情况下进行测试,全面检验相关功能的稳定性。如表5.6所示。

表5.6管理社区互动信息测试

测试功能

测试内容

输入数据

预期输出

实际输出

智能助手

不同问题类型测试

1. 提问:“绿萝多久浇一次水?”
2. 提问:“多肉植物怎么施肥?”

1. 返回绿萝浇水频率相关建议。
2. 返回多肉植物施肥方法相关建议。

根据实际代码执行结果填写

智能助手

边界值问题测试

提问:“ ”(空问题)

提示用户输入有效问题

根据实际代码执行结果填写

智能助手

异常情况测试

模拟知识库连接异常(如设置网络故障或数据库连接中断)

提示用户“暂时无法获取建议,请稍后重试”或类似错误信息

根据实际代码执行结果填写

绿植识别

不同图片类型测试

1.上传清晰的常见绿植图片
2.上传模糊的绿植图片
3.上传非绿植图片

1.准确识别出绿植名称及相关养护信息。
2.给出识别结果或提示图片模糊可能影响识别准确性。
3.提示无法识别或识别结果为“非绿植”等相关信息

根据实际代码执行结果填写

绿植识别

边界值图片测试

上传分辨率极低的绿植图片

给出识别结果或提示图片分辨率过低可能影响识别准确性

根据实际代码执行结果填写

绿植识别

异常情况测试

模拟图像识别算法运行时异常

提示用户“识别过程中出现错误,请稍后重试”或类似错误信息

根据实际代码执行结果填写

养护记录管理

添加记录边界值测试

1. 添加一条养护日期为系统允许最早日期的记录。
2. 添加一条养护日期为系统允许最晚日期的记录。

1.成功添加记录,系统提示添加成功,并在记录列表中显示该条记录。
2.成功添加记录,系统提示添加成功,并在记录列表中显示该条记录。

根据实际代码执行结果填写

(续表5.6)

测试功能

测试内容

输入数据

预期输出

实际输出

养护记录管理

查询记录边界值测试

1.查询最早日期的养护记录。
2.查询最晚日期的养护记录。
3.查询不存在的日期的养护记录。

1.返回最早日期的养护记录信息。
2.返回最晚日期的养护记录信息。
3.返回空记录集或提示无相关记录。

根据实际代码执行结果填写

养护记录管理

异常情况测试

模拟数据库连接异常时添加养护记录

提示用户“添加记录失败,请稍后重试”或类似错误信息

根据实际代码执行结果填写

该测试旨在检验系统在不同浏览器上的表现。在Google、Edge、Firefox和搜狗浏览器上进行测试,观察系统页面是否能正常展示,功能操作是否流畅,确保系统在主流浏览器环境下能为用户提供一致的使用体验。系统兼容性测试如表5.7所示。

表5.7系统平台兼容性测试

测试序号

测试项目

预期结果

测试结果

1

Google浏览器

系统能够在网页中正常展示

同预期结果

2

Edge浏览器

系统能够在网页中正常展示

同预期结果

3

Firefox浏览器

系统能够在网页中正常展示

同预期结果

4

搜狗浏览器

系统能够在网页中正常展示

同预期结果

5.3测试结论

从给出的测试用例及结果来看,该家庭绿植养护系统在功能实现和兼容性方面表现良好。

在功能测试上,管理员对养护知识、用户信息、绿植识别信息以及社区互动信息的管理操作均达到预期。添加和删除操作都能正确执行,提示信息准确,且相关信息能在对应列表中正确显示或删除,表明系统的后台数据管理功能稳定可靠。用户登录功能也正常,能对不同输入情况做出正确响应,无论是账号密码为空的提示,还是正确账号密码的登录操作都顺利完成。

智能助手、绿植识别和养护记录管理等功能在不同测试场景下也展现出一定的合理性。智能助手能针对不同问题类型给出相应建议,对边界值和异常情况也有合理提示;绿植识别功能对各类图片的识别处理符合预期,在边界值和异常情况下也能给出合适反馈;养护记录管理在添加和查询记录的边界值测试以及异常情况测试中,表现出较好的稳定性。系统兼容性测试方面,在Google、Edge、Firefox和搜狗浏览器上都能正常展示,说明系统在不同主流浏览器上具有较好的适应性,能为用户提供一致的使用体验。

不过,测试过程可能未覆盖所有极端情况和复杂场景,系统在面对大量并发用户或长期运行时的稳定性还需进一步检验,后续可针对这些方面进行补充测试,以进一步提升系统的质量和可靠性。

5.4本章小结

本章主要介绍了家庭绿植养护系统的测试工作,明确了测试目标与方法。测试目标旨在确保系统各项功能的正确性、稳定性和兼容性,包括用户功能、管理员功能以及系统的整体性能。测试内容包括用户管理、绿植识别、养护知识管理、社区互动等模块的功能测试,同时也进行了系统兼容性测试,确保在不同浏览器下正常运行。


结    论

本课题围绕家庭绿植养护需求,基于Spring Boot框架成功设计并实现了一套多功能养护系统,有效解决了用户在绿植养护过程中面临的诸多难题。

系统整合了养护知识查询、社区互动、智能助手咨询、养护记录管理及绿植识别等核心功能。养护知识库涵盖丰富植物养护指南、技巧与常见问题解答,为用户提供全面知识支持;绿植识别功能借助图像识别技术,方便用户识别植物种类并获取养护信息;社区互动模块搭建起用户交流平台,促进经验分享与互动。这些功能协同运作,满足了用户从知识获取到实践操作再到社交互动的多元需求,显著提升了用户的绿植养护体验与效率。从技术层面看,系统采用Spring Boot框架结合Vue前端技术,实现前后端分离架构,搭配MySQL数据库与MyBatis Plus简化数据操作。这种技术选型不仅提升了开发效率,还确保了系统具备高效的数据处理能力、良好的稳定性和可扩展性。

然而,系统仍存在优化空间。在个性化服务方面,目前虽能满足基本功能需求,但基于用户养护记录和偏好的智能推荐功能有待完善,以提供更精准、个性化的养护建议。

总体而言,本系统为家庭绿植养护提供了创新解决方案,未来持续优化将使其更好地服务用户,助力绿色生活品质提升。

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐