(最新原创毕设)Java校园新闻管理系统/03.19(白嫖源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
摘 要
随着信息技术的迅速发展,高校新闻信息管理的需求日益增加,传统的新闻管理模式已难以满足现代校园管理的要求。本文设计并实现了一个基于JavaWeb的校园新闻管理系统,旨在为高校提供一个高效、智能的新闻发布和管理平台。系统采用Spring Boot作为开发框架,结合MySQL数据库、前端Vue.js技术,实现了新闻的在线发布、编辑、审核、分类管理等功能,满足了校园新闻信息管理的多样化需求。
系统分为管理员、普通用户和记者用户三种角色。管理员可以对新闻内容进行添加、修改、删除、审核和分类管理等操作,而普通用户则可浏览新闻、发表评论及进行新闻搜索。记者用户可以创建和提交新闻稿件,协助管理员进行初步审核和新闻内容更新,为系统提供更多的新闻来源和实时内容更新。通过引入Spring Boot的模块化设计,使得系统具有良好的扩展性和维护性。
本系统的实施不仅提高了校园新闻信息的管理效率和便捷性,也为学校的数字化校园建设提供了有力支持。未来,系统可以根据需求进一步优化,加入更多智能化功能,进一步提升校园新闻管理的智能化水平。
关键词:校园新闻管理;Spring Boot;Java;MySQL
Abstract
With the rapid development of information technology, the demand for news information management in universities is increasing day by day, and traditional news management models are no longer able to meet the requirements of modern campus management. This article designs and implements a campus news management system based on JavaWeb, aiming to provide an efficient and intelligent news publishing and management platform for universities. The system adopts Spring Boot as the development framework, combined with MySQL database and front-end Vue.js technology, to achieve online publishing, editing, auditing, classification management and other functions of news, meeting the diverse needs of campus news information management.
The system is divided into three roles: administrator, regular user, and journalist user. Administrators can add, modify, delete, review, and categorize news content, while regular users can browse news, post comments, and conduct news searches. Journalist users can create and submit news articles, assist administrators in preliminary review and news content updates, and provide more news sources and real-time content updates for the system. By introducing the modular design of Spring Boot, the system has good scalability and maintainability.
The implementation of this system not only improves the management efficiency and convenience of campus news information, but also provides strong support for the digital campus construction of the school. In the future, the system can be further optimized according to demand, adding more intelligent functions to further enhance the intelligence level of campus news management.
Keywords: Campus news management; Spring Boot; Java; MySQL
目 录
1 前 言
1.1 选题目的
1.2 选题意义
1.3 国内外研究现状
1.4 论文结构与章节安排
2 关键技术
2.1 Java
2.2 MySQL
2.3 Spring Boot框架
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.1.4 社会可行性
3.2 功能需求分析
3.3 系统性能分析
4 系统设计
4.1 总体设计
4.1.1 框架设计
4.1.2 功能模块设计
4.2 系统时序图设计
4.2.1 登入时序图
4.2.2 用户模块时序图
4.2.3 个人中心模块时序图
4.2.4 新闻稿件管理模块时序图
4.2.5 管理员模块时序图
4.3 数据库设计
4.3.1 E-R图
4.3.1 数据库表结构设计
5 系统实现
5.1 系统环境分析
5.2 普通用户模块
5.2.1 用户登录界面
5.2.2 用户注册界面
5.2.3 首页界面
5.2.4 公告通知界面
5.2.5 学校资讯界面
5.2.6 新闻稿件界面
5.3 记者用户模块
5.3.1 新闻稿件界面
5.3.2 收藏界面
5.3.3 评论管理界面
5.4 后台管理员模块
5.4.1 系统用户界面
5.4.2 新闻分类管理界面
5.4.3 新闻稿件管理界面
5.4.4 系统管理界面
5.4.5 公告通知管理界面
6 系统测试
6.1 测试目的与意义
6.2 测试用例
6.3 测试分析
7 结束语
参考文献
致 谢
1 前 言
1.1选题目的
校园新闻管理系统的选题目的是为了构建一个高效、便捷的校园新闻发布与管理平台,提升高校信息传播的及时性与准确性。通过该系统,学校可以简化新闻发布的流程,实现对新闻内容的集中管理和权限控制,从而确保信息发布的规范性和可靠性。系统还旨在为用户提供一个便捷的新闻获取渠道,能够快速、全面地了解校园内的重要动态和活动信息。此外,通过集成多媒体和搜索功能,系统能够提升用户的阅读体验和信息获取效率。最终,系统的开发旨在推动校园信息化的进程,满足高校日益增长的数字化新闻管理需求。
1.2选题意义
校园新闻管理系统的选题意义在于适应高校信息化发展的趋势,通过数字化手段实现校园新闻的高效管理与传播。随着信息量的增加和师生对即时性、准确性要求的提高,传统的新闻发布方式已难以满足需求,基于JavaWeb的校园新闻管理系统能够优化信息发布流程,提升校园新闻的时效性和覆盖面。该系统不仅能够为学校管理层提供更便捷的新闻发布与审核机制,还为广大师生提供了一个多元化的信息获取平台,增强了学校与师生之间的互动和沟通。同时,系统有助于集中管理和存档各类新闻资源,便于未来的查询和统计分析,进而推动校园信息化水平的提升,促进校园文化的传播与建设。
1.3国内外研究现状
校园新闻管理系统的研究和应用在国内外都有一定的探索和发展。国际上,随着信息技术的进步,许多高校已经广泛采用基于Web的新闻管理系统,以满足信息发布和管理的需求。例如,美国的部分高校采用了专门开发的内容管理系统(CMS)来实现校园新闻的发布和组织,系统通常集成了多媒体内容、搜索功能以及与社交媒体的联动,以提升新闻传播的广度和效率。国外还出现了许多开源的内容管理平台,如WordPress和Drupal,这些平台不仅用于一般新闻管理,也广泛应用于校园新闻系统中,为学校提供了灵活的定制和扩展能力。
在国内,校园新闻管理系统的研究和应用相对起步较晚,但随着高校信息化的推进,越来越多的学校意识到数字化新闻发布的重要性。目前,国内的高校大多采用定制化开发的新闻管理系统,基于JavaWeb技术,通过后台管理、用户权限分配、新闻分类和检索等功能,实现新闻内容的高效管理。例如,北京大学和清华大学等高校都构建了自己的校园新闻管理平台,通过这些平台,学校可以实时发布各类校园动态、通知公告和学术新闻。国内一些系统还结合了移动端应用,使师生能够通过手机App获取新闻,增强了信息的传播速度和便利性。
总的来看,国外的研究更多集中于系统的开放性、扩展性和与多平台的整合,而国内则更加注重系统的实用性和本土化需求,特别是在内容审核、权限管理和适应高校内部需求方面的定制开发。国内外的研究和应用表明,基于JavaWeb的校园新闻管理系统是提升高校信息化水平的有效工具,同时也是信息化管理发展的重要方向。
1.4论文结构与章节安排
本文共分为七章,章节内容安排如下:
第一章:引言,主要介绍校园新闻管理系统领域研究的背景和意义,概述研究的现状。
第二章:关键技术,主要探讨和说明实现校园新闻管理系统的关键技术。
第三章:系统分析,主要从校园新闻管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对校园新闻管理系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了校园新闻管理系统各个用户的功能、系统界面的实现。
第六章:系统测试,主要对校园新闻管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章:结束语。总结全文研究内容,提出对校园新闻管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
2 关键技术
2.1Java
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在校园新闻管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
2.2MySQL
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在校园新闻管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
2.3Spring Boot框架
Spring Boot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。Spring Boot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序;拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在校园新闻管理系统中,Spring Boot可以帮助开发团队快速搭建后端服务,并实现各种功能模块的集成和管理。
3 系统分析
3.1可行性分析
3.1.1技术可行性
从技术角度来看,Spring Boot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。因此,本系统具有技术可行性。
3.1.2经济可行性
考虑到Springboot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著提升度假管理的效率和用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
3.1.3操作可行性
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
3.1.4社会可行性
基于JavaWeb的校园新闻管理系统具有较高的社会可行性。随着信息技术的快速发展,越来越多的高校采用数字化平台进行校园管理和信息传播。该系统不仅能提高校园新闻的传播效率,还能增强师生之间的信息互动与沟通,提升校园文化的建设与推广。系统的实施能够有效解决传统管理方式中的信息滞后和不便,具有广泛的应用前景。
从技术、经济、操作和社会四个维度来看,校园新闻管理系统的开发均具备高度的可行性。
3.2功能需求分析
本系统可以分为:普通用户、记者用户和管理员三大角色。
普通用户主要包括注册登录、首页、公告通知、新闻稿件、学校资讯、我的账户、个人中心(个人首页、收藏)等功能。
记者用户主要包括登录、首页、公告通知、新闻稿件、学校资讯、我的账户、个人中心(个人首页、新闻稿件、收藏、评论管理)等功能。
管理员可登录系统后台进行管理,拥有登录、后台首页、系统用户、新闻分类管理、新闻稿件管理、系统管理(普通用户)、公告通知管理、资源管理(学校资讯、资讯分类)、权限管理等功能。
(一)普通用户角色用例如下图所示。

图3.1普通用户用例图
普通用户具体功能说明如下所示。
注册登录:普通用户可以通过注册功能创建账户,填写用户名、密码和邮箱等信
息,完成注册后可使用该账号登录系统。已注册用户通过账号和密码登录系统,进入个人主页进行信息管理。用户可随时修改个人信息和密码,确保账户安全。
首页:普通用户登录后,进入首页,首页展示学校最新的新闻、公告和通知内容,
用户可以快速浏览校园动态。
公告通知:普通用户可以查看学校发布的各类公告和通知。用户可以按照时间顺序浏览公告,并查看公告的详细信息。公告通知模块支持搜索功能,帮助用户快速找到所需内容。
新闻稿件:普通用户可以浏览和阅读学校发布的新闻稿件,新闻稿件包括校园活动、
学术成果、文化建设等方面的内容。用户可以通过新闻分类浏览不同类型的新闻,也可以搜索特定的新闻稿件。
学校资讯:学校资讯模块为普通用户提供有关学校的综合信息。
我的账户:普通用户可以通过“我的账户”模块查看和管理个人信息,包括用
户名、头像、联系方式等。用户还可以修改个人资料、修改密码,并查看登录历个人中心(个人首页、收藏):个人中心为普通用户提供个性化服务,用户可以在个人首页查看自己的最新动态、收藏的新闻和公告。收藏功能允许用户将重要的新闻稿件和公告添加到收藏夹,方便日后查阅。个人首页还展示了用户最近浏览的内容和系统推荐的新闻信息,帮助用户快速访问感兴趣的内容。
(二)记者用户角色用例如下图所示。

图3.2记者用户用例图
记者用户具体功能说明如下所示。
登录:记者用户通过系统提供的账号和密码进行登录。登录后,记者可以访问新闻管理模块,发布和编辑新闻稿件,管理个人信息,并对密码进行修改。系统的安全性保证了记者账户的隐私和数据安全。
首页:记者用户登录后,进入首页,首页展示校园新闻的最新动态和热门新闻。记者还可以在首页浏览学校发布的重要公告、通知信息,以及校园资讯,确保实时了解学校动态。
公告通知:记者用户可以查看学校发布的公告和通知,获取有关学校活动、政策等的重要信息。
新闻稿件:记者用户可以浏览和查看新闻稿件,支持通过搜索功能快速找到感兴趣的内容,还可以对新闻稿件进行点赞、评论和收藏操作,以表达支持、参与互动或保存重要内容,便于后续查阅。
学校资讯:记者用户可以浏览学校的综合信息,包括学校历史、各类活动、学科设置等内容。记者还可以基于这些信息撰写和发布与学校相关的新闻稿件,为学校的宣传和信息传播提供支持。
我的账户:记者用户可以在“我的账户”模块中查看和修改个人信息,包括昵称、头像、联系方式等。记者用户还可以修改登录密码,确保账户安全。同时,记者可以查看账户的登录历史和系统通知,了解系统的动态更新。
个人中心(个人首页、新闻稿件、收藏、评论管理):
个人首页:个人首页展示记者的个人信息、最新发布的新闻稿件以及编辑记录。记者可以在个人首页查看自己的新闻创作历史,方便跟踪和管理稿件。
新闻稿件管理:记者用户可以查看自己发布的所有新闻稿件,进行编辑、删除或重新发布的操作。同时,记者可以查看新闻稿件的阅读量、评论数等互动数据,分析稿件的受欢迎程度。
收藏:记者用户可以收藏自己关注的新闻稿件、学校公告等内容,方便日后查阅。收藏功能有助于记者管理与自己工作相关的参考资料。
评论管理:记者用户可以查看和管理新闻稿件下的评论,进行评论的审核、删除或回复操作。这一功能有助于记者与读者进行互动,维护新闻稿件的互动质量。
- 管理员角色用例如下图所示。

图3.3管理员用例图
系统后台管理端管理员具体功能说明如下所示。
登录:管理员通过用户名和密码进行身份验证,登录到系统后台。
后台首页:展示系统的概览信息,如最新的新闻条目、待审稿件数量、用户活动统计等。提供快速链接到常用功能。
系统用户管理:添加、编辑或删除系统中的用户账号。分配用户角色(例如:普通用户、记者用户、管理员)。
新闻分类管理:创建、更新或删除新闻类别,如学术动态、校园生活、通知公告等。对新闻类别进行排序。
新闻稿件管理:审核、编辑、发布或撤回新闻稿件。搜索和过滤稿件,查看稿件的历史版本。
系统管理(轮播图):上载图片并设置为首页轮播展示。编辑轮播图的顺序和关联的新闻链接。
公告通知管理:发布重要公告和紧急通知。设置公告的有效期和显示位置。
资源管理(学校资讯、资讯分类):维护和更新学校提供的各种资讯。创建和管理资讯分类,帮助用户更轻松地找到所需信息。
权限管理:为不同角色设定权限,控制其对系统的访问范围和操作能力。
根据需要调整或分配特定权限给用户。
3.3系统性能分析
对于校园新闻管理系统的设计与实现,下面是系统性能分析表:
表3.1性能需求表
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持1000个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理1000个请求 |
|
可用性 |
系统需要保证每月99.9%的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便团队成员维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓 |
3.4 系统业务流程分析
业务流程图既反映了内部业务间的相互联系,又反映了系统信息流动情况。校园新闻管理系统须支撑整个机构不同层面的多种职能,而各功能模块间存在着多种关联信息,组成一个有机整体,并针对新闻信息自身特点和面临的现实条件,对系统进行业务流程图设计。系统通过流程的顺畅和高效,实现了新闻分析需求的满足和系统管理的便捷,提升了系统的运行效率和用户体验。
活动图是一种用于对系统的动态行为建模的另一种常用图表,通常用于可视化展示系统中各个活动的执行顺序、流程控制和数据交互,展现从一个活动到另一个活动的控制流,活动图在本质上是一种流程图;但活动图着重表现从一个活动到另一个活动的控制流。因此,这里列举了2个业务活动图。
(1)用户登录查询的业务流程如下。
用户注册登录,系统从数据库获取用户数据信息,登录成功用户进入查询页面,用户输入查询关键字,数据库查询用户所输入的关键字,查询成功显示查询的模块信息,查询失败不显示。
用户登录查询功能的活动图如图3.4所示。

图3.4 用户登录查询活动图
(2)管理员添加信息的业务流程如下。
此活动图描述了管理员添加信息。管理员可以通过信息管理模块页面选择要添加的基本信息。添加成功传入数据库中,失败则不添加。管理员可以保存信息并更新系统中的信息。
管理员添加信息功能的活动图如图3.5所示。

图3.5管理员添加信息活动图
4 系统设计
4.1总体设计
4.1.1框架设计
B/S架构,即浏览器/服务器架构,是一种基于Web的分布式计算范式。在此架构中,应用程序的逻辑被巧妙地区分为客户端和服务器两部分。具体而言,客户端借助广泛使用的浏览器界面,进行应用访问与操作;而服务器端则肩负起业务逻辑处理、数据存储及管理的核心职责。值得一提的是,客户端无需安装特定的软件,用户仅需通过浏览器输入相应的URL地址,即可轻松访问应用程序,这一特性极大地提升了用户的使用便捷性和系统的维护效率。服务器端通常采用高性能的计算机和数据库系统,能够处理大量并发请求和复杂的业务逻辑。B/S架构的优势在于其跨平台性和易于维护性,开发者可以通过更新服务器端的代码来实现整个系统的升级和维护,而无需逐一更新客户端。

图4.1系统架构图
4.1.2功能模块设计
功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。校园新闻管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。

图4.2系统架构图
4.2系统时序图设计
4.2.1登入时序图
在校园新闻管理系统中,登入是用户进入系统的第一步,也是判断用户身份和权限的重要环节。系统应该提供用户账号密码登入以及验证码登入等多种登入方式,以确保用户信息的安全性和便捷性。登入时序图的流程分析将帮助我们深入了解用户如何进行登入操作、系统如何验证用户身份、登入成功后如何跳转至相应界面等关键步骤。登入时序图如图4.3所示。

图4.3 登入时序图
4.2.2用户模块时序图
用户模块是校园新闻管理系统的核心功能之一,该模块包括用户信息管理、公告通知、新闻稿件、学校资讯等功能。通过用户模块时序图的流程分析,我们可以清晰地了解用户在系统中的操作流程,以及系统如何响应用户的请求并进行相应的处理。此外,用户模块时序图的分析还可以帮助我们优化用户体验,提高系统的用户友好性和操作便捷性。用户模块时序图如图4.4所示。

图4.4 用户模块时序图
4.2.3个人中心模块时序图
个人中心模块是用户获取个人信息和操作历史记录的重要入口,用户可以在该模块中查看个人信息、修改密码、查看个人首页、收藏等。个人中心时序图的分析将有助于我们深入了解用户在个人中心模块内的操作流程,以及系统如何处理用户请求并提供相应的信息展示。通过个人中心时序图的流程分析,我们可以优化用户体验,提高用户对系统的信任感和满意度。个人中心模块时序图如图4.5所示。

图4.5 个人中心模块时序图
4.2.4新闻稿件管理模块时序图
新闻稿件管理模块是系统管理员专门用来管理和更新新闻稿件的功能模块,管理员通过该模块可以对新闻稿件进行添加、查询、重置和删除等操作。新闻稿件管理时序图的流程分析将有助于我们了解管理员在系统中如何管理新闻稿件,系统如何响应管理员的操作请求以及如何进行权限验证等关键步骤。通过新闻稿件管理时序图的分析,我们可以优化管理员操作流程,提高系统的管理效率和准确性。新闻稿件管理模块时序图如图4.6所示。

图4.6 新闻稿件管理模块时序图
4.2.5管理员模块时序图
管理员模块是校园新闻管理系统的管理者入口,管理员通过该模块可以对系统用户、新闻分类管理、新闻稿件管理、系统管理、公告通知管理、资源管理(学校资讯、资讯分类)、权限管理等主要模块信息进行增删改查操作。管理员模块时序图的流程分析将帮助我们深入了解管理员在系统中的操作流程,系统如何验证管理员身份和权限,以及如何处理管理员的请求并进行相应的管理操作。通过管理员模块时序图的分析,我们可以优化管理员的管理体验,提高系统的管理效率和安全性。管理员模块时序图如图4.7所示。

图4.7管理员模块时序图
4.3数据库设计
4.3.1E-R图
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本校园新闻管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

图4.8总E-R图
4.3.1数据库表结构设计
在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
|
7 |
parent |
varchar |
64 |
0 |
Y |
N |
父级菜单 |
|
|
8 |
parent_sort |
int |
10 |
0 |
N |
N |
0 |
父级菜单排序 |
|
9 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
10 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
11 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
12 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
13 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
14 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
15 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
16 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
17 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
18 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
19 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
20 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
21 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
22 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
code_token_id |
int |
10 |
0 |
N |
Y |
||
|
2 |
token |
varchar |
255 |
0 |
Y |
N |
||
|
3 |
code |
varchar |
255 |
0 |
Y |
N |
验证码 |
|
|
4 |
expire_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
失效时间 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
journalist_user_id |
int |
10 |
0 |
N |
Y |
记者用户ID |
|
|
2 |
reporters_name |
varchar |
64 |
0 |
Y |
N |
记者姓名 |
|
|
3 |
reporters_gender |
varchar |
64 |
0 |
Y |
N |
记者性别 |
|
|
4 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
5 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
news_articles_id |
int |
10 |
0 |
N |
Y |
新闻稿件ID |
|
|
2 |
journalist_user |
int |
10 |
0 |
Y |
N |
0 |
记者用户 |
|
3 |
reporters_name |
varchar |
64 |
0 |
Y |
N |
记者姓名 |
|
|
4 |
news_title |
varchar |
64 |
0 |
Y |
N |
新闻标题 |
|
|
5 |
news_category |
varchar |
64 |
0 |
Y |
N |
新闻类别 |
|
|
6 |
date_of_occurrence |
date |
10 |
0 |
Y |
N |
发生日期 |
|
|
7 |
news_location |
varchar |
64 |
0 |
Y |
N |
新闻地点 |
|
|
8 |
news_pictures |
varchar |
255 |
0 |
Y |
N |
新闻图片 |
|
|
9 |
news_introduction |
text |
65535 |
0 |
Y |
N |
新闻简介 |
|
|
10 |
news_text |
text |
65535 |
0 |
Y |
N |
新闻正文 |
|
|
11 |
news_detail |
longtext |
2147483647 |
0 |
Y |
N |
新闻详情 |
|
|
12 |
manuscript_status |
varchar |
64 |
0 |
Y |
N |
稿件状态 |
|
|
13 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数 |
|
14 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
15 |
examine_state |
varchar |
16 |
0 |
N |
N |
未审核 |
审核状态 |
|
16 |
examine_reply |
varchar |
16 |
0 |
Y |
N |
审核回复 |
|
|
17 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
18 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
news_classification_id |
int |
10 |
0 |
N |
Y |
新闻分类ID |
|
|
2 |
news_category |
varchar |
64 |
0 |
Y |
N |
新闻类别 |
|
|
3 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
ordinary_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
4 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
5 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
6 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
score_id |
int |
10 |
0 |
N |
Y |
评分ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评分人: |
|
3 |
nickname |
varchar |
64 |
0 |
Y |
N |
昵称: |
|
|
4 |
score_num |
double |
5 |
2 |
N |
N |
0.00 |
评分: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
8 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
9 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
int |
10 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
5 系统实现
5.1系统环境分析
考虑到校园新闻管理系统主要面对部分人群,网站的访问量不大。系统处理、统计分析工作简单,Tomcat服务器能够满足中小型网络用户的数据处理,通过互联网Internet 接入及MySQL 5.6以上的数据库应用的需求点。系统具体开发环境如下表所示:
表5.1系统环境表
|
项目 |
开发环境 |
|
操作系统 |
Windows 11、Windows 10、Windows 8、Windows 7 |
|
开发语言 |
Java |
|
使用框架 |
Spring Boot、uni-app |
|
体系结构 |
三层B/S体系结构 |
|
开发工具 |
IDEA(2020版)/MyEclipse(2017)/Eclipse、Vs Code |
|
数据库 |
MySQL 5.6以上 |
|
数据库管理工具 |
Navicat |
|
JDK版本 |
Java 1.8 |
|
Maven |
apache-maven 3.6.1-bin |
|
Tomcat |
apache-tomcat-7.0.88 |
|
移动端 |
iOS、Android、Web(响应式)、以及各种小程序 |
5.2普通用户模块
5.2.1用户登录界面
用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

图5.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, "账号或密码不正确");
}
}
5.2.2用户注册界面
用户注册时,系统要求用户提供必要的信息,例如用户名、密码、电子邮件地址等。这些信息通常由用户在注册表单中输入,并通过前端验证确保格式的正确性。注册过程完成后,系统会为新用户创建一个账户。这包括分配一个唯一的用户ID和设置初始的权限或者角色。

