|
|
@@ -2,13 +2,17 @@ package com.jzg.quotation.zhongan.crawler.service.Impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
+import com.jzg.commons.entity.po.SysUploadFiles;
|
|
|
import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
|
|
|
import com.jzg.commons.entity.quote.vo.CarInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.*;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
+import com.jzg.commons.util.MinioUtils;
|
|
|
import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
|
|
|
+import com.jzg.quotation.commons.client.PlatformClient;
|
|
|
import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.commons.entity.quote.vo.base.LoginBase;
|
|
|
import com.jzg.commons.entity.quote.vo.base.OrderBase;
|
|
|
@@ -31,10 +35,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileNotFoundException;
|
|
|
-import java.io.FileOutputStream;
|
|
|
-import java.io.IOException;
|
|
|
+import java.io.*;
|
|
|
import java.net.HttpURLConnection;
|
|
|
import java.net.URL;
|
|
|
import java.util.Base64;
|
|
|
@@ -60,8 +61,11 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
@Value("${zhongAn.id}")
|
|
|
private String zhongAnId;
|
|
|
|
|
|
+ private final PlatformClient platformClient;
|
|
|
+
|
|
|
/**
|
|
|
* 登录
|
|
|
+ *
|
|
|
* @param loginBase 登录信息
|
|
|
*/
|
|
|
@Override
|
|
|
@@ -79,6 +83,7 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
public QuoteResultsVo quote(QuoteVo quoteVo) {
|
|
|
//登录众安
|
|
|
loginCookieCache(zhongAnId);
|
|
|
+ zhongAnCrawlerCacheComponent.setCache(quoteVo.getOwnersInfo().getIdentifyNumber(), quoteVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.IDENTIFY_NUMBER);
|
|
|
CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
|
|
|
AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
|
|
|
//获取配置信息
|
|
|
@@ -89,14 +94,14 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
parameters.setFlowId(zhongAnCrawlerCacheComponent.getFlowId(zhongAnId));
|
|
|
}
|
|
|
//校验key,缓存
|
|
|
- ZhongAnCrawlerCacheInputRequest cacheInputRequest = new ZhongAnCrawlerCacheInputRequest(quoteVo,parameters);
|
|
|
- String cacheInput = zhongAnCrawlerRequestComponent.CacheInput(cacheInputRequest,headers);
|
|
|
+ ZhongAnCrawlerCacheInputRequest cacheInputRequest = new ZhongAnCrawlerCacheInputRequest(quoteVo, parameters);
|
|
|
+ String cacheInput = zhongAnCrawlerRequestComponent.CacheInput(cacheInputRequest, headers);
|
|
|
|
|
|
ZhongAnCrawlerInitDataRequest initDataRequest = new ZhongAnCrawlerInitDataRequest(parameters);
|
|
|
- String initDataInfo = zhongAnCrawlerRequestComponent.initDataInfo(initDataRequest,headers);
|
|
|
+ String initDataInfo = zhongAnCrawlerRequestComponent.initDataInfo(initDataRequest, headers);
|
|
|
//车架查询
|
|
|
- ZhongAnCrawlerCarVinRequest carVinRequest = new ZhongAnCrawlerCarVinRequest(quoteVo,parameters);
|
|
|
- String carVinQuery = zhongAnCrawlerRequestComponent.carVinQuery(carVinRequest,headers);
|
|
|
+ ZhongAnCrawlerCarVinRequest carVinRequest = new ZhongAnCrawlerCarVinRequest(quoteVo, parameters);
|
|
|
+ String carVinQuery = zhongAnCrawlerRequestComponent.carVinQuery(carVinRequest, headers);
|
|
|
|
|
|
|
|
|
//车型查询
|
|
|
@@ -105,19 +110,19 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
ZhongAnCrawlerCarQueryResponse.ValueDTO.DataDTO.ResultDTO.VehicleDTO vehicleDTO = CarModelsFilterUtils.to(vehicleDTOList, carInfoVo);
|
|
|
|
|
|
ZhongAnCrawlerQuerySpecialRequest querySpecialRequest = new ZhongAnCrawlerQuerySpecialRequest(quoteVo, parameters);
|
|
|
- String querySpecial = zhongAnCrawlerRequestComponent.querySpecial(querySpecialRequest,headers);
|
|
|
+ String querySpecial = zhongAnCrawlerRequestComponent.querySpecial(querySpecialRequest, headers);
|
|
|
|
|
|
ZhongAnCrawlerLicenseSwitchRequest licenseSwitchRequest = new ZhongAnCrawlerLicenseSwitchRequest(quoteVo, parameters);
|
|
|
- String licenseSwitch = zhongAnCrawlerRequestComponent.licenseSwitch(licenseSwitchRequest,headers);
|
|
|
+ String licenseSwitch = zhongAnCrawlerRequestComponent.licenseSwitch(licenseSwitchRequest, headers);
|
|
|
|
|
|
|
|
|
- ZhongAnCrawlerCacheCarQueryRequest cacheCarQueryRequest = new ZhongAnCrawlerCacheCarQueryRequest(quoteVo,vehicleDTO,parameters);
|
|
|
+ ZhongAnCrawlerCacheCarQueryRequest cacheCarQueryRequest = new ZhongAnCrawlerCacheCarQueryRequest(quoteVo, vehicleDTO, parameters);
|
|
|
// String cacheCarQueryResponse = zhongAnCrawlerRequestComponent.cacheCarInfo(cacheCarQueryRequest,headers);
|
|
|
- ZhongAnCrawlerCacheCarQueryResponse cacheCarQueryResponse = zhongAnCrawlerRequestComponent.cacheCarInfo(cacheCarQueryRequest,headers);
|
|
|
+ ZhongAnCrawlerCacheCarQueryResponse cacheCarQueryResponse = zhongAnCrawlerRequestComponent.cacheCarInfo(cacheCarQueryRequest, headers);
|
|
|
if (cacheCarQueryResponse != null && StringUtils.isNotEmpty(cacheCarQueryResponse.getErrorMsg())) {
|
|
|
if (cacheCarQueryResponse.getErrorCode().equals("A12512")) {
|
|
|
ZhongAnCrawlerQueryDetailQueryRequest detailQueryRequest = new ZhongAnCrawlerQueryDetailQueryRequest(cacheCarQueryResponse, parameters);
|
|
|
- ZhongAnCrawlerQueryDetailQueryResponse queryDetailQueryResponse = zhongAnCrawlerRequestComponent.detailQuery(detailQueryRequest,headers);
|
|
|
+ ZhongAnCrawlerQueryDetailQueryResponse queryDetailQueryResponse = zhongAnCrawlerRequestComponent.detailQuery(detailQueryRequest, headers);
|
|
|
|
|
|
ZhongAnCrawlerQueryDetailQueryResponse.ValueDTO.DatasDTO.VehicleDetailInfoDTO vehicleDetailInfo = queryDetailQueryResponse.getValue().getDatas().getVehicleDetailInfo();
|
|
|
ZhongAnCrawlerCarQueryResponse.ValueDTO.DataDTO.ResultDTO.VehicleDTO vehicleDTO1 = BeanUtil.copyProperties(vehicleDetailInfo, ZhongAnCrawlerCarQueryResponse.ValueDTO.DataDTO.ResultDTO.VehicleDTO.class);
|
|
|
@@ -128,7 +133,7 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
throw new SystemException(cacheCarQueryResponse1.getErrorMsg());
|
|
|
}
|
|
|
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
|
|
|
throw new SystemException(cacheCarQueryResponse.getErrorMsg());
|
|
|
}
|
|
|
@@ -139,7 +144,7 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
// ZhongAnCrawlerQuoteBaseResponse zhongAnCrawlerQuoteBaseResponse = JsonUtil.readObjcet(str, ZhongAnCrawlerQuoteBaseResponse.class);
|
|
|
|
|
|
//报价
|
|
|
- ZhongAnCrawlerQuoteRequest quoteRequest = new ZhongAnCrawlerQuoteRequest(quoteVo, parameters,quoteBaseResponse);
|
|
|
+ ZhongAnCrawlerQuoteRequest quoteRequest = new ZhongAnCrawlerQuoteRequest(quoteVo, parameters, quoteBaseResponse);
|
|
|
ZhongAnCrawlerQuoteResponse quoteResponse = zhongAnCrawlerRequestComponent.quote(quoteRequest, headers);
|
|
|
if (quoteResponse != null && StringUtils.isNotEmpty(quoteResponse.getErrorMsg())) {
|
|
|
throw new SystemException(quoteResponse.getErrorMsg());
|
|
|
@@ -152,16 +157,24 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
//获取订单信息,需要获取quoteId
|
|
|
ZhongAnCrawlerGetOrderRequest getOrderRequest = new ZhongAnCrawlerGetOrderRequest(parameters);
|
|
|
ZhongAnCrawlerGetOrderResponse getOrderResponse = zhongAnCrawlerRequestComponent.getOrder(getOrderRequest, headers);
|
|
|
+ zhongAnCrawlerCacheComponent.setCache(getOrderResponse.getValue().getDatas().getQuoteId(), quoteVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.QUOTE_ID);
|
|
|
|
|
|
//确认订单
|
|
|
ZhongAnCrawlerConfirmOrderRequest confirmOrderRequest = new ZhongAnCrawlerConfirmOrderRequest(parameters, quoteVo);
|
|
|
ZhongAnCrawlerConfirmOrderResponse confirmOrderResponse = zhongAnCrawlerRequestComponent.confirmOrder(confirmOrderRequest, headers);
|
|
|
+ ZhongAnCrawlerConfirmOrderResponse.ValueDTO.DataDTO dataDTO = confirmOrderResponse.getValue().getDatas();
|
|
|
+ zhongAnCrawlerCacheComponent.setCache(dataDTO.getOrderNo(), quoteVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.ORDER_NO);
|
|
|
+ zhongAnCrawlerCacheComponent.setCache(dataDTO.getPolicyId(), quoteVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.POLICY_ID);
|
|
|
|
|
|
//非车险提交核保
|
|
|
ZhongAnCrawlerJyxUnderwritingRequest jyxUnderwritingRequest = new ZhongAnCrawlerJyxUnderwritingRequest(parameters, getOrderResponse.getValue().getDatas().getQuoteId());
|
|
|
ZhongAnCrawlerJyxUnderwritingResponse jyxUnderwritingResponse = zhongAnCrawlerRequestComponent.jyxUnderwriting(jyxUnderwritingRequest, headers);
|
|
|
|
|
|
- ZhongAnCrawlerConfirmOrderResponse.ValueDTO.DataDTO dataDTO = confirmOrderResponse.getValue().getDatas();
|
|
|
+ ZhongAnCrawlerUploadInitDateRequest zhongAnCrawlerUploadInitDateRequest = new ZhongAnCrawlerUploadInitDateRequest(dataDTO, parameters);
|
|
|
+ ZhongAnCrawlerUploadInitDateResponse uploadInitDateResponse = zhongAnCrawlerRequestComponent.uploadInitDate(zhongAnCrawlerUploadInitDateRequest, headers);
|
|
|
+ zhongAnCrawlerCacheComponent.setCache(uploadInitDateResponse.getValue().getDatas(), quoteVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.INITDATE);
|
|
|
+
|
|
|
+
|
|
|
ZhongAnCrawlerOrder zhongAnCrawlerOrder = new ZhongAnCrawlerOrder();
|
|
|
zhongAnCrawlerOrder.setOrdersNo(quoteVo.getOrder().getOrdersNo());
|
|
|
zhongAnCrawlerOrder.setOrderNo(dataDTO.getOrderNo());
|
|
|
@@ -169,6 +182,7 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
zhongAnCrawlerOrderService.save(zhongAnCrawlerOrder);
|
|
|
return ZhongAnCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo, quoteResponse.getValue().getDatas());
|
|
|
}
|
|
|
+
|
|
|
//登录
|
|
|
private void loginCookieCache(String zhongAnId) {
|
|
|
try {
|
|
|
@@ -185,8 +199,8 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
|
|
|
|
|
|
Map<String, String> headers = new HashMap<>();
|
|
|
- headers.put("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36");
|
|
|
- headers.put("Accept","application/json, text/plain, */*");
|
|
|
+ headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36");
|
|
|
+ headers.put("Accept", "application/json, text/plain, */*");
|
|
|
|
|
|
// 发送第一个请求,不跟随重定向
|
|
|
String url = "https://www.cyouzai.com/busi-integration/channel/baoBiaoH5Redirect";
|
|
|
@@ -215,15 +229,15 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
// 提取flowId
|
|
|
String flowId = HttpUtil.extractFlowId(thirdLocation);
|
|
|
//缓存数据
|
|
|
- zhongAnCrawlerCacheComponent.cacheCookie(zaLoginCookieKey,flowId,zhongAnId);
|
|
|
+ zhongAnCrawlerCacheComponent.cacheCookie(zaLoginCookieKey, flowId, zhongAnId);
|
|
|
|
|
|
- System.out.println("key=="+zaLoginCookieKey+"------flowId="+flowId);
|
|
|
+ System.out.println("key==" + zaLoginCookieKey + "------flowId=" + flowId);
|
|
|
|
|
|
} else {
|
|
|
throw new SystemException("未获取到-----zaLoginCookieKey");
|
|
|
}
|
|
|
|
|
|
- }catch (Exception e) {
|
|
|
+ } catch (Exception e) {
|
|
|
throw new SystemException("message", "请求发生错误: " + e.getMessage());
|
|
|
}
|
|
|
|
|
|
@@ -236,7 +250,34 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
*/
|
|
|
@Override
|
|
|
public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) throws Exception {
|
|
|
- return null;
|
|
|
+ loginCookieCache(zhongAnId);
|
|
|
+ AttributionInformationVo attributionInformationVo = underwritingVo.getOrder().getAttributionInformationVo();
|
|
|
+ ZhongAnCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZhongAnCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
+ HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(zhongAnId);
|
|
|
+ String flowId = parameters.getFlowId();
|
|
|
+ if (StringUtils.isEmpty(flowId)) {
|
|
|
+ parameters.setFlowId(zhongAnCrawlerCacheComponent.getFlowId(zhongAnId));
|
|
|
+ }
|
|
|
+ String ordersNo = zhongAnCrawlerCacheComponent.getCache(underwritingVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.ORDER_NO);
|
|
|
+ ZhongAnCrawlerMarkRequest markRequest = new ZhongAnCrawlerMarkRequest(parameters, ordersNo);
|
|
|
+ String markCompleted = zhongAnCrawlerRequestComponent.markCompleted(markRequest, headers);
|
|
|
+
|
|
|
+ ZhongAnCrawlerOrder zhongAnCrawlerOrder = zhongAnCrawlerOrderService.findByOrdersNo(underwritingVo.getOrder().getOrdersNo());
|
|
|
+
|
|
|
+ ZhongAnCrawlerUploadInitDateResponse.ValueDTO.DatasDTO initData = zhongAnCrawlerCacheComponent.getInitData(underwritingVo.getOrder().getOrdersNo() + ZhongAnCrawlerCacheComponent.INITDATE);
|
|
|
+ ZhongAnCrawlerPaymentRequest paymentRequest = new ZhongAnCrawlerPaymentRequest(zhongAnCrawlerOrder.getPolicyId(), initData.getCheckCode());
|
|
|
+ ZhongAnCrawlerPaymentResponse payment = zhongAnCrawlerRequestComponent.payment(paymentRequest, headers);
|
|
|
+
|
|
|
+ UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
|
+ underwritingResultsVo.setPaymentLink(payment.getValue().getDatas().getShareShortUrl());
|
|
|
+ //核保结果
|
|
|
+ underwritingResultsVo.setUnderwritingResult("核保成功");
|
|
|
+// //核保状态
|
|
|
+ underwritingResultsVo.setUnderwritingStatus(InsOrderStatusEnum.PAY_PENDING);
|
|
|
+// //保司订单号
|
|
|
+ underwritingResultsVo.setCompanyOrderNo(ordersNo);
|
|
|
+
|
|
|
+ return underwritingResultsVo;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -246,15 +287,16 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
*/
|
|
|
@Override
|
|
|
public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
|
|
|
+ loginCookieCache(zhongAnId);
|
|
|
PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
|
|
|
OrderBase orderBase = paymentLinkVo.getOrder();
|
|
|
- AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
|
|
|
//获取配置信息
|
|
|
- HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername());
|
|
|
+ HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(zhongAnId);
|
|
|
|
|
|
ZhongAnCrawlerOrder zhongAnCrawlerOrder = zhongAnCrawlerOrderService.findByOrdersNo(orderBase.getOrdersNo());
|
|
|
|
|
|
- ZhongAnCrawlerPaymentRequest paymentRequest = new ZhongAnCrawlerPaymentRequest(zhongAnCrawlerOrder.getPolicyId());
|
|
|
+ ZhongAnCrawlerUploadInitDateResponse.ValueDTO.DatasDTO initData = zhongAnCrawlerCacheComponent.getInitData(orderBase.getOrdersNo() + ZhongAnCrawlerCacheComponent.INITDATE);
|
|
|
+ ZhongAnCrawlerPaymentRequest paymentRequest = new ZhongAnCrawlerPaymentRequest(zhongAnCrawlerOrder.getPolicyId(), initData.getCheckCode());
|
|
|
ZhongAnCrawlerPaymentResponse payment = zhongAnCrawlerRequestComponent.payment(paymentRequest, headers);
|
|
|
paymentLinkResultsVo.setPaymentLink(payment.getValue().getDatas().getShareShortUrl());
|
|
|
|
|
|
@@ -269,42 +311,94 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
* 行驶证副本 7
|
|
|
* 其他 99
|
|
|
* 还有通融申请流程的影像上传待处理
|
|
|
+ *
|
|
|
* @param insuranceUploadImageVo
|
|
|
*/
|
|
|
@Override
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
+ loginCookieCache(zhongAnId);
|
|
|
OrderBase orderBase = insuranceUploadImageVo.getOrder();
|
|
|
AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
|
|
|
//获取配置信息
|
|
|
ZhongAnCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZhongAnCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
- HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername());
|
|
|
-
|
|
|
+ HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(zhongAnId);
|
|
|
+ String flowId = parameters.getFlowId();
|
|
|
+ if (StringUtils.isEmpty(flowId)) {
|
|
|
+ parameters.setFlowId(zhongAnCrawlerCacheComponent.getFlowId(zhongAnId));
|
|
|
+ }
|
|
|
ZhongAnCrawlerOrder zhongAnCrawlerOrder = zhongAnCrawlerOrderService.findByOrdersNo(orderBase.getOrdersNo());
|
|
|
for (InsuranceImageVo insuranceImageVo : insuranceUploadImageVo.getImageVoList()) {
|
|
|
- for (InsuranceImageVo.ImageDTO imageDTO: insuranceImageVo.getImageBase64List()) {
|
|
|
- //根据参数,确定影像类型;暂时默认99
|
|
|
+ //C01行驶证正面,C02车主身份证正面,D01行驶证反面
|
|
|
+ if (insuranceImageVo.getImageCode().equals("C01")) {
|
|
|
+ String imageType = "6";
|
|
|
+ InsuranceImageVo.ImageDTO imageDTO = insuranceImageVo.getImageBase64List().get(0);
|
|
|
+ extracted(parameters, headers, zhongAnCrawlerOrder, imageType, imageDTO);
|
|
|
+
|
|
|
+ } else if (insuranceImageVo.getImageCode().equals("C02")) {
|
|
|
+ String imageType = "4";
|
|
|
+ InsuranceImageVo.ImageDTO imageDTO = insuranceImageVo.getImageBase64List().get(0);
|
|
|
+ extracted(parameters, headers, zhongAnCrawlerOrder, imageType, imageDTO);
|
|
|
+
|
|
|
+ } else if (insuranceImageVo.getImageCode().equals("D01")) {
|
|
|
+ String imageType = "7";
|
|
|
+ InsuranceImageVo.ImageDTO imageDTO = insuranceImageVo.getImageBase64List().get(0);
|
|
|
+ extracted(parameters, headers, zhongAnCrawlerOrder, imageType, imageDTO);
|
|
|
+
|
|
|
+ } else if (insuranceImageVo.getImageCode().equals("D02")) {
|
|
|
+ String imageType = "5";
|
|
|
+ InsuranceImageVo.ImageDTO imageDTO = insuranceImageVo.getImageBase64List().get(0);
|
|
|
+ extracted(parameters, headers, zhongAnCrawlerOrder, imageType, imageDTO);
|
|
|
+ } else {
|
|
|
String imageType = "99";
|
|
|
- String imageBase64Str = imageDTO.getImageBase64Str();
|
|
|
- byte[] imageBytes = Base64.getDecoder().decode(imageBase64Str);
|
|
|
- //需要设置一个临时图片路径
|
|
|
- FileOutputStream fileOutputStream = null;
|
|
|
- String filePath = "图片临时路径";
|
|
|
- try {
|
|
|
- fileOutputStream = new FileOutputStream(filePath);
|
|
|
- fileOutputStream.write(imageBytes);
|
|
|
- fileOutputStream.close();
|
|
|
- } catch (FileNotFoundException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- } catch (IOException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
+ List<InsuranceImageVo.ImageDTO> imageBase64List = insuranceImageVo.getImageBase64List();
|
|
|
+ for (InsuranceImageVo.ImageDTO imageDTO : imageBase64List) {
|
|
|
+ extracted(parameters, headers, zhongAnCrawlerOrder, imageType, imageDTO);
|
|
|
}
|
|
|
- File file = new File(filePath);
|
|
|
- ZhongAnCrawlerUploadImageRequest uploadImageRequest = new ZhongAnCrawlerUploadImageRequest(imageType, file, zhongAnCrawlerOrder.getOrderNo(), zhongAnCrawlerOrder.getPolicyId(), parameters);
|
|
|
- ZhongAnCrawlerUploadImageResponse uploadImageResponse = zhongAnCrawlerRequestComponent.uploadImage(uploadImageRequest, headers);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private void extracted(ZhongAnCrawlerConfigureParameters parameters, HttpHeaders headers, ZhongAnCrawlerOrder zhongAnCrawlerOrder, String imageType, InsuranceImageVo.ImageDTO imageDTO) {
|
|
|
+ String imageBase64Str = imageDTO.getImageBase64Str();
|
|
|
+ byte[] imageBytes = Base64.getDecoder().decode(imageBase64Str);
|
|
|
+ String imageId = imageDTO.getImageId();
|
|
|
+ SysUploadFiles sysUploadFiles = platformClient.getUploadFile(imageId);
|
|
|
+// String url = MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName());
|
|
|
+ String url = "http://192.168.0.250:9000/jzg/fc69904cb8b3647fd80f2994bee6939f_82ab9c52b729ab1747ece717662cab08.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=v7Zb8XhyLcYNcSHlxvyK%2F20250910%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250910T103229Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=e7febb0154d1f4f6f499570ad0f77ddb019e176735b52932e07881923dcd397d ";
|
|
|
+ //需要设置一个临时图片路径
|
|
|
+// FileOutputStream fileOutputStream = null;
|
|
|
+// String filePath = url;
|
|
|
+// try {
|
|
|
+// fileOutputStream = new FileOutputStream(filePath);
|
|
|
+// fileOutputStream.write(imageBytes);
|
|
|
+// fileOutputStream.close();
|
|
|
+// } catch (Exception e) {
|
|
|
+// throw new RuntimeException(e);
|
|
|
+// }
|
|
|
+// File file = new File(url);
|
|
|
+
|
|
|
+ byte[] convert = new byte[0];
|
|
|
+ try {
|
|
|
+ convert = convert(url);
|
|
|
+ } catch (IOException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ ZhongAnCrawlerUploadImageRequest uploadImageRequest = new ZhongAnCrawlerUploadImageRequest(imageType, convert, zhongAnCrawlerOrder.getOrderNo(), zhongAnCrawlerOrder.getPolicyId(), parameters);
|
|
|
+ ZhongAnCrawlerUploadImageResponse uploadImageResponse = zhongAnCrawlerRequestComponent.uploadImage(uploadImageRequest, headers);
|
|
|
+ }
|
|
|
+
|
|
|
+ public byte[] convert(String filePath) throws IOException {
|
|
|
+ File file = new File(filePath);
|
|
|
+ byte[] binaryData = new byte[(int) file.length()];
|
|
|
+ try (FileInputStream fis = new FileInputStream(file)) {
|
|
|
+ fis.read(binaryData); // 读取全部字节到数组
|
|
|
+ }
|
|
|
+ return binaryData;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 下载保单
|
|
|
*
|
|
|
@@ -312,10 +406,11 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
*/
|
|
|
@Override
|
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
|
+ loginCookieCache(zhongAnId);
|
|
|
OrderBase orderBase = downloadPolicyVo.getOrder();
|
|
|
AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
|
|
|
//获取配置信息
|
|
|
- HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(attributionInformationVo.getUsername());
|
|
|
+ HttpHeaders headers = zhongAnCrawlerRequestComponent.getHeaders(zhongAnId);
|
|
|
|
|
|
ZhongAnCrawlerOrder zhongAnCrawlerOrder = zhongAnCrawlerOrderService.findByOrdersNo(orderBase.getOrdersNo());
|
|
|
String orderNo = zhongAnCrawlerOrder.getOrderNo();
|
|
|
@@ -363,6 +458,7 @@ public class ZhongAnCrawlerRequestImpl implements ZhongAnCrawlerRequest {
|
|
|
*/
|
|
|
@Override
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) throws JsonProcessingException {
|
|
|
+ loginCookieCache(zhongAnId);
|
|
|
return null;
|
|
|
}
|
|
|
}
|