feat: 功能优化

This commit is contained in:
2025-11-16 22:09:41 +08:00
parent 995385f520
commit 3a9e823375
5 changed files with 129 additions and 42 deletions

View File

@@ -20,12 +20,121 @@ globs: **/*.java, **/*.xml, **/*.yaml, **/*.yml
- **VO 层**: 视图对象,用于前后端交互
- **DO 层**: 数据对象,对应数据库表
## 目录结构规范
### 模块目录结构
业务模块的标准目录结构如下:
```
yudao-module-{模块名}/
└── src/main/java/cn/iocoder/yudao/module/{模块名}/
├── controller/ # Controller 层
│ └── {Xxx}Controller.java
├── service/ # Service 层
│ ├── {Xxx}Service.java # Service 接口
│ ├── {Xxx}ServiceImpl.java # Service 实现类
│ └── {Xxx}Util.java # Service 工具类(可选)
├── mapper/ # Mapper 层
│ └── {Xxx}Mapper.java
├── dataobject/ # DO 对象(可选)
│ └── {Xxx}DO.java
├── vo/ # VO 对象
│ ├── {Xxx}SaveReqVO.java
│ ├── {Xxx}PageReqVO.java
│ ├── {Xxx}UpdateReqVO.java
│ └── {Xxx}RespVO.java
├── enums/ # 枚举类(可选)
│ └── {Xxx}Enum.java
└── mq/ # 消息队列(可选)
└── consumer/
└── {Xxx}Consumer.java
```
### 目录结构说明
- **mapper/**: Mapper 接口,继承 `BaseMapperX<T>`
- **dataobject/**: DO 对象(可选),继承 `BaseDO` 或 `TenantBaseDO`
- 如果模块没有 DO 对象,可以省略 `dataobject/` 包
### 包命名规范
#### Controller 包
- Controller 类名:`{Xxx}Controller` 或 `App{Xxx}Controller`
- 直接放在 `controller/` 包下
#### Service 包
- Service 接口:`{Xxx}Service.java`
- Service 实现:`{Xxx}ServiceImpl.java`
- Service 工具类:`{Xxx}Util.java` 或 `{Xxx}Helper.java`
#### Mapper 包
- Mapper 接口:`mapper/{Xxx}Mapper.java`
- Mapper 接口继承 `BaseMapperX<T>`
#### DO 包
- DO 对象:`dataobject/{Xxx}DO.java`(可选)
- DO 类名:`{Xxx}DO.java`
- 继承 `BaseDO` 或 `TenantBaseDO`
#### VO 包
- Request VO: `{Xxx}SaveReqVO`、`{Xxx}PageReqVO`、`{Xxx}UpdateReqVO`
- Response VO: `{Xxx}RespVO`
- App VO: `App{Xxx}ReqVO`、`App{Xxx}RespVO`
- 直接放在 `vo/` 包下
### 目录结构示例
#### 示例 1简单模块tikhup
```
tikhup/
├── controller/
│ └── TikHupController.java
├── service/
│ ├── TikHupService.java
│ ├── TikHupServiceImpl.java
│ └── TikFileTransCharacters.java
├── mapper/
│ ├── TikPromptMapper.java
│ └── TikTokenMapper.java
└── vo/
├── TikPromptVO.java
└── TikTokenVO.java
```
#### 示例 2完整模块file
```
file/
├── controller/
│ ├── AppTikUserFileController.java
│ ├── AppTikFileGroupController.java
│ └── AppTikTestController.java
├── service/
│ ├── TikUserFileService.java
│ ├── TikUserFileServiceImpl.java
│ ├── TikFileGroupService.java
│ └── TikFileGroupServiceImpl.java
├── mapper/
│ ├── TikUserFileMapper.java
│ └── TikFileGroupMapper.java
├── vo/
│ ├── AppTikUserFilePageReqVO.java
│ ├── AppTikUserFileRespVO.java
│ └── AppTikFileGroupCreateReqVO.java
└── enums/
└── TikFileCategoryEnum.java
```
### 目录结构原则
1. **统一性**:同一模块内保持结构一致
2. **简洁性**:使用 `mapper/` 和 `dataobject/` 包,结构清晰
3. **可选性**:没有 DO 对象时可以省略 `dataobject/` 包
4. **可扩展性**:预留扩展空间,便于后续功能扩展
## Controller 层规范
### 包结构
- `controller.admin.*`: 管理后台接口
- `controller.app.*`: 用户端接口C 端)
- App Controller 和 VO 必须添加 `App` 前缀
### 注解使用
- 使用 `@RestController` 而非 `@Controller`
@@ -260,7 +369,7 @@ public UserPromptDO getUserPrompt(Long id) {
### 路径前缀
- 管理后台:`/admin-api`
- 用户端:`/app-api`
- 用户端:`/api`
- Controller 路径:`/模块/资源`,如 `/ai/user-prompt`
### HTTP 方法