图5.2用户注册界面设计
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
5.2.3首页界面
普通用户登录后,进入首页,首页展示学校最新的新闻、公告和通知内容,用户可以快速浏览校园动态。首页内容包括推荐的热门新闻、最新发布的公告以及新闻分类导航,方便用户根据兴趣浏览相关内容。
普通用户首页主界面图如下所示。

图5.3首页主界面设计
5.2.4公告通知界面
普通用户可以查看学校发布的各类公告和通知,包括学校活动、行政通知、重要提醒等。用户可以按照时间顺序浏览公告,并查看公告的详细信息。公告通知模块支持搜索功能,帮助用户快速找到所需内容。
公告通知主界面图如下所示。

图5.4公告通知主界面设计
公告添加代码如下:
@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);
}
5.2.5学校资讯界面
学校资讯模块为普通用户提供全面的学校相关信息。用户可以通过分类导航浏览不同主题的内容,也可以使用关键词搜索快速找到感兴趣的资讯。在资讯详情页,用户能够查看完整的文字内容、图片或视频附件,并与相关链接互动,进一步了解学术资源或活动信息。同时,用户可以点赞资讯以表示支持,收藏感兴趣的内容以便日后查看,还可以发表评论,与其他用户交流看法。所有评论按照时间顺序排列,支持回复和管理自己的评论(如编辑或删除)。此外,系统根据用户的浏览记录和兴趣推荐相关资讯,并展示当前最热门的内容,提升用户体验。通过资讯详情页的图片和视频展示,用户能够更加直观、生动地感受学校的风貌与文化。
学校资讯主界面图如下所示。

