springboot世界舰艇百科系统-计算机毕业设计源码61746
世界舰艇百科系统是一款基于Spring Boot框架构建的舰艇信息管理平台,主要为为用户提供全面、准确的舰艇知识查询与管理功能。
系统主要分为两大角色:管理员与注册用户。管理员负责系统的日常维护,包括舰艇类型、信息管理、积分管理等多项功能,并具备处理用户反馈、公告发布、商城管理等权限;而注册用户则可以浏览各类舰艇信息、参与积分商城、提交反馈意见、收藏和评论舰艇等。此外,系统提供了完善的资源管理功能,支持新闻资讯和公告的发布与分类管理。系统采用Spring Boot技术架构,确保了平台的高效性与可扩展性,通过模块化设计,使得各项功能的管理更加清晰简便。系统还引入了积分奖励机制,鼓励用户参与互动与贡献,为舰艇百科系统的长期发展奠定了基础。
关键词:世界舰艇百科;Spring Boot;信息管理;积分商城;用户反馈
Abstract
The World Ship Encyclopedia System is a ship information management platform built on the Spring Boot framework, mainly providing users with comprehensive and accurate ship knowledge query and management functions.
The system is mainly divided into two roles: administrator and registered user. Administrators are responsible for the daily maintenance of the system, including ship types, information management, points management, and other functions, and have the authority to handle user feedback, publish announcements, and manage the mall; Registered users can browse various types of ship information, participate in the points mall, submit feedback, bookmark and comment on ships, etc. In addition, the system provides comprehensive resource management functions, supporting the publication and classification management of news information and announcements. The system adopts Spring Boot technology architecture, ensuring the efficiency and scalability of the platform. Through modular design, the management of various functions is clearer and easier. The system also introduced a point reward mechanism to encourage users to participate in interaction and contribute, laying the foundation for the long-term development of the ship encyclopedia system.
Keywords:World Ship Encyclopedia; Spring Boot; Information management; Points Mall; user feedback
目 录
1 前 言
1.1研究背景
舰艇作为海上军事力量的重要支撑,长期以来在全球各国海军发展中占据着重要地位。随着海军技术的不断进步和舰艇种类的不断增多,全球范围内对于舰艇信息的需求日益增长。现有的舰艇数据管理系统大多存在信息更新滞后、查询不便、功能单一等问题,难以满足用户对高效、精准、多元化舰艇信息服务的需求。特别是在舰艇的技术规格、历史背景、作战性能等方面,现有平台常常无法提供详细而权威的数据,这使得用户在进行舰艇信息查询时往往面临较大的困难[1]。
在此背景下,构建一款全面、精准的舰艇百科系统成为了解决这一问题的重要途径。该系统不仅应具备对各类舰艇信息的高效管理与展示能力,还需要能够适应不同用户群体的需求。军事人员、科研人员以及舰艇爱好者对舰艇数据有着不同的使用场景与需求,因此,系统需要提供强大的数据查询与管理功能,并具备灵活的用户交互机制。
利用Spring Boot框架构建的舰艇百科系统能够高效地处理海量舰艇数据,提供快速查询、实时更新及详细的舰艇信息展示。系统不仅具有管理员的全方位管理功能,还支持用户收藏、评论、反馈等互动机制,满足了用户对舰艇信息的多层次需求。随着海军技术的发展,舰艇信息不断更新,系统将能持续提供最新的、权威的舰艇数据,帮助用户随时了解和掌握舰艇相关知识[2]。
1.2研究意义
舰艇作为海上作战力量的重要组成部分,其技术进步和战术应用直接影响着全球军事格局。随着各国海军舰艇数量的增加及其技术日益复杂化,对舰艇相关信息的管理和查询变得愈加重要。当前,舰艇信息散布在各类资料和平台中,缺乏系统化的整合和更新,导致用户在获取信息时面临困难。建立一个高效、便捷的舰艇百科系统,能够有效解决信息碎片化、更新滞后等问题,为用户提供准确、全面的舰艇数据。
世界舰艇百科系统的研究不仅填补了现有舰艇信息平台的空白,还对提高舰艇数据的管理效率和用户体验具有重要意义。通过集中展示舰艇的各类信息,包括技术参数、作战能力、历史背景等,系统能够帮助军事人员、科研人员及舰艇爱好者更好地了解舰艇的各项特性,为相关决策提供数据支持。特别是在军事研究和国际海军交流中,精准、详细的舰艇数据能够为学术研究和实践操作提供可靠的依据[3]。
舰艇百科系统还通过积分机制和用户互动功能,激发用户参与热情,进一步推动了信息共享和知识传播。系统的设计使得用户不仅可以查看舰艇数据,还能通过评论、反馈等形式与平台进行互动,提升了平台的活跃度与用户黏性。随着技术的发展和信息需求的不断变化,舰艇百科系统将持续发挥其在军事信息管理中的重要作用,助力相关领域的研究与实践。
1.3国内外研究现状
舰艇百科系统作为一种专门针对海军舰艇信息进行集中管理与查询的平台,在国内外的军事领域和航海研究中已有一定的应用。国内外研究主要集中在舰艇信息的结构化管理、数据共享与查询、以及用户交互设计等方面。随着信息技术的快速发展,许多国家已开始构建以舰艇为核心的军事信息库,帮助海军部门、军事院校及研究机构进行舰艇数据的存储与检索。
在国外,许多海军强国早已实现了舰艇数据的数字化管理。例如,美国、英国、俄罗斯等国的军事机构均有类似的舰艇百科平台,这些平台不仅提供舰艇的基本信息,如类型、用途、服役情况等,还结合多媒体技术展示舰艇的外观、作战系统等细节。此外,这些系统还通过多种方式优化用户体验,如通过直观的界面、便捷的查询工具和丰富的图文资料,帮助用户快速获取所需信息[4]。
国内的舰艇百科系统起步较晚,但随着军事信息化建设的推进,相关研究也逐渐取得进展。我国的一些军事院校和科研机构开始致力于舰艇信息管理系统的研究,重点在于舰艇信息的数字化、可视化和多维度展示。通过构建集成化的舰艇信息平台,国内的相关系统能够有效支持舰艇信息的查询、更新与管理,提升了军事人员对舰艇的认知与应用。
尽管国内外在舰艇百科系统的研究方面已经取得了一定的成果,但仍然存在一些技术与应用方面的问题。例如,如何更高效地管理海量的舰艇数据,如何更智能地推荐与展示相关信息,以及如何保证数据的实时更新和准确性,仍然是当前研究中的难点。此外,在系统的用户交互和界面设计方面,还需要更多的创新与优化,以提升用户的操作体验。
总的来说,国内外在舰艇百科系统的研究上都已取得初步的成果,并在实际应用中发挥了重要作用。然而,随着信息技术的不断进步,未来的研究仍需在系统性能、数据管理、用户体验等方面进行深入探索,以进一步提升系统的功能和服务质量。
1.4开发技术简介
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统[5]。在世界舰艇百科系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率[6]。
B/S模式(Browser/Server模式)是一种网络应用架构,其中浏览器(Browser)作为客户端与服务器(Server)进行通信[7] 。这种模式使用户可以通过普通的Web浏览器访问应用程序,而无需安装额外的客户端软件。用户通过浏览器发送请求,服务器接收并处理这些请求,然后将结果返回给浏览器显示给用户。在世界舰艇百科系统中,Spring Boot结合B/S模式的优势包括跨平台的兼容性,用户可以在不同操作系统和设备上访问应用程序 。维护和部署也更为简便,并且能够实现较高的安全性,因为服务器端控制了应用程序和数据的访问权限[8]。
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程 [9]。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序。拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在世界舰艇百科系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理[10]。
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在世界舰艇百科系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,保证数据的安全性[11]。
本文共分为七章,章节内容安排如下:
第一章:前言,主要介绍世界舰艇百科系统领域研究的背景和意义,概述研究的现状。
第二章:关键技术,主要探讨和说明实现世界舰艇百科系统的关键技术。
第三章:系统分析,主要从世界舰艇百科系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对世界舰艇百科系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了世界舰艇百科系统各个用户的功能、系统界面的实现。
第六章:系统测试,主要对世界舰艇百科系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章:结束语。总结全文研究内容,提出对世界舰艇百科系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2 系统分析
2.1可行性分析
2.1.1技术可行性
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。
2.1.2经济可行性
从经济角度来看,基于Spring Boot搭建世界舰艇百科系统的投入成本相对较低,因为Spring Boot本身是一个免费、开源的框架,可以节省开发成本。使用MySQL作为数据库也具有成本效益高的优势。因此,本系统具有经济可行性。
2.1.3操作可行性
从操作角度来看,Spring Boot的简洁性和高度集成的特点使得系统的部署和运行相对简单,容易维护和管理的同时,能够提供一个界面直观友好和操作简单高效的系统,能满足用户的各项要求,方便用户快速上手使用。因此,本系统具有操作可行性。
2.1.4法律可行性
世界舰艇百科系统的建设符合相关法律法规要求,特别是在数据保护和知识产权方面。系统中的舰艇数据将确保来源合法,避免侵犯他人版权或专利,同时严格遵守信息安全管理规定,确保用户隐私和数据安全。此外,平台将依照各国法律处理用户反馈、评论及积分兑换等操作,避免任何不当使用。通过合法授权和合规运营,系统能够在保障用户权益的同时,有效推动舰艇信息的共享与传播。
综合来看,世界舰艇百科系统在经济、技术、操作、法律等方面都具有较高的可行性,能够为用户提供便捷的服务。
2.2功能需求分析
本世界舰艇百科系统设计分为两个主要用户角色:注册用户和管理员。以下是对每个角色的功能需求的详细描述。
- 注册用户功能模块
首页:查看系统最新动态、新闻资讯和舰艇信息。
网站公告:查看系统发布的重要公告,了解更新和变动信息。
新闻资讯:浏览与舰艇相关的最新新闻和行业资讯,保持信息更新。
反馈意见:用户可以提交意见或建议,帮助改进系统。
舰艇信息:浏览各种舰艇的详细信息,包括各类型舰艇的性能、历史等。
我的舰艇:查看和管理自己收藏的舰艇信息。
积分商城:浏览积分商城中的商品,使用积分进行兑换。
我的账户:管理个人账户信息,包括修改密码、查看积分等。
个人中心:个人首页展示自己的信息、我的舰艇、反馈机制、奖励积分、兑换积分等。
个人首页:查看账户概况和重要提醒。
我的舰艇:查看自己收藏的舰艇或参与的舰艇活动。
反馈机制:查看和提交自己的反馈意见。
奖励积分:查看自己的积分奖励情况。
兑换积分:使用积累的积分进行商城兑换。
收藏:管理自己收藏的舰艇或其他项目。
评论管理:管理自己对舰艇或新闻资讯的评论。
(2)管理员功能模块
后台首页:展示系统整体的运营状态和相关数据。
系统用户:管理用户信息、权限分配等。
舰艇类型管理:对舰艇类型进行分类、编辑、删除等操作。
舰艇信息管理:管理舰艇的详细信息,包括型号、性能、历史等内容。
我的舰艇管理:管理员可以管理自己所拥有的舰艇,包括查看、编辑、删除等操作。
反馈机制管理:管理用户的反馈内容,并做出响应和处理。
奖励积分管理:设置积分奖励机制,包括积分的获得规则和发放方式。
兑换积分管理:管理积分的兑换规则,确认用户的兑换申请。
系统管理(轮播图):管理系统首页的轮播图内容,包括新增、删除或修改轮播图。
留言管理:管理网站用户留言,处理并回复留言内容。
网站公告管理:编辑并发布网站的公告,传达重要信息。
资源管理(新闻资讯、资讯分类):发布新闻资讯并对其进行分类管理,确保内容的时效性和准确性。
操作日志:记录管理员的操作行为,便于追踪管理和审计。
注册用户角色用例如图2-1所示。

