# CLAUDE.md 此文件为Claude Code (claude.ai/code)在此代码库中工作时提供指导。 ## 项目概述 这是一个基于Java的多模块Maven保险报价平台项目,专门专注于与紫金保险公司集成。项目采用微服务架构,使用Spring Boot 3.0和WebFlux进行响应式编程。 ## 构建和开发命令 ### Maven命令 ```bash # 构建整个项目 mvn clean compile # 安装所有依赖 mvn clean install # 构建并运行特定模块 mvn spring-boot:run -pl quotation-zijin # 打包用于部署 mvn clean package # 使用Spring Boot运行特定模块 mvn spring-boot:run -pl quotation-zijin ``` ### Java版本 - Java 17(源码和目标) ### 关键依赖 - Spring Boot 3.0.0 with WebFlux - Spring Data MongoDB - MyBatis Plus - OpenFeign用于服务通信 - Hutool工具库 - RocketMQ消息队列 - ZXing二维码处理 - 微信集成(commons模块) ## 架构 ### 多模块结构 项目组织为多模块Maven项目: - **父模块**: `tenant` - 公共依赖和配置 - **业务模块**: `insurance` - 保险相关子模块 - **报价模块**: 每个保险公司都有自己的模块(`quotation-zijin`、`quotation-bohai`、`quotation-huatai`等) - **公共模块**: `quotation-commons` - 共享工具和基础类 ### 紫金模块架构 `quotation-zijin`模块遵循分层架构: #### API层(`com.jzg.quotation.zijin.api`) - **用途**: 外部API接口和业务逻辑 - **核心组件**: - `component/`: 业务组件(缓存、请求处理、错误处理) - `entity/request/`: API请求DTO - `entity/response/`: API响应DTO - `entity/po/`: MongoDB实体 - `service/`: 业务服务接口和实现 - `enums/`: 业务枚举 #### 爬虫层(`com.jzg.quotation.zijin.crawler`) - **用途**: 网页爬取和外部系统集成 - **核心组件**: - `component/`: 爬取组件 - `entity/request/`: 爬取请求DTO - `entity/response/`: 爬取响应DTO - `service/`: 爬取服务接口和实现 - `enums/`: 爬取相关枚举 ### 设计模式 - **分层架构**: API层和爬虫层清晰分离 - **仓储模式**: 通过Spring Data MongoDB进行数据访问 - **服务模式**: 业务逻辑封装在服务层中 - **DTO模式**: 用于API通信的数据传输对象 - **策略模式**: 不同保险公司的不同实现 ## 业务领域 ### 核心业务流程 1. **车辆报价流程**: - 车辆信息验证和爬取 - 基于风险因素的保费计算 - 报价生成和展示 - 保单定制选项 2. **订单管理流程**: - 订单创建和跟踪 - 保费计算和验证 - 支付链接生成 - 保单文档生成 - 状态更新和通知 3. **客户管理流程**: - 客户信息验证 - 投保人和被保险人管理 - 文档上传和验证 - 沟通和通知 ### 主要保险类型 - **交强险** (交通事故责任强制保险) - **商业险** (商业保险) - **车损险** (车辆损失险) - **第三者责任险** (第三者责任保险) - **附加险** (附加保险) ## 核心类和接口 ### 重要服务类 - `ZiJinApiRequestComponent`: 处理API请求逻辑 - `ZiJinCrawlerRequestComponent`: 管理爬取请求 - `ZiJinCrawlerOrderService`: 订单管理和处理 - `ResponseMessageAbstractHandler`: 响应处理和错误处理 ### 关键请求/响应DTO - `CalculatePremiumRequest`: 保费计算请求 - `GetAccessTokenRequest`: 认证令牌请求 - `ModelQueryRequest`: 车型查询请求 - `ZiJinApiOrder`: MongoDB的订单实体 ### 配置和枚举 - `RequestUrl`: API端点枚举 - `RiskCodeEnum`: 风险类型枚举 - `OrderStatusEnum`: 订单状态跟踪 - `MotorVehicleInsuranceEnum`: 保险类型枚举 ## 开发指南 ### 保险公司集成工作 每个保险公司模块遵循相同模式但实现不同: 1. 外部接口的API层 2. 外部系统集成的爬虫层 3. 分离的请求/响应DTO 4. 公司特定的业务逻辑 ### 数据库操作 - 使用MongoDB作为主数据库 - Spring Data MongoDB用于仓储操作 - PO类位于`entity/po/`包中 ### 外部集成点 - 保险公司API(紫金系统) - 车辆信息爬取服务 - 支付网关集成 - 微信通知集成 ### 错误处理 - 针对不同错误场景的自定义异常组件 - 使用ResultEnum的结构化响应处理 - 用于调试的全面日志记录 ## 测试 当前结构中未找到特定的测试配置。应用标准Maven测试命令: ```bash mvn test mvn surefire:test ```