图5.5学校资讯主界面设计
5.2.6新闻稿件界面
新闻稿件模块允许普通用户浏览和阅读学校发布的新闻,涵盖校园活动、学术成果、文化建设等多方面内容。用户可以通过新闻分类浏览不同类型的新闻,也可以通过搜索功能快速查找特定的新闻稿件。每篇新闻稿件都支持点赞、收藏和评论,用户可以表达对新闻的喜爱,收藏感兴趣的内容以便以后查看,并参与评论与他人互动。
新闻稿件主界面图如下所示。

图5.6新闻稿件主界面设计
5.3记者用户模块
5.3.1新闻稿件界面
在个人中心,记者用户拥有发布和管理新闻稿件的权限,可以在新闻稿件模块中
创建新稿件、编辑和修改已有稿件,并上传相关素材(如图片、视频)。记者可以根据新闻内容选择适当的分类,设置稿件的发布日期和发布时间,还能够查看和管理已发布的新闻稿件,随时进行修改和更新。同时,记者用户可以查看稿件的评论,与读者互动,了解反馈,并实时跟踪稿件的审核状态,确保新闻内容的及时性和准确性。
新闻稿件主界面图如下所示。

图5.7新闻稿件界面设计
新闻稿件添加代码如下:
@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);
}
5.3.2收藏界面
记者用户可以收藏自己关注的新闻稿件、学校公告等内容,方便日后查阅。收藏功能有助于记者管理与自己工作相关的参考资料。
收藏主界面图如下所示。

