摘 要
本研究设计并实现了一个基于SpringBoot框架的校友捐赠管理系统,分为用户端微信小程序和管理端平台两大部分。用户端微信小程序提供注册登录功能,并支持多种服务:首页轮播图动态展示、校友捐赠项目分类浏览、详细的捐赠公示信息查看、校园资讯获取及个人中心数据管理。
管理端侧重于系统维护和数据管理,包括系统用户的权限控制、专业与班级分类管理、项目申请审核流程优化、校友捐赠及其记录的全面管理以及系统配置如轮播图管理和校园公告发布等。严格的权限设置和数据统计分析不仅提升了管理效率,也确保了捐赠过程的高度透明性和可靠性。
关键词:Spring Boot;校友捐赠管理;系统设计
Abstract
This study designed and implemented an alumni donation management system based on SpringBoot framework, which is divided into two parts: client wechat small program and management platform. The client wechat mini program provides registration and login function, and supports a variety of services: dynamic display of home page rotation map, classified browsing of alumni donation projects, detailed donation publicity information viewing, campus information acquisition and personal center data management.
The management side focuses on system maintenance and data management, including permission control of system users, professional and class classification management, optimization of project application review process, comprehensive management of alumni donations and records, as well as system configuration such as rotation map management and campus announcements. Strict authority setting and data statistical analysis not only improve the management efficiency, but also ensure the high transparency and reliability of the donation process.
Keywords: Spring Boot; alumni donation management; system design
目 录
1 前 言
1.1 研究背景和意义
1.2 国内外研究现状
1.3 论文结构与章节安排
2 关键技术
2.1 Java
2.2 MySQL
2.3 Spring Boot框架
2.4 B/S模式
2.5 小程序框架以及目录结构介绍
3 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 功能需求分析
3.3 系统性能分析
3.4 系统流程分析
3.4.1 程序操作流程
3.4.2 登录流程
3.4.3 注册流程
4 系统设计
4.1 总体设计
4.1.1 框架设计
4.1.2 功能模块设计
4.2 数据库设计
4.2.1 E-R图
4.2.2 数据库表结构设计
5 系统实现
5.1 学生用户模块
5.1.1 学生用户登录界面
5.1.2 用户注册界面
5.1.3 首页界面
5.1.4 校园资讯界面
5.1.5 校友捐助界面
5.1.6 捐赠记录界面
5.1.7 评论管理界面
5.2 后台管理员模块
5.2.1 系统用户界面
5.2.2 校友捐赠管理界面
5.2.3 系统管理界面
5.2.4 通知公告管理界面
6 系统测试
6.1 测试目的与意义
6.2 测试用例
6.3 测试分析
7 结束语
参考文献
致 谢
近年来,越来越多的高校开始探索利用信息技术手段来优化校友捐赠管理系统。通过构建基于Web或移动应用的捐赠平台,可以实现捐赠项目的在线发布与管理、资金流向的透明化公示以及校友之间的互动交流[1]。现有的系统往往存在功能单一、用户体验差、数据安全性和隐私保护不足等问题。设计一个高效、透明且用户友好的校友捐赠管理系统显得尤为重要[2]。传统校友捐赠管理模式依赖手工记录和线下沟通,导致信息更新不及时、数据冗余和重复劳动。
采用信息化手段后,管理员可以通过后台系统实时查看和管理所有捐赠项目及其进展情况,极大地提高了工作效率[3]。通过构建一个透明化的捐赠微信小程序平台,可以详细展示每个捐赠项目的筹集金额、已筹金额、已捐人数等信息,并提供点赞、评论等功能,增强校友和社会公众对捐赠过程的信任感[4]。微信小程序捐赠系统的倒计时机制确保了救助类项目的按时下架,进一步提升了管理的规范性和透明度。这种透明化管理有助于提升高校的社会公信力。
高校校友不仅是学校的重要资源,也是学校文化建设的重要力量。通过构建一个互动性强的校友捐赠微信小程序平台,不仅可以方便校友参与捐赠活动,还能增强校友之间以及校友与母校之间的情感纽带。例如,校友可以在微信小程序平台上分享自己的捐赠故事、点赞和评论其他校友的捐赠行为,形成良好的社区氛围。这种互动不仅增强了校友的归属感,也促进了校园文化的建设。高校是知识传播和社会责任培养的重要场所。通过校友捐赠管理微信小程序,不仅可以为高校筹集更多的资金用于教学科研、学生资助等活动,还可以引导校友关注和支持母校的发展,培养他们的社会责任感[5]。
随着高等教育事业的发展,校友捐赠对于学校的建设与发展发挥着日益重要的作用。为了高效管理校友捐赠事务,提升捐赠工作的透明度与效率,基于 SpringBoot 的校友捐赠管理系统应运而生。SpringBoot 作为一款流行的 Java 开发框架,能够简化开发流程、提高开发效率,为构建功能丰富、性能稳定的校友捐赠管理系统提供有力支持[6]。
国外学者在系统功能设计方面进行了深入探讨。校友捐赠管理系统应具备全面的捐赠信息管理功能,包括捐赠者信息录入、捐赠项目管理、捐赠款项追踪等。通过对多所高校捐赠数据的分析,强调系统需能实时更新捐赠状态,为捐赠者提供清晰的捐赠反馈,以增强捐赠者的参与感与忠诚度[7]。其研究还指出系统应具备良好的扩展性,以便根据学校发展需求灵活添加新的捐赠项目或功能模块。在系统架构设计上,基于 SpringBoot 的微服务架构是构建校友捐赠管理系统的理想选择。微服务架构能够将系统拆分为多个独立的服务模块,每个模块专注于特定功能,如用户管理服务、捐赠业务服务等[8]。在线客服能够及时解答校友在捐赠过程中的疑问,提供一对一的帮助;校友社区则为校友提供交流平台,校友可分享捐赠心得、学校记忆等,增强校友之间的联系与对学校的归属感,从而进一步促进校友捐赠行为。校友捐赠管理系统涉及大量敏感信息,如捐赠者个人身份信息、财务数据等,必须采取严格的安全防护措施。基于 SpringBoot 的系统可利用其内置的安全框架,如 Spring Security,实现用户身份认证、授权管理、数据加密传输与存储等功能。同时,定期进行安全漏洞扫描与修复,确保系统免受外部攻击,保障捐赠者信息安全[9]。
国内研究人员在系统功能需求分析方面做了大量工作。对多所高校校友工作部门的调研,总结出校友捐赠管理系统应具备校友信息管理、捐赠项目策划与发布、捐赠流程管理、捐赠数据分析等核心功能[10]。校友信息管理需涵盖校友基本信息、在校经历、工作情况等多维度数据,以便更好地了解校友资源,为精准开展捐赠工作提供支持[11]。捐赠项目策划与发布功能要求系统能够方便地创建各类捐赠项目,并详细介绍项目背景、目标与预期效果,吸引校友参与捐赠[12]。微信小程序捐赠系统应具备智能提醒功能,如捐赠到期提醒、捐赠荣誉提醒等,以提高捐赠工作的效率与质量[13]。同时,为满足学校财务管理需求,系统应能与学校财务系统进行无缝对接,实现捐赠款项的自动对账与财务报表生成,确保捐赠资金管理的规范化与透明化[14]。在技术实现方面,通过整合 MyBatis 数据库持久层框架,实现对系统数据的高效存储与管理。在前端开发中,采用 Vue.js 等流行的前端框架,构建响应式用户界面,提升用户体验。同时,利用 SpringBoot 的自动配置特性,减少繁琐的配置工作,加快系统开发进度。在高并发场景下,运用 SpringBoot 集成的负载均衡技术,如 Nginx,实现请求的合理分发,确保系统的稳定性与可用性。
本文共分为七章,章节内容安排如下:
第一章:引言,主要介绍校友捐赠微信小程序及管理系统领域研究的背景和意义,概述国内外研究的现状。
第二章:关键技术,主要探讨和说明实现校友捐赠微信小程序及管理系统的关键技术。
第三章:系统分析,主要从校友捐赠微信小程序及管理系统的可行性、功能、性能等方面进行分析,为后续系统设计提供理论支持。
第四章:系统设计,主要对校友捐赠微信小程序及管理系统功能模块、数据库进行功能设计。
第五章:系统实现,主要介绍了校友捐赠微信小程序及管理系统的功能、系统界面的实现。
第六章:系统测试,主要对校友捐赠微信小程序及管理系统进行测试,验证功能完整性、稳定性和安全性,评估系统在实际运行中的性能表现。
第七章:结束语。总结全文研究内容,提出对校友捐赠管理系统领域未来发展的展望和建议,指出研究的不足和可优化之处,为相关领域的进一步探索提供参考。
Java是一种跨平台的编程语言,广泛用于开发各种类型的应用程序,包括Web应用、移动应用和大型软件系统。在校友捐赠管理系统中,Java通常用于后端开发,提供强大的处理能力和稳定性。同时Java是一种面向对象的编程语言,支持封装、继承和多态等特性,使代码更易于维护和重用。还拥有丰富的标准库和第三方框架,如Spring、Hibernate等,可以大大提高开发效率。
MySQL是一种流行的开源关系型数据库管理系统,用于存储和管理数据。在校友捐赠管理系统中,MySQL可以用于数据存储、数据查询和数据管理等方面,用户可以免费使用和修改源代码,为平台提供可靠和高性能的数据库支持。MySQL支持多种存储引擎,如InnoDB和MyISAM,可以根据不同的应用场景选择合适的存储引擎,以提高性能;提供了多种数据安全机制,如用户权限管理、数据加密和备份恢复等,确保数据的安全性。
SpringBoot是一个用于构建微服务的Java框架,简化了Spring应用程序的开发和部署过程。SpringBoot通过自动配置和约定优于配置的理念,简化了Spring应用程序的开发过程,使开发者可以更快地构建和部署应用程序[15];拥有丰富的生态系统,如Spring Cloud、Spring Security等,可以满足各种企业级应用的需求。在校友捐赠管理系统中,SpringBoot可以快速搭建后端服务,并实现各种功能模块的集成和管理[16]。
B/S模式,即浏览器/服务器模式,是一种常见的网络应用架构模式。在B/S模式中,用户通过浏览器作为客户端与服务器进行交互。在浏览器/服务器(browser / Server Architecture)系统中,用户只需通过浏览器,就能够轻松地向分布在网络各处的众多服务器发送海量的请求。B/S系统大大地简化了客户端的工作,让用户体验更加便捷。
这款微信小程序的设计旨在帮助用户快速、便捷地创建出一款拥有完全独特色的应用。它由一套完善的框架结构,将用户界面、操作界面、功能界面等多种功能完美结合,使用户只需要一点点的操作,就能轻松实现微信小程序的创建。框架的核心功能是一个快速的数据绑定机制,它能够轻松地将用户的信息和界面进行一致性的管理。它不仅支持对用户信息的实时监控,还能够根据用户的需求,实现对界面的快速调整和优化,从而使用户能够轻松地构建强大的微信小程序。
从技术角度来看,SpringBoot作为一种轻量级、快速构建的Java框架,能够提高开发效率,降低系统的复杂程度,易于维护和升级。同时,MySQL作为关系型数据库,能够支持平台数据的存储与管理,保障系统的稳定性和高效性。
本系统具有技术可行性。
考虑到SpringBoot、Vue、MyBatis Plus及MySQL等均为开源技术,无需支付高昂的许可费用,大大降低了系统的开发成本。同时,这些技术拥有广泛的用户群体和成熟的社区支持,便于获取技术支持和资源共享。此外,系统的实施将显著用户体验,从而带来潜在的经济效益。因此,从经济角度来看,该系统的开发同样具备可行性。
系统设计应遵循用户友好原则,确保用户能够轻松上手并高效使用。通过合理的界面布局、直观的操作流程以及详尽的帮助文档,可以大大降低用户的学习成本,提高系统的操作可行性。此外,系统还应具备完善的权限管理和数据安全机制,确保操作的安全性和合规性。
从技术、经济和操作三个维度来看,校友捐赠管理系统的开发均具备高度的可行性。
(一)用户角色用例如下图所示。
-
-
-
-
-
- 用户用例图
-
-
-
-
学生用户具体功能说明如下所示。
- 首页:学生用户可以通过首页浏览平台的主要信息,快速定位自己所需的帮助。
- 轮播图展示,展示管理员新增的轮播图,用于传达重要信息或宣传特定活动。
3.校友捐赠:展示所有校友捐赠项目。按类别筛选出与校园相关的捐赠项目,并按刷新、热度、点赞最高提供排序选项。
4.校园资讯,展示所有校园资讯。按照最新发布的顺序、用户的参与度如评论数等以及点赞数从高到低排序。
5.网站公告:网站公告有关于我们、联系方式和网站介绍,方便用户获取最新的官方信息。
6. 我的账户:用户可以在账户管理功能中查看和管理自己的个人资料。
7. 个人中心:个人中心为用户提供个性化服务,包括个人首页、评论管理等。该功能帮助用户方便地查看和管理自己参与的捐赠项目以及给与平台的反馈,确保透明和高效的操作流程。同时可以收藏关注的校园资讯以及捐赠项目,便于用户随时查看感兴趣的内容。
(二)管理员角色用例如下图所示。

