摘要:系统本文设计并实现了高校社团管理与经费审批系统。系统面向管理员、社团负责人、财务审核员与学生四类角色,覆盖社团与分类维护、成员入社审核、活动发布与报名、经费申请与财务审批、公告发布、活跃度评分及数据统计等功能。技术上采用 Spring Boot、MyBatis、JWT、MySQL 与 Vue、Element Plus、Vite 前后端分离架构,按角色权限隔离后台管理端与学生前台业务。需求分析明确各角色菜单能力与流程约束;系统设计给出总体架构、数据库表结构与接口划分;并对活跃度加权评分、人工智能辅助活动策划、经费多级审批与拨付、活动报名名额控制等重点能力给出实现说明。经功能与流程测试,主要业务可闭环运行,能够支撑高校社团日常管理与经费审批的演示与应用需求,为同类校园信息化系统建设提供可参考的实现路径与工程实践经验。

技术栈: Spring Boot 3 + MyBatis-Plus + MySQL + Vue 3 + Element Plus + AI大模型

数据库表:15张

创新点:多指标加权的社团活跃度评分、AI 大模型辅助社团活动策划生成、经费多级审批与拨付闭环、活动报名名额与状态控制

演示视频

高校社团管理与经费审批系统

🍅文末获取联系🍅

🍅文末获取联系🍅

作者介绍:专注计算机编程,个人开发,坚持原创非工作室源码全网唯一

技术主流:SpringBoot + Vue 前后端分离,MySQL,AI大模型,可本地运行

配套资料:源码 + 数据库 + 实验报告/论文 + 答辩 PPT+部署演示+远程调试+问题解答

技术范围:SpringBoot、Vue、数据可视化、小程序、HLMT、Nodejs、uni-app、MySQL数据库、ElementUi等设计与开发。

适用范围:软件工程、软件技术、计算机科学与技术、大数据、云计算、JavaWeb开发、JavaEE、Java、Web应用开发、动态网页设计、小程序的毕设参考

开发文档创新点说明、功能需求分析、数据库表结构设计、后端接口设计、创新点代码分析

功能展示

用户

序号

菜单名称

功能描述

1

首页

完成「首页」菜单对应的业务办理与信息维护。

2

社团列表

完成「社团列表」菜单对应的业务办理与信息维护。

3

活动报名

完成「活动报名」菜单对应的业务办理与信息维护。

4

社团动态

完成「社团动态」菜单对应的业务办理与信息维护。

5

入社申请

完成「入社申请」菜单对应的业务办理与信息维护。

6

我的报名

学生查看或办理与本人相关的报名业务,数据范围限定当前登录账号。

7

个人中心

完成「个人中心」菜单对应的业务办理与信息维护。

社长

序号

菜单名称

功能描述

1

社团信息

完成「社团信息」菜单对应的业务办理与信息维护。

2

成员审核

完成「成员审核」菜单对应的业务办理与信息维护。

3

活动管理

对活动数据进行分页查询、新增、编辑、删除及批量删除等维护操作。

4

活动报名管理

对活动报名数据进行分页查询、新增、编辑、删除及批量删除等维护操作。

5

经费申请

完成「经费申请」菜单对应的业务办理与信息维护。

6

活跃度评分

完成「活跃度评分」菜单对应的业务办理与信息维护。

7

个人中心

完成「个人中心」菜单对应的业务办理与信息维护。

管理员+财务

序号

菜单名称

功能描述

1

数据统计

以图表展示入住、报修、晚归等关键运营指标,支撑管理决策。

2

社团管理

对社团数据进行分页查询、新增、编辑、删除及批量删除等维护操作。

3

社团分类

完成「社团分类」菜单对应的业务办理与信息维护。

4

公告管理

发布、编辑面向全体或指定对象的通知公告。

5

学生管理

维护学生账号、学号、班级与启用状态。

6

负责人账号

维护负责人账号的创建、编辑、启用禁用与删除。

7

财务账号

维护财务账号的创建、编辑、启用禁用与删除。

8

管理员账号

维护系统管理员账号、联系方式与启用状态。

9

财务审核

完成「财务审核」菜单对应的业务办理与信息维护。

10

个人中心

完成「个人中心」菜单对应的业务办理与信息维护。

序号

菜单名称

功能描述

1

财务审核

完成「财务审核」菜单对应的业务办理与信息维护。

2

预算台账

完成「预算台账」菜单对应的业务办理与信息维护。

3

个人中心

完成「个人中心」菜单对应的业务办理与信息维护。

数据库及架构

系统数据库设计为:

数据库设计:

/*
 Navicat Premium Data Transfer

 Source Server         : 1
 Source Server Type    : MySQL
 Source Server Version : 50722
 Source Host           : localhost:3306
 Source Schema         : 1vuez_club_system

 Target Server Type    : MySQL
 Target Server Version : 50722
 File Encoding         : 65001

 Date: 16/08/2026 23:02:32
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for activities
-- ----------------------------
DROP TABLE IF EXISTS `activities`;
CREATE TABLE `activities`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `club_id` bigint(20) NOT NULL COMMENT '社团',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
  `cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
  `place` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地点',
  `start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
  `end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
  `max_signup` int(11) NULL DEFAULT 0 COMMENT '人数上限',
  `signup_count` int(11) NULL DEFAULT 0 COMMENT '已报名',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态',
  `created_at` datetime NULL DEFAULT NULL COMMENT '发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社团活动' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for admins
-- ----------------------------
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for categories
-- ----------------------------
DROP TABLE IF EXISTS `categories`;
CREATE TABLE `categories`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '分类名称',
  `sort_order` int(11) NULL DEFAULT 0 COMMENT '排序',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社团分类' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for club_leaders
-- ----------------------------
DROP TABLE IF EXISTS `club_leaders`;
CREATE TABLE `club_leaders`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
  `club_id` bigint(20) NULL DEFAULT NULL COMMENT '负责社团',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社团负责人' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for club_scores
-- ----------------------------
DROP TABLE IF EXISTS `club_scores`;
CREATE TABLE `club_scores`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `club_id` bigint(20) NOT NULL COMMENT '社团',
  `score` int(11) NULL DEFAULT 0 COMMENT '得分',
  `activity_count` int(11) NULL DEFAULT 0 COMMENT '活动数',
  `member_count` int(11) NULL DEFAULT 0 COMMENT '成员数',
  `signup_rate` decimal(5, 2) NULL DEFAULT 0.00 COMMENT '报名率',
  `calc_detail` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '计算明细',
  `period` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '统计周期',
  `created_at` datetime NULL DEFAULT NULL COMMENT '计算时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活跃度评分' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for clubs
-- ----------------------------
DROP TABLE IF EXISTS `clubs`;
CREATE TABLE `clubs`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '社团名称',
  `category_id` bigint(20) NULL DEFAULT NULL COMMENT '分类',
  `leader_id` bigint(20) NULL DEFAULT NULL COMMENT '负责人',
  `intro` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '简介',
  `logo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Logo',
  `contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系方式',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态',
  `activity_score` int(11) NULL DEFAULT 0 COMMENT '活跃度',
  `reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
  `created_at` datetime NULL DEFAULT NULL COMMENT '注册时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社团' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for finance_auditors
-- ----------------------------
DROP TABLE IF EXISTS `finance_auditors`;
CREATE TABLE `finance_auditors`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '财务审核员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for fund_audits
-- ----------------------------
DROP TABLE IF EXISTS `fund_audits`;
CREATE TABLE `fund_audits`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `fund_id` bigint(20) NOT NULL COMMENT '经费申请',
  `step_order` int(11) NOT NULL COMMENT '步骤序号',
  `step_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '步骤名称',
  `auditor_role` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审核角色',
  `operator_id` bigint(20) NULL DEFAULT NULL COMMENT '操作人',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态',
  `opinion` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '审批意见',
  `created_at` datetime NULL DEFAULT NULL COMMENT '操作时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '经费审批记录' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for funds
-- ----------------------------
DROP TABLE IF EXISTS `funds`;
CREATE TABLE `funds`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `club_id` bigint(20) NOT NULL COMMENT '社团',
  `applicant_id` bigint(20) NOT NULL COMMENT '申请人',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
  `amount` decimal(12, 2) NOT NULL COMMENT '金额',
  `purpose` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用途说明',
  `fund_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'apply' COMMENT '类型',
  `attach_urls` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态',
  `current_step` int(11) NULL DEFAULT 1 COMMENT '当前步骤',
  `reject_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驳回原因',
  `created_at` datetime NULL DEFAULT NULL COMMENT '申请时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '经费申请' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for members
-- ----------------------------
DROP TABLE IF EXISTS `members`;
CREATE TABLE `members`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `club_id` bigint(20) NOT NULL COMMENT '社团',
  `student_id` bigint(20) NOT NULL COMMENT '学生',
  `apply_reason` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '申请理由',
  `status` tinyint(4) NULL DEFAULT 0 COMMENT '状态',
  `member_role` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'member' COMMENT '成员角色',
  `created_at` datetime NULL DEFAULT NULL COMMENT '申请时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '社团成员' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for messages
-- ----------------------------
DROP TABLE IF EXISTS `messages`;
CREATE TABLE `messages`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `sender_id` bigint(20) NULL DEFAULT NULL COMMENT '发送人',
  `receiver_id` bigint(20) NOT NULL COMMENT '接收人',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
  `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
  `read_flag` tinyint(4) NULL DEFAULT 0 COMMENT '已读',
  `ref_type` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关联类型',
  `ref_id` bigint(20) NULL DEFAULT NULL COMMENT '关联编号',
  `created_at` datetime NULL DEFAULT NULL COMMENT '发送时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统消息' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for notices
-- ----------------------------
DROP TABLE IF EXISTS `notices`;
CREATE TABLE `notices`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
  `club_id` bigint(20) NULL DEFAULT NULL COMMENT '所属社团',
  `notice_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'platform' COMMENT '类型',
  `created_at` datetime NULL DEFAULT NULL COMMENT '发布时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '公告动态' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for signups
-- ----------------------------
DROP TABLE IF EXISTS `signups`;
CREATE TABLE `signups`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `activity_id` bigint(20) NOT NULL COMMENT '活动',
  `student_id` bigint(20) NOT NULL COMMENT '学生',
  `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  `created_at` datetime NULL DEFAULT NULL COMMENT '报名时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动报名' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '账号',
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '密码',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `student_no` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '学号',
  `gender` tinyint(4) NULL DEFAULT NULL COMMENT '性别',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
  `enabled` tinyint(4) NULL DEFAULT 1 COMMENT '状态',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `username`(`username`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '学生' ROW_FORMAT = DYNAMIC;

SET FOREIGN_KEY_CHECKS = 1;

擅长功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。

获取联系

项目功能完整,可在本地运行,并可远程调试,确保运行顺利!

👇🏻👇🏻获取联系方式👇🏻👇🏻

毕业设计获取https://blog.csdn.net/qq_59059632/article/details/163759879?spm=1011.2415.3001.5331

更多推荐