图2-1注册用户用例图
管理员角色用例如2-2所示。

图2-2 管理人员用例图
2.3系统非功能性需求分析
非功能性分析是系统设计的重要组成部分,其目标是保证系统在各种负载条件下的高效、稳定和可靠。对于世界舰艇百科系统的设计与实现,系统非功能性需求分析表如表2-1所示。
表2-1 非功能性需求表
|
项目 |
内容 |
|
性能 |
系统应支持至少500个并发用户访问,响应时间不超过2秒 |
|
安全性 |
用户数据需加密,系统应具备防攻击机制(如SQL注入、XSS防护) |
|
可用性 |
系统年可用性应达到99.5%,保证大部分时间能够正常访问 |
|
可维护性 |
代码易于阅读与修改,文档齐全,便于后期维护和功能扩展 |
|
扩展性 |
系统架构应支持后续功能的扩展,易于添加新模块或功能 |
|
兼容性 |
系统应支持主流浏览器(如Chrome、Firefox、Safari) |
|
用户体验 |
界面友好、简洁,操作应当简便,避免用户困惑 |
2.4系统流程分析
2.4.1程序操作流程
用户访问平台网站,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录平台。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如图2-3所示。

图2-3程序操作流程图
2.4.2登录流程
用户访问平台的网站,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如图2-4所示。

