# 全新消息系统设计文档 ## 🎯 系统概述 全新的消息系统将用户对话和系统通知完全分离,提供更清晰的功能划分和更好的用户体验。 ## 🏗️ 系统架构 ### 📊 数据库设计 #### 系统通知模块 - `sys_notification` - 系统通知表 - `sys_notification_receiver` - 通知接收记录表 #### 用户对话模块 - `sys_conversation` - 会话表 - `sys_conversation_member` - 会话参与者表 - `sys_chat_message` - 对话消息表 ### 🔗 API接口设计 #### 系统通知API (`/system/notification`) - `GET /list` - 查询通知列表(管理员) - `GET /my` - 获取用户通知列表 - `GET /unread/count` - 获取未读通知数 - `POST /` - 新增通知 - `PUT /` - 修改通知 - `DELETE /{ids}` - 删除通知 - `POST /{id}/publish` - 发布通知 - `PUT /{id}/read` - 标记已读 - `DELETE /{id}/my` - 删除用户通知 #### 用户对话API (`/chat`) - `GET /conversations` - 获取会话列表 - `POST /conversation/private/{userId}` - 创建私聊会话 - `GET /conversation/{id}/messages` - 获取会话消息 - `POST /conversation/{id}/message` - 发送消息 - `PUT /conversation/{id}/remark` - 设置备注 - `GET /conversation/{id}/unread` - 获取未读数 ## 🎨 前端页面 ### `/message` - 用户对话页面 - 📱 会话列表显示 - 💬 实时消息收发 - 🔖 备注功能 - 📊 未读消息统计 ### `/system/message` - 系统通知管理页面 - 📢 通知列表管理 - ✍️ 通知创建编辑 - 🎯 目标用户选择 - 📈 发布状态管理 ## ✨ 核心功能 ### 🔔 系统通知功能 - **多种通知类型**: 系统通知、维护通知、公告 - **灵活推送**: 全员、指定用户、指定角色 - **定时发布**: 支持定时发布和过期时间 - **状态管理**: 草稿、已发布、已撤回 - **已读管理**: 完整的已读/未读状态跟踪 ### 💬 用户对话功能 - **私聊支持**: 用户间一对一对话 - **会话管理**: 完整的会话生命周期管理 - **备注功能**: 为对话用户设置个性化备注 - **消息类型**: 支持文本、图片、文件等多种消息类型 - **未读统计**: 精确的未读消息计数 - **实时通信**: WebSocket实时消息推送 ## 🚀 技术特性 ### 后端技术栈 - **Spring Boot 3.x** - 主框架 - **MyBatis** - 数据访问层 - **WebSocket** - 实时通信 - **Spring Security** - 安全认证 ### 前端技术栈 - **Vue.js 2.x** - 前端框架 - **Element UI** - UI组件库 - **WebSocket Client** - 实时通信客户端 ### 数据库特性 - **MySQL 8.0+** - 主数据库 - **事务支持** - 保证数据一致性 - **索引优化** - 提升查询性能 - **视图支持** - 简化复杂查询 ## 📋 部署说明 ### 1. 数据库初始化 ```sql -- 执行SQL脚本 source /path/to/new-message-system.sql ``` ### 2. 后端部署 - 确保所有新的Java类已编译 - 重启Spring Boot应用 - 验证API接口可访问 ### 3. 前端部署 - 更新前端API调用 - 重新构建前端应用 - 部署到Web服务器 ## 🔧 配置说明 ### WebSocket配置 - 端点: `/ws/message` - 认证: Token-based - 心跳: 30秒间隔 ### 权限配置 - 系统通知管理需要管理员权限 - 用户对话无需特殊权限 - WebSocket连接需要登录认证 ## 📊 性能优化 ### 数据库优化 - 会话列表查询使用视图 - 消息查询支持分页 - 关键字段建立索引 ### 缓存策略 - 会话列表缓存 - 用户信息缓存 - 未读数缓存 ### 前端优化 - 消息列表虚拟滚动 - 图片懒加载 - 组件按需加载 ## 🐛 故障排除 ### 常见问题 1. **会话列表为空**: 检查数据库中是否有测试数据 2. **消息发送失败**: 检查WebSocket连接状态 3. **未读数不准确**: 检查会话成员表的未读数字段 ### 调试方法 - 查看浏览器控制台日志 - 检查网络请求状态 - 验证WebSocket连接 ## 🔮 未来规划 ### 短期目标 - [ ] 群聊功能 - [ ] 消息撤回 - [ ] 文件传输 - [ ] 表情包支持 ### 长期目标 - [ ] 音视频通话 - [ ] 消息加密 - [ ] 离线消息推送 - [ ] 多端同步 ## 📞 技术支持 如有问题,请联系开发团队或查看相关文档。 --- **版本**: v2.0 **更新时间**: 2025-11-12 **作者**: YuShu Team