You've already forked FrameTour-BE
feat(integration): 添加设备服务集成模块
- 新增设备服务配置和相关客户端接口 - 实现设备和设备配置的管理功能- 添加设备监控和状态管理示例 - 优化错误处理和故障恢复机制
This commit is contained in:
104
CLAUDE.md
104
CLAUDE.md
@@ -122,6 +122,15 @@ mvn test -DskipTests=false
|
||||
3. 使用 `@Scheduled` 进行基于 cron 的执行
|
||||
4. 遵循现有的错误处理和日志记录模式
|
||||
|
||||
### 多端API架构
|
||||
应用程序通过路径前缀区分不同的客户端:
|
||||
- **移动端**: `/api/mobile/*` - 针对移动应用优化的接口
|
||||
- **PC管理端**: `/api/*` - Web管理面板接口
|
||||
- **任务处理**: `/task/*` - 后台任务和渲染服务接口
|
||||
- **外部集成**: 专用集成接口(打印机、代理、viid、vpt、wvp等)
|
||||
|
||||
每个端点都有对应的Controller包结构,确保API的职责分离和维护性。
|
||||
|
||||
## 价格查询系统 (Pricing Module)
|
||||
|
||||
### 核心架构
|
||||
@@ -187,4 +196,97 @@ ProductType枚举定义了支持的商品类型:
|
||||
- 单元测试:每个服务类都有对应测试类
|
||||
- 配置验证测试:DefaultConfigValidationTest验证default配置
|
||||
- JSON序列化测试:验证复杂对象的数据库存储
|
||||
- 分页功能测试:验证PageHelper集成
|
||||
- 分页功能测试:验证PageHelper集成
|
||||
|
||||
## 关键架构模式
|
||||
|
||||
### Repository 层模式
|
||||
项目使用Repository层抽象数据访问逻辑:
|
||||
- Repository接口定义数据访问契约
|
||||
- Mapper接口处理MyBatis Plus的数据库映射
|
||||
- Service层通过Repository访问数据,避免直接依赖Mapper
|
||||
|
||||
### 异常处理架构
|
||||
- **全局异常处理**: `CustomExceptionHandle` 提供统一的异常处理和响应格式
|
||||
- **业务异常**: 自定义异常类继承RuntimeException,携带业务错误码
|
||||
- **集成异常**: `IntegrationException` 专门处理外部服务调用异常
|
||||
|
||||
### 配置驱动的扩展性
|
||||
通过配置文件驱动的多供应商支持:
|
||||
- 存储:本地、AWS S3、阿里云 OSS
|
||||
- 支付:微信支付、聪明支付
|
||||
- 人脸识别:阿里云、百度
|
||||
每个供应商通过统一接口访问,配置切换无需代码修改。
|
||||
|
||||
### 业务层架构
|
||||
- **Service层**: 核心业务逻辑实现
|
||||
- **Biz层**: 高级业务流程编排,组合多个Service
|
||||
- **Controller层**: HTTP请求处理和响应转换
|
||||
- **Repository层**: 数据访问抽象
|
||||
|
||||
### 认证和会话管理
|
||||
- **JWT**: 使用jjwt库进行身份验证
|
||||
- **Redis**: 存储会话信息和缓存
|
||||
- **BaseContextHandler**: 提供当前用户上下文访问
|
||||
|
||||
## 微服务集成架构 (Integration Package)
|
||||
|
||||
### 核心架构
|
||||
位于 `com.ycwl.basic.integration` 包,使用 Spring Cloud OpenFeign 和 Nacos 实现外部微服务集成。
|
||||
|
||||
#### 通用基础设施
|
||||
- **IntegrationProperties**: 所有集成的集中配置管理
|
||||
- **FeignErrorDecoder**: 自定义错误解码器,统一错误处理
|
||||
- **IntegrationException**: 标准化集成异常
|
||||
- **CommonResponse/PageResponse**: 外部服务响应包装器
|
||||
|
||||
#### 已实现的服务集成
|
||||
- **Scenic Integration** (`integration.scenic`): ZT-Scenic 微服务集成
|
||||
- **Device Integration** (`integration.device`): ZT-Device 微服务集成
|
||||
|
||||
#### 集成模式
|
||||
每个外部服务按以下结构组织:
|
||||
```
|
||||
service/
|
||||
├── client/ # Feign 客户端
|
||||
├── config/ # 服务特定配置
|
||||
├── dto/ # 数据传输对象
|
||||
├── service/ # 业务逻辑层
|
||||
└── example/ # 使用示例
|
||||
```
|
||||
|
||||
### 配置管理
|
||||
```yaml
|
||||
integration:
|
||||
scenic:
|
||||
enabled: true
|
||||
serviceName: zt-scenic
|
||||
connectTimeout: 5000
|
||||
readTimeout: 10000
|
||||
device:
|
||||
enabled: true
|
||||
serviceName: zt-device
|
||||
connectTimeout: 5000
|
||||
readTimeout: 10000
|
||||
```
|
||||
|
||||
### 使用模式
|
||||
所有集成服务使用统一的 `handleResponse` 模式进行错误处理,确保一致的异常包装和日志记录。
|
||||
|
||||
### 测试集成服务
|
||||
```bash
|
||||
# 运行特定集成测试
|
||||
mvn test -Dtest=ScenicIntegrationServiceTest
|
||||
mvn test -Dtest=DeviceIntegrationServiceTest
|
||||
|
||||
# 运行所有集成测试
|
||||
mvn test -Dtest="com.ycwl.basic.integration.*Test"
|
||||
```
|
||||
|
||||
### 调试集成问题
|
||||
启用 Feign 客户端日志:
|
||||
```yaml
|
||||
logging:
|
||||
level:
|
||||
com.ycwl.basic.integration: DEBUG
|
||||
```
|
Reference in New Issue
Block a user