lixiaolong 12fbef0aa2 泰山-处理报价成功后交强险、商业险费用异常;日志消息打印 2 месяцев назад
..
src 12fbef0aa2 泰山-处理报价成功后交强险、商业险费用异常;日志消息打印 2 месяцев назад
README.md e7b78d34bb 修改 10 месяцев назад
pom.xml e862c5c165 泰山python 代码的提交 9 месяцев назад

README.md

泰山财险报价模块 (quotation-taishan)

模块概述

泰山财险报价模块是基于爬虫方式的保险报价服务,提供泰山财险的车辆保险报价、核保、支付等全流程功能。

功能特性

  • ✅ 用户认证登录
  • ✅ 验证码识别
  • ✅ Token管理
  • ✅ 车型查询
  • ✅ 车辆信息确认
  • ✅ 交强险和商业险报价
  • ✅ 核保处理
  • ✅ 支付链接生成
  • ✅ 订单状态查询
  • ✅ 电子保单下载

技术架构

核心技术栈

  • Spring Boot 3.0.0 - 应用框架
  • Spring Cloud - 微服务架构
  • MyBatis-Plus 3.5.7 - ORM框架
  • Redis - 缓存管理
  • MongoDB - 文档存储
  • Nacos - 服务发现与配置管理
  • Fastjson2 - JSON处理

核心组件

1. 爬虫请求组件 (TaiShanCrawlerRequestComponent)

  • 统一的HTTP请求处理
  • 自动化验证码识别和处理
  • Token自动管理
  • 加密解密处理

2. 缓存组件 (TaiShanCrawlerCacheComponent)

  • Redis缓存管理
  • Token缓存
  • 会话信息缓存
  • 验证码缓存
  • 订单信息缓存

3. 工具类 (TaiShanCrawlerUtils)

  • DES/AES加密解密
  • MD5哈希生成
  • 随机字符串生成
  • 数据格式化

项目结构

quotation-taishan/
├── src/main/java/com/jzg/quotation/taishan/
│   ├── TaiShanQuotationApplication.java          # 启动类
│   ├── crawler/
│   │   ├── component/                            # 核心组件
│   │   │   ├── TaiShanCrawlerRequestComponent.java
│   │   │   └── TaiShanCrawlerCacheComponent.java
│   │   ├── constant/enums/                       # 枚举定义
│   │   │   ├── RequestUrl.java
│   │   │   ├── ResponseCode.java
│   │   │   └── CertifyType.java
│   │   ├── entity/                               # 实体类
│   │   │   ├── po/                               # 数据库实体
│   │   │   ├── request/                          # 请求实体
│   │   │   └── response/                         # 响应实体
│   │   ├── properties/                           # 配置属性
│   │   ├── repository/                           # 数据访问层
│   │   ├── service/                              # 业务逻辑层
│   │   └── util/                                 # 工具类
├── src/main/resources/
│   ├── mapper/taishan/crawler/                   # MyBatis映射文件
│   ├── application.yml                           # 主配置文件
│   ├── application-dev.yml                       # 开发环境配置
│   ├── application-test.yml                      # 测试环境配置
│   └── application-prod.yml                      # 生产环境配置
└── pom.xml                                       # Maven配置

配置说明

泰山财险爬虫配置

taishan:
  crawler:
    # API基础URL
    base-url: https://api.taishan.com
    base-url2: https://api2.taishan.com

    # 认证信息
    username: taishan_user
    password: taishan_pass
    operator-code: TAISHAN001
    org-code: TAISHAN_ORG
    org-name: 泰山财险

    # Token
    token: ""

数据库配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/jzg
    username: root
    password: 123456

  redis:
    host: localhost
    port: 6379
    database: 0

  data:
    mongodb:
      host: localhost
      port: 27017
      database: jzg_taishan

接口说明

1. 认证接口

  • 认证登录: /auth/login
  • 获取验证码: /auth/captcha

2. Token管理接口

  • 创建Token: /token/create
  • 校验Token: /token/check

3. 基础信息查询接口

  • 获取机构信息: /base/companies
  • 获取渠道信息: /base/saleInfo
  • 获取套餐信息: /base/channelPackages

4. 车辆相关接口

  • 车型查询: /vehicle/carModels
  • 车辆确认: /vehicle/confirm

5. 报价相关接口

  • 报价: /quotation/price
  • 核保: /quotation/underwriting

6. 支付相关接口

  • 支付凭证号查询: /payment/certiNoQuery
  • 支付通知单号生成: /payment/noticeNoGeneration
  • 生成支付链接: /payment/qrcode

7. 订单和保单相关接口

  • 查询订单状态: /order/status
  • 下载电子保单: /policy/download

使用示例

基本报价流程

@Autowired
private TaiShanCrawlerRequestComponent requestComponent;

@Autowired
private TaiShanCrawlerCacheComponent cacheComponent;

// 1. 认证登录
TaiShanCrawlerBaseResponse<String> authResponse = requestComponent.authenticate(
    taiShanCrawlerProperties.getUsername(),
    taiShanCrawlerProperties.getPassword()
);

// 2. 车型查询
TaiShanCrawlerCarRequest carRequest = new TaiShanCrawlerCarRequest();
carRequest.setModelName("朗逸");
TaiShanCrawlerCarResponse carResponse = requestComponent.queryCarModels(carRequest, headers);

// 3. 车辆确认
TaiShanCrawlerVehicleConfirmationRequest confirmRequest = new TaiShanCrawlerVehicleConfirmationRequest();
confirmRequest.setModelCode(carModel.getModelCode());
TaiShanCrawlerVehicleConfirmationResponse confirmResponse = requestComponent.confirmVehicle(confirmRequest, headers);

// 4. 报价
TaiShanCrawlerQuotationRequest quoteRequest = buildQuotationRequest();
TaiShanCrawlerQuotationResponse quoteResponse = requestComponent.quotation(quoteRequest, headers);

// 5. 核保
TaiShanCrawlerUnderwritingRequest underwritingRequest = buildUnderwritingRequest();
TaiShanCrawlerUnderwritingResponse underwritingResponse = requestComponent.underwriting(underwritingRequest, headers);

部署说明

环境要求

  • Java 17+
  • MySQL 8.0+
  • Redis 6.0+
  • MongoDB 4.4+
  • Maven 3.8+

编译打包

mvn clean package -DskipTests

运行

java -jar quotation-taishan-1.0-SNAPSHOT.jar --spring.profiles.active=prod

注意事项

  1. 安全性: 所有敏感信息请使用环境变量配置
  2. 监控: 生产环境请开启日志和监控
  3. 缓存: 合理设置缓存过期时间
  4. 限流: 建议对第三方API调用进行限流控制
  5. 重试: 建议对网络请求添加重试机制

维护和更新

  • 定期检查第三方API的变更
  • 更新加密密钥
  • 监控系统运行状态
  • 及时处理异常情况

联系方式

如有问题请联系开发团队。