feat: 功能优化
This commit is contained in:
@@ -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 方法
|
||||
|
||||
Reference in New Issue
Block a user