图2-4 登录流程图
2.4.3注册流程
未有账号的用户可进入注册界面进行注册操作,填写注册表格,包括用户名、密码、电子邮件等必要信息。后台系统验证并保存用户提交的信息。分配唯一用户标识符。注册成功后,用户可以使用账号密码进行登录。用户注册流程图如图2-5所示。

图2-5注册流程图
3 系统设计
3.1系统架构设计
本项目采用B/S架构,遵循MVC设计思想,采用前后端分离的方式进行架构搭建。系统主要由表示层、控制层、业务逻辑层和数据层构成,系统架构如图4-1所示。

图3-1 系统整体架构图
系统使用Spring Boot与Vue框架进行搭建,架构分为视图层、控制层、业务逻辑层、数据持久层和数据库服务器。视图层利用Vue框架和Element UI界面渲染工具构建前端页面,前端页面通过HTTP协议发送请求至控制层。控制层与业务逻辑层通过Spring Boot框架搭建,控制层接收前端请求,进行解析和数据校验,将数据传递至Service层进行业务逻辑处理。业务处理完成后,通过数据持久层访问数据库服务器,执行数据库操作,最终将结果返回至控制层,并传递至前端进行页面处理。
3.2系统功能模块设计
根据系统分析,系统主要分为管理员和注册用户两大类。整个系统的功能模块设计如图3-2所示。

图3-2 系统功能模块图
3.3数据库设计
数据库设计是一种用于创建数据库结构的过程,通过需求分析确定数据类型和操作需求,并使用实体-关系图表达数据的实体、属性及其关系,形成概念模型 。在此基础上,将概念模型转化为特定数据库系统可识别的逻辑模型,确定表结构、字段、数据类型及约束关系。数据库设计通常分为概念设计、逻辑设计两个阶段。
3.3.1概念设计
概念设计作为数据库设计的关键环节,通过高层次的抽象描述系统中的数据结构和关系,明确系统的数据需求。通常采用E-R图来展现数据的实体、属性及关系,形成逻辑完整的模型,更加清晰地表达和传达设计意图。在该阶段,需要确定关键数据实体,定义属性并表达关系类型,为数据库的逻辑设计和物理设计奠定必要基础。以下是系统各个实体图和总体E-R图。
(1)管理员实体属性图如下图3-3所示

图3-3管理员实体属性图
(2) 注册用户实体属性如下图3-4所示

图3-4注册用户实体属性图
(3) 积分商城实体属性如下图3-5所示

图3-5积分商城实体属性图
(4) 我的舰艇实体属性如下图3-6所示

图3-6我的舰艇实体属性图
(5) 资讯实体属性如下图3-7所示

图3-7资讯信息实体属性图
(6)世界舰艇百科系统总E-R图如下图3-8所示

