Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TeamLinker

项目周期: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、异常模块职责分明;
  • 🧩 高复用封装:如分页查询、异常抛出、响应封装均统一处理,利于维护与拓展。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages