Files
wecom_it_smart_desk/docs/IT智能服务台-版本更新说明-20250614.md
T

186 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# IT智能服务台 - 版本更新说明
**版本**: v1.1.0
**更新日期**: 2026-06-14
**文档状态**: 待审核
---
## 一、本次更新内容
### 1.1 新增功能
| 功能 | 说明 | 优先级 |
|------|------|--------|
| 消息撤回 | 2分钟内可撤回自己的消息 | P0 |
| 消息删除 | 删除自己的消息 | P0 |
| 消息状态 | 支持 sending/sent/delivered/read/recalled 状态 | P0 |
| 标记已读 | 一键标记会话已读 | P1 |
| 图片上传 | 支持图片上传(≤10MB) | P1 |
| 文件上传 | 支持文件上传(≤10MB) | P1 |
### 1.2 架构优化
| 优化项 | 说明 |
|--------|------|
| Health Check | 所有容器已配置健康检查 |
| 自动重启 | 容器崩溃自动重启(restart: unless-stopped |
| AI Gateway 设计 | 预留多模型切换架构 |
### 1.3 安全增强
| 功能 | 说明 |
|------|------|
| OTP 双因素认证 | 访问管理后台时二次验证 |
| 操作审计 | 关键操作日志记录(规划中) |
---
## 二、需要同步的代码
### 2.1 后端文件
| 文件 | 改动 | 说明 |
|------|------|------|
| `app/models/message.py` | 修改 | 添加 status、recallable_until 字段 |
| `app/api/messages.py` | 修改 | 添加撤回/删除/标记已读/上传 API |
| `app/api/ws_manager.py` | 修改 | 添加消息状态广播 |
| `docker-compose.yml` | 修改 | healthcheck 已配置 |
### 2.2 数据库变更
```sql
-- 需要执行的 SQL 迁移
ALTER TABLE messages ADD COLUMN status VARCHAR(20) DEFAULT 'sent';
ALTER TABLE messages ADD COLUMN recallable_until TIMESTAMP;
```
### 2.3 前端文件(如果有)
| 文件 | 说明 |
|------|------|
| 消息操作菜单 | 撤回/删除按钮 |
| 消息状态显示 | 状态图标 |
| 已读标记 | 一键已读 |
---
## 三、部署步骤
### 3.1 本地打包
```bash
# 后端打包
cd backend
docker build -t wecom-it-desk-backend:latest .
# 导出镜像
docker save wecom-it-desk-backend:latest -o wecom-it-desk-backend.tar
```
### 3.2 服务器部署
```bash
# 1. 上传镜像到堡垒机
# 堡垒机: sxn@10.212.189.210:2222 (OTP)
# 目标路径: /tmp/
# 2. SSH 到正式服务器
ssh sxn@10.212.189.210 -p 2222
ssh 10.90.5.110
# 3. 导入镜像
docker load -i /tmp/wecom-it-desk-backend.tar
# 4. 解决容器冲突(重要!)
docker rm -f wecom_it_redis wecom_it_backend wecom_it_postgres wecom_it_nginx 2>/dev/null
# 5. 重新启动
docker compose -p root up -d
# 6. 执行数据库迁移
docker compose exec backend python -c "from app.database import engine; engine.execute('ALTER TABLE messages ADD COLUMN status VARCHAR(20) DEFAULT 'sent'')"
```
---
## 四、验证清单
### 4.1 健康检查
| 检查项 | 命令 | 预期结果 |
|--------|------|----------|
| 后端服务 | `curl -s http://localhost:8000/health` | `{"status": "ok"}` |
| Nginx | `curl -s http://localhost:80/itdesk/health` | `{"status": "ok"}` |
| 数据库 | `docker compose exec backend python -c "from app.database import engine; print('OK')"` | OK |
| Redis | `docker compose exec redis redis-cli ping` | PONG |
### 4.2 API 测试
| API | 方法 | 测试命令 |
|-----|------|----------|
| 撤回消息 | POST | `curl -X POST http://localhost:8000/api/messages/{id}/recall` |
| 删除消息 | DELETE | `curl -X DELETE http://localhost:8000/api/messages/{id}` |
| 标记已读 | POST | `curl -X POST http://localhost:8000/api/conversations/{id}/mark-read` |
| 图片上传 | POST | `curl -X POST -F "file=@test.jpg" http://localhost:8000/api/messages/image` |
### 4.3 功能测试
| 功能 | 测试场景 | 预期结果 |
|------|----------|----------|
| 消息发送 | 发送文本消息 | 消息正常显示 |
| 消息撤回 | 2分钟内撤回 | 状态变为 recalled |
| 消息撤回 | 超过2分钟 | 返回 403 错误 |
| 标记已读 | 点击已读 | 所有消息标记为已读 |
---
## 五、已知问题与限制
### 5.1 待解决
| 问题 | 状态 | 说明 |
|------|------|------|
| 容器冲突 | 进行中 | 需指定项目名 `-p root` |
| 前端同步 | 待确认 | 可能需要更新前端代码 |
### 5.2 已知限制
| 限制 | 说明 |
|------|------|
| 单节点部署 | MVP 阶段保持单节点 |
| 文件大小 | 单文件 ≤10MB |
| 撤回时间 | 2分钟后不可撤回 |
---
## 六、回滚方案
如果部署失败,执行:
```bash
# 停止服务
docker compose -p root down
# 恢复旧镜像(如果有备份)
docker load -i wecom-it-desk-backend-old.tar
# 使用备份的配置启动
docker compose -p root up -d
```
---
## 七、联系人
| 角色 | 联系人 | 说明 |
|------|--------|------|
| 产品负责人 | 许清楚 | PRD 确认 |
| 技术负责人 | 寇豆码 | 代码审查 |
| QA 负责人 | 严过关 | 测试验证 |
| 运维负责人 | 宋献 | 部署执行 |
---
**文档版本**: 1.0
**审核状态**: 待审核