图5.8收藏界面设计
5.3.3评论管理界面
记者用户可以查看和管理新闻稿件下的评论,进行评论的审核、删除或回复操作。这一功能有助于记者与读者进行互动,维护新闻稿件的互动质量。
评论管理主界面图如下所示。

图5.9评论管理界面设计
5.4后台管理员模块
5.4.1系统用户界面
管理员可对普通用户、记者用户和管理员等用户信息进行管控,包括进行增删改查操作,可点击详情进行查阅。
系统用户主界面图如下所示。

图5.10系统用户界面设计
添加系统用户信息关键代码:
@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);
}
5.4.2新闻分类管理界面
管理员负责管理新闻分类,确保新闻稿件能够按照不同类别有效归档。管理员可以对新闻分类进行增删改查操作,例如新增“快迅”、“热点”等分类,并设置分类的排序顺序,使用户在前端界面上能够更直观地浏览新闻内容。此外,管理员还可以管理子分类,以满足更复杂的分类需求,提升新闻管理的灵活性和结构化程度。
新闻分类管理主界面图如下所示。

图5.11新闻分类管理界面设计
5.4.3新闻稿件管理界面
管理员可以对系统内的所有新闻稿件进行集中管理,包括审核、修改和删除等操作。在稿件审核方面,管理员可以查看记者用户提交的稿件详情(如标题、正文、分类、图片附件等),审核通过后,稿件将发布到前端页面;若审核不通过,可填写驳回原因并通知投稿者。管理员还可以对已发布的新闻稿件进行编辑,修改内容、分类或发布时间。支持按分类或时间范围筛选稿件,进行批量删除或归档操作。此外,管理员可通过数据统计功能查看稿件的阅读量和评论数,分析内容的受欢迎程度,为新闻管理和优化提供数据支持。
新闻稿件管理界面如下所示。

