Files
vscode-workbench/.trae/documents/messages-chat-supplement-plan.md
T

3.5 KiB
Raw Blame History

消息回复与私聊功能补充计划

检测目标

检测"消息回复"和"私聊"两个模块是否还有需要补充的部分


当前实现状态

✅ 已实现

消息回复(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 记录
  • 前端二次确认弹窗

验证步骤

  1. 在私聊中点击"清空聊天记录",确认会话消息被清空
  2. 刷新页面,确认聊天记录不再显示
  3. 在消息页面点击"清空全部",确认消息列表被清空
  4. 检查移动端聊天,确认表情/长按菜单可用