3.5 KiB
3.5 KiB
消息回复与私聊功能补充计划
检测目标
检测"消息回复"和"私聊"两个模块是否还有需要补充的部分
当前实现状态
✅ 已实现
消息回复(Messages)
| 模块 | 状态 |
|---|---|
| 后端模型 | Message(回复/@我/点赞)、SystemMessage(系统通知) |
| 后端 API | 列表获取、未读计数、标记已读、全部已读、删除消息、系统消息详情 |
| 前端 | Messages.tsx(四标签页:回复/@我/点赞/系统) |
| 移动端 | MessagesMobile.tsx(独立移动版) |
私聊(Chat)
| 模块 | 状态 |
|---|---|
| 后端模型 | FriendRequest、Friendship、Conversation、ChatMessage、FavoriteSticker |
| WebSocket | Django Channels + ChatConsumer(实时消息、打字状态、在线状态、已读回执) |
| 后端 API | 好友请求(发送/接受/拒绝/取消)、好友列表、用户搜索、会话管理、消息发送/撤回、文件上传、表情管理 |
| 前端 | Chat.tsx(WebSocket 实时通信、回复引用、表情/贴纸选择器、右键菜单、消息撤回) |
| 移动端 | ChatMobile.tsx(基础聊天功能) |
❌ 需要补充的功能
1. 清空聊天记录(私聊会话)
现状:用户无法清除某个会话的聊天历史,也无法清空所有聊天记录。
影响文件:
| 文件 | 修改内容 |
|---|---|
chat/views.py |
新增 ConversationClearView(DELETE 会话的所有消息) |
chat/urls.py |
新增路由 conversations/<pk>/clear/ |
Chat.tsx |
会话菜单/标题栏添加"清空聊天记录"按钮 |
Chat.css |
弹窗确认样式 |
2. 一键清空所有消息通知
现状:消息页面只有"全部标为已读",没有"全部删除/清空"。
影响文件:
| 文件 | 修改内容 |
|---|---|
message/views.py |
新增 MessageClearAllView(删除某类型或全部消息) |
message/urls.py |
新增路由 clear/ |
Messages.tsx |
顶部操作区添加"清空全部"按钮 |
MessagesMobile.tsx |
同步添加 |
3. 移动端聊天功能增强
现状:ChatMobile.tsx 仅支持纯文本发送,缺少表情、贴纸、文件上传、回复引用等。
影响文件:
| 文件 | 修改内容 |
|---|---|
ChatMobile.tsx |
添加表情选择器(简化版)、长按菜单(复制/撤回/删除)、图片消息展示 |
ChatMobile.css |
适配新组件样式 |
推荐优先级
| 优先级 | 功能 | 原因 |
|---|---|---|
| P0 | 清空聊天记录 | 用户主动要求,隐私/数据管理的基本需求 |
| P1 | 一键清空消息通知 | 与消息清空配套,完整的数据管理 |
| P2 | 移动端聊天增强 | 移动端体验补全 |
实现方案概要
清空聊天记录(私聊)
DELETE /chat/conversations/<pk>/clear/
- 验证用户是会话参与者
- 删除该会话下所有
ChatMessage - 可选:同时清空对方的消息(仅当前用户视图 vs 物理删除)
- 前端二次确认弹窗
清空所有消息通知
DELETE /messages/clear/?type=reply (可选 type 参数)
- 删除当前用户某类型或全部
Message记录 - 删除关联的
SystemMessageRead记录 - 前端二次确认弹窗
验证步骤
- 在私聊中点击"清空聊天记录",确认会话消息被清空
- 刷新页面,确认聊天记录不再显示
- 在消息页面点击"清空全部",确认消息列表被清空
- 检查移动端聊天,确认表情/长按菜单可用