# 部署包 v0.5.2(2026-06-16)

## 📦 包含文件

| 文件 | 大小 | 路径 | 说明 |
|------|------|------|------|
| `deploy-h5-v2.tar` | 645 KB | 本地 `D:\资料\03-项目开发\wecom_it_smart_desk-claude\deploy-h5-v2.tar` | H5 前端强化版骨架屏 |
| `deploy-backend-v052.tar` | 2.5 MB | 本地 `D:\资料\03-项目开发\wecom_it_smart_desk-claude\deploy-backend-v052.tar` | 后端 3 个 hotfix |

## 🔄 改动清单(本次)

### 后端 3 个 hotfix
1. **`backend/app/main.py`** — 审批链接 seed 重写(6 条一站式运维平台真实工单)
2. **`backend/app/api/h5.py:836-846`** — `messages.id` UUID 比较 → 字符串比较(防 PG 报 "operator does not exist: character varying = uuid")
3. **`backend/app/api/ws.py:38,196`** — 移除 `request: Request` 参数,改用 `websocket.headers` / `websocket.query_params`(修 WS 连接失败)

### H5 前端 1 个强化
4. **`frontend-h5/index.html`** + **`main.ts`** + **`App.vue`** + **`router/index.ts`**
   - 骨架屏 CSS 强化(logo 64px + 阴影 + 脉冲动画)
   - 显式 `body.app-loaded` 类名 + 最小 500ms 显示(代替易失效的 `:empty` 选择器)
   - ChatView 改静态 import(去掉 301KB 二次请求)

---

## 🚀 部署步骤(PuTTY 一次跑完)

### 步骤 1:WinSCP 上传 2 个包到 `/tmp/`
- `deploy-h5-v2.tar` (645 KB)
- `deploy-backend-v052.tar` (2.5 MB)

### 步骤 2:覆盖部署 H5 前端

```bash
rm -rf /opt/wecom-it-desk/frontend-h5/dist
```

```bash
mkdir -p /opt/wecom-it-desk/frontend-h5/dist
```

```bash
tar -xf /tmp/deploy-h5-v2.tar -C /opt/wecom-it-desk/frontend-h5/dist
```

```bash
grep -c "app-loaded" /opt/wecom-it-desk/frontend-h5/dist/index.html
```
> 期望输出:`≥ 1`(新特征字符串)

### 步骤 3:覆盖部署后端 3 个 hotfix

```bash
# 先备份
cp -r /opt/wecom-it-desk/backend/app /opt/wecom-it-desk/backend/app.bak-$(date +%Y%m%d-%H%M)
```

```bash
# 解压新代码到 /tmp/backend-new
mkdir -p /tmp/backend-new
tar -xf /tmp/deploy-backend-v052.tar -C /tmp/backend-new
```

```bash
# 复制到 backend 目录(只覆盖改过的 3 个文件)
cp /tmp/backend-new/backend/app/main.py /opt/wecom-it-desk/backend/app/main.py
cp /tmp/backend-new/backend/app/api/h5.py /opt/wecom-it-desk/backend/app/api/h5.py
cp /tmp/backend-new/backend/app/api/ws.py /opt/wecom-it-desk/backend/app/api/ws.py
```

```bash
# 重启 backend 容器生效
docker restart wecom_it_backend
```

```bash
# 验证启动成功(看启动日志,无报错即可)
docker logs --tail 20 wecom_it_backend
```

### 步骤 4:让审批链接重新 seed(数据库操作)

```bash
# 进入 backend 容器执行 SQL
docker exec -it wecom_it_postgres psql -U wecom -d wecom_it_desk -c "DELETE FROM approval_links;"
```

```bash
# 重启 backend 让 seed 重新跑
docker restart wecom_it_backend
```

```bash
# 验证:看 approval_links 应该有 10 条(6 IT + 2 HR + 1 行政 + 1 财务)
docker exec -it wecom_it_postgres psql -U wecom -d wecom_it_desk -c "SELECT category, COUNT(*) FROM approval_links GROUP BY category;"
```
> 期望输出:6 条 IT + 2 条 HR + 1 条 行政 + 1 条 财务

### 步骤 5:验证 /itadmin/ 403 + 一站式运维平台链接

1. **走企微入口**:企微 → IT 数据查询平台(或类似应用) → 进 /itadmin/ → 转外部浏览器
2. **预期**:不再 403,正常加载管理后台
3. **H5 端**:
   - 企微 → IT 智能服务台 → /itdesk/ → 转外部浏览器
   - 右侧"常用资源"标签里应该看到 6 条新 IT 工单链接
4. **后端 WebSocket**:
   - 坐席工作台 /itagent/ 打开 → 浏览器 F12 → Network → 看 `ws://...` 状态应该是 `101 Switching Protocols` 而不是失败

---

## ⚠️ 出错兜底(3 秒回滚)

```bash
# H5 回滚
rm -rf /opt/wecom-it-desk/frontend-h5/dist
mv /opt/wecom-it-desk/frontend-h5/dist.bak-最新时间戳 /opt/wecom-it-desk/frontend-h5/dist
```

```bash
# 后端回滚
rm -rf /opt/wecom-it-desk/backend/app
mv /opt/wecom-it-desk/backend/app.bak-最新时间戳 /opt/wecom-it-desk/backend/app
docker restart wecom_it_backend
```

```bash
# 审批链接恢复
docker exec -it wecom_it_postgres psql -U wecom -d wecom_it_desk -c "DELETE FROM approval_links; INSERT INTO approval_links(...) VALUES(...);"
# (或从 alembic 之前的 migration 找原始 seed 数据)
```

---

## 📝 验证清单(用户跑完部署后逐项打勾)

- [ ] H5 骨架屏:浏览器访问 /itdesk/ 看到蓝色 logo + 文字
- [ ] /itadmin/ 不再 403
- [ ] H5 常用资源 6 条 IT 工单链接(点开能跳到 devops.dc.servyou-it.com)
- [ ] /itagent/ WebSocket 连接成功(F12 Network 看 WS 状态 101)
- [ ] /itportal/ 业务功能正常

---

**部署包生成时间**:2026-06-16 08:17
**版本**:v0.5.2
**配套文档**:本文件 `部署包-2026-06-16-v0.5.2.md`
