This commit is contained in:
2026-06-24 10:04:03 +08:00
parent b103192fac
commit 0f961789dc
538 changed files with 128210 additions and 128008 deletions
+313 -313
View File
@@ -1,313 +1,313 @@
# 记事本模块部署检查清单
## 📋 部署前检查
### 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 请求响应
祝部署顺利!🎉
# 记事本模块部署检查清单
## 📋 部署前检查
### 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 请求响应
祝部署顺利!🎉