重构项目结构:迁移到单体架构并优化代码组织
- 删除分布式架构相关文件和配置 - 将backend-distributed重命名为backend保留分布式代码作为参考 - 优化backend-single单体架构实现 - 添加Coze API集成相关文档和测试 - 清理项目根目录的部署脚本和配置文件 - 更新WebSocket和消息服务实现 - 完善认证服务和密码加密功能
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
# Controller层重构总结
|
||||
|
||||
## 重构概述
|
||||
|
||||
本次重构主要完成了以下工作:
|
||||
|
||||
1. **创建统一的request和response包结构**
|
||||
2. **建立全局异常处理机制**
|
||||
3. **重构所有Controller层代码**
|
||||
4. **优化接口入参和出参规范**
|
||||
|
||||
## 完成的工作
|
||||
|
||||
### 1. 创建统一的基础类
|
||||
|
||||
#### 在emotion-common模块中创建:
|
||||
|
||||
- `BaseRequest` - 基础请求类,包含通用字段如requestId、clientIp、userAgent等
|
||||
- `BaseResponse` - 基础响应类,包含通用字段如timestamp、requestId、processingTime等
|
||||
- `BasePageRequest` - 基础分页请求类,继承BaseRequest,包含分页参数
|
||||
- `BasePageResponse` - 基础分页响应类,继承BaseResponse,包含分页信息
|
||||
|
||||
#### 异常处理类:
|
||||
|
||||
- `BusinessException` - 业务异常
|
||||
- `AuthException` - 认证异常
|
||||
- `CaptchaException` - 验证码异常
|
||||
- `TokenException` - Token异常
|
||||
- `GlobalExceptionHandler` - 全局异常处理器
|
||||
|
||||
### 2. 各模块request和response类
|
||||
|
||||
#### emotion-ai模块:
|
||||
- **Request类**:
|
||||
- `AiChatRequest` - AI聊天请求
|
||||
- `CreateConversationRequest` - 创建会话请求
|
||||
- `EmotionAnalysisRequest` - 情绪分析请求
|
||||
- `GuestChatRequest` - 访客聊天请求
|
||||
- `ConversationListRequest` - 会话列表请求
|
||||
|
||||
- **Response类**:
|
||||
- `AiChatResponse` - AI聊天响应
|
||||
- `CreateConversationResponse` - 创建会话响应
|
||||
- `EmotionAnalysisResponse` - 情绪分析响应
|
||||
- `GuestChatResponse` - 访客聊天响应
|
||||
- `ConversationListResponse` - 会话列表响应
|
||||
|
||||
#### emotion-auth模块:
|
||||
- **Request类**:
|
||||
- `LoginRequest` - 登录请求
|
||||
- `RegisterRequest` - 注册请求
|
||||
- `OAuthLoginRequest` - 第三方登录请求
|
||||
- `SliderCaptchaVerifyRequest` - 滑块验证码验证请求
|
||||
|
||||
- **Response类**:
|
||||
- `LoginResponse` - 登录响应
|
||||
- `UserInfoResponse` - 用户信息响应
|
||||
- `CaptchaResponse` - 验证码响应
|
||||
- `SliderCaptchaResponse` - 滑块验证码响应
|
||||
|
||||
#### emotion-user模块:
|
||||
- **Request类**:
|
||||
- `UserUpdateRequest` - 用户更新请求
|
||||
|
||||
- **Response类**:
|
||||
- `UserInfoResponse` - 用户信息响应
|
||||
|
||||
#### emotion-record模块:
|
||||
- **Request类**:
|
||||
- `CreateEmotionRecordRequest` - 创建情绪记录请求
|
||||
|
||||
- **Response类**:
|
||||
- `EmotionRecordResponse` - 情绪记录响应
|
||||
|
||||
### 3. Controller层重构
|
||||
|
||||
#### 重构原则:
|
||||
1. **移除业务逻辑** - 所有业务逻辑移至Service层
|
||||
2. **统一入参出参** - 使用新的request/response格式
|
||||
3. **移除try-catch** - 使用全局异常处理机制
|
||||
4. **统一返回格式** - 使用Result包装返回结果
|
||||
|
||||
#### 已重构的Controller:
|
||||
- `AiChatController` - AI聊天控制器
|
||||
- `GuestChatController` - 访客聊天控制器
|
||||
- `AuthController` - 认证控制器
|
||||
- `CaptchaController` - 验证码控制器
|
||||
- `UserController` - 用户控制器
|
||||
|
||||
### 4. 全局异常处理
|
||||
|
||||
#### 异常处理机制:
|
||||
- 统一异常处理器 `GlobalExceptionHandler`
|
||||
- 支持多种异常类型处理
|
||||
- 自动参数校验异常处理
|
||||
- 统一错误响应格式
|
||||
|
||||
#### 支持的异常类型:
|
||||
- 业务异常 `BusinessException`
|
||||
- 认证异常 `AuthException`
|
||||
- 验证码异常 `CaptchaException`
|
||||
- Token异常 `TokenException`
|
||||
- 参数校验异常 `MethodArgumentNotValidException`
|
||||
- 系统异常 `RuntimeException`、`Exception`
|
||||
|
||||
## 代码规范
|
||||
|
||||
### 1. 命名规范
|
||||
- Request类以`Request`结尾
|
||||
- Response类以`Response`结尾
|
||||
- 包名使用`request`和`response`
|
||||
|
||||
### 2. 继承关系
|
||||
- 所有Request类继承`BaseRequest`或`BasePageRequest`
|
||||
- 所有Response类继承`BaseResponse`或`BasePageResponse`
|
||||
|
||||
### 3. 注解规范
|
||||
- 使用`@Schema`注解描述字段
|
||||
- 使用`@Valid`注解进行参数校验
|
||||
- 使用`@NotBlank`、`@NotNull`等校验注解
|
||||
|
||||
### 4. Controller规范
|
||||
- 不包含业务逻辑
|
||||
- 统一使用Result包装返回结果
|
||||
- 不使用try-catch,依赖全局异常处理
|
||||
- 接口文档完整
|
||||
|
||||
## 优势
|
||||
|
||||
1. **代码结构清晰** - 职责分离明确
|
||||
2. **异常处理统一** - 全局异常处理机制
|
||||
3. **接口规范统一** - 统一的入参出参格式
|
||||
4. **维护性提升** - 代码更易维护和扩展
|
||||
5. **开发效率提升** - 减少重复代码
|
||||
|
||||
## 后续工作
|
||||
|
||||
1. **Service层接口更新** - 确保Service层使用新的request/response格式
|
||||
2. **单元测试编写** - 为重构后的代码编写测试用例
|
||||
3. **接口文档更新** - 更新API文档
|
||||
4. **性能测试** - 验证重构后的性能表现
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 所有Controller层不再包含业务逻辑
|
||||
2. 异常处理统一由GlobalExceptionHandler处理
|
||||
3. 新的request/response类需要在Service层中使用
|
||||
4. 需要更新相关的单元测试和集成测试
|
||||
Reference in New Issue
Block a user