From 13d26ca43abc4e23f8d22308b9dbf1900983a9a4 Mon Sep 17 00:00:00 2001 From: bujinyuan Date: Wed, 4 Mar 2026 10:43:33 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Phase=202c=20=E8=A7=84=E5=88=92?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=88=B0=E5=85=A8=E5=B1=80=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - system-architecture.md: 新增 group/file 模块,admin 模块扩展群聊管理 - echochat-system-design.md: Phase 2c 开发分期详情 + 19 个新 API + 4 个管理端 API - api/README.md: 新增 group.md 导航(前台+管理端) - frontend-backend-integration.md: 更新最后修改时间 Made-with: Cursor --- docs/api/README.md | 2 + docs/architecture/system-architecture.md | 4 +- .../frontend-backend-integration.md | 2 +- .../2026-02-27-echochat-system-design.md | 51 ++++++++++++++++--- 4 files changed, 51 insertions(+), 8 deletions(-) diff --git a/docs/api/README.md b/docs/api/README.md index 4a2c19d..6dc6766 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -16,6 +16,7 @@ | [frontend/contact.md](frontend/contact.md) | 联系人 | ✅ Phase 2a | 17 个 API:好友申请/管理、好友分组、黑名单、搜索/推荐、在线状态 | | [frontend/websocket.md](frontend/websocket.md) | WebSocket | ✅ Phase 2a | 前端 WebSocket 连接管理、事件协议、心跳、重连 | | [frontend/im.md](frontend/im.md) | 即时通讯 | ✅ Phase 2b | 7 个 API:会话列表/置顶/删除/清空、历史消息、全局搜索、未读数 | +| [frontend/group.md](frontend/group.md) | 群聊管理 | 🔜 Phase 2c | 16 个 API:建群/管理/成员/角色/禁言/公告/搜索/入群审批 | | [frontend/meeting.md](frontend/meeting.md) | 会议 | 📋 后续 | 即时会议、预约会议、加入/离开、会议列表 | | [frontend/notify.md](frontend/notify.md) | 通知 | 📋 后续 | 通知列表、标记已读 | @@ -27,6 +28,7 @@ | [admin/user.md](admin/user.md) | 用户管理 | ✅ Phase 1 | 用户列表/详情、状态管理、角色分配、创建用户 | | [admin/online.md](admin/online.md) | 在线监控 | ✅ Phase 2a | 在线用户列表、在线用户计数 | | [admin/contact.md](admin/contact.md) | 好友关系管理 | ✅ Phase 2a | 好友关系列表(分页)、管理员解除好友关系 | +| [admin/group.md](admin/group.md) | 群聊管理 | 🔜 Phase 2c | 群列表/详情、管理员解散群/移除成员 | | [admin/meeting.md](admin/meeting.md) | 会议管理 | 📋 后续 | 会议列表/详情、强制结束、会议统计 | | [admin/system.md](admin/system.md) | 系统管理 | 📋 待定 | 仪表盘数据、操作日志、系统配置 | diff --git a/docs/architecture/system-architecture.md b/docs/architecture/system-architecture.md index 1ff7b38..8bf9c27 100644 --- a/docs/architecture/system-architecture.md +++ b/docs/architecture/system-architecture.md @@ -92,9 +92,11 @@ EchoChat 采用 **「精简单体 + 媒体微服务」** 架构,核心思想 | ws | WebSocket 连接管理(Hub/Client/PubSub)、在线状态管理(Redis SET + TTL 心跳续期)、好友上下线实时通知(FriendIDsGetter 接口注入) | ✅ Phase 2a | | contact | 好友关系管理(申请/接受/拒绝/删除/拉黑)、好友分组(CRUD + 移动)、用户搜索、好友推荐(批量查询优化) | ✅ Phase 2a | | im | 即时消息收发(单聊)、会话管理、消息存储、撤回、搜索、离线推送 | ✅ Phase 2b | +| group | 群聊管理(建群/加入/退出/角色/禁言/@提醒/群公告/入群审批) | 🔜 Phase 2c | +| file | 文件上传(MinIO 对象存储 + 通用上传 API) | 🔜 Phase 2c | | meeting | 会议创建/管理、信令转发、mediasoup 资源编排 | 📋 后续 | | notify | 通知推送、会议邀请、好友申请通知 | 📋 后续 | -| admin | 后台管理(用户管理 + 角色权限管理 + 在线监控 + 好友关系管理、会议监控、系统配置) | ✅ Phase 1/2a | +| admin | 后台管理(用户管理 + 角色权限管理 + 在线监控 + 好友关系管理 + 群聊管理、会议监控、系统配置) | ✅ Phase 1/2a, 🔜 2c | **不负责的事情:** 不处理 RTP 媒体数据、不参与音视频转发、不做 WebRTC 协议协商。 diff --git a/docs/conventions/frontend-backend-integration.md b/docs/conventions/frontend-backend-integration.md index 278f644..068883d 100644 --- a/docs/conventions/frontend-backend-integration.md +++ b/docs/conventions/frontend-backend-integration.md @@ -2,7 +2,7 @@ > **适用范围**:EchoChat 项目全端(Go 后端 + admin 管理端 + frontend 用户端) > **创建日期**:2026-03-02 -> **最后更新**:2026-03-02(Phase 2a:新增 WebSocket 事件联动规范 + 联系人模块错误处理) +> **最后更新**:2026-03-04(Phase 2c 设计完成:新增群聊模块、MinIO 文件存储、已读回执规划) --- diff --git a/docs/plans/2026-02-27-echochat-system-design.md b/docs/plans/2026-02-27-echochat-system-design.md index c587359..a7b4489 100644 --- a/docs/plans/2026-02-27-echochat-system-design.md +++ b/docs/plans/2026-02-27-echochat-system-design.md @@ -718,6 +718,31 @@ DELETE /api/v1/im/conversations/:id/messages 清空聊天记录(个人视 GET /api/v1/im/messages/search 全局消息搜索(GIN 全文索引) GET /api/v1/im/unread 全局未读消息总数 +# 群聊管理模块(Phase 2c 规划) +POST /api/v1/groups 创建群聊 +GET /api/v1/groups/:id 群详情 +PUT /api/v1/groups/:id 更新群信息 +DELETE /api/v1/groups/:id 解散群聊 +GET /api/v1/groups/:id/members 成员列表 +POST /api/v1/groups/:id/members 邀请入群 +DELETE /api/v1/groups/:id/members/:uid 踢人 +PUT /api/v1/groups/:id/members/:uid/role 设置/取消管理员 +PUT /api/v1/groups/:id/members/:uid/mute 禁言/解除 +POST /api/v1/groups/:id/leave 退出群聊 +PUT /api/v1/groups/:id/transfer 转让群主 +PUT /api/v1/groups/:id/members/me/nickname 修改群昵称 +POST /api/v1/groups/:id/join-requests 申请入群 +GET /api/v1/groups/:id/join-requests 入群申请列表 +PUT /api/v1/groups/:id/join-requests/:rid 审批入群申请 +GET /api/v1/groups/search 搜索公开群 + +# 已读回执(Phase 2c 规划) +GET /api/v1/im/messages/:id/reads 消息已读详情 +GET /api/v1/im/messages/:id/read-count 消息已读计数 + +# 文件上传(Phase 2c 规划) +POST /api/v1/upload 通用文件上传(MinIO) + # 会议模块 POST /api/v1/meetings POST /api/v1/meetings/schedule @@ -757,6 +782,12 @@ GET /api/v1/admin/online/count 在线用户数 GET /api/v1/admin/contacts 所有好友关系(分页) DELETE /api/v1/admin/contacts/:id 管理员解除好友关系 +# 群聊管理(Phase 2c 规划) +GET /api/v1/admin/groups 群列表(分页 + 筛选) +GET /api/v1/admin/groups/:id 群详情(含成员列表) +DELETE /api/v1/admin/groups/:id 管理员解散群 +DELETE /api/v1/admin/groups/:id/members/:uid 管理员移除成员 + # 会议管理(后续阶段) GET /api/v1/admin/meetings GET /api/v1/admin/meetings/:id @@ -958,14 +989,22 @@ services: - 前台 4 个页面 + chat Store + API 封装 - 设计文档:`docs/plans/2026-03-03-phase2b-design.md` -#### Phase 2c:群聊与增强 📋 待规划 -- 群聊会话(建群/加入/退出/管理) -- 群消息收发 -- 已读回执(单聊 + 群聊) -- 消息类型扩展(图片/语音/文件) +#### Phase 2c:群聊与已读回执 🔜 设计完成,待实施 +- 群聊管理(三级角色:建群/加入/退出/解散/角色管理/禁言/全体禁言/群公告/入群审批) +- 群消息收发(复用 im.message.* + @某人/@所有人 + 管理员撤回无时限 + 系统消息) +- 已读回执(单聊会话级 last_read_msg_id + 群聊消息级 im_message_reads + 实时推送) +- MinIO 文件存储服务(Docker + 通用上传 API) +- 管理端群聊管理(群列表/详情/解散/移除成员) +- 前端 9 个新页面 + 群聊 Store + 会话列表 Tab 改造 +- 新增 3 张数据库表(im_groups / im_group_join_requests / im_message_reads) +- 设计文档:`docs/plans/2026-03-04-phase2c-design.md` +- 实施计划:`docs/plans/2026-03-04-phase2c-implementation.plan.md`(14 个 Task) + +#### Phase 2d:消息类型扩展 📋 待规划 +- 消息类型扩展(图片/语音/文件消息) - 管理端消息管理功能 -#### Phase 2d:会议与通知 📋 待规划 +#### Phase 2e:会议与通知 📋 待规划 - 多人音视频会议(即时会议 + 预约会议) - 消息通知系统