# chatplatform **Repository Path**: play_10/chatplatform ## Basic Information - **Project Name**: chatplatform - **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-05-28 - **Last Updated**: 2026-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chat Platform - 聊天平台 类 QQ 的即时通讯聊天程序,包含 Java 后端、Vue3 管理端、UniApp H5 移动端。 --- ## 项目结构 ``` chatplatform/ ├── chat-platform-server/ # Java Spring Boot 后端服务 ├── chat-platform-admin/ # Vue3 + Element Plus 管理端 └── chat-platform-h5/ # UniApp H5 移动端 ``` ## 技术栈 | 模块 | 技术 | |------|------| | 后端 | Spring Boot 2.7.x、MyBatis-Plus 3.5、Redis、MySQL、WebSocket、JWT、MinIO、LangChain4j、SpringDoc OpenAPI | | 管理端 | Vue 3、Vite 5、Element Plus、Pinia、TypeScript | | 移动端 | UniApp 3、Vue 3、Pinia | ## 功能模块 - **用户系统**:注册、登录、JWT 认证、个人资料管理、头像上传 - **好友管理**:搜索用户、添加好友、好友请求处理(同意/拒绝)、好友列表 - **即时通讯**:单聊消息收发、群聊消息、WebSocket 实时推送、消息已读状态 - **群组功能**:创建群组(多选好友)、群聊列表、群成员管理 - **朋友圈**:发布文字/图片动态、好友动态流、图片九宫格预览、点赞/评论/回复 - **内容审核**:管理端朋友圈管理,支持违规动态下架/恢复 - **文件存储**:基于 MinIO 的文件上传下载,支持头像、图片、文件传输 - **安全功能**:图形验证码、忘记密码重置、密码修改 - **AI 助手**:接入本地大模型(Ollama / LM Studio),支持多轮对话 - **接口文档**:SpringDoc OpenAPI + Swagger UI,在线调试 API ## 快速开始 ### 1. 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.0+ - Redis 6.0+ - MinIO(文件存储,可选) - Node.js 20.17.0 ### 2. 启动后端 ```bash cd chat-platform-server # 1. 执行 SQL 建表脚本 # 用 MySQL 客户端执行 src/main/resources/sql/init.sql # 2. 修改 application.yml 中的数据库、Redis、MinIO 配置 # 3. 编译启动 mvn clean package -DskipTests java -jar target/chat-platform-server-1.0.0.jar ``` 默认端口:`8080` 默认管理员:`admin` / `admin123` ### 3. 启动管理端 ```bash cd chat-platform-admin npm install npm run dev ``` 默认地址:`http://localhost:3000` ### 4. 启动 H5 移动端 ```bash cd chat-platform-h5 npm install npm run dev:h5 ``` 浏览器访问 H5 开发地址即可。 --- ## 功能使用说明 ### H5 移动端 #### 注册与登录 1. 打开 H5 页面,进入登录页 2. 点击"注册"进入注册页,填写手机号和密码 3. 注册成功后自动跳转登录,输入手机号和密码登录 #### 个人资料编辑 1. 底部导航点击"我的" 2. 点击头像区域进入"编辑资料" 3. 可修改昵称、头像、性别、签名等信息 4. 点击保存即可生效 #### 忘记密码 1. 登录页点击"忘记密码" 2. 输入注册手机号 3. 点击图形验证码区域获取验证码图片,输入验证码 4. 输入新密码并确认,点击"重置密码" #### 修改密码 1. "我的"页点击"修改密码" 2. 输入旧密码 3. 点击图形验证码区域获取验证码图片,输入验证码 4. 输入新密码并确认,点击"确认修改" 5. 修改成功后自动退出,需重新登录 #### 联系人 1. 底部导航点击"联系人",查看好友列表 2. 顶部两个入口卡片: - **新朋友**:点击查看好友请求列表,可同意或拒绝 - **群聊**:点击查看已加入的群聊列表 3. 点击好友可直接进入聊天 #### 添加好友 1. 联系人页右上角点击"+"按钮,选择"添加好友" 2. 搜索用户名/昵称 3. 点击"添加"发送好友请求 4. 对方在"联系人" > "新朋友"中处理好友请求 #### 发起群聊 1. 联系人页右上角点击"+"按钮,选择"发起群聊" 2. 勾选好友(至少选2人),点击"完成" 3. 群聊创建成功后自动跳转群聊对话 #### 朋友圈 1. 底部导航点击"发现",进入朋友圈 2. 顶部展示个人封面背景和头像 3. 查看好友发布的动态(文字+图片九宫格) 4. 点击图片可放大预览 5. 点击 ❤️ 点赞,点击 💬 进入详情评论 6. 右下角"+"按钮进入发布页 - 输入文字内容 - 点击"+"选择图片(最多9张) - 点击"发表"发布动态 7. 详情页支持评论和回复评论 #### 即时聊天 1. 底部导航点击"消息",查看会话列表 2. 点击任意会话进入聊天详情页 3. 输入消息点击发送,支持实时收发 4. 未读消息显示红色角标 #### AI 智能助手 1. 底部导航点击"发现" 2. 顶部紫色卡片"AI 智能助手"点击进入 3. 首次进入显示欢迎语和建议问题,可点击快捷发送 4. 输入问题发送,AI 实时回复 5. 支持多轮连续对话 ### 管理端 #### 控制台 - 登录后默认进入控制台页面,展示系统概览数据 #### 用户管理 - 查看所有注册用户列表,支持分页浏览 - 按用户名/昵称搜索用户 - 点击"查看"查看用户详细信息 - 支持启用/禁用用户账号 #### 消息管理 - 查看所有聊天消息记录 - 支持按内容关键词搜索 - 支持按消息类型筛选 - 分页浏览,可调整每页条数 #### 大模型管理(AI 助手配置) 1. 点击"新增配置"添加大模型连接配置 - **Ollama**:选择"Ollama",服务地址填 `http://localhost:11434`,模型名如 `qwen2.5:7b` - **LM Studio**:选择"LM Studio",服务地址填 `http://localhost:1234`,模型名自动识别或手动填写 2. 点击"测试"按钮打开测试弹窗 - 点击"测试连通性"验证服务是否可达 - 输入测试消息点击"发送",查看模型回复 3. 点击"设默认"将当前配置设为 H5 端默认使用 4. 确保状态为"启用" #### 朋友圈管理 - 查看所有用户发布的朋友圈动态列表 - 支持按内容关键词搜索 - 按状态筛选(正常/已下架) - 点击"查看"查看动态详情(文字+图片) - **下架**:将违规动态下架,下架后用户及好友均无法查看 - **恢复**:将已下架的动态恢复为正常状态 #### 文件管理 - 展示所有已上传文件列表,支持按文件名搜索和存储类型筛选 - 显示当前激活的 OSS 存储配置信息(端点、存储桶、域名) - **URL 回显**:根据 OSS 配置的域名自动拼接完整文件访问 URL - **一键复制**:点击复制按钮复制文件 URL - **上传文件**:点击"上传文件"按钮选择文件,上传后自动记录 - **下载文件**:点击"下载"直接下载文件到本地 #### 存储配置(OSS) - 管理所有对象存储配置(MinIO、阿里云OSS、腾讯云COS、本地存储等) - 支持新增/编辑/删除 OSS 配置 - **设默认**:将某一配置设为默认存储,文件上传时自动使用该配置 - **测试连接**:点击测试验证配置的连通性 - 存储类型标签区分不同提供商 - 启用/禁用开关控制配置是否生效 #### 操作日志 - 查看系统操作日志,包括登录、注册、数据修改等操作记录 --- ## 数据库表说明 | 表名 | 说明 | |------|------| | user | 用户表 | | friend | 好友关系表 | | friend_request | 好友请求表 | | group_info | 群组信息表 | | group_member | 群成员表 | | message | 消息表 | | moment | 朋友圈动态表 | | moment_image | 朋友圈图片表 | | moment_like | 朋友圈点赞表 | | moment_comment | 朋友圈评论表 | | llm_config | 大模型配置表 | | oss_config | OSS 对象存储配置表 | | file_record | 文件记录表 | | operation_log | 操作日志表 | 所有表均继承自 `BaseEntity` 基础字段: - `create_user_id` - 创建人 ID - `create_time` - 创建时间 - `update_user_id` - 修改人 ID - `update_time` - 修改时间 - `deleted` - 删除标识(0=有效,1=已删除) ## 配置说明 | 配置项 | 说明 | 默认值 | |--------|------|--------| | server.port | 服务端口 | 8080 | | spring.datasource | 数据库连接 | root/root@127.0.0.1:3306 | | spring.redis | Redis 连接 | 127.0.0.1:6379 | | minio.endpoint | MinIO 地址 | http://127.0.0.1:9000 | | minio.accessKey | MinIO 访问密钥 | minioadmin | | minio.secretKey | MinIO 密钥 | minioadmin | | minio.bucketName | MinIO 存储桶 | chat-platform | | jwt.expiration | Token 过期时间(ms) | 604800000(7天) | > **注意**:MinIO 配置支持两种方式。 > 1. **application.yml 配置**(旧方式):在 `application.yml` 中直接配置,服务启动时读取。 > 2. **数据库动态配置**(推荐):在管理端 `存储配置` 页面配置,支持多存储类型切换,无需重启服务。数据库配置优先于 yml 配置。 > > OSS 数据库配置支持 MinIO、阿里云OSS、腾讯云COS、本地存储等多种类型,设置 `domain` 字段后可实现文件 URL 自动拼接回显。 ## API 接口 ### 认证相关 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/auth/login | H5 登录(手机号+密码) | | POST | /api/auth/admin/login | 管理端登录(用户名+密码) | | POST | /api/auth/register | H5 注册 | | POST | /api/auth/refresh | 刷新 Token | | GET | /api/auth/captcha | 获取图形验证码 | | POST | /api/auth/forgot-password/reset | 忘记密码重置 | | POST | /api/auth/change-password | 修改密码 | | POST | /api/auth/logout | 退出登录 | ### 用户相关 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/user/info | 获取当前用户信息 | | PUT | /api/user/info | 修改用户信息 | | GET | /api/user/search | 搜索用户 | | GET | /api/user/list | 用户分页列表 | ### 好友相关 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/friend/list | 好友列表 | | POST | /api/friend/request | 发送好友请求 | | GET | /api/friend/requests | 好友请求列表 | | PUT | /api/friend/request/{id}/accept | 同意好友请求 | | PUT | /api/friend/request/{id}/reject | 拒绝好友请求 | | DELETE | /api/friend/{friendId} | 删除好友 | | GET | /api/friend/check-relations | 检查好友关系 | ### 群组相关 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/group/create | 创建群聊 | | GET | /api/group/list | 我的群聊列表 | | GET | /api/group/{id} | 群组信息 | | GET | /api/group/{id}/members | 群成员列表 | ### 朋友圈相关 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/moment | 发布动态 | | GET | /api/moment/list | 好友动态流(分页) | | GET | /api/moment/{id} | 动态详情 | | POST | /api/moment/{id}/like | 点赞/取消点赞 | | POST | /api/moment/comment | 发表评论/回复 | | GET | /api/moment/{id}/comments | 评论列表 | | DELETE | /api/moment/comment/{id} | 删除评论 | | GET | /api/moment/admin/list | 管理端动态列表 | | PUT | /api/moment/admin/{id}/take-down | 下架动态 | | PUT | /api/moment/admin/{id}/restore | 恢复动态 | ### 消息相关 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/message/history | 获取聊天记录 | | GET | /api/message/conversations | 获取会话列表 | | GET | /api/message/list | 消息分页列表(管理端) | | WebSocket | /ws/chat | WebSocket 实时通讯 | ### 文件相关 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/upload/image | 上传图片 | | POST | /api/file/upload | 上传文件 | | GET | /api/file/download/{objectName} | 下载文件 | ### 接口文档 启动后端后,浏览器访问 `http://localhost:8080/swagger-ui.html` 查看完整 API 文档,支持在线调试。 ### 大模型相关 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/llm-config/list | LLM 配置分页列表 | | GET | /api/llm-config/{id} | LLM 配置详情 | | POST | /api/llm-config | 新增 LLM 配置 | | PUT | /api/llm-config/{id} | 编辑 LLM 配置 | | DELETE | /api/llm-config/{id} | 删除 LLM 配置 | | PUT | /api/llm-config/{id}/default | 设为默认配置 | | POST | /api/llm-config/test-connection/{id} | 测试连通性 | | POST | /api/llm-config/test-chat/{id} | 测试对话 | | POST | /api/llm-config/chat | H5 AI 对话入口 |