|
|
@@ -6,6 +6,7 @@ import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
import com.jzg.commons.entity.quote.vo.aggregated.*;
|
|
|
import com.jzg.commons.entity.quote.vo.base.LoginBase;
|
|
|
import com.jzg.commons.exception.SystemException;
|
|
|
+import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.quotation.commons.annotation.QuoteCrawlerService;
|
|
|
import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
|
|
|
@@ -16,21 +17,20 @@ import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponen
|
|
|
import com.jzg.quotation.huanong.crawler.entity.HuaNongCrawlerConfigureParameters;
|
|
|
import com.jzg.quotation.huanong.crawler.entity.po.HuaNongCrawlerOrder;
|
|
|
import com.jzg.quotation.huanong.crawler.entity.request.*;
|
|
|
-import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerModelsQueryResponse;
|
|
|
-import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerPrecisionServiceSearchResponse;
|
|
|
-import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerQuotedPriceResponse;
|
|
|
-import com.jzg.quotation.huanong.crawler.entity.response.HuaNongCrawlerSubmitResponse;
|
|
|
+import com.jzg.quotation.huanong.crawler.entity.response.*;
|
|
|
import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerGetToken;
|
|
|
import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerOrderService;
|
|
|
import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerQuoteProcessService;
|
|
|
import com.jzg.quotation.huanong.crawler.service.HuaNongCrawlerRequest;
|
|
|
+import com.jzg.quotation.huanong.enums.dictionary.Risk;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
import org.redisson.api.RMap;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
|
|
|
@@ -44,8 +44,6 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
|
|
|
|
|
|
private final HuaNongCrawlerQuoteProcessService huaNongCrawlerQuoteProcessService;
|
|
|
|
|
|
- private final HuaNongCrawlerCacheComponent huaNongCrawlerCacheComponent;
|
|
|
-
|
|
|
private final HuaNongCrawlerGetToken huaNongCrawlerGetToken;
|
|
|
|
|
|
@Override
|
|
|
@@ -56,48 +54,45 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
|
|
|
@Override
|
|
|
public QuoteResultsVo quote(QuoteVo quoteVo) {
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
- AttributionInformationVo attributionInformationVo = getAttributionInformationVo(quoteVo);
|
|
|
- HuaNongCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
- RMap<String, Object> authorization = huaNongCrawlerGetToken.getAuthorization(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
- String token = (String) authorization.get(HuaNongCrawlerCacheComponent.TOKEN);
|
|
|
- String loginCom = parameters.getLoginCom();
|
|
|
- String loginComCode = (String) authorization.get(loginCom);
|
|
|
+ AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
|
|
|
+ LoginInfoDto loginInfoDto = getLoginInfoDto(attributionInformationVo);
|
|
|
|
|
|
- // 归属信息
|
|
|
- HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO = huaNongCrawlerQuoteProcessService.attributionInformation(parameters, attributionInformationVo.getUsername(), token, loginComCode);
|
|
|
+ // 1 归属信息
|
|
|
+ HuaNongCrawlerQuotedPriceRequestRequest.BusinessDataDTO.SaleInfoDTO saleInfoDTO =
|
|
|
+ huaNongCrawlerQuoteProcessService.attributionInformation(quoteVo.getOrder()
|
|
|
+ .getAgreementId(), loginInfoDto.getParameters(), attributionInformationVo.getUsername(), loginInfoDto.getToken(), loginInfoDto.getLoginComCode());
|
|
|
|
|
|
- // 车型查询
|
|
|
+ // 2 车型查询
|
|
|
CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
|
|
|
- HuaNongCrawlerModelsQueryRequestRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequestRequest(token, loginComCode, carInfoVo);
|
|
|
+ HuaNongCrawlerModelsQueryRequestRequest huaNongCrawlerModelsQueryRequest = new HuaNongCrawlerModelsQueryRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo);
|
|
|
HuaNongCrawlerModelsQueryResponse huaNongCrawlerModelsQueryResponse = huaNongCrawlerRequestComponent.modelsQuery(huaNongCrawlerModelsQueryRequest, httpHeaders);
|
|
|
HuaNongCrawlerModelsQueryResponse.CarModelDTO carModelDTO = CarModelsFilterUtils.to(huaNongCrawlerModelsQueryResponse.getCarModel(), carInfoVo);
|
|
|
- // 精确查询
|
|
|
- HuaNongCrawlerPrecisionServiceSearchRequest precisionServiceSearchRequest = new HuaNongCrawlerPrecisionServiceSearchRequest(token, loginComCode, carInfoVo, carModelDTO );
|
|
|
+ // 3 精确查询
|
|
|
+ HuaNongCrawlerPrecisionServiceSearchRequest precisionServiceSearchRequest = new HuaNongCrawlerPrecisionServiceSearchRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo, carModelDTO);
|
|
|
HuaNongCrawlerPrecisionServiceSearchResponse precisionServiceSearchResponse = huaNongCrawlerRequestComponent.precisionServiceSearch(precisionServiceSearchRequest, httpHeaders);
|
|
|
HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO carModel = CarModelsFilterUtils.to(precisionServiceSearchResponse.getCarModel(), carInfoVo);
|
|
|
|
|
|
- // 折旧价查询
|
|
|
- HuaNongCrawlerActualValueRequestRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequestRequest(token, loginComCode, carModel, carInfoVo);
|
|
|
+ // 4 折旧价查询
|
|
|
+ HuaNongCrawlerActualValueRequestRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carModel, carInfoVo);
|
|
|
String actualValue = huaNongCrawlerRequestComponent.actualValue(huaNongCrawlerActualValueRequest, httpHeaders);
|
|
|
|
|
|
- // 保费计算
|
|
|
+ // 5 保费计算
|
|
|
HuaNongCrawlerQuotedPriceRequestRequest huaNongCrawlerQuotedPriceRequest
|
|
|
- = new HuaNongCrawlerQuotedPriceRequestRequest(token, attributionInformationVo.getUsername(), quoteVo, loginComCode, actualValue, parameters, carModel, saleInfoDTO);
|
|
|
+ = new HuaNongCrawlerQuotedPriceRequestRequest(loginInfoDto.getToken(), attributionInformationVo.getUsername(), quoteVo, loginInfoDto.getLoginComCode(), actualValue, loginInfoDto.getParameters(), carModel, saleInfoDTO);
|
|
|
|
|
|
HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse = huaNongCrawlerRequestComponent.quotedPrice(huaNongCrawlerQuotedPriceRequest, httpHeaders);
|
|
|
|
|
|
- // 保存
|
|
|
- HuaNongCrawlerSaveRequestRequest huaNongCrawlerSaveRequest = getHuaNongCrawlerSaveRequestRequest(huaNongCrawlerQuotedPriceResponse, token, loginComCode);
|
|
|
- huaNongCrawlerRequestComponent.save(huaNongCrawlerSaveRequest, httpHeaders);
|
|
|
+ // 6 保存
|
|
|
+ HuaNongCrawlerSaveRequestRequest huaNongCrawlerSaveRequest = getHuaNongCrawlerSaveRequestRequest(huaNongCrawlerQuotedPriceResponse, loginInfoDto.getToken(), loginInfoDto.getLoginComCode());
|
|
|
+ HuaNongCrawlerSaveResponse saveResponse = huaNongCrawlerRequestComponent.save(huaNongCrawlerSaveRequest, httpHeaders);
|
|
|
|
|
|
- return HuaNongCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder()
|
|
|
- .getOrdersNo(), quoteVo, huaNongCrawlerQuotedPriceResponse);
|
|
|
+ QuoteResultsVo quoteResultsVo = HuaNongCrawlerQuoteResultsVoBuild.buildQuoteResultsVo(quoteVo.getOrder()
|
|
|
+ .getOrdersNo(), quoteVo, huaNongCrawlerQuotedPriceResponse, saveResponse);
|
|
|
+ // 7 将订单信息保存到mongodb(后续需要使用)
|
|
|
+ huaNongCrawlerOrderService.saveOrder(quoteResultsVo.getOrdersNo(), quoteResultsVo.getCiPolicyNumber(), quoteResultsVo.getBiPolicyNumber());
|
|
|
+ return quoteResultsVo;
|
|
|
}
|
|
|
|
|
|
- private static AttributionInformationVo getAttributionInformationVo(QuoteVo quoteVo) {
|
|
|
- AttributionInformationVo attributionInformationVo = quoteVo.getOrder().getAttributionInformationVo();
|
|
|
- return attributionInformationVo;
|
|
|
- }
|
|
|
|
|
|
@NotNull
|
|
|
private static HuaNongCrawlerSaveRequestRequest getHuaNongCrawlerSaveRequestRequest(HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse, String token, String loginComCode) {
|
|
|
@@ -137,69 +132,106 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
|
|
|
|
|
|
AttributionInformationVo attributionInformationVo = paymentLinkVo.getOrder().getAttributionInformationVo();
|
|
|
HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
+ String payUrl = huaNongCrawlerRequestComponent.getPayUrl(huaNongCrawlerOrder.getCiPolicyNumber(), huaNongCrawlerOrder.getBiPolicyNumber(), huaNongCrawlerConfigureParameters.getComCode());
|
|
|
+
|
|
|
PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
|
|
|
- paymentLinkResultsVo.setPaymentLink(huaNongCrawlerRequestComponent.getPayUrl(huaNongCrawlerOrder.getCiPolicyNumber(), huaNongCrawlerOrder.getBiPolicyNumber(), huaNongCrawlerConfigureParameters.getComCode()));
|
|
|
+ paymentLinkResultsVo.setPaymentLink(payUrl);
|
|
|
return paymentLinkResultsVo;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
+ HuaNongCrawlerOrder huaNongCrawlerOrder = huaNongCrawlerOrderService.getById(insuranceUploadImageVo.getOrder()
|
|
|
+ .getOrdersNo());
|
|
|
+ String contractNo = huaNongCrawlerOrder.getOrdersNo();
|
|
|
+
|
|
|
AttributionInformationVo attributionInformationVo = insuranceUploadImageVo.getOrder()
|
|
|
.getAttributionInformationVo();
|
|
|
HuaNongCrawlerConfigureParameters huaNongCrawlerConfigureParameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
- String token = huaNongCrawlerCacheComponent.getToken(attributionInformationVo.getUsername());
|
|
|
|
|
|
+ huaNongCrawlerQuoteProcessService.uploadImage(attributionInformationVo.getUsername(), insuranceUploadImageVo.getOrder()
|
|
|
+ .getAgreementId(), contractNo, insuranceUploadImageVo.getImageVoList(), huaNongCrawlerConfigureParameters.getLoginCom());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
|
- // 获取token
|
|
|
+ DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
|
|
|
AttributionInformationVo attributionInformationVo = downloadPolicyVo.getOrder().getAttributionInformationVo();
|
|
|
- String token = huaNongCrawlerGetToken.getToken(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
+ LoginInfoDto loginInfoDto = getLoginInfoDto(attributionInformationVo);
|
|
|
// 获取订单信息
|
|
|
HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(downloadPolicyVo.getOrder().getOrdersNo());
|
|
|
HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
- HuaNongCrawlerFtpDownloadRequestRequest huaNongCrawlerFtpDownloadRequest = new HuaNongCrawlerFtpDownloadRequestRequest();
|
|
|
+ HuaNongCrawlerFtpDownloadRequestRequest huaNongCrawlerFtpDownloadRequest = new HuaNongCrawlerFtpDownloadRequestRequest(loginInfoDto.getToken());
|
|
|
+ HuaNongCrawlerFtpDownloadRequestRequest.FtpDowloadListDTO ftpDowloadListDTO = new HuaNongCrawlerFtpDownloadRequestRequest.FtpDowloadListDTO();
|
|
|
+ huaNongCrawlerFtpDownloadRequest.setFtpDowloadList(List.of(ftpDowloadListDTO));
|
|
|
// 交强保单 标志
|
|
|
Optional.ofNullable(order.getCiPolicyNo()).ifPresent(ciPolicyNo -> {
|
|
|
// 交强保单
|
|
|
- huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ ftpDowloadListDTO.setBiztype("4");
|
|
|
+ ftpDowloadListDTO.setBusinessNo(ciPolicyNo);
|
|
|
+ ftpDowloadListDTO.setRiskCode(Risk.RISK_0507.getRiskCode());
|
|
|
+ String ciPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ downloadPolicyResultVo.setJqUrl(ciPolicyUrl);
|
|
|
+ ftpDowloadListDTO.setIsBZDown("1");
|
|
|
// 商业标志
|
|
|
- huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ String ciSignUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ downloadPolicyResultVo.setJqFlagUrl(ciSignUrl);
|
|
|
+
|
|
|
});
|
|
|
// 商业保单
|
|
|
- Optional.ofNullable(order.getBiPolicyNo()).ifPresent(ciPolicyNo -> {
|
|
|
+ Optional.ofNullable(order.getBiPolicyNo()).ifPresent(biPolicyNo -> {
|
|
|
// 商业保单
|
|
|
- huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ ftpDowloadListDTO.setIsBZDown("0");
|
|
|
+ ftpDowloadListDTO.setBusinessNo(biPolicyNo);
|
|
|
+ String biPolicyUrl = huaNongCrawlerRequestComponent.ftpDownload(huaNongCrawlerFtpDownloadRequest, httpHeaders);
|
|
|
+ downloadPolicyResultVo.setSyUrl(biPolicyUrl);
|
|
|
});
|
|
|
+
|
|
|
// 非车险
|
|
|
order.getNiInfos().forEach(niInfo -> {
|
|
|
Optional.ofNullable(niInfo.getNiPolicyNo())
|
|
|
- .ifPresent(x -> {
|
|
|
- HuaNongCrawlerDocumentsPrintRequestRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequestRequest();
|
|
|
- huaNongCrawlerRequestComponent.documentsPrint(huaNongCrawlerDocumentsPrintRequest, httpHeaders);
|
|
|
+ .ifPresent(niPolicyNo -> {
|
|
|
+ HuaNongCrawlerDocumentsPrintRequestRequest huaNongCrawlerDocumentsPrintRequest = new HuaNongCrawlerDocumentsPrintRequestRequest(loginInfoDto.getToken(), niPolicyNo, attributionInformationVo.getUsername(), loginInfoDto.getLoginComCode());
|
|
|
+ String niPolicyUrl = huaNongCrawlerRequestComponent.documentsPrint(huaNongCrawlerDocumentsPrintRequest, httpHeaders);
|
|
|
+ downloadPolicyResultVo.setJyUrl(niPolicyUrl);
|
|
|
}
|
|
|
);
|
|
|
});
|
|
|
- return null;
|
|
|
+
|
|
|
+ return downloadPolicyResultVo;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
|
|
|
- AttributionInformationVo attributionInformationVo = orderStatusVo.getOrder().getAttributionInformationVo();
|
|
|
+ LoginInfoDto loginInfoDto = getLoginInfoDto(orderStatusVo.getOrder().getAttributionInformationVo());
|
|
|
+ HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
+ HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
|
|
|
+ String policyNo = StringUtils.hasText(order.getBiPolicyNumber()) ? order.getBiPolicyNumber() : order.getCiPolicyNumber();
|
|
|
+ HuaNongCrawlerFindBusinessesRequestRequest huaNongCrawlerFindBusinessesRequest = new HuaNongCrawlerFindBusinessesRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), policyNo, order.getRecordingTime());
|
|
|
+ HuaNongCrawlerFindBusinessesResponse businesses = huaNongCrawlerRequestComponent.findBusinesses(huaNongCrawlerFindBusinessesRequest, httpHeaders);
|
|
|
+ return new OrderStatusResultVo();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ @AllArgsConstructor
|
|
|
+ private static class LoginInfoDto {
|
|
|
+
|
|
|
+ private String token;
|
|
|
+
|
|
|
+ private String loginCom;
|
|
|
+
|
|
|
+ private String loginComCode;
|
|
|
+
|
|
|
+ private HuaNongCrawlerConfigureParameters parameters;
|
|
|
+ }
|
|
|
+
|
|
|
+ private LoginInfoDto getLoginInfoDto(AttributionInformationVo attributionInformationVo) {
|
|
|
HuaNongCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(HuaNongCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
RMap<String, Object> authorization = huaNongCrawlerGetToken.getAuthorization(attributionInformationVo.getUsername(), attributionInformationVo.getPassword());
|
|
|
String token = (String) authorization.get(HuaNongCrawlerCacheComponent.TOKEN);
|
|
|
String loginCom = parameters.getLoginCom();
|
|
|
String loginComCode = (String) authorization.get(loginCom);
|
|
|
-
|
|
|
- HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
- HuaNongCrawlerOrder order = huaNongCrawlerOrderService.getById(orderStatusVo.getOrder().getOrdersNo());
|
|
|
-
|
|
|
- HuaNongCrawlerFindBusinessesRequestRequest huaNongCrawlerFindBusinessesRequest = new HuaNongCrawlerFindBusinessesRequestRequest(token, loginComCode);
|
|
|
- huaNongCrawlerRequestComponent.findBusinesses(huaNongCrawlerFindBusinessesRequest, httpHeaders);
|
|
|
- return null;
|
|
|
+ return new LoginInfoDto(token, loginCom, loginComCode, parameters);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|