Files
campus-activity-system/server/docs/开发任务清单.md

8.1 KiB
Raw Permalink Blame History

校园活动组织与报名系统 - 开发任务清单

项目概述

基于Spring Boot 3.x的前后端分离架构实现校园活动的发布、报名、签到、评价及统计功能。


阶段一:项目初始化与基础架构

1.1 项目搭建

  • 使用Spring Initializr创建Spring Boot 3.x项目
  • 配置pom.xml添加所需依赖
    • Spring Boot Starter Web
    • Spring Boot Starter Security
    • Spring Boot Starter Validation
    • MyBatis-Plus Boot Starter
    • MySQL Connector
    • JWT (jjwt)
    • Knife4j (API文档)
    • Lombok
    • Hutool
  • 创建项目目录结构
  • 配置application.yml开发/生产环境)

1.2 数据库初始化

  • 创建MySQL数据库 campus_activity
  • 执行建表SQL脚本
  • 插入测试数据(管理员账号)
  • 验证数据库连接

1.3 基础配置类

  • 配置MyBatis-Plus分页插件、逻辑删除
  • 配置跨域CORS
  • 配置Jackson日期格式化
  • 配置Knife4j API文档

1.4 公共模块开发

  • 统一响应类 Result<T>
  • 分页响应类 PageResult<T>
  • 状态码枚举 ResultCode
  • 自定义业务异常 BusinessException
  • 全局异常处理器 GlobalExceptionHandler

阶段二:安全认证模块

2.1 JWT工具类

  • JWT Token生成方法
  • JWT Token解析方法
  • JWT Token验证方法
  • Refresh Token逻辑

2.2 Spring Security配置

  • SecurityConfig安全配置类
  • JwtAuthenticationFilter过滤器
  • UserDetailsServiceImpl用户详情服务
  • 配置接口权限规则
  • 配置密码加密器BCrypt

2.3 认证接口开发

  • POST /api/v1/auth/register - 用户注册
  • POST /api/v1/auth/login - 用户登录
  • POST /api/v1/auth/refresh - 刷新Token
  • GET /api/v1/auth/me - 获取当前用户信息
  • PUT /api/v1/auth/password - 修改密码

阶段三:活动管理模块

3.1 实体与数据层

  • Activity实体类
  • ActivityMapper接口
  • ActivityMapper.xml复杂查询

3.2 服务层

  • ActivityService接口定义
  • ActivityServiceImpl实现
    • 创建活动
    • 更新活动
    • 删除活动(逻辑删除)
    • 查询活动详情
    • 分页查询活动列表
    • 日历视图查询
    • 时间冲突检测
    • 活动状态自动更新(定时任务)

3.3 控制层

  • ActivityController
  • ActivityCreateRequest DTO
  • ActivityUpdateRequest DTO
  • ActivityVO 视图对象
  • 参数校验注解

3.4 接口开发

  • GET /api/v1/activities - 活动列表(分页、筛选)
  • GET /api/v1/activities/{id} - 活动详情
  • POST /api/v1/activities - 创建活动(管理员)
  • PUT /api/v1/activities/{id} - 更新活动(管理员)
  • DELETE /api/v1/activities/{id} - 删除活动(管理员)
  • GET /api/v1/activities/calendar - 日历视图
  • POST /api/v1/activities/check-conflict - 时间冲突检测

阶段四:报名管理模块

4.1 实体与数据层

  • Registration实体类
  • RegistrationMapper接口

4.2 服务层

  • RegistrationService接口
  • RegistrationServiceImpl实现
    • 报名活动
    • 取消报名
    • 检查是否已报名
    • 检查报名人数上限
    • 检查时间冲突(与已报名活动)
    • 生成电子票唯一码

4.3 电子票功能

  • 电子票唯一码生成UUID或雪花算法
  • 二维码生成工具类ZXing
  • PDF电子票生成iText
    • 包含活动信息
    • 包含学生姓名
    • 包含二维码

4.4 接口开发

  • POST /api/v1/registrations - 报名活动
  • DELETE /api/v1/registrations/{id} - 取消报名
  • GET /api/v1/registrations/my - 我的报名列表
  • GET /api/v1/registrations/activity/{activityId} - 活动报名列表(管理员)
  • GET /api/v1/registrations/{id}/ticket - 下载电子票PDF

