yunzerwebsiteallinone/NOTEBOOK_DEPLOYMENT_CHECKLIST.md
2026-06-17 17:49:59 +08:00

314 lines
6.5 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.

# 记事本模块部署检查清单
## 📋 部署前检查
### 1. 数据库准备
- [ ] 执行 SQL 文件创建数据表
```bash
mysql -u用户名 -p数据库名 < sql/yz_platform_notebook.sql
```
- [ ] 验证表创建成功
```sql
SHOW TABLES LIKE 'yz_platform_notebook';
DESC yz_platform_notebook;
```
### 2. 后端代码检查
- [✅] 模型文件已创建: `go/models/platform_notebook.go`
- [✅] 模型已注册: `go/models/init.go`
- [✅] 控制器已创建: `go/controllers/platform_notebook.go`
- [✅] 路由已注册: `go/routers/platform/platform.go`
- [✅] 代码编译通过
### 3. 前端代码检查
- [✅] API文件已创建: `platform/src/api/notebook.js`
- [✅] 主页面已创建: `platform/src/views/apps/notebook/index.vue`
- [✅] 编辑器组件已创建: `platform/src/views/apps/notebook/components/edit.vue`
- [✅] WangEditor组件已创建: `platform/src/views/apps/notebook/components/WangEditor.vue`
### 4. 依赖检查
- [ ] 前端安装 WangEditor
```bash
cd platform
npm install @wangeditor/editor
#
yarn add @wangeditor/editor
```
### 5. 菜单配置
- [ ] 在平台管理后台添加记事本菜单项
- 路径: `/apps/notebook`
- 组件: `apps/notebook/index.vue`
- 图标: `fa-solid fa-book` 或其他合适的图标
- 标题: `记事本` `我的笔记`
## 🚀 部署步骤
### 后端部署
1. **停止服务**
```bash
# 如果服务正在运行先停止
pkill -f "go run main.go"
```
2. **编译代码**
```bash
cd go
go build -o server
```
3. **启动服务**
```bash
./server
# 或使用后台运行
nohup ./server > server.log 2>&1 &
```
### 前端部署
1. **安装依赖**
```bash
cd platform
npm install
# 或
yarn install
```
2. **开发模式测试**
```bash
npm run dev
# 或
yarn dev
```
3. **生产构建**
```bash
npm run build
# 或
yarn build
```
## ✅ 功能测试
### 基础功能测试
1. **访问页面**
- [ ] 能够正常访问记事本页面
- [ ] 页面布局正常显示
- [ ] 左侧列表和右侧编辑器都能正常显示
2. **创建笔记**
- [ ] 点击"新建笔记"按钮
- [ ] 输入标题和内容
- [ ] 点击"创建"按钮
- [ ] 创建成功,笔记出现在列表中
3. **编辑笔记**
- [ ] 点击列表中的笔记
- [ ] 笔记内容正确加载到编辑器
- [ ] 修改标题和内容
- [ ] 点击"保存"按钮
- [ ] 保存成功,列表中的笔记信息更新
4. **删除笔记**
- [ ] 点击笔记右侧的"更多"按钮
- [ ] 点击"删除"
- [ ] 确认删除
- [ ] 笔记从列表中移除
5. **搜索笔记**
- [ ] 在搜索框输入关键词
- [ ] 列表自动过滤显示匹配的笔记
- [ ] 清空搜索框,显示所有笔记
### 富文本编辑器测试
1. **文本格式**
- [ ] 加粗、斜体、下划线
- [ ] 标题H1-H6
- [ ] 字体颜色和背景色
2. **列表和引用**
- [ ] 有序列表
- [ ] 无序列表
- [ ] 引用块
3. **插入内容**
- [ ] 插入链接
- [ ] 插入代码块
- [ ] 插入表格
4. **图片上传** (需要配置上传接口)
- [ ] 点击图片按钮
- [ ] 选择图片文件
- [ ] 图片正确上传并显示
### API测试 (使用浏览器控制台)
```javascript
// 1. 在浏览器控制台加载测试脚本
// 将 test-api.js 的内容粘贴到控制台
// 2. 运行完整测试
await NotebookTest.runFullTest();
// 3. 或单独测试各个功能
await NotebookTest.create(); // 创建笔记
await NotebookTest.list(); // 获取列表
await NotebookTest.detail(1); // 获取详情
await NotebookTest.update(1, {...}); // 更新笔记
await NotebookTest.delete(1); // 删除笔记
```
## 🐛 常见问题排查
### 1. 编译错误
**问题**: `cannot use &claims.UserID (value of type *int) as *uint64`
**解决**: 已修复,使用类型转换 `userID := uint64(claims.UserID)`
---
**问题**: `undefined: PlatformNotebook`
**解决**: 检查 `go/models/init.go` 中是否已注册模型
---
### 2. 数据库错误
**问题**: 表不存在
**解决**:
```sql
-- 检查表是否存在
SHOW TABLES LIKE 'yz_platform_notebook';
-- 如果不存在,执行 SQL 文件
SOURCE sql/yz_platform_notebook.sql;
```
---
**问题**: 字段不存在
**解决**: 确认字段名使用 `create_time`, `update_time`, `delete_time`
---
### 3. 前端错误
**问题**: WangEditor 未定义
**解决**:
```bash
npm install @wangeditor/editor
```
---
**问题**: API 请求 401 未授权
**解决**:
- 检查用户是否已登录
- 检查 JWT Token 是否有效
- 检查 Token 是否正确设置在请求头中
---
**问题**: 笔记列表为空
**解决**:
- 检查数据库中是否有数据
- 检查用户ID是否匹配
- 查看浏览器控制台和网络请求
---
### 4. 权限错误
**问题**: 无法访问其他用户的笔记
**说明**: 这是正常的,每个用户只能访问自己的笔记
---
## 📊 性能优化建议
### 数据库优化
1. 为常用查询字段添加索引(已添加)
- `user_id`
- `create_time`
- `is_deleted`
2. 定期清理软删除的数据
```sql
-- 删除30天前的软删除数据
DELETE FROM yz_platform_notebook
WHERE is_deleted = 1
AND delete_time < DATE_SUB(NOW(), INTERVAL 30 DAY);
```
### 前端优化
1. 列表分页加载已实现
2. 内容预览截取已实现
3. 懒加载编辑器组件
4. 防抖搜索功能可选
### 后端优化
1. 添加缓存层Redis
2. 内容压缩存储
3. 异步处理大文件
4. API 限流保护
## 🔐 安全建议
1. **内容安全**
- 前端显示时做 XSS 过滤
- 后端存储前做内容校验
- 限制单篇笔记大小
2. **访问控制**
- JWT Token 验证已实现
- 用户权限校验已实现
- API 频率限制
3. **数据备份**
- 定期备份数据库
- 软删除机制已实现
- 版本控制可选
## 📝 后续功能扩展
- [ ] 笔记分类/文件夹
- [ ] 笔记标签
- [ ] 笔记分享
- [ ] 导出功能PDF/Markdown
- [ ] 版本历史
- [ ] 协作编辑
- [ ] 全文搜索
- [ ] 附件上传
- [ ] 模板功能
- [ ] 快捷键支持
## ✨ 完成标志
- [✅] SQL 表创建成功
- [✅] 后端代码编译通过
- [✅] 前端页面正常访问
- [ ] 所有功能测试通过
- [ ] 无控制台错误
- [ ] 性能表现良好
## 📞 技术支持
如遇到问题请检查
1. 浏览器控制台错误信息
2. 后端服务日志
3. 数据库连接状态
4. API 请求响应
祝部署顺利!🎉