图5.12新闻稿件管理详情界面设计
5.4.4系统管理界面
管理员可以对轮播图进行管理,包括添加、修改、删除轮播图,设置轮播图属性等。
系统管理界面如下所示。

图5.13系统管理界面设计
5.4.5公告通知管理界面
管理员可以发布公告信息,所有用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。
公告通知管理界面如下所示。

图5.14公告通知管理界面设计
上传图片关键代码如下:
@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, "上传失败");
6 系统测试
6.1测试目的与意义
在软件开发生命周期中,系统测试占据着举足轻重的地位。通过进行全面而系统的测试,我们能够确保软件在实际使用环境中具备稳定运行的能力,从而满足用户的多样化需求,并显著提升软件的整体质量与可靠性。这一过程不仅有助于识别并修复潜在问题,还能为软件的持续优化提供有力支撑。
随着现代信息的快速发展,在社会各大领域中已经都开始应用网络信息技术,在应用网络技术的同时人们也开始把软件的质量问题作为了一个重要焦点来关注,因为一个软件的好与坏它决定着这个系统在市场上的生存,所以我们必须要把软件质量来做好,这样才有一定的生存能力。对于用户来说它们首先选用的都是保证这个系统软件的质量问题,因为一个系统的软件质量决定着用户在后期上成本经济的问题。图6-1就是纠错测试流程。

