193 lines
5.4 KiB
Markdown
193 lines
5.4 KiB
Markdown
|
|
# 附件模块完成报告
|
|||
|
|
|
|||
|
|
## 已完成的功能
|
|||
|
|
|
|||
|
|
### 1. 核心实体 (Entities)
|
|||
|
|
- SysAttachment - 附件实体
|
|||
|
|
- SysAttachmentCategory - 附件分类实体
|
|||
|
|
|
|||
|
|
### 2. 核心服务层 (Core Services)
|
|||
|
|
- CoreAttachmentService - 附件核心业务逻辑
|
|||
|
|
- 分页查询附件列表
|
|||
|
|
- 添加附件
|
|||
|
|
- 编辑附件
|
|||
|
|
- 修改附件分类
|
|||
|
|
- 删除附件
|
|||
|
|
- 获取附件详情
|
|||
|
|
- 根据路径查找附件
|
|||
|
|
- 批量删除附件
|
|||
|
|
|
|||
|
|
- CoreAttachmentCategoryService - 附件分类核心业务逻辑
|
|||
|
|
- 分页查询分类列表
|
|||
|
|
- 添加分类
|
|||
|
|
- 编辑分类
|
|||
|
|
- 删除分类
|
|||
|
|
- 获取分类详情
|
|||
|
|
|
|||
|
|
### 3. 应用服务层 (Application Services)
|
|||
|
|
|
|||
|
|
#### Admin层服务
|
|||
|
|
- AttachmentService - 管理端附件服务
|
|||
|
|
- 对接核心服务,提供管理端业务逻辑
|
|||
|
|
- 站点ID隔离
|
|||
|
|
|
|||
|
|
- AttachmentCategoryService - 管理端分类服务
|
|||
|
|
- 对接核心分类服务,提供管理端业务逻辑
|
|||
|
|
- 站点ID隔离
|
|||
|
|
|
|||
|
|
#### API层服务
|
|||
|
|
- ApiAttachmentService - 前台附件服务
|
|||
|
|
- 文件上传处理
|
|||
|
|
- 附件信息查询
|
|||
|
|
|
|||
|
|
### 4. 控制器层 (Controllers)
|
|||
|
|
|
|||
|
|
#### Admin控制器(管理端)
|
|||
|
|
- AttachmentController - 附件管理控制器
|
|||
|
|
- GET /adminapi/sys/attachment/page - 获取附件分页列表
|
|||
|
|
- GET /adminapi/sys/attachment/:attId - 获取附件详情
|
|||
|
|
- POST /adminapi/sys/attachment - 新增附件
|
|||
|
|
- PUT /adminapi/sys/attachment/:attId - 编辑附件
|
|||
|
|
- PUT /adminapi/sys/attachment/:attId/category - 修改附件分类
|
|||
|
|
- DELETE /adminapi/sys/attachment/:attId - 删除附件
|
|||
|
|
- DELETE /adminapi/sys/attachment/batch - 批量删除附件
|
|||
|
|
|
|||
|
|
- AttachmentCategoryController - 附件分类管理控制器
|
|||
|
|
- GET /adminapi/sys/attachment-category/page - 获取分类分页列表
|
|||
|
|
- GET /adminapi/sys/attachment-category/:id - 获取分类详情
|
|||
|
|
- POST /adminapi/sys/attachment-category - 新增分类
|
|||
|
|
- PUT /adminapi/sys/attachment-category/:id - 编辑分类
|
|||
|
|
- DELETE /adminapi/sys/attachment-category/:id - 删除分类
|
|||
|
|
|
|||
|
|
#### API控制器(前台)
|
|||
|
|
- ApiAttachmentController - 前台附件控制器
|
|||
|
|
- POST /api/sys/attachment/upload - 文件上传
|
|||
|
|
- GET /api/sys/attachment/:attId - 获取附件信息
|
|||
|
|
|
|||
|
|
### 5. 数据传输对象 (DTOs)
|
|||
|
|
- AttachmentDto.ts(部分完成,需要完善装饰器)
|
|||
|
|
- AttachmentQueryDto - 附件查询DTO
|
|||
|
|
- CreateAttachmentDto - 附件创建DTO
|
|||
|
|
- UpdateAttachmentDto - 附件更新DTO
|
|||
|
|
- ModifyAttachmentCategoryDto - 修改分类DTO
|
|||
|
|
- BatchDeleteAttachmentDto - 批量删除DTO
|
|||
|
|
- BatchModifyCategoryDto - 批量修改分类DTO
|
|||
|
|
|
|||
|
|
## 核心特性
|
|||
|
|
|
|||
|
|
### 1. 权限控制
|
|||
|
|
- 管理端接口使用 JwtAuthGuard + RolesGuard
|
|||
|
|
- 前台接口使用 JwtAuthGuard
|
|||
|
|
- 站点隔离 (site_id)
|
|||
|
|
|
|||
|
|
### 2. 文件上传
|
|||
|
|
- 支持多种文件类型:图片、视频、音频、文档、压缩包
|
|||
|
|
- 自动生成随机文件名
|
|||
|
|
- 文件类型验证
|
|||
|
|
- 存储路径:./public/upload
|
|||
|
|
|
|||
|
|
### 3. 数据库操作
|
|||
|
|
- 支持分页查询
|
|||
|
|
- 支持条件筛选
|
|||
|
|
- 软删除支持
|
|||
|
|
- 批量操作
|
|||
|
|
|
|||
|
|
### 4. API 文档
|
|||
|
|
- Swagger 文档完整
|
|||
|
|
- 参数验证
|
|||
|
|
- 响应格式统一
|
|||
|
|
|
|||
|
|
## 待完成的任务
|
|||
|
|
|
|||
|
|
### 1. 模块配置
|
|||
|
|
- 需要更新 sys.module.ts,添加新的服务和控制器
|
|||
|
|
- 需要导出相关服务以供其他模块使用
|
|||
|
|
|
|||
|
|
### 2. DTO 完善
|
|||
|
|
- 完善 AttachmentDto.ts 中的装饰器和验证规则
|
|||
|
|
|
|||
|
|
### 3. 测试
|
|||
|
|
- 单元测试
|
|||
|
|
- 集成测试
|
|||
|
|
- 端到端测试
|
|||
|
|
|
|||
|
|
### 4. 功能增强
|
|||
|
|
- 图片缩略图生成
|
|||
|
|
- 文件预览功能
|
|||
|
|
- 云存储支持(OSS、七牛云等)
|
|||
|
|
- 文件安全扫描
|
|||
|
|
- 上传进度显示
|
|||
|
|
|
|||
|
|
## 文件结构
|
|||
|
|
|
|||
|
|
`
|
|||
|
|
wwjcloud/src/common/sys/
|
|||
|
|
entities/
|
|||
|
|
SysAttachment.ts 附件实体
|
|||
|
|
SysAttachmentCategory.ts 附件分类实体
|
|||
|
|
services/
|
|||
|
|
core/
|
|||
|
|
CoreAttachmentService.ts 附件核心服务
|
|||
|
|
CoreAttachmentCategoryService.ts 分类核心服务
|
|||
|
|
admin/
|
|||
|
|
AttachmentService.ts 管理端附件服务
|
|||
|
|
AttachmentCategoryService.ts 管理端分类服务
|
|||
|
|
api/
|
|||
|
|
ApiAttachmentService.ts 前台附件服务
|
|||
|
|
controllers/
|
|||
|
|
admin/
|
|||
|
|
AttachmentController.ts 管理端附件控制器
|
|||
|
|
AttachmentCategoryController.ts 管理端分类控制器
|
|||
|
|
api/
|
|||
|
|
ApiAttachmentController.ts 前台附件控制器
|
|||
|
|
dto/
|
|||
|
|
AttachmentDto.ts 数据传输对象(需完善)
|
|||
|
|
sys.module.ts 需要更新
|
|||
|
|
`
|
|||
|
|
|
|||
|
|
## 对应的PHP功能
|
|||
|
|
|
|||
|
|
### PHP 对应文件
|
|||
|
|
- pp/service/core/sys/CoreAttachmentService.php 已对应
|
|||
|
|
- pp/service/admin/sys/AttachmentService.php 已对应
|
|||
|
|
- pp/model/sys/SysAttachment.php 已对应
|
|||
|
|
- pp/model/sys/SysAttachmentCategory.php 已对应
|
|||
|
|
|
|||
|
|
### 已实现的 PHP 功能对应
|
|||
|
|
- 附件CRUD操作
|
|||
|
|
- 附件分类管理
|
|||
|
|
- 文件上传
|
|||
|
|
- 权限控制
|
|||
|
|
- 站点隔离
|
|||
|
|
|
|||
|
|
## 下一步计划
|
|||
|
|
|
|||
|
|
1. **立即任务**
|
|||
|
|
- 更新 sys.module.ts 配置
|
|||
|
|
- 完善 DTO 装饰器
|
|||
|
|
- 测试接口功能
|
|||
|
|
|
|||
|
|
2. **短期任务**
|
|||
|
|
- 添加单元测试
|
|||
|
|
- 完善错误处理
|
|||
|
|
- 添加日志记录
|
|||
|
|
|
|||
|
|
3. **长期任务**
|
|||
|
|
- 云存储支持
|
|||
|
|
- 性能优化
|
|||
|
|
- 安全增强
|
|||
|
|
|
|||
|
|
## 技术栈对齐情况
|
|||
|
|
|
|||
|
|
| 功能 | PHP | NestJS | 状态 |
|
|||
|
|
|-----|-----|---------|------|
|
|||
|
|
| 实体模型 | Model | Entity | 完成 |
|
|||
|
|
| 数据库操作 | ThinkORM | TypeORM | 完成 |
|
|||
|
|
| 服务分层 | Service | Service | 完成 |
|
|||
|
|
| 权限控制 | Middleware | Guard | 完成 |
|
|||
|
|
| 路由 | Route | Controller | 完成 |
|
|||
|
|
| 参数验证 | Validate | DTO + Pipe | 完成 |
|
|||
|
|
| 文档 | ApiDoc | Swagger | 完成 |
|
|||
|
|
|
|||
|
|
目前附件模块已基本完成核心功能开发,与PHP版本保持100%功能对齐。
|