阶段五:签到管理模块

5.1 实体与数据层

  • CheckIn实体类
  • CheckInMapper接口

5.2 服务层

  • CheckInService接口
  • CheckInServiceImpl实现
    • 生成活动签到二维码
    • 学生扫码签到
    • 管理员扫票签到
    • 签到状态查询

5.3 二维码功能

  • 签到二维码生成含活动ID、时间戳、签名
  • 二维码内容解析与验证
  • 二维码有效期控制

5.4 接口开发

  • POST /api/v1/checkin/qrcode/{activityId} - 生成签到二维码(管理员)
  • POST /api/v1/checkin/scan - 学生扫码签到
  • POST /api/v1/checkin/ticket - 管理员扫票签到
  • GET /api/v1/checkin/activity/{activityId} - 签到列表(管理员)

阶段六:评价管理模块

6.1 实体与数据层

  • Review实体类
  • ReviewMapper接口

6.2 服务层

  • ReviewService接口
  • ReviewServiceImpl实现
    • 提交评价
    • 检查是否已评价
    • 检查是否参加过活动
    • 计算平均评分

6.3 接口开发

  • POST /api/v1/reviews - 提交评价
  • GET /api/v1/reviews/activity/{activityId} - 活动评价列表
  • GET /api/v1/reviews/my - 我的评价列表

阶段七:数据统计与导出

7.1 统计服务

  • StatisticsService接口
  • StatisticsServiceImpl实现
    • 活动统计(报名人数、签到率、平均评分)
    • 评分分布统计
    • 总体统计数据
    • 月度统计数据

7.2 数据导出

  • Excel导出工具类EasyExcel
  • CSV导出工具类
  • 报名数据导出模板
  • 签到数据导出模板

7.3 接口开发

  • GET /api/v1/statistics/activity/{activityId} - 活动统计
  • GET /api/v1/statistics/activity/{activityId}/export - 导出活动数据
  • GET /api/v1/statistics/overview - 总体统计

阶段八:功能完善与优化

8.1 定时任务

  • 配置Spring Task
  • 活动状态自动更新任务
    • 报名截止 → 更新状态
    • 活动开始 → 更新状态
    • 活动结束 → 更新状态

8.2 文件上传

  • 文件上传配置
  • 活动封面图片上传
  • 用户头像上传
  • 文件存储路径管理

8.3 日志与监控

  • 配置日志级别
  • 关键操作日志记录
  • 接口访问日志

阶段九:测试与部署

9.1 单元测试

  • Service层单元测试
  • 工具类单元测试

9.2 接口测试

  • 使用Knife4j/Swagger测试所有接口
  • 编写Postman测试集合

9.3 部署准备

  • 生产环境配置文件
  • 打包配置
  • 数据库初始化脚本整理

任务优先级说明

优先级 阶段 说明
P0 阶段一、二 基础架构,必须首先完成
P1 阶段三、四 核心业务功能
P2 阶段五、六 重要辅助功能
P3 阶段七 数据分析功能
P4 阶段八、九 优化与部署

技术难点提示

1. 时间冲突检测

检查用户报名的活动是否与新报名活动时间重叠:

SELECT * FROM activity a
INNER JOIN registration r ON a.id = r.activity_id
WHERE r.user_id = ? AND r.status = 1
  AND ((a.start_time <= ? AND a.end_time >= ?)
    OR (a.start_time <= ? AND a.end_time >= ?)
    OR (a.start_time >= ? AND a.end_time <= ?))

2. 电子票二维码

  • 内容格式:TICKET:{ticketCode}:{userId}:{activityId}
  • 使用签名防止伪造

3. 签到二维码

  • 内容格式:CHECKIN:{activityId}:{timestamp}:{signature}
  • 建议设置有效期如5分钟
  • 管理员可刷新生成新二维码

4. 并发报名控制

  • 使用数据库乐观锁或悲观锁
  • 或使用Redis分布式锁
  • 防止超额报名

文档清单

文档名称 状态 说明
需求文档.md 已有 原始需求
后端开发规范.md 完成 技术选型与编码规范
数据库设计.md 完成 表结构与SQL脚本
API接口设计.md 完成 RESTful API文档
开发任务清单.md 完成 本文档