# 业务模块开发模板 > 🎯 **模板用途**:本模板用于创建新业务模块的文档结构,为 Cursor AI 提供标准的开发和文档生成参考 ## 📋 模块基本信息 **模块名称**:[模块英文名称] / [模块中文名称] **负责人**:[开发负责人] **开发状态**:🟢 已完成 / 🟡 开发中 / ⭕ 待开始 **技术栈**:[具体技术栈] **依赖模块**:[依赖的其他模块] **开发周期**:[开始时间] - [结束时间] ## 🎯 模块概述 ### 业务价值 [描述这个模块解决的业务问题和创造的价值] ### 核心功能 - **功能 1**:[功能描述] - **功能 2**:[功能描述] - **功能 3**:[功能描述] - **功能 4**:[功能描述] ### 技术特点 - **特点 1**:[技术特色说明] - **特点 2**:[性能特点说明] - **特点 3**:[安全特点说明] ## 📁 文档结构 ``` [模块名称]/ ├── README.md # 本文件 - 模块总览 ├── 需求分析/ │ ├── 业务需求说明.md # 详细业务需求 │ ├── 功能需求清单.md # 功能点清单 │ ├── 非功能需求.md # 性能、安全要求 │ └── 用户故事.md # 用户使用场景 ├── 技术设计/ │ ├── 数据库设计.md # 表结构设计 │ ├── API接口设计.md # 接口定义 │ ├── 架构设计.md # 模块架构 │ └── 技术选型.md # 技术决策说明 ├── 实现文档/ │ ├── 后端实现说明.md # 后端代码结构 │ ├── 前端实现说明.md # 前端代码结构 │ ├── 关键业务逻辑.md # 核心算法逻辑 │ └── 代码规范.md # 编码规范 ├── 测试文档/ │ ├── 测试计划.md # 测试策略 │ ├── 测试用例.md # 具体测试用例 │ └── 测试报告.md # 测试结果 └── 运维文档/ ├── 部署指南.md # 部署步骤 ├── 监控配置.md # 监控指标 └── 故障处理.md # 常见问题 ``` ## 🏗️ 系统架构 ### 模块架构图 ```mermaid graph TB subgraph "前端层" A1[页面组件
[页面说明]] A2[业务组件
[组件说明]] end subgraph "接口层" B1[Controller
[接口说明]] end subgraph "业务层" C1[Service
[业务逻辑]] C2[Manager
[业务组装]] end subgraph "数据层" D1[Mapper
[数据访问]] D2[Database
[数据库表]] end A1 --> B1 A2 --> B1 B1 --> C1 C1 --> C2 C2 --> D1 D1 --> D2 ``` ### 数据流向 ```mermaid sequenceDiagram participant U as 用户 participant F as 前端 participant C as Controller participant S as Service participant M as Mapper participant D as Database U->>F: 用户操作 F->>C: HTTP请求 C->>S: 业务调用 S->>M: 数据查询 M->>D: SQL执行 D-->>M: 返回结果 M-->>S: 返回数据 S-->>C: 返回结果 C-->>F: JSON响应 F-->>U: 界面更新 ``` ## 📊 核心功能模块 ### 1. [功能模块 1] #### 业务描述 [详细描述这个功能模块的业务逻辑] #### 技术实现 - **前端实现**:[前端技术方案] - **后端实现**:[后端技术方案] - **数据存储**:[数据库设计] #### 关键流程 1. [步骤 1] 2. [步骤 2] 3. [步骤 3] ### 2. [功能模块 2] #### 业务描述 [详细描述这个功能模块的业务逻辑] #### 技术实现 - **前端实现**:[前端技术方案] - **后端实现**:[后端技术方案] - **数据存储**:[数据库设计] #### 关键流程 1. [步骤 1] 2. [步骤 2] 3. [步骤 3] ## 🔌 API 接口概览 ### 接口分类 #### 基础 CRUD 接口 | 接口名称 | 请求方式 | 路径 | 功能描述 | | -------------- | -------- | --------------------------- | ---------------------- | | 创建[实体] | POST | /api/[module]/[entity] | 创建新的[实体] | | 查询[实体]列表 | GET | /api/[module]/[entity]/list | 分页查询[实体]列表 | | 查询[实体]详情 | GET | /api/[module]/[entity]/{id} | 根据 ID 查询[实体]详情 | | 更新[实体] | PUT | /api/[module]/[entity]/{id} | 更新指定[实体] | | 删除[实体] | DELETE | /api/[module]/[entity]/{id} | 删除指定[实体] | #### 业务逻辑接口 | 接口名称 | 请求方式 | 路径 | 功能描述 | | ------------ | -------- | ------ | ---------- | | [业务接口 1] | [方式] | [路径] | [功能描述] | | [业务接口 2] | [方式] | [路径] | [功能描述] | | [业务接口 3] | [方式] | [路径] | [功能描述] | ### 接口规范 - **请求格式**:JSON - **响应格式**:统一响应体结构 - **认证方式**:JWT Token - **权限控制**:基于角色的权限验证 ## 🗄️ 数据模型 ### 核心实体 #### [实体 1]表 (table_name) | 字段名 | 类型 | 长度 | 非空 | 默认值 | 说明 | | ----------- | -------- | ------ | ----- | -------- | -------- | | id | BIGINT | - | Y | - | 主键 ID | | [字段 1] | [类型] | [长度] | [Y/N] | [默认值] | [说明] | | [字段 2] | [类型] | [长度] | [Y/N] | [默认值] | [说明] | | tenant_id | VARCHAR | 20 | Y | - | 租户 ID | | create_by | BIGINT | - | Y | - | 创建人 | | create_time | DATETIME | - | Y | - | 创建时间 | | update_by | BIGINT | - | Y | - | 更新人 | | update_time | DATETIME | - | Y | - | 更新时间 | | deleted | TINYINT | - | Y | 0 | 删除标记 | #### [实体 2]表 (table_name) | 字段名 | 类型 | 长度 | 非空 | 默认值 | 说明 | | ----------- | -------- | ------ | ----- | -------- | -------- | | id | BIGINT | - | Y | - | 主键 ID | | [字段 1] | [类型] | [长度] | [Y/N] | [默认值] | [说明] | | [字段 2] | [类型] | [长度] | [Y/N] | [默认值] | [说明] | | tenant_id | VARCHAR | 20 | Y | - | 租户 ID | | create_by | BIGINT | - | Y | - | 创建人 | | create_time | DATETIME | - | Y | - | 创建时间 | | update_by | BIGINT | - | Y | - | 更新人 | | update_time | DATETIME | - | Y | - | 更新时间 | | deleted | TINYINT | - | Y | 0 | 删除标记 | ### 实体关系图 ```mermaid erDiagram ENTITY1 ||--o{ ENTITY2 : "一对多关系" ENTITY2 }o--|| ENTITY3 : "多对一关系" ENTITY1 }o--o{ ENTITY3 : "多对多关系" ENTITY1 { bigint id PK varchar name datetime create_time } ENTITY2 { bigint id PK bigint entity1_id FK varchar description datetime create_time } ENTITY3 { bigint id PK varchar code varchar name datetime create_time } ``` ## 🔄 业务流程 ### 主要业务流程 #### [流程 1 名称] ```mermaid flowchart TD A[开始] --> B{条件判断} B -->|满足条件| C[执行操作1] B -->|不满足条件| D[执行操作2] C --> E[更新状态] D --> F[记录日志] E --> G[发送通知] F --> G G --> H[结束] ``` **流程说明**: 1. [步骤 1 说明] 2. [步骤 2 说明] 3. [步骤 3 说明] #### [流程 2 名称] ```mermaid flowchart TD A[开始] --> B[数据验证] B --> C{验证通过?} C -->|是| D[业务处理] C -->|否| E[返回错误] D --> F[数据存储] F --> G[返回结果] E --> H[结束] G --> H ``` **流程说明**: 1. [步骤 1 说明] 2. [步骤 2 说明] 3. [步骤 3 说明] ## 🎨 前端设计 ### 页面结构 #### [页面 1 名称] - **功能**:[页面功能说明] - **组件**:[使用的组件列表] - **交互**:[用户交互方式] - **数据**:[页面数据来源] #### [页面 2 名称] - **功能**:[页面功能说明] - **组件**:[使用的组件列表] - **交互**:[用户交互方式] - **数据**:[页面数据来源] ### 组件设计 #### [组件 1 名称] ```typescript // 组件属性接口 interface [Component1]Props { [prop1]: [type]; [prop2]: [type]; [prop3]: [type]; } // 组件事件接口 interface [Component1]Emits { [event1]: [params]; [event2]: [params]; } ``` #### [组件 2 名称] ```typescript // 组件属性接口 interface [Component2]Props { [prop1]: [type]; [prop2]: [type]; [prop3]: [type]; } // 组件事件接口 interface [Component2]Emits { [event1]: [params]; [event2]: [params]; } ``` ## 📝 开发规范 ### 代码结构 #### 后端代码结构 ``` src/main/java/org/dromara/modules/[module]/ ├── controller/ # 控制器层 │ ├── [Entity]Controller.java │ └── [Module]Controller.java ├── domain/ # 领域对象层 │ ├── bo/ # 业务对象 │ │ ├── [Entity]Bo.java │ │ └── [Entity]QueryBo.java │ └── vo/ # 视图对象 │ ├── [Entity]Vo.java │ └── [Entity]DetailVo.java ├── mapper/ # 数据访问层 │ ├── [Entity]Mapper.java │ └── [Entity]Mapper.xml ├── service/ # 业务服务层 │ ├── I[Entity]Service.java │ └── impl/ │ └── [Entity]ServiceImpl.java └── utils/ # 工具类 └── [Module]Utils.java ``` #### 前端代码结构 ``` src/views/[module]/ ├── index.vue # 主页面 ├── components/ # 页面组件 │ ├── [Component1].vue │ └── [Component2].vue ├── types/ # 类型定义 │ └── index.ts └── api/ # API接口 └── index.ts ``` ### 命名规范 #### 后端命名规范 - **类名**:PascalCase (如: UserController, UserService) - **方法名**:camelCase (如: getUserList, createUser) - **常量**:UPPER_SNAKE_CASE (如: MAX_RETRY_COUNT) - **包名**:全小写 (如: com.example.module) #### 前端命名规范 - **组件名**:PascalCase (如: UserList, UserForm) - **方法名**:camelCase (如: handleSubmit, getUserInfo) - **变量名**:camelCase (如: userList, isLoading) - **常量**:UPPER_SNAKE_CASE (如: API_BASE_URL) #### 数据库命名规范 - **表名**:下划线命名 (如: sys_user, sys_role) - **字段名**:下划线命名 (如: user_name, create_time) - **索引名**:idx*表名*字段名 (如: idx_user_username) ## 🧪 测试策略 ### 测试分类 #### 单元测试 - **覆盖范围**:Service 层业务逻辑 - **测试框架**:JUnit 5 + Mockito - **覆盖率要求**:> 80% #### 集成测试 - **覆盖范围**:Controller 层 API 接口 - **测试框架**:Spring Boot Test - **测试数据**:测试数据库 #### 前端测试 - **覆盖范围**:组件功能测试 - **测试框架**:Vue Test Utils + Jest - **测试类型**:组件渲染、用户交互、数据绑定 ### 测试用例设计 #### 功能测试用例 - **正常流程测试**:验证正常业务流程 - **边界值测试**:验证边界条件处理 - **异常流程测试**:验证错误处理逻辑 #### 性能测试用例 - **响应时间测试**:验证接口响应时间 - **并发测试**:验证并发处理能力 - **压力测试**:验证系统承载能力 ## 🚀 部署运维 ### 部署环境 #### 开发环境 - **部署方式**:本地 Docker 容器 - **数据库**:MySQL 8.0 - **缓存**:Redis 7.0 - **配置**:application-dev.yml #### 测试环境 - **部署方式**:Docker Compose - **数据库**:MySQL 8.0(测试库) - **缓存**:Redis 7.0 - **配置**:application-test.yml #### 生产环境 - **部署方式**:Kubernetes - **数据库**:MySQL 8.0(集群) - **缓存**:Redis 7.0(集群) - **配置**:application-prod.yml ### 监控指标 #### 业务指标 - **功能使用率**:各功能模块的使用频率 - **用户活跃度**:日活、月活用户数 - **业务成功率**:业务操作成功率 #### 技术指标 - **接口响应时间**:平均响应时间 < 200ms - **系统可用性**:99.9%可用性 - **错误率**:错误率 < 0.1% ## 📅 开发计划 ### 开发阶段 #### 第一阶段:基础框架([时间范围]) - [ ] 数据库表结构设计 - [ ] 基础 CRUD 接口开发 - [ ] 基础页面和组件开发 - [ ] 单元测试编写 #### 第二阶段:核心功能([时间范围]) - [ ] [核心功能 1]开发 - [ ] [核心功能 2]开发 - [ ] [核心功能 3]开发 - [ ] 集成测试 #### 第三阶段:完善优化([时间范围]) - [ ] 功能完善和优化 - [ ] 性能测试和优化 - [ ] 用户体验优化 - [ ] 文档完善 ### 里程碑 - **里程碑 1**:基础框架完成 ([日期]) - **里程碑 2**:核心功能完成 ([日期]) - **里程碑 3**:测试完成,准备发布 ([日期]) - **里程碑 4**:正式发布上线 ([日期]) ## 🔧 开发工具 ### 后端开发工具 - **IDE**:IntelliJ IDEA - **构建工具**:Maven - **代码质量**:SonarQube - **API 测试**:Postman ### 前端开发工具 - **IDE**:VSCode - **构建工具**:Vite - **代码规范**:ESLint + Prettier - **组件预览**:Storybook ### 数据库工具 - **管理工具**:Navicat Premium - **版本控制**:Flyway - **性能监控**:MySQL Performance Schema ## 📖 相关文档 - **项目总览**:[项目总览](../项目总览/README.md) - **开发规范**:[开发文档](../开发文档/README.md) - **API 接口**:[开发文档/API.md](../开发文档/API.md) - **数据库设计**:[设计文档/database](../设计文档/database/) - **变更记录**:[变更管理](../变更管理/README.md) --- ## 📝 模板使用说明 ### 适用场景 - 新业务模块开发启动时 - 现有模块重构时 - 为 AI 辅助开发提供上下文 ### 填写指南 1. **基本信息**:确保模块基本信息准确完整 2. **架构设计**:使用 Mermaid 图表清晰展示架构 3. **API 设计**:提供完整的接口定义和示例 4. **数据模型**:详细设计数据库表结构 5. **业务流程**:用流程图展示关键业务逻辑 ### 文档维护 - **实时更新**:代码变更时同步更新文档 - **版本控制**:重要变更记录版本历史 - **质量检查**:定期检查文档完整性和准确性 ### AI 辅助开发 - **上下文提供**:为 Cursor AI 提供完整的业务和技术上下文 - **代码生成**:基于文档规范生成标准化代码 - **文档生成**:自动生成和更新相关文档