系统后台管理端管理员具体功能说明如下所示。
- 后台首页:展示关键统计信息,如校友捐赠统计、捐赠记录统计和捐赠公示统计等,帮助管理者快速了解整体情况。
- 系统用户:分为管理员和学生用户,详细记录了学生用户的学号、班级、账号状态(可用、异常、已冻结、已注销)、姓名、性别、专业系别等信息。
- 专业分类管理:对不同的捐赠项目进行管理,包括添加新专业分类、删除已有分类,并能查看每个项目的发布时间、筹集金额、已筹金额、已捐人数、用途介绍等详情。
- 班级分类管理:用于管理和添加班级分类。
- 项目分类管理:涉及项目分类的列表查看与添加操作。
- 项目申请管理:处理学生提交的捐赠项目申请,审核通过后可发布项目。
- 校友捐赠管理:管理校友捐赠的相关项目,支持删除、修改操作,能够筛选同类项目并导出捐赠记录。
- 捐赠记录管理:维护所有捐赠的记录列表。
- 捐赠公示管理:公示捐赠项目的详情,包括筹集金额、已筹金额、捐款人名单等,增强透明度。
- 系统管理:包括轮播图管理和校园公告管理,用于更新网站上的动态内容。
- 资源管理:负责校园资讯的管理,涵盖封面图、标题、分类、标签、描述、正文等内容。
对于校友捐赠管理系统的设计与实现,下面是系统性能分析表:
-
-
-
-
- 性能需求表
-
-
-
|
项目 |
内容 |
|
响应时间 |
系统对用户请求的响应时间需在500ms以内 |
|
并发用户数 |
系统需要支持1000个并发用户同时访问 |
|
吞吐量 |
系统每秒需要处理1000个请求 |
|
可用性 |
系统需要保证每月99.9%的可用性 |
|
数据安全 |
用户敏感数据需要加密存储,并支持数据库备份和恢复 |
|
数据一致性 |
系统中的数据操作需保证ACID特性,确保数据一致性 |
|
扩展性 |
系统需要支持水平扩展,能够方便地增加服务器节点以应对高请求量 |
|
可维护性 |
系统代码需要清晰易懂、结构良好,方便维护和修改 |
|
日志记录 |
系统需要记录用户操作日志、异常日志以及系统运行日志 |
|
监控报警 |
系统需要实时监控运行状态,当系统异常时能够及时发送警报通知相关人员 |
|
缓存设置 |
针对频繁使用的数据,系统需要进行合适的缓 |
用户访问系统,可以选择进行注册或登录操作。注册成功后,用户可以使用注册的账号登录系统。登录后的用户可以进入系统功能界面,使用自己权限内的功能操作。程序操作流程图如下图所示。