图3-8世界舰艇百科系统总E-R图
3.3.2逻辑设计
逻辑设计是数据库设计中的关键环节,主要任务是将概念设计中的抽象模型转化为数据库管理系统可识别的结构,确定表结构、字段名称、数据类型、主键和外键等要素,从而构建数据的逻辑框架。逻辑设计明确了数据的存储方式和关联规则,维持数据一致性与完整性,并提升查询与管理的效率。以下是系统的数据库表设计。
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
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 |
是 |
否 |
用户编号 |
表 3-2-article(文章)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
article_id |
mediumint |
是 |
是 |
文章id |
|
|
2 |
title |
varchar |
125 |
是 |
是 |
标题 |
|
3 |
type |
varchar |
64 |
是 |
否 |
文章分类 |
|
4 |
hits |
int |
是 |
否 |
点击数 |
|
|
5 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
6 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
7 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
8 |
source |
varchar |
255 |
否 |
否 |
来源 |
|
9 |
url |
varchar |
255 |
否 |
否 |
来源地址 |
|
10 |
tag |
varchar |
255 |
否 |
否 |
标签 |
|
11 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
12 |
img |
varchar |
255 |
否 |
否 |
封面图 |
|
13 |
description |
text |
65535 |
否 |
否 |
文章描述 |
表 3-3-article_type(文章分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_id |
smallint |
是 |
是 |
分类ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
分类名称 |
|
4 |
father_id |
smallint |
是 |
否 |
上级分类ID |
|
|
5 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
6 |
icon |
text |
65535 |
否 |
否 |
分类图标 |
|
7 |
url |
varchar |
255 |
否 |
否 |
外链地址 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-4-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 |
是 |
否 |
更新时间 |
表 3-5-bonus_points(奖励积分)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
bonus_points_id |
int |
是 |
是 |
奖励积分ID |
|
|
2 |
registered_user |
int |
否 |
否 |
注册用户 |
|
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
4 |
user_phone |
varchar |
64 |
否 |
否 |
用户电话 |
|
5 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
6 |
name_of_ship |
varchar |
64 |
否 |
否 |
舰艇名称 |
|
7 |
vessel_number |
varchar |
64 |
否 |
否 |
舰艇编号 |
|
8 |
type_of_ship |
varchar |
64 |
否 |
否 |
舰艇类型 |
|
9 |
bonus_points |
double |
否 |
否 |
奖励积分 |
|
|
10 |
reward_time |
date |
否 |
否 |
奖励时间 |
|
|
11 |
reward_remarks |
text |
65535 |
否 |
否 |
奖励备注 |
|
12 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
13 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
14 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
15 |
source_id |
int |
否 |
否 |
来源ID |
|
|
16 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 3-6-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 |
是 |
否 |
更新时间 |
表3-7-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 |
是 |
否 |
更新时间 |
表 3-8-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 |
表 3-9-feedback_mechanism(反馈机制)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
feedback_mechanism_id |
int |
是 |
是 |
反馈机制ID |
|
|
2 |
registered_user |
int |
否 |
否 |
注册用户 |
|
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
4 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
5 |
name_of_ship |
varchar |
64 |
否 |
否 |
舰艇名称 |
|
6 |
type_of_ship |
varchar |
64 |
否 |
否 |
舰艇类型 |
|
7 |
feedback_name |
varchar |
64 |
否 |
否 |
反馈名称 |
|
8 |
feedback_time |
date |
否 |
否 |
反馈时间 |
|
|
9 |
feedback_content |
text |
65535 |
否 |
否 |
反馈内容 |
|
10 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
11 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
12 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
13 |
source_id |
int |
否 |
否 |
来源ID |
|
|
14 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 3-10-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 |
表 3-11-integral_mall(积分商城)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
integral_mall_id |
int |
是 |
是 |
积分商城ID |
|
|
2 |
name_of_commodity |
varchar |
64 |
否 |
否 |
商品名称 |
|
3 |
commodity_number |
varchar |
64 |
否 |
否 |
商品编号 |
|
4 |
redeem_points |
double |
否 |
否 |
兑换积分 |
|
|
5 |
commodity_picture |
varchar |
255 |
否 |
否 |
商品图片 |
|
6 |
commodity_details |
text |
65535 |
否 |
否 |
商品详情 |
|
7 |
redemption_rules |
text |
65535 |
否 |
否 |
兑换规则 |
|
8 |
hits |
int |
是 |
否 |
点击数 |
|
|
9 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
10 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
11 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
12 |
redeem_points_limit_times |
int |
是 |
否 |
兑换限制次数 |
|
|
13 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
14 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-12-message(留言板)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
message_id |
int |
是 |
是 |
留言板ID |
|
|
2 |
user_id |
int |
是 |
否 |
用户ID |
|
|
3 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
4 |
content |
longtext |
4294967295 |
是 |
否 |
内容 |
|
5 |
nickname |
varchar |
32 |
是 |
否 |
昵称 |
|
6 |
avatar |
varchar |
255 |
否 |
否 |
头像 |
|
7 |
|
varchar |
125 |
否 |
否 |
留言者邮箱 |
|
8 |
phone |
varchar |
11 |
否 |
否 |
留言者手机号码 |
|
9 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
11 |
reply |
longtext |
4294967295 |
否 |
否 |
回复 |
|
12 |
reply_state |
tinyint |
否 |
否 |
回复状态 |
表 3-13-my_ship(我的舰艇)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
my_ship_id |
int |
是 |
是 |
我的舰艇ID |
|
|
2 |
registered_user |
int |
否 |
否 |
注册用户 |
|
|
3 |
name_of_ship |
varchar |
64 |
否 |
否 |
舰艇名称 |
|
4 |
vessel_number |
varchar |
64 |
否 |
否 |
舰艇编号 |
|
5 |
type_of_ship |
varchar |
64 |
否 |
否 |
舰艇类型 |
|
6 |
ship_pictures |
varchar |
255 |
否 |
否 |
舰艇图片 |
|
7 |
vessel_video |
varchar |
255 |
否 |
否 |
舰艇视频 |
|
8 |
ship_details |
text |
65535 |
否 |
否 |
舰艇详情 |
|
9 |
hits |
int |
是 |
否 |
点击数 |
|
|
10 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
11 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
12 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
13 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
14 |
examine_reply |
varchar |
255 |
否 |
否 |
审核回复 |
|
15 |
feedback_mechanism_limit_times |
int |
是 |
否 |
反馈限制次数 |
|
|
16 |
bonus_points_limit_times |
int |
是 |
否 |
奖励限制次数 |
|
|
17 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
18 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-14-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-15-operation_log(操作日志表)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
operation_log_id |
int |
是 |
是 |
操作日志ID |
|
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户角色 |
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户账号 |
|
4 |
routes |
varchar |
64 |
否 |
否 |
模块名称 |
|
5 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表3-16-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已取消 |
表 3-17-redeem_points(兑换积分)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
redeem_points_id |
int |
是 |
是 |
兑换积分ID |
|
|
2 |
registered_user |
int |
否 |
否 |
注册用户 |
|
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
4 |
user_phone |
varchar |
64 |
否 |
否 |
用户电话 |
|
5 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
6 |
name_of_commodity |
varchar |
64 |
否 |
否 |
商品名称 |
|
7 |
commodity_number |
varchar |
64 |
否 |
否 |
商品编号 |
|
8 |
redeem_points |
double |
否 |
否 |
兑换积分 |
|
|
9 |
application_time |
date |
否 |
否 |
申请时间 |
|
|
10 |
application_remarks |
text |
65535 |
否 |
否 |
申请备注 |
|
11 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
12 |
examine_reply |
varchar |
255 |
否 |
否 |
审核回复 |
|
13 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
14 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
15 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
16 |
source_id |
int |
否 |
否 |
来源ID |
|
|
17 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 3-18-registered_user(注册用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
registered_user_id |
int |
是 |
是 |
注册用户ID |
|
|
2 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
3 |
user_phone |
varchar |
16 |
否 |
否 |
用户电话 |
|
4 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
5 |
remaining_integral |
double |
否 |
否 |
剩余积分 |
|
|
6 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
7 |
user_id |
int |
是 |
否 |
用户ID |
|
|
8 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-19-ship_information(舰艇信息)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
ship_information_id |
int |
是 |
是 |
舰艇信息ID |
|
|
2 |
name_of_ship |
varchar |
64 |
否 |
否 |
舰艇名称 |
|
3 |
vessel_number |
varchar |
64 |
否 |
否 |
舰艇编号 |
|
4 |
type_of_ship |
varchar |
64 |
否 |
否 |
舰艇类型 |
|
5 |
ship_pictures |
varchar |
255 |
否 |
否 |
舰艇图片 |
|
6 |
country |
varchar |
64 |
否 |
否 |
所属国家 |
|
7 |
service_time |
date |
否 |
否 |
服役时间 |
|
|
8 |
decommissioning_time |
date |
否 |
否 |
退役时间 |
|
|
9 |
technical_parameters |
varchar |
64 |
否 |
否 |
技术参数 |
|
10 |
design_features |
varchar |
64 |
否 |
否 |
设计特点 |
|
11 |
service_record |
varchar |
255 |
否 |
否 |
服役记录 |
|
12 |
brief_introduction_of_ship |
text |
65535 |
否 |
否 |
舰艇简介 |
|
13 |
hits |
int |
是 |
否 |
点击数 |
|
|
14 |
praise_len |
int |
是 |
否 |
点赞数 |
|
|
15 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
16 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
17 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
18 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-20-slides(轮播图)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
slides_id |
int |
是 |
是 |
轮播图ID |
|
|
2 |
title |
varchar |
64 |
否 |
否 |
标题 |
|
3 |
content |
varchar |
255 |
否 |
否 |
内容 |
|
4 |
url |
varchar |
255 |
否 |
否 |
链接 |
|
5 |
img |
varchar |
255 |
否 |
否 |
轮播图 |
|
6 |
hits |
int |
是 |
否 |
点击量 |
|
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-21-type_of_ship(舰艇类型)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
type_of_ship_id |
int |
是 |
是 |
舰艇类型ID |
|
|
2 |
type_of_ship |
varchar |
64 |
否 |
否 |
舰艇类型 |
|
3 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 3-22-upload(文件上传)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
upload_id |
int |
是 |
是 |
上传ID |
|
|
2 |
name |
varchar |
64 |
否 |
否 |
文件名 |
|
3 |
path |
varchar |
255 |
否 |
否 |
访问路径 |
|
4 |
file |
varchar |
255 |
否 |
否 |
文件路径 |
|
5 |
display |
varchar |
255 |
否 |
否 |
显示顺序 |
|
6 |
father_id |
int |
否 |
否 |
父级ID |
|
|
7 |
dir |
varchar |
255 |
否 |
否 |
文件夹 |
|
8 |
type |
varchar |
32 |
否 |
否 |
文件类型 |
表 3-23-user(用户账户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
user_id |
int |
是 |
是 |
用户ID |
|
|
2 |
state |
smallint |
是 |
否 |
账户状态:(1可用|2异常|3已冻结|4已注销) |
|
|
3 |
user_group |
varchar |
32 |
否 |
否 |
所在用户组 |
|
4 |
login_time |
timestamp |
是 |
否 |
上次登录时间 |
|
|
5 |
phone |
varchar |
11 |
否 |
否 |
手机号码 |
|
6 |
phone_state |
smallint |
是 |
否 |
手机认证:(0未认证|1审核中|2已认证) |
|
|
7 |
username |
varchar |
16 |
是 |
否 |
用户名 |
|
8 |
nickname |
varchar |
16 |
否 |
否 |
昵称 |
|
9 |
password |
varchar |
64 |
是 |
否 |
密码 |
|
10 |
|
varchar |
64 |
否 |
否 |
邮箱 |
|
11 |
email_state |
smallint |
是 |
否 |
邮箱认证:(0未认证|1审核中|2已认证) |
|
|
12 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
13 |
open_id |
varchar |
255 |
否 |
否 |
针对获取用户信息字段 |
|
14 |
create_time |
timestamp |
是 |
否 |
创建时间 |
表 3-24-user_group(用户组)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
group_id |
mediumint |
是 |
是 |
用户组ID |
|
|
2 |
display |
smallint |
是 |
否 |
显示顺序 |
|
|
3 |
name |
varchar |
16 |
是 |
否 |
名称 |
|
4 |
description |
varchar |
255 |
否 |
否 |
描述 |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
|
|
8 |
register |
smallint |
否 |
否 |
注册位置 |
|
|
9 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
是 |
否 |
更新时间 |
4 系统实现
4.1注册用户功能模块实现
用户登录后,点击“新闻资讯”进入模块。在新闻资讯首页,可以查看所有发布的资讯,点击任意资讯标题以查看详细内容。页面下方有“评论”和“点赞”按钮,点击评论按钮后可以进行评论。用户填写标题和内容,选择相关标签,点击“提交”按钮发布评论。新闻资讯功能效果图如图4-1所示。

图4-1新闻资讯功能效果图
4.1.2网站公告
用户在主页点击“网站公告”进入网站公告。每条通知以标题和发布日期显示,用户可以点击标题查看详细内容。用户可以通过搜索框输入关键词,快速找到相关公告。网站公告功能效果图如图4-2所示。

图4-2网站公告功能效果图
进入“舰艇信息”后,用户会看到所有舰艇信息列表。显示舰艇照片、基本信息。用户点击具体舰艇的照片后,将进入详细信息页面,用户可以查看更多详细描述。可以进行点赞、收藏和评论。舰艇信息功能效果图如图4-3所示。

图4-3 舰艇信息功能效果图
4.1.4我的舰艇
进入“我的舰艇”后,用户会看到所有我的舰艇列表。显示舰艇名称、舰艇编号、舰艇类型等信息,将进入详细信息页面,用户可以查看更多详细描述。可以进行点赞、收藏和评论。我的舰艇功能效果图如图4-4所示。

图4-4 我的舰艇功能效果图
在积分商城中,用户可以使用积分兑换各种商品或服务。这些商品包括舰艇模型、海军纪念品、学习资料等。积分商城不仅提供了丰富的兑换选择,还激励用户通过参与互动、提交反馈等方式获取积分,增加了平台的用户粘性。积分商城功能效果图如图4-5所示。

图4-5 积分商城功能效果图
用户可以查看积分兑换历史和当前可用积分,随时兑换商城商品。功能效果图如图4-6所示。

图4-6 兑换积分功能效果图
管理员登录后,进入“舰艇信息管理”模块。在列表中,可以查看所有舰艇信息信息和用户评论,点击任意条目进入编辑页面。管理员可添加舰艇信息、修改舰艇信息或删除不再适用的条目。更改完成后,需点击“保存”按钮,确认修改。舰艇信息管理功能效果图如图4-7所示。

图4-7 舰艇信息管理功能效果图
进入“奖励积分管理”后,管理员可以查看所有奖励积分信息。每条记录包括奖励时间、舰艇名称等。管理员可点击查看详情,必要时可进行查询、重置和删除的操作。奖励积分管理如图4-8所示。

图4-8奖励积分管理功能效果图
管理员可以管理网站的轮播图,更新展示的内容以吸引用户关注。系统管理功能效果图如图4-9所示。

图4-9系统管理功能效果图
4.2.4网站公告管理
管理员在“网站公告管理”模块可发布新公告。点击“添加”按钮,填写标题和内容后点击“发布”。管理员还可以查看和编辑已有公告,必要时删除不再适用的公告。网站公告管理功能效果图如图4-10所示。

图4-10网站公告管理功能效果图
4.2.5资源管理
在“资源管理”中,管理员可查看系统内所有新闻资讯。管理员也可以对新闻资讯和资讯分类进行管理。资源管理功能效果图如图4-11所示。

图4-11 资源管理功能效果图
5 系统测试
5.1测试目的
软件测试的目的在于识别系统缺陷,验证软件对需求的符合程度,使其功能、性能和安全性达到设计标准。在开发过程中,测试能够及时发现潜在问题,降低发布后出现故障的风险。测试不仅关注系统的正常运行,还模拟各种异常情况,评估在不同环境和边界条件下的表现,从而提升软件的可靠性和稳定性,为用户提供更高质量的产品体验,增强信任感。测试过程中的数据和经验积累能完善测试策略,改进开发流程,成为后续项目的参考。软件测试贯穿开发生命周期,是实现产品质量和发布标准的重要环节。
5.2测试方法
测试方法是一系列用于评估和验证产品、软件或系统性能的技术和程序。这些方法根据测试目标的不同,可以划分为黑盒测试、白盒测试和灰盒测试等多种类型。黑盒测试关注输入和输出,不涉及内部逻辑结构。白盒测试深入代码和系统内部结构,检查程序流程和逻辑错误。灰盒测试介于两者之间,对内部结构有部分了解。其他方法还包括自动化测试、手动测试、性能测试和安全测试,各自具有特定的应用场景和优势。性能测试检验系统的响应时间和稳定性,安全测试识别潜在的安全漏洞。选择适当的测试方法能够有效发现问题,提高产品的质量和可靠性。
5.3测试内容
系统采用黑盒测试对系统功能进行测试,以下是测试的详细用例表。
表5-1 评论功能测试用例表
|
测试目的 |
验证评论功能 |
|
测试条件 |
用户已登录 |
|
测试步骤 |
1. 登录系统。 2. 进入舰艇信息评论模块。 3. 发布评论。 4 删除自己的评论。 |
|
预期效果 |
能成功发布和删除评论 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-2 舰艇信息查询功能测试用例表
|
测试目的 |
验证舰艇信息查询功能 |
|
测试条件 |
用户已登录 |
|
测试步骤 |
1.登录系统。 |
|
预期效果 |
能正常查看舰艇信息 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-3 积分商城功能测试用例表
|
测试目的 |
验证积分商城功能 |
|
测试条件 |
用户已登录 |
|
测试步骤 |
1. 登录系统。 |
|
预期效果 |
能正常浏览商品并成功兑换 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-4 我的舰艇功能测试用例表
|
测试目的 |
验证我的舰艇功能 |
|
测试条件 |
用户已登录 |
|
测试步骤 |
1. 登录系统。 |
|
预期效果 |
能正常查看和删除舰艇 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-5 舰艇信息管理功能测试用例表
|
测试目的 |
验证舰艇信息管理功能 |
|
测试条件 |
管理员已登录 |
|
测试步骤 |
1. 登录系统。 |
|
预期效果 |
能正常添加、修改和删除信息 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-6 用户管理功能测试用例表
|
测试目的 |
验证用户管理功能 |
|
测试条件 |
管理员已登录 |
|
测试步骤 |
1. 登录系统。 |
|
预期效果 |
能正常查看、修改和删除用户 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
表5-7 系统公告管理功能测试用例表
|
测试目的 |
验证公告管理功能 |
|
测试条件 |
管理员已登录 |
|
测试步骤 |
1. 登录系统。 |
|
预期效果 |
能正常发布、修改和删除公告 |
|
实际效果 |
与预期结果一致 |
|
结论 |
测试通过 |
5.4测试结论
通过对评论功能、舰艇信息查询、积分商城、我的舰艇管理、舰艇信息管理、用户管理和公告管理等模块的详细测试,涵盖了注册用户和管理员的多个核心功能。测试内容涉及用户发布、删除评论,浏览和管理舰艇信息,积分兑换,用户管理等重要操作。所有测试功能均符合预期结果,系统在各项功能的操作上表现稳定,未出现明显的功能缺陷或错误。
系统能够高效、顺畅地支持用户和管理员完成各自的核心任务,且在所有测试条件下都能够提供预期的功能和用户体验。通过此次测试,系统的稳定性、可用性和安全性得到了充分验证,显示出系统在实际运行环境中的可靠性。
6 总结与展望
6.1总结
在本次毕业设计项目中,成功开发了世界舰艇百科系统,主要解决舰艇信息管理、查询和用户互动等方面的挑战。通过采用Spring Boot框架、MySQL数据库以及前端Vue.js技术,该系统实现了舰艇信息的集中管理、在线查询和用户交互功能,优化了用户体验并提升了数据安全性和系统管理效率。系统设计涵盖了管理员和注册用户的多种功能需求,管理员可对舰艇信息、用户、积分商城等进行高效管理,而注册用户则能轻松查询舰艇信息、参与评论与互动,并通过积分商城进行兑换,形成了一个全面而便捷的舰艇百科平台。
在开发过程中,面临了不少挑战,尤其是在数据管理、系统架构设计和用户体验方面。尽管技术框架已经满足了基本需求,但随着业务需求的多样化和用户期望的提升,系统在灵活性和扩展性上还有提升空间。同时,系统的界面设计和交互流程仍需进一步优化,以提高用户操作的便捷性和流畅度。此外,随着用户数量的增加和网络安全威胁的不断加剧,保护用户隐私和数据安全的措施也需要进一步加强。
6.2展望
未来的研究将集中在提升系统的灵活性和可扩展性,特别是在面对不断变化的用户需求和舰艇信息更新时,增强系统的响应能力。此外,将进一步优化系统的技术架构,以提高其维护性,使其在长时间运行中能够持续高效地支持各项功能。同时,系统的用户界面和交互设计将被重新审视,并融入现代化设计理念,以确保用户体验更加直观、便捷和高效,符合当代用户对流畅操作的期望。
在数据安全方面,未来的研究将致力于采用更先进的加密技术与安全策略,确保系统能够有效应对日益复杂的网络安全威胁,从而保护用户数据的隐私和安全。
随着技术的不断发展,舰艇百科系统还将探索如何利用大数据和人工智能技术对舰艇信息进行智能化分析与预测,提供更加精准的舰艇信息推荐,帮助用户做出更加有效的决策。系统的智能化分析和决策支持将大幅提升服务质量和管理效率。此外,随着全球军事信息的不断变化和更新,系统将持续优化内容更新机制,确保舰艇百科平台提供最新、最权威的舰艇知识,满足用户对精确、全面舰艇数据的需求。
致 谢
时光荏苒,四年的求学生涯在不经意间画上了圆满的句号。在这段充满挑战与成长的旅程中,许多人给予了我无私的支持与鼓励。在此,我怀着无比感激的心情,向所有帮助和关心过我的人致以诚挚的感谢。
首先,我要特别感谢我的指导老师。您不仅是知识的传播者,更是我人生道路上的引路人。您严谨治学、孜孜不倦的精神深深感染了我,让我明白了追求真理的重要性。无论是细致的反馈,还是启发性的建议,您都让我感受到一种无形的力量,激励着我不断超越自我。感谢您在我最迷茫的时刻,为我指明方向,给予我勇气,让我在道路上走得更加坚定。
我要感谢我的父母。感谢你们无私的爱与支持,是你们的辛勤付出让我得以追逐梦想,成就自我。无论是在我遇到挫折时的鼓励,还是在我获得成绩时的欢笑,你们总是我最坚实的后盾。在你们的呵护下,我得以在知识的海洋中遨游,体会到求知的乐趣与美好。你们教会我如何面对生活中的风雨,教会我如何在困境中寻找希望。每当我回首过往,心中涌起的都是对你们的感激与爱戴。没有你们的支持,我无法走到今天这一步。愿在未来的日子里,能用自己的努力回报你们的厚爱。
我也要感谢我的同学们。在这四年的岁月里,我们共同经历了无数的挑战与欢笑。无论是一起熬夜复习的辛酸,还是考试后的欢庆,你们的陪伴让我不再孤单。在学习上,我们相互借鉴、共同进步。在生活中,我们彼此扶持、携手前行。与你们的友谊让我感受到青春的热情与力量。每一次的团结合作,都让我意识到团队的力量是无穷的。感谢你们在我人生旅途中的陪伴,你们的存在让我的大学生活更加丰富多彩。
最后,感谢这个校园。这里承载了我的青春与梦想,见证了我的成长与蜕变。每一处熟悉的角落,都蕴藏着我无数的回忆。无论是静谧的图书馆,还是热闹的操场,都成为我心中不可磨灭的印记。这里的每一位老师、每一位同学、每一段经历,都将成为我人生旅途中最珍贵的财富。
在即将踏入新的人生阶段之际,我衷心地感谢所有给予我帮助与关心的人。是你们的陪伴让我在这条路上走得更加坚定与自信。未来的路途或许会有荆棘与挑战,但我将带着你们给予我的勇气与力量,勇敢前行。愿在不久的将来,能够以自己的成就来回馈你们的厚爱。
再次感谢每一位在我生命中出现的人,愿我们都能在各自的人生舞台上,绽放出属于自己的光彩。
参考文献
- 马辰,张小凡,李宁.舰艇信息基础设施研究进展[J].中国舰船研究,2022,17(06):1-14.DOI:10.19693/j.issn.1673-3185.02599.
- 陈峰,徐英桃.美国海军“蓝岭”号指挥舰信息系统发展情况及启示[J].舰船电子对抗,2021,44(03):21-25.DOI:10.16426/j.cnki.jcdzdk.2021.03.005.
- 王聪.基于舰艇综合平台的随船备件管理信息系统设计[J].舰船电子工程,2019,39(11):123-126+250.
- Ma G ,Duan H .Research on Big Data-Driven Innovation in Java Programming Education[J].Exploration of Educational Management,2024,2(12):
- 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
- 贾琴.Java编程语言的应用策略分析[J].集成电路应用,2024,41(10):84-85.DOI:10.19339/j.issn.1674-2583.2024.10.034.
- 刘江涛,王亮亮,吴庆茹,等.基于B/S模式的铁路勘测设计案例信息化管理系统设计与实现[J].铁路计算机应用,2021,30(03):32-35.
- 张丹丹,李弘.基于B/S架构的办公管理系统设计与开发[J].铁路通信信号工程技术,2024,21(09):44-48+106.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
- 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2021,15(36):76-77.
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 张帅.计算机软件Java编程特点与技术探究[J].科技资讯,2024,22(17):23-25.DOI:10.16661/j.cnki.1672-3791.2404-5042-5333.
- 丁要男,潘俊安,张煜.Java语言程序设计课程中计算思维能力培养探讨[J].江西电力职业技术学院学报,2024,37(08):38-40.
- Zhang J .Teaching Reform of Java Program Design Based on Vocational Education Cloud Platform[J].Journal of Higher Education Teaching,2024,1(5):
- Ullenboom C .Java Programming Exercises:Volume Two: Java Standard Library[M].CRC Press:2024-03-30.
- 许勇,贾兴亮,黄杉.一种面向舰艇维修过程的技术状态管理信息系统[J].机电设备,2022,39(04):135-142.DOI:10.16443/j.cnki.31-1420.2022.04.025.
- 徐润萍,徐英桃,陈峰,等.美国海军陆战队指挥信息装备体系研究[J].舰船电子对抗,2022,45(01):1-5+32.DOI:10.16426/j.cnki.jcdzdk.2022.01.001.
- 韦韧.中国少数民族语文百科知识问答系统设计[J].软件导刊,2020,19(01):200-202.
- Wang Q ,Zheng L ,Hong R .Exploration on the Teaching Model of Java Programming and Practice for Students with No Programming Background[J].Advances in Educational Technology and Psychology,2024,8(6):
附录:
注册代码如下:
/**
* 注册
* @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 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, "账号或密码不正确");
}
}
舰艇信息代码如下:
@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, "上传失败");
}
积分商城代码如下:
@RequestMapping(value = {"/sum_group", "/sum"})
public Map<String, Object> sum(HttpServletRequest request) {
Integer value = service.selectSqlToInteger(service.sum(service.readQuery(request), service.readConfig(request)));
return success(value);
}
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
更多推荐
所有评论(0)