项目周期:2025.05 - 2025.07
项目简介: 本项目是一个基于 Spring Boot 的用户中心后端系统,支持用户注册登录、队伍管理、消息推送(邮件)、标签推荐、缓存预热等核心功能。通过模拟社交平台中的组队与消息通知流程,实现复杂权限判断与状态管理,具备完整的后台接口设计与中间件集成能力。
技术栈:
- 后端框架:Spring Boot、Spring MVC、MyBatis-Plus
- 权限与安全:Spring Security、BCrypt 密码加密、全局异常处理
- 中间件:Redis(缓存)、Redisson(分布式锁)、Swagger(接口文档)
- 数据库:MySQL(多表设计,含用户、队伍、邮件、用户-队伍关系)
- 其他:定时任务(@Scheduled)、并发测试(线程池插入5万数据)
核心功能与职责拆解:
- 实现用户注册/登录/注销接口,使用 BCryptPasswordEncoder 加密用户密码;
- 接入 Spring Security 实现登录状态判断与接口权限拦截;
- 使用 Redis + TTL 缓存用户推荐列表,首次查询后存入缓存,有效期 5 分钟;
- 支持推荐用户分页浏览(手动分页 + MyBatis-Plus 分页插件);
- 实现基于标签的用户模糊搜索、管理员权限判断与用户删除功能;
- 设计队伍实体,支持三种加入模式:公开直接加入、公开申请审批、加密加入(需密码);
- 支持队伍的创建、修改、退出、解散、搜索(按ID和名称模糊)、分页显示等;
- 完善队伍与用户的关联关系管理(使用中间表 user_team);
- 实现队长转让逻辑(含退出并转让)、队伍成员列表展示;
- 对加群流程实现完整权限校验与状态判定;
- 设计模拟“邮件系统”,用于队伍申请通知交互;
- 实现发件箱/收件箱分页查看、标记已读、删除已读邮件;
- 支持“全部同意”/“全部拒绝”功能,提高用户操作效率;
- 查看邮件详情时,根据角色(发件人/收件人)控制权限与自动标记为已读;
- 同意/拒绝申请自动发送“成功/失败”通知邮件(含失败原因);
- 封装统一响应类
BaseResponse<T>与错误码ErrorCode,统一接口返回格式; - 枚举管理状态值(如队伍状态
StatusCode、加入失败原因JoinFailureCode); - 自定义全局异常处理器
GlobalExceptionHandler,统一捕获业务与运行时异常; - 实现 Redis + Redisson 分布式锁定时任务,预热用户推荐缓存(每日21:40执行);
- 自测并发批量插入 5 万条用户数据(使用线程池与分批提交)进行性能测试;
项目亮点:
- 🔒 权限与状态处理完善:加入队伍权限控制基于队伍状态、用户身份、申请来源等进行细粒度判定;
- 🚀 缓存策略清晰:通过 Redis 缓存推荐列表,使用 Redisson 保证预热任务的分布式唯一执行;
- 📬 通知机制清晰闭环:用户加群的请求、审批、反馈形成完整闭环,极大提升用户体验;
- ⚙ 代码结构清晰:控制层、服务层、工具类、DTO、VO、异常模块职责分明;
- 🧩 高复用封装:如分页查询、异常抛出、响应封装均统一处理,利于维护与拓展。