图6.1测试与纠错信息流程
6.2测试用例
在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6.1系统登录功能测试用例
|
功能描述 |
用于系统登录 |
|
|
测试目的 |
检测登录时的合法性检查 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
输入的用户名和密码带有非法字符 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名或者密码为空 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名和密码不存在 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入正确的用户名和密码 |
登录成功 |
与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
表6.2注册功能测试用例
|
功能描述 |
用于用户注册 |
|
|
测试目的 |
检测用户注册时的合法性检查 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
输入的手机号不合法 |
提示请输入正确的手机号码 |
与预期结果一致 |
|
输入的字段为空 |
提示必填项不能为空 |
与预期结果一致 |
|
输入的密码少于6位 |
提示密码必须为6-12位 |
与预期结果一致 |
|
输入的密码大于12位 |
提示密码必须为6-12位 |
与预期结果一致 |
下表是新闻分类管理功能的测试用例,检测了对新闻分类的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
表6.3新闻分类管理的测试用例
|
功能描述 |
用于新闻分类 |
|
|
测试目的 |
检测新闻分类时的各种操作的运行情况 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加新闻分类,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加新闻分类,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改新闻分类,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改新闻分类,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除新闻分类,选择新闻分类删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索新闻分类,输入存在的新闻分类名 |
查找出相应新闻分类 |
与预期结果一致 |
|
点击搜索新闻分类,输入不存在的新闻分类名 |
不显示新闻分类 |
与预期结果一致 |
下表是新闻稿件管理功能的测试用例,检测了新闻稿件管理中对新闻稿件的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
表6.4新闻稿件管理的测试用例
|
功能描述 |
用于新闻稿件 |
|
|
测试目的 |
检测新闻稿件时的各种操作的运行情况 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加新闻稿件,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加新闻稿件,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改新闻稿件,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改新闻稿件,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除新闻稿件,选择新闻稿件删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索新闻稿件,输入存在的新闻稿件名 |
查找出相应新闻稿件 |
与预期结果一致 |
|
点击搜索新闻稿件,输入不存在的新闻稿件名 |
不显示新闻稿件 |
与预期结果一致 |
下表是公告通知管理功能的测试用例,检测了公告通知管理中对公告通知的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
表6.5公告通知管理的测试用例
|
功能描述 |
用于公告通知 |
|
|
测试目的 |
检测公告通知时的各种操作的运行情况 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加公告通知,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加公告通知,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改公告通知,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改公告通知,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除公告通知,选择公告通知删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索公告通知,输入存在的公告通知名 |
查找出相应公告通知 |
与预期结果一致 |
|
点击搜索公告通知,输入不存在的公告通知名 |
不显示公告通知 |
与预期结果一致 |
下表是评论管理功能的测试用例,检测了评论管理中对评论的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
表6.6评论管理的测试用例
|
功能描述 |
用于评论 |
|
|
测试目的 |
检测评论时的各种操作的运行情况 |
|
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加评论,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加评论,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改评论,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改评论,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除评论,选择评论删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索评论,输入存在的评论名 |
查找出相应评论 |
与预期结果一致 |
|
点击搜索评论,输入不存在的评论名 |
不显示评论 |
与预期结果一致 |
6.3测试分析
本校园新闻管理系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给客户带来了极大的方便。
(2)该校园新闻管理系统开发与设计内容全面,管理方便可以及时的全面的处理各种错误,异常,这样避免了很多因客户的马虎操作而出现的失误,其操作方便,会员界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进校园新闻管理系统的发展,发展前景广阔。
7 结束语
通过开发校园新闻管理系统,我深刻体会到软件开发的完整流程。首先,在确定开发目标后,我进行了详细的需求分析,明确了系统所需的各项功能。接下来,我设计了系统的功能框架和数据库结构,包括实体和数据表的设计。随后,我实现了各个功能模块的详细界面,并进行了全面的功能测试。尽管在这个过程中遇到了各种挑战,但通过反复分析和深入思考,借助相关文献和解决方案,我成功地解决了这些问题,最终使校园新闻管理系统顺利运行。
虽然该系统在功能上基本满足了用户的需求,但仍有许多需要改进的地方。在接下来的开发阶段,我计划进行以下改进:
用户界面设计:目前的操作页面虽然满足了简易操作的要求,但在多样化设计方面还有提升空间。我将考虑引入更多丰富的设计元素,使界面更加美观和用户友好。
安全性能优化:针对系统安全性能的增强,需要进一步优化系统的整体防护能力。具体而言,将要对程序退出的安全性进行加强,确保在退出过程中不存在数据泄露或系统不稳定的风险。同时,对系统的并发处理能力进行升级,以确保在高并发场景下系统能够保持稳定的运行状态。这些改进措施将共同提升系统的安全性能,确保在各种使用场景下,系统都能为用户提供安全、可靠的服务。
性能优化:在性能优化方面,将着重于对程序的数据结构和代码逻辑进行精细化调整。通过优化,旨在确保系统能在高负载下保持稳定且高效的运行状态。优化后的系统应具备快速处理大量事务的能力,显著缩短事务处理时间,从而提高整体工作效率。同时,致力于降低服务器资源的占用率,以实现资源的高效利用和成本的有效控制。这些优化措施将共同提升系统的整体性能,为用户提供更加流畅、高效的服务体验。
通过这些改进,我希望能够进一步提升校园新闻管理系统的用户体验和性能,使其更加贴合实际需求。
参考文献
[1]曲锦旭.基于SpringBoot的农作物受灾分析系统的设计与实现[J].农业工程技术,2023,43(35):18-19.DOI:10.16815/j.cnki.11-5436/s.2023.35.006.
[2]姜一波.基于SpringBoot+Vue的在线考试系统设计与实现[J].无线互联科技,2023,20(23):68-71.
[3]洪保刘.基于大数据+SpringBoot技术的全国传染病数据分析可视化平台[J].数字技术与应用,2023,41(11):161-164.DOI:10.19695/j.cnki.cn12-1369.2023.11.50.
[4]艾钰承,朱海风,刘舟.基于SpringBoot的“喵站”宠物服务平台的设计与实现[J].科技资讯,2023,21(22):22-25.DOI:10.16661/j.cnki.1672-3791.2305-5042-0756.
[5]傅婷婷.全媒体新闻生产管理系统的设计与实现[J].广播与电视技术,2023,50(09):77-81.DOI:10.16171/j.cnki.rtbe.20230009014.
[6]Lu R ,Li Y ,Zeng H , et al.Design and Implementation of Child Missing Registration and Mutual Aid Mini Program Based on Java[J].Advances in Computer, Signals and Systems,2023,7(7):
[7]康晶晶,李青云.Java面向对象程序设计课程的教学实践[J].电子技术,2023,52(08):262-263.
[8]Ullenboom C .Java Programming Exercises:The Workbook for Becoming a Great Java Developer[M].CRC Press:2023-07-18.
[9]Allen C ,Mazanko A ,Abdehagh N , et al.A New ODE-Based Julia Implementation of the Anaerobic Digestion Model No. 1 Greatly Outperforms Existing DAE-Based Java and Python Implementations[J].Processes,2023,11(7):
[10]蒋先梅.基于MVC模式的新闻管理系统的设计与实现[J].无线互联科技,2023,20(11):77-79.
[11]和占全,李晓明,冯汝结,等.基于信创的互联网新闻数据信息安全管理系统的设计与实现[J].网络安全技术与应用,2023,(03):94-96.
[12]梁宽宏.基于MVC架构的校园新闻发布管理系统[J].电子世界,2021,(18):182-183.DOI:10.19353/j.cnki.dzsj.2021.18.078.
[13]闫慧珍.基于数据爬取的新闻宣传信息系统的设计与实现[D].中北大学,2021.DOI:10.27470/d.cnki.ghbgc.2021.000936.
[14]A. S A ,J. A A .Evaluating Python, C++, JavaScript and Java Programming Languages Based on Software Complexity Calculator (Halstead Metrics)[J].IOP Conference Series: Materials Science and Engineering,2021,1076(1):012046-.
[15]F.G. T ,A. M .What is in a name? An analysis of associations among java packaging and artifact names[J].CEUR Workshop Proceedings,2021,2978
[16]牛怀岗,林关成.基于SSM框架的新闻发布管理系统设计与实现[J].现代电子技术,2020,43(21):127-131.DOI:10.16652/j.issn.1004-373x.2020.21.030.
[17]Kyaw S H H ,Wint S S,Funabiki N, et al.A Code Completion Problem in Java Programming Learning Assistant System[J].IAENG International Journal of Computer Science,2020,47.0(3.0):
[18]任超.面向互联网的新闻管理系统设计与实现[D].山东大学,2020.DOI:10.27272/d.cnki.gshdu.2020.002938.
[19]韩旭.基于WEB的新闻管理系统的设计与实现[J].电子世界,2020,(03):204-205.DOI:10.19353/j.cnki.dzsj.2020.03.118.
[20]袁文涛,微擎新闻管理系统V2.5.安徽省,宿州市微擎云计算有限公司,2020-01-14.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
免费领取项目源码,请关注❤点赞收藏并私信博主,谢谢-
更多推荐



所有评论(0)