用户访问系统,进入登录页面页面,入其用户名和密码,后端服务接收登录请求,验证用户提供的用户名和密码是否匹配数据库中存储的信息,验证通过即可登录成功。登录流程图如下图所示。

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

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

功能模块设计是系统开发过程中的重要阶段,它旨在将系统划分为不同的模块,每个模块负责完成特定的功能或任务。校友捐赠管理系统由多个功能模块组成,每个模块下又包含具体的功能操作。功能模块图如下图所示。
E-R图有助于理清系统中的数据结构和关系,为后续的数据库表结构设计提供指导。在进行数据库设计之前,首先需要先绘制实体-关系(E-R)图。E-R图将帮助我们理清业务中的实体(Entity)及它们之间的关系(Relationship),从而为后续的数据库表设计提供基础。根据前文可以得出本校友捐赠管理系统拥有多个实体,在此列举主要实体,各个实体之间联系总E-R图如下图所示。

在E-R图确定后,接下来可以根据实体和关系的属性设计数据库表结构。在E-R图明确了实体和它们之间的关系后,接下来可以开始设计数据库表结构。每个实体对应一个数据库表,每个属性对应表中的字段。如下列表格所示,在此列举主要数据表。
表 4-1-access_token(登陆访问时长)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
token_id |
int |
是 |
是 |
临时访问牌ID | |
|
2 |
token |
varchar |
64 |
否 |
否 |
临时访问牌 |
|
3 |
info |
text |
65535 |
否 |
否 |
信息 |
|
4 |
maxage |
int |
是 |
否 |
最大寿命:默认2小时 | |
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
7 |
user_id |
int |
是 |
否 |
用户编号 |
表 4-2-alumni_donation(校友捐赠)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
alumni_donation_id |
int |
是 |
是 |
校友捐赠ID | |
|
2 |
donation_title |
varchar |
64 |
是 |
是 |
捐赠标题 |
|
3 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
4 |
donation_project |
varchar |
64 |
否 |
否 |
捐赠项目 |
|
5 |
release_date |
date |
否 |
否 |
发布日期 | |
|
6 |
fundraising_amount |
double |
否 |
否 |
筹集金额 | |
|
7 |
raised_amount |
double |
否 |
否 |
已筹金额 | |
|
8 |
number_of_donated_individuals |
double |
否 |
否 |
已捐人数 | |
|
9 |
usage_introduction |
text |
65535 |
否 |
否 |
用途介绍 |
|
10 |
donation_details |
longtext |
4294967295 |
否 |
否 |
捐赠详情 |
|
11 |
hits |
int |
是 |
否 |
点击数 | |
|
12 |
praise_len |
int |
是 |
否 |
点赞数 | |
|
13 |
collect_len |
int |
是 |
否 |
收藏数 | |
|
14 |
comment_len |
int |
是 |
否 |
评论数 | |
|
15 |
timer_title |
varchar |
64 |
否 |
否 |
计时器标题 |
|
16 |
timing_start_time |
datetime |
否 |
否 |
计时开始时间 | |
|
17 |
timing_end_time |
datetime |
否 |
否 |
计时结束时间 | |
|
18 |
donation_record_limit_times |
int |
是 |
否 |
立即捐赠限制次数 | |
|
19 |
donation_publicity_limit_times |
int |
是 |
否 |
公示项目限制次数 | |
|
20 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
21 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
22 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
23 |
source_id |
int |
否 |
否 |
来源ID | |
|
24 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-3-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 |
否 |
否 |
文章描述 |
表 4-4-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 |
是 |
否 |
更新时间 |
表 4-5-auth(用户权限管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
auth_id |
int |
是 |
是 |
授权ID | |
|
2 |
user_group |
varchar |
64 |
否 |
否 |
用户组 |
|
3 |
mod_name |
varchar |
64 |
否 |
否 |
模块名 |
|
4 |
table_name |
varchar |
64 |
否 |
否 |
表名 |
|
5 |
page_title |
varchar |
255 |
否 |
否 |
页面标题 |
|
6 |
path |
varchar |
255 |
否 |
否 |
路由路径 |
|
7 |
parent |
varchar |
64 |
否 |
否 |
父级菜单 |
|
8 |
parent_sort |
int |
是 |
否 |
父级菜单排序 | |
|
9 |
position |
varchar |
32 |
否 |
否 |
位置 |
|
10 |
mode |
varchar |
32 |
是 |
否 |
跳转方式 |
|
11 |
add |
tinyint |
是 |
否 |
是否可增加 | |
|
12 |
del |
tinyint |
是 |
否 |
是否可删除 | |
|
13 |
set |
tinyint |
是 |
否 |
是否可修改 | |
|
14 |
get |
tinyint |
是 |
否 |
是否可查看 | |
|
15 |
field_add |
text |
65535 |
否 |
否 |
添加字段 |
|
16 |
field_set |
text |
65535 |
否 |
否 |
修改字段 |
|
17 |
field_get |
text |
65535 |
否 |
否 |
查询字段 |
|
18 |
table_nav_name |
varchar |
500 |
否 |
否 |
跨表导航名称 |
|
19 |
table_nav |
varchar |
500 |
否 |
否 |
跨表导航 |
|
20 |
option |
text |
65535 |
否 |
否 |
配置 |
|
21 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
22 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-6-class_classification(班级分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
class_classification_id |
int |
是 |
是 |
班级分类ID | |
|
2 |
class_classification |
varchar |
64 |
否 |
否 |
班级分类 |
|
3 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-7-code_token(验证码)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
code_token_id |
int |
是 |
是 |
验证码ID | |
|
2 |
token |
varchar |
255 |
否 |
否 |
令牌 |
|
3 |
code |
varchar |
255 |
否 |
否 |
验证码 |
|
4 |
expire_time |
timestamp |
是 |
否 |
失效时间 | |
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-8-collect(收藏)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
collect_id |
int |
是 |
是 |
收藏ID | |
|
2 |
user_id |
int |
是 |
是 |
收藏人ID | |
|
3 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
4 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
5 |
source_id |
int |
是 |
否 |
来源ID | |
|
6 |
title |
varchar |
255 |
否 |
否 |
标题 |
|
7 |
img |
varchar |
255 |
否 |
否 |
封面 |
|
8 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-9-comment(评论)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
comment_id |
int |
是 |
是 |
评论ID | |
|
2 |
user_id |
int |
是 |
是 |
评论人ID | |
|
3 |
reply_to_id |
int |
是 |
否 |
回复评论ID | |
|
4 |
content |
longtext |
4294967295 |
否 |
否 |
内容 |
|
5 |
nickname |
varchar |
255 |
否 |
否 |
昵称 |
|
6 |
avatar |
varchar |
255 |
否 |
否 |
头像地址 |
|
7 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
9 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
10 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
11 |
source_id |
int |
是 |
否 |
来源ID |
表 4-10-donation_publicity(捐赠公示)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
donation_publicity_id |
int |
是 |
是 |
捐赠公示ID | |
|
2 |
donation_title |
varchar |
64 |
否 |
否 |
捐赠标题 |
|
3 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
4 |
donation_project |
varchar |
64 |
否 |
否 |
捐赠项目 |
|
5 |
publicity_date |
date |
否 |
否 |
公示日期 | |
|
6 |
fundraising_amount |
double |
否 |
否 |
筹集金额 | |
|
7 |
raised_amount |
double |
否 |
否 |
已筹金额 | |
|
8 |
number_of_donated_individuals |
double |
否 |
否 |
已捐人数 | |
|
9 |
donation_documents |
varchar |
255 |
否 |
否 |
捐款文件 |
|
10 |
usage_introduction |
text |
65535 |
否 |
否 |
用途介绍 |
|
11 |
donation_list |
text |
65535 |
否 |
否 |
捐款名录 |
|
12 |
completion_status |
text |
65535 |
否 |
否 |
完成情况 |
|
13 |
capital_flow |
text |
65535 |
否 |
否 |
资金流向 |
|
14 |
details_description |
longtext |
4294967295 |
否 |
否 |
详情说明 |
|
15 |
hits |
int |
是 |
否 |
点击数 | |
|
16 |
praise_len |
int |
是 |
否 |
点赞数 | |
|
17 |
collect_len |
int |
是 |
否 |
收藏数 | |
|
18 |
comment_len |
int |
是 |
否 |
评论数 | |
|
19 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
20 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
21 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
22 |
source_id |
int |
否 |
否 |
来源ID | |
|
23 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-11-donation_record(捐赠记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
donation_record_id |
int |
是 |
是 |
捐赠记录ID | |
|
2 |
donation_number |
varchar |
64 |
否 |
否 |
捐赠编号 |
|
3 |
donation_title |
varchar |
64 |
否 |
否 |
捐赠标题 |
|
4 |
donation_project |
varchar |
64 |
否 |
否 |
捐赠项目 |
|
5 |
student_users |
int |
否 |
否 |
学生用户 | |
|
6 |
student_name |
varchar |
64 |
否 |
否 |
学生姓名 |
|
7 |
student_class |
varchar |
64 |
否 |
否 |
学生班级 |
|
8 |
professional_department_name |
varchar |
64 |
否 |
否 |
专业系称 |
|
9 |
donation_date |
date |
否 |
否 |
捐赠日期 | |
|
10 |
number_of_donors |
varchar |
64 |
是 |
否 |
捐赠人数 |
|
11 |
donation_amount |
double |
是 |
否 |
捐赠金额 | |
|
12 |
donation_remarks |
text |
65535 |
否 |
否 |
捐赠备注 |
|
13 |
pay_state |
varchar |
16 |
是 |
否 |
支付状态 |
|
14 |
pay_type |
varchar |
16 |
否 |
否 |
支付类型: 微信、支付宝、网银 |
|
15 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
16 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
17 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
18 |
source_id |
int |
否 |
否 |
来源ID | |
|
19 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-12-hits(用户点击)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
hits_id |
int |
是 |
是 |
点赞ID | |
|
2 |
user_id |
int |
是 |
否 |
点赞人 | |
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID |
表 4-13-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID | |
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-14-praise(点赞)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
praise_id |
int |
是 |
是 |
点赞ID | |
|
2 |
user_id |
int |
是 |
是 |
点赞人 | |
|
3 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
5 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
6 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
7 |
source_id |
int |
是 |
否 |
来源ID | |
|
8 |
status |
tinyint |
是 |
否 |
点赞状态:1为点赞,0已取消 |
表 4-15-professional_classification(专业分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
professional_classification_id |
int |
是 |
是 |
专业分类ID | |
|
2 |
professional_classification |
varchar |
64 |
否 |
否 |
专业分类 |
|
3 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-16-project_application(项目申请)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
project_application_id |
int |
是 |
是 |
项目申请ID | |
|
2 |
student_users |
int |
否 |
否 |
学生用户 | |
|
3 |
student_id |
varchar |
64 |
否 |
否 |
学生学号 |
|
4 |
student_name |
varchar |
64 |
否 |
否 |
学生姓名 |
|
5 |
student_mobile_phone |
varchar |
64 |
否 |
否 |
学生手机 |
|
6 |
student_class |
varchar |
64 |
否 |
否 |
学生班级 |
|
7 |
professional_department_name |
varchar |
64 |
否 |
否 |
专业系称 |
|
8 |
donation_title |
varchar |
64 |
否 |
否 |
捐赠标题 |
|
9 |
cover_photo |
varchar |
255 |
否 |
否 |
封面图片 |
|
10 |
donation_project |
varchar |
64 |
否 |
否 |
捐赠项目 |
|
11 |
release_date |
date |
否 |
否 |
发布日期 | |
|
12 |
fundraising_amount |
double |
否 |
否 |
筹集金额 | |
|
13 |
usage_introduction |
text |
65535 |
否 |
否 |
用途介绍 |
|
14 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
15 |
examine_reply |
varchar |
16 |
否 |
否 |
审核回复 |
|
16 |
alumni_donation_limit_times |
int |
是 |
否 |
发布项目限制次数 | |
|
17 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
18 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-17-project_classification(项目分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
project_classification_id |
int |
是 |
是 |
项目分类ID | |
|
2 |
project_classification |
varchar |
64 |
否 |
否 |
项目分类 |
|
3 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
4 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-18-schedule(日程管理)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
schedule_id |
smallint |
是 |
是 |
日程ID | |
|
2 |
content |
varchar |
255 |
否 |
否 |
日程内容 |
|
3 |
scheduled_time |
datetime |
否 |
否 |
计划时间 | |
|
4 |
user_id |
int |
是 |
否 |
用户ID | |
|
5 |
create_time |
datetime |
否 |
否 |
创建时间 | |
|
6 |
update_time |
datetime |
否 |
否 |
更新时间 |
表 4-19-score(评分)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
score_id |
int |
是 |
是 |
评分ID | |
|
2 |
user_id |
int |
是 |
否 |
评分人 | |
|
3 |
nickname |
varchar |
64 |
否 |
否 |
昵称 |
|
4 |
score_num |
double |
是 |
否 |
评分 | |
|
5 |
create_time |
timestamp |
是 |
否 |
创建时间 | |
|
6 |
update_time |
timestamp |
是 |
否 |
更新时间 | |
|
7 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
8 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
|
9 |
source_id |
int |
是 |
否 |
来源ID |
表 4-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 |
是 |
否 |
更新时间 |
表 4-21-student_users(学生用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
student_users_id |
int |
是 |
是 |
学生用户ID | |
|
2 |
student_id |
varchar |
64 |
是 |
是 |
学生学号 |
|
3 |
student_name |
varchar |
64 |
否 |
否 |
学生姓名 |
|
4 |
student_mobile_phone |
varchar |
16 |
是 |
是 |
学生手机 |
|
5 |
student_gender |
varchar |
64 |
否 |
否 |
学生性别 |
|
6 |
student_class |
varchar |
64 |
否 |
否 |
学生班级 |
|
7 |
professional_department_name |
varchar |
64 |
否 |
否 |
专业系称 |
|
8 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
9 |
user_id |
int |
是 |
否 |
用户ID | |
|
10 |
create_time |
datetime |
是 |
否 |
创建时间 | |
|
11 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-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 |
否 |
否 |
文件类型 |
表 4-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 |
是 |
否 |
创建时间 |
表 4-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 |
是 |
否 |
更新时间 |
学生用户输入用户名和密码后,系统首先对这些输入进行基本的格式验证,确保用户名和密码符合系统设定的格式要求(如长度、特殊字符要求等)。系统接收到学生用户输入后,会根据用户名查找系统中存储的用户信息数据库或者其他持久化存储方式。系统需要验证密码的正确性,验证成功即可成功登录。

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

-
-
-
-
-
- 用户注册界面设计
-
-
-
-
注册关键代码如下:
/**
* 注册
* @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);
}
用户可以浏览平台发布的新闻资讯,了解校友捐赠的最新发展、和其他校友捐赠相关信息,帮助用户获得更多捐赠的信息资源和支持。
用户主界面图如下所示。

用户可以申请平台上的捐赠项目,通过该功能查看不同的捐赠项目并选择帮助的类别,爱心捐助主界面图如下所示。

-
-
-
-
-
- 校园资讯界面设计
-
-
- 校友捐助界面
-
-
捐助用户可以选择参与各种捐赠项目,支持感兴趣的捐赠活动,并完成捐赠操作,支持校园公益事业的发展。
校园捐助主界面图如下所示。

-
-
-
-
-
- 校友捐赠界面设计
-
-
-
-
校友捐赠捐助添加代码如下:
@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);
}
该功能允许捐助用户查看自己的所有捐赠历史,包括每次捐赠的时间、金额、项目、捐赠方式等详细信息。用户可以查看并支付自己参与的每一项公益捐赠,确保捐赠过程的透明度,并能帮助用户了解自己在公益事业中做出的贡献。如果有任何问题或异议,用户还可以通过该页面进行捐赠记录的查询和投诉处理。
捐赠记录主界面图如下所示。

评论管理功能允许捐助用户查看自己在平台上参与公益项目时所留下的评论或反馈。用户可以对每个项目提供自己的意见和建议,评论管理功能让用户能够轻松查看自己的评价历史,甚至修改或删除之前的评论。该功能帮助平台保持与捐助者的互动,确保用户的声音被听见,且平台可以根据用户的反馈进行改进。
评论管理主界面图如下所示。

管理员可以管理系统中的所有用户。此功能允许管理员添加、修改、删除用户信息,并根据需要调整用户权限,确保系统的安全性和可控性。
系统用户主界面图如下所示。
-
-
-
-
-
- 系统用户界面设计
-
-
-
-
添加系统用户信息关键代码:
@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);
}
管理员负责处理和管理捐赠项目及相关信息。通过该模块,管理员可以审查捐赠项目,确保每项捐赠活动的透明性和规范性,同时管理捐赠资金或物资的流向。
校友捐赠管理主界面图如下所示。
-
-
-
-
-
- 校友捐赠管理界面设计
-
-
-
-
添加校友捐赠用代码如下:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对轮播图进行管理,包括添加、修改、删除轮播图,设置轮播图属性等。
系统管理界面如下所示。
管理员可以发布公告信息,所有用户都可以查看公告信息。同时,管理员还需要能够查看和管理所有公告信息。
通知公告管理界面如下所示。
上传图片关键代码如下:
@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-1就是纠错测试流程。

-
-
-
-
-
- 测试与纠错信息流程
-
-
-
-
在系统的功能验证阶段,我们将对全部的功能界面进行全面测试。具体而言,我们将模拟用户行为,输入各类数据并进行提交操作,随后仔细观察和分析每个页面的响应反馈。这一过程旨在验证系统的功能完整性,确保页面所呈现的功能与预期相符,并能够完全实现预设的交互逻辑。通过这种全面细致的测试方法,我们将确保系统在实际应用中能够稳定、准确地响应用户需求。
下表是系统登录功能测试用例,检测了用户名和密码的不同的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
-
-
-
-
- 系统登录功能测试用例
-
-
-
|
功能描述 |
用于系统登录 | |
|
测试目的 |
检测登录时的合法性检查 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
输入的用户名和密码带有非法字符 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名或者密码为空 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入的用户名和密码不存在 |
提示用户名或者密码错误 |
与预期结果一致 |
|
输入正确的用户名和密码 |
登录成功 |
与预期结果一致 |
下表是注册功能测试用例,检测了各种数据的输入情况,观察系统的响应情况。得出该功能达到了设计目标。
-
-
-
-
- 注册功能测试用例
-
-
-
|
功能描述 |
用于用户注册 | |
|
测试目的 |
检测用户注册时的合法性检查 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
输入的手机号不合法 |
提示请输入正确的手机号码 |
与预期结果一致 |
|
输入的字段为空 |
提示必填项不能为空 |
与预期结果一致 |
|
输入的密码少于6位 |
提示密码必须为6-12位 |
与预期结果一致 |
|
输入的密码大于12位 |
提示密码必须为6-12位 |
与预期结果一致 |
下表是校友捐赠管理功能的测试用例,检测了对校友捐赠的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
-
-
-
-
- 校友捐赠管理的测试用例
-
-
-
|
功能描述 |
用于校友捐赠 | |
|
测试目的 |
检测校友捐赠时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加校友捐赠,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加校友捐赠,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改校友捐赠,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改校友捐赠,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除校友捐赠,选择校友捐赠删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索校友捐赠,输入存在的校友捐赠名 |
查找出相应校友捐赠 |
与预期结果一致 |
|
点击搜索校友捐赠,输入不存在的校友捐赠名 |
不显示校友捐赠 |
与预期结果一致 |
下表是捐赠记录管理功能的测试用例,检测了捐赠记录管理中对捐赠记录的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
-
-
-
-
- 捐赠记录管理的测试用例
-
-
-
|
功能描述 |
用于捐赠记录 | |
|
测试目的 |
检测捐赠记录时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加捐赠记录,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加捐赠记录,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改捐赠记录,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改捐赠记录,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除捐赠记录,选择捐赠记录删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索捐赠记录,输入存在的捐赠记录名 |
查找出相应捐赠记录 |
与预期结果一致 |
|
点击搜索捐赠记录,输入不存在的捐赠记录名 |
不显示捐赠记录 |
与预期结果一致 |
下表是通知公告管理功能的测试用例,检测了通知公告管理中对通知公告的增加,删除,修改,查询操作是否成功运行。观察系统的响应情况,得出该功能也达到了设计目标,系统运行正确。
前置条件;登录系统。
-
-
-
-
- 通知公告管理的测试用例
-
-
-
|
功能描述 |
用于通知公告 | |
|
测试目的 |
检测通知公告时的各种操作的运行情况 | |
|
测试数据以及操作 |
预期结果 |
实际结果 |
|
点击添加通知公告,必填项合法输入,点击保存 |
提示添加成功 |
与预期结果一致 |
|
点击添加通知公告,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改通知公告,必填项修改为空,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击修改通知公告,必填项输入不合法,点击保存 |
提示必填项不能为空 |
与预期结果一致 |
|
点击删除通知公告,选择通知公告删除 |
提示删除成功 |
与预期结果一致 |
|
点击搜索通知公告,输入存在的通知公告名 |
查找出相应通知公告 |
与预期结果一致 |
|
点击搜索通知公告,输入不存在的通知公告名 |
不显示通知公告 |
与预期结果一致 |
本校友捐赠管理系统开发与设计满足相关信息的管理需求,在设计时借鉴了国内外优秀网站的优点,从界面到系统设计都保证了管理员以及用户能够方便操作。系统的主要特点和优点归纳如下:
(1)本系统用的移置性和针对性都比较高,因为针对性高可以提供更好的服务而移置性可以在多个系统上运行,更给用户带来了极大的方便。
(2)该校友捐赠管理系统开发与设计内容全面,管理员可以及时的全面的处理各种错误,异常,这样避免了很多因用户的马虎操作而出现的失误,其操作方便,用户界面友好,能够上网的人都可以很好的进行操作。
经过对上述的测试结果分析,所有基本功能齐全,操作简单,系统运行性能良好,系统安全可靠,能促进校友捐赠管理系统的发展,发展前景广阔。
在本系统的设计和开发过程中阅览和学习了许多文献资料,从开发这个校友捐赠管理系统的过程中我也收获了许许多多宝贵的方法以及设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、SpringBoot、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
参考文献
- 周思源.高校校友会活动参与度影响因素研究[D].四川大学,2022.
- 郑兴焰,程付超.捐赠物品追溯和服务系统的实现[J].福建电脑,2022,38(01):69-72.
- 姜凡.从教育目的论视角谈将“校友捐赠”纳入人才培养质量评价[J].上海教育评估研究,2021,10(06):18-22+26.
- 黄晓飞.世界一流大学校友捐赠工作机制探讨——基于国际比较的视角[J].中国多媒体与网络教学学报(上旬刊),2021,(11):51-53.
- 刘昕,杨宇航,明康权,等.校内线上“跳蚤市场”爱心捐赠平台的搭建及应用[J].电子世界,2020,(09):195-196+199.
- Souto Otero Manuel, Donnelly Michael, Kanol Mine, et al. A Transactional Or A Relational Contract? The Student Consumer, Social Participation And Alumni Donations In Higher Education[J]. British Journal of Educational Studies, 2024, 72(1):85-107.
- Yongsheng Wang, . Exploring Strategies for Promoting Overseas Alumni Giving Activities in Colleges and Universities Based on Coupled Models[J]. Applied Mathematics and Nonlinear Sciences, 2024, 9(1)
- Xiao Ren, Xu Zhang, Jialu Li, et al. Paths of University Foundations to Stimulate Alumni's Willingness to Donate. 2022, 93
- Liang Xianping, Su You, Shang Weiwei, et al. Prior campus experience and alumni donation: a cross-cultural study of China and the USA[J]. Higher Education, 2022, 86(4):865-889.
- 王悦.基于RDS云数据库在Web应用中的优化策略研究[J].电脑编程技巧与维护,2024,(12):107-110.
- 刘涛.基于SpringBoot的实验室预约排课系统的设计与实现[J].办公自动化,2024,29(23):90-92.
- 韦彩仁,张锐杭.基于Vue 3和SpringBoot的学生信息管理系统设计与实现[J].电脑编程技巧与维护,2024,(10):3-6+20.
- 毕廷延,冯滨鲁,魏晨明.校友捐赠意识的现状、问题与培养路径——基于社会资本视角下的分析[J].潍坊学院学报,2024,24(02):67-71.
- 许舟洋,刘博宇.校园闲置物品捐赠和销售平台设计[J].现代计算机,2024,30(02):92-97.
- 屈佳妮,任泽中.高校校友捐赠行为的亲社会性动机分析与启示[J].经济研究导刊,2023,(16):158-160.
- 涂艳,潜力,谢苏华,等.大学排名、创富能力与校友捐赠[J].教育财会研究,2023,34(04):62-71.
- 屈佳妮.亲社会行为视角下的高校校友捐赠行为影响因素实证研究[D].江苏大学,2023.
- 徐崇贤.高校社会捐赠:概念、类型与策略优化[J].宁波大学学报(教育科学版),2023,45(01):111-118.
- 何长营.4C理论审视下高校校友捐赠工作的提升路径研究[J].国际公关,2022,(17):74-76.
- 吴文昕.高校校友会资源开发路径研究[D].江苏大学,2022.
致 谢
这次毕业设计能够完成,最重要的就是来自指导老师的帮助,老师不厌其烦的对我的论文及毕业设计提出非常有建设性的建议,我的毕设施能够完成离不开老师的帮助。我对老师由衷的表示感谢,
其次要感谢大学四年里学院里所有的任课老师的教导,老师们在我整个大学四年里给予了我丰富的知识,让我能够在大学中不虚度光阴,踏踏实实的学习,没有这些老师不辞辛劳的教诲,我无法完成这四年的学业。
最后,我要感谢我的家人和同学们。感谢父母在物质与精神上给予我无限的支持和鼓励。感谢我的同学们,在论文写作期间,你们给予了我许多宝贵的建议和帮助,让我在学术研究的道路上不再孤单。
再次感谢所有在我大学生活中给予我帮助和支持的人们。您们的关怀和鼓励将永远铭刻在我的心中,成为我未来前行的动力。
由于自己的水平有限,毕设仍然存在着很大的缺陷,各位老师若提出意见,我会努力改正。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
1523

被折叠的 条评论
为什么被折叠?



