## 项目概述 基于 Node.js + NestJS + TypeORM 构建的沙发翻新服务小程序后端系统,支持用户认证、案例管理、服务管理等核心功能。 ## 技术栈 - **框架**: NestJS v11.x - **数据库**: MySQL + TypeORM v0.3.x - **认证**: JWT (JSON Web Token) - **验证**: class-validator + class-transformer - **文档**: Swagger/OpenAPI - **语言**: TypeScript ## 开发规范 ### 代码结构 - 采用模块化架构,每个业务功能独立为模块 - DTO 用于数据传输验证 - Entity 定义数据库实体关系 - Service 实现业务逻辑 - Controller 处理路由和 HTTP 请求 ### 权限控制 - 使用 `@Public()` 装饰器标记公开接口 - 使用 `@Roles()` 装饰器进行角色权限控制 - 使用 `@CurrentUser()` 获取当前登录用户信息 ### API 设计原则 - 遵循 RESTful API 设计规范 - 统一错误处理和响应格式 - 完整的 Swagger 文档注释 - 输入验证和数据转换 ## 数据库设计 - Users: 用户表,支持多角色 (admin/customer/worker) - Cases: 案例表,展示翻新前后对比 - Services: 服务表,管理服务项目和价格 - Bookings: 预约表,处理客户预约和订单 ## 开发流程 1. 使用 `npm run start:dev` 启动开发服务器 2. 访问 http://localhost:3000/docs 查看 API 文档 3. 确保 MySQL 数据库连接配置正确 4. TypeORM 会自动同步数据库结构 (开发环境) ### ✅ 已完成功能 - [x] TypeORM 数据库配置和连接 - [x] JWT 认证系统 (注册/登录/刷新令牌) - [x] 用户管理模块 (个人资料/权限控制) - [x] 案例管理模块 (CRUD/点赞/筛选) - [x] 服务管理模块 (价格/状态/排序) - [x] Swagger API 文档集成 - [x] 全局验证管道和错误处理 - [x] CORS 跨域配置 ### 🚧 待开发功能 - [ ] 预约管理模块 (Booking) - [ ] 文件上传功能 (图片存储) - [ ] 数据库迁移脚本 - [ ] 单元测试和 E2E 测试 - [ ] 日志系统 - [ ] 性能监控和限流