# 智能用户推荐系统
**Repository Path**: xqstephen/smart-user-recommendations-system
## Basic Information
- **Project Name**: 智能用户推荐系统
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-09-16
- **Last Updated**: 2026-09-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Java, Vue
## README
# Make Friend · 交友组队平台
一个基于 **Spring Boot + Vue 3 + Vant + WebSocket** 的移动端交友 / 组队应用。
用户可以通过 **随机推荐、相似度匹配、标签搜索** 等方式发现志同道合的朋友,创建或加入队伍,并基于 WebSocket 进行实时聊天。
---
### 1. 登录 / 注册
注册时用户码随便输入,只要不重复即可
### 2. 首页 / 发现用户
可点击开始聊天与用户建立对话
### 3. 搜索
搜索结果
### 4. 组队
可自己创建队伍
有密码队伍防止其他人加入
可查询我自己创建的队伍
### 5. 聊天
聊天对话窗口
### 6. 个人中心
---
## ✨ 功能特性
### 👤 用户模块
- 用户注册 / 登录 / 退出登录(Session 保存到 Redis)
- 查看和修改个人资料(用户名、性别、电话、邮箱、头像)
- 头像上传(阿里云 OSS / 腾讯云 COS)
- 个人标签管理(添加、删除标签)
### 🔍 发现用户
- **随机用户**:随机推荐在线用户
- **推荐用户**:分页推荐,支持下拉刷新和上拉加载
- **匹配用户**:根据标签相似度算法推荐(编辑距离 / 相似度)
- 用户详情页:标签、性别、脱敏联系方式、一键开始聊天
### 🔎 搜索模块
- 按用户名 / 队伍名称 / 描述关键词搜索
- 热门标签云,点击标签快速搜索
- 搜索结果区分「匹配用户」和「匹配队伍」
### 🛡️ 组队模块
- 创建 / 修改 / 解散队伍
- 队伍状态:公开、私有、加密(加密队伍需要密码加入)
- 队伍人数上限、过期时间
- 加入队伍、退出队伍
- 「我的队伍」:我创建的 / 我加入的
### 💬 聊天模块
- 会话列表:最后一条消息、时间、未读数
- 历史消息分页加载
- **WebSocket 实时收发消息**,断线自动重连
- 未读消息清除、消息按日期分组展示
### ⚙️ 基础设施
- 全局统一响应体 `BaseResponse` + 全局异常处理
- 登录拦截器 `LoginInterceptor`,未登录统一返回 40100
- Redis 分布式缓存、Redisson 分布式锁
- 重要用户缓存定时任务
- 阿里云 OSS / 腾讯云 COS 对象存储
---
## 🧰 技术栈
### 后端
| 技术 | 版本 / 说明 |
| --- | --- |
| Java | 1.8 |
| Spring Boot | 2.6.4 |
| MyBatis-Plus | 3.5.1 |
| MySQL | 8.x(`mysql-connector-java`) |
| Redis + Spring Session | 分布式会话 / 缓存 |
| Redisson | 3.17.7(分布式锁) |
| WebSocket | `spring-boot-starter-websocket` |
| 腾讯云 COS | `cos_api` 5.6.227 |
| 阿里云 OSS | `aliyun-sdk-oss` 3.17.4 |
| Gson | 2.10.1 |
| Lombok | 简化实体代码 |
### 前端
| 技术 | 版本 / 说明 |
| --- | --- |
| Vue | 3.5.30(`