release: 提交版修改

This commit is contained in:
2026-01-19 23:15:20 +08:00
parent 4c2a055057
commit 12568cb00e
16 changed files with 7294 additions and 2168 deletions

1208
web/docs/API接口设计.md Normal file

File diff suppressed because it is too large Load Diff

106
web/docs/init.sql Normal file
View File

@@ -0,0 +1,106 @@
-- 创建数据库
CREATE DATABASE IF NOT EXISTS `campus_activity`
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
USE `campus_activity`;
-- 创建用户表
CREATE TABLE `user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '登录用户名',
`password` VARCHAR(255) NOT NULL COMMENT '密码',
`name` VARCHAR(50) NOT NULL COMMENT '真实姓名',
`student_id` VARCHAR(20) DEFAULT NULL COMMENT '学号',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像URL',
`role` TINYINT NOT NULL DEFAULT 0 COMMENT '角色0-学生1-管理员',
`status` TINYINT DEFAULT 1 COMMENT '状态0-禁用1-正常',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
UNIQUE KEY `uk_student_id` (`student_id`),
KEY `idx_role` (`role`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户表';
-- 创建活动表
CREATE TABLE `activity` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '活动ID',
`title` VARCHAR(100) NOT NULL COMMENT '活动名称',
`description` TEXT DEFAULT NULL COMMENT '活动简介',
`cover_image` VARCHAR(255) DEFAULT NULL COMMENT '封面图片',
`start_time` DATETIME NOT NULL COMMENT '开始时间',
`end_time` DATETIME NOT NULL COMMENT '结束时间',
`registration_deadline` DATETIME DEFAULT NULL COMMENT '报名截止时间',
`location` VARCHAR(200) NOT NULL COMMENT '活动地点',
`max_participants` INT NOT NULL COMMENT '报名人数上限',
`current_participants` INT DEFAULT 0 COMMENT '当前报名人数',
`status` TINYINT DEFAULT 0 COMMENT '状态0-未开始1-报名中2-进行中3-已结束',
`category` VARCHAR(50) DEFAULT NULL COMMENT '活动分类',
`admin_id` BIGINT NOT NULL COMMENT '创建者ID',
`qr_code` VARCHAR(255) DEFAULT NULL COMMENT '签到二维码',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除',
`version` INT DEFAULT 0 COMMENT '乐观锁版本号',
PRIMARY KEY (`id`),
KEY `idx_status` (`status`),
KEY `idx_start_time` (`start_time`),
KEY `idx_admin_id` (`admin_id`),
CONSTRAINT `fk_activity_admin` FOREIGN KEY (`admin_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='活动表';
-- 创建报名表
CREATE TABLE `registration` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '报名ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`activity_id` BIGINT NOT NULL COMMENT '活动ID',
`ticket_code` VARCHAR(100) DEFAULT NULL COMMENT '电子票唯一码',
`ticket_pdf_url` VARCHAR(255) DEFAULT NULL COMMENT '电子票PDF地址',
`status` TINYINT DEFAULT 1 COMMENT '状态0-已取消1-已报名2-已签到',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '报名时间',
`updated_at` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`canceled_at` DATETIME DEFAULT NULL COMMENT '取消时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_activity` (`user_id`, `activity_id`),
UNIQUE KEY `uk_ticket_code` (`ticket_code`),
KEY `idx_activity_id` (`activity_id`),
CONSTRAINT `fk_registration_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
CONSTRAINT `fk_registration_activity` FOREIGN KEY (`activity_id`) REFERENCES `activity` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='报名表';
-- 创建签到表
CREATE TABLE `check_in` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '签到ID',
`registration_id` BIGINT NOT NULL COMMENT '报名ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`activity_id` BIGINT NOT NULL COMMENT '活动ID',
`check_in_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '签到时间',
`check_in_method` TINYINT DEFAULT 0 COMMENT '签到方式0-扫码1-管理员代签',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_registration_id` (`registration_id`),
KEY `idx_activity_id` (`activity_id`),
KEY `idx_user_id` (`user_id`),
CONSTRAINT `fk_checkin_registration` FOREIGN KEY (`registration_id`) REFERENCES `registration` (`id`),
CONSTRAINT `fk_checkin_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
CONSTRAINT `fk_checkin_activity` FOREIGN KEY (`activity_id`) REFERENCES `activity` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='签到表';
-- 创建评价表
CREATE TABLE `review` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '评价ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`activity_id` BIGINT NOT NULL COMMENT '活动ID',
`rating` TINYINT NOT NULL COMMENT '评分1-5',
`content` TEXT DEFAULT NULL COMMENT '评论内容',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '评价时间',
`updated_at` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_activity` (`user_id`, `activity_id`),
KEY `idx_activity_id` (`activity_id`),
CONSTRAINT `fk_review_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`),
CONSTRAINT `fk_review_activity` FOREIGN KEY (`activity_id`) REFERENCES `activity` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='评价表';

107
web/docs/需求文档.md Normal file
View File

@@ -0,0 +1,107 @@
# 校园活动组织与报名系统 - 需求文档
## 1. 课程信息
- **课程名称**: 校园活动组织与报名系统
- **课题来源**: 教师自拟
- **课题类型**: 综合型
- **完成时间**: 2025年X月X日
- **课题分组**: 2-3人一组
## 2. 目的和意义
1. 软件工程方法的综合运用能力
2. Java语言解决实际问题的能力
3. 数据库设计与系统集成能力
4. 规范化文档编写能力
## 3. 需求概要
系统面向校园内的活动组织与参与场景,实现活动从发布 → 报名 → 签到 → 评价 → 统计分析的一体化管理。
## 4. 用户角色说明
### 4.1 普通学生用户
- 浏览活动
- 报名/取消报名
- 签到
- 对活动进行评分与评论
### 4.2 活动管理员
- 发布活动
- 管理报名信息
- 查看签到与评价
- 导出活动数据
## 5. 功能模块
### 5.1 活动发布与管理模块
管理员可以创建并管理校园活动,至少包含以下信息:
- 活动名称
- 活动简介
- 活动时间(开始时间、结束时间)
- 活动地点
- 报名人数上限
- 活动状态(未开始/报名中/已结束)
**功能列表**:
- 新增活动
- 修改活动信息
- 删除活动(或逻辑删除)
- 查询活动列表(按时间或状态)
- 以日历形式展示活动
- 检测活动时间冲突并提示
### 5.2 报名与取消报名模块
学生可以对活动进行报名和取消报名操作。
**功能列表**:
- 学生报名活动,报名成功后自动生成电子票(PDF),包含活动信息、学生姓名、二维码
- 系统检查:
- 是否已报名
- 是否时间冲突
- 是否超过人数上限
- 学生取消报名(活动未开始前)
### 5.3 签到管理(二维码)模块
系统需支持活动签到功能。
**功能列表**:
- 管理员为某个活动生成签到二维码
- 学生通过"扫码"或者管理员扫学生电子票完成签到
- 系统记录签到时间
### 5.4 活动评分与评论模块
活动结束后,学生可对参加过的活动进行评价。
**功能列表**:
- 评分(如1-5分)
- 评论内容
- 每个学生对同一活动只能评价一次
- 管理员可查看所有评价
### 5.5 数据统计与导出
系统需具备基本统计能力,例如每个活动的报名人数、实际签到人数、平均评分。管理员可导出活动数据(如CSV或Excel)。
## 6. 提交成果
### 6.1 文档
包括软件需求分析说明书、软件设计说明书、软件使用手册。
### 6.2 作品
可以采用基于Java桌面应用(Swing/JavaFX)、前后端分离系统(后端Java)。
## 7. 评分标准
1. **功能完整性**: 50%
2. **数据库设计**: 20%
3. **软件文档规范性**: 30%
## 8. 答辩要求
答辩时交付纸质软件过程文档(每组1份)。

View File

@@ -30,7 +30,7 @@
<van-cell-group class="menu-group" inset v-if="authStore.isLoggedIn">
<van-cell title="我的报名" is-link to="/registrations/my" />
<van-cell title="我的评价" is-link to="/reviews/my" />
<van-cell title="修改密码" is-link to="/auth/password" />
<!-- <van-cell title="修改密码" is-link to="/auth/password" /> -->
</van-cell-group>
<van-cell-group class="menu-group" inset v-if="user?.role === 1">