|
|
@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
import com.jzg.commons.constants.dict.InsOrderStatusEnum;
|
|
|
+import com.jzg.commons.core.page.HttpResult;
|
|
|
+import com.jzg.commons.entity.agreement.po.PtlAgreementUrl;
|
|
|
import com.jzg.commons.entity.quote.vo.AttributionInformationVo;
|
|
|
import com.jzg.commons.entity.quote.vo.CarInfoVo;
|
|
|
import com.jzg.commons.entity.quote.vo.QuoteVo;
|
|
|
@@ -25,6 +27,7 @@ import com.jzg.quotation.chengtai.api.repository.ChengTaiApiOrderRepository;
|
|
|
import com.jzg.quotation.chengtai.api.service.ChengTaiApiRequest;
|
|
|
import com.jzg.quotation.chengtai.api.service.ChengTaiCrawlerOrderService;
|
|
|
import com.jzg.quotation.commons.annotation.QuoteApiService;
|
|
|
+import com.jzg.quotation.commons.client.PlatformClient;
|
|
|
import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.commons.entity.quote.vo.base.OrderBase;
|
|
|
import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
|
|
|
@@ -57,33 +60,42 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
|
|
|
private final ChengTaiApiOrderRepository chengTaiApiOrderRepository;
|
|
|
|
|
|
+ private final PlatformClient platformClient;
|
|
|
+
|
|
|
+ public String getApiUrl(String companyId) {
|
|
|
+ // 获取保司配置url地址
|
|
|
+ HttpResult<PtlAgreementUrl> ptlAgreementUrl = platformClient.getAgreementUrlByCompanyId(companyId);
|
|
|
+ return ptlAgreementUrl.getData().getUrl();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public QuoteResultsVo quote(QuoteVo quoteVo) {
|
|
|
OrderBase order = quoteVo.getOrder();
|
|
|
AttributionInformationVo attributionInformationVo = order.getAttributionInformationVo();
|
|
|
// 配置信息
|
|
|
+ String url = getApiUrl(order.getInsuranceCompanyCode());
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class,
|
|
|
attributionInformationVo.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
// 车型查询
|
|
|
CarInfoVo carInfoVo = quoteVo.getCarInfoVo();
|
|
|
CarInfoRequest carInfoRequest = new CarInfoRequest(chengTaiApiProperties.getPartnerCode(), carInfoVo.getBrandName());
|
|
|
- CarInfoResponse carInfoResponse = chengTaiRequestApiComponent.carinfoQuery(carInfoRequest, httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ CarInfoResponse carInfoResponse = chengTaiRequestApiComponent.carinfoQuery(carInfoRequest, httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
// 过滤车型
|
|
|
CarInfoResponse.CarModelListDTO carModelListDTO = CarModelsFilterUtils.to(carInfoResponse.getCarModelList(), carInfoVo);
|
|
|
// 计算车辆价格
|
|
|
QueryCarActualValueRequest carActualValueRequest = new QueryCarActualValueRequest(quoteVo,carModelListDTO, chengTaiApiProperties.getPartnerCode());
|
|
|
- QueryCarActualValueResponse carActualValueResponse = chengTaiRequestApiComponent.queryActualValue(carActualValueRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ QueryCarActualValueResponse carActualValueResponse = chengTaiRequestApiComponent.queryActualValue(carActualValueRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
// 报价
|
|
|
InsurePremiumRequest insurePremiumRequest = new InsurePremiumRequest(carModelListDTO, carActualValueResponse,parameters,quoteVo,chengTaiApiProperties.getPartnerCode());
|
|
|
- InsurePremiumResponse insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ InsurePremiumResponse insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
|
|
|
// 处理重复投保
|
|
|
- repeatCoverhandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
|
|
|
+ repeatCoverhandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
|
|
|
// 处理验车码
|
|
|
- codeRecognitionHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
|
|
|
+ codeRecognitionHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
|
|
|
// 处理验车码识别错误
|
|
|
- codeRecognitionErrHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders);
|
|
|
+ codeRecognitionErrHandler(insurePremiumRequest, insurePremiumResponse,httpHeaders,url);
|
|
|
|
|
|
chengTaiCrawlerOrderService.saveOrderInfo(quoteVo,insurePremiumResponse);
|
|
|
|
|
|
@@ -98,7 +110,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
*/
|
|
|
private void codeRecognitionErrHandler(InsurePremiumRequest insurePremiumRequest,
|
|
|
InsurePremiumResponse insurePremiumResponse,
|
|
|
- HttpHeaders httpHeaders) {
|
|
|
+ HttpHeaders httpHeaders,String url) {
|
|
|
|
|
|
if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode()) && insurePremiumResponse.getMessage().contains("录入的校验码有误")){
|
|
|
InsurePremiumRequest.CiContractDTO ciContractReq = insurePremiumRequest.getCiContract();
|
|
|
@@ -111,7 +123,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
InsurePremiumRequest.BiContractDTO.PlatFormMessageDTO platFormMessageDTO = biContractReq.getPlatFormMessage();
|
|
|
platFormMessageDTO.setAnswer(replacingStrings(platFormMessageDTO.getAnswer()));
|
|
|
}
|
|
|
- insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -135,7 +147,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
*/
|
|
|
private void codeRecognitionHandler(InsurePremiumRequest insurePremiumRequest,
|
|
|
InsurePremiumResponse insurePremiumResponse,
|
|
|
- HttpHeaders httpHeaders) {
|
|
|
+ HttpHeaders httpHeaders,String url) {
|
|
|
InsurePremiumResponse.BiContractDTO biContract = insurePremiumResponse.getBiContract();
|
|
|
InsurePremiumResponse.CiContractDTO ciContract = insurePremiumResponse.getCiContract();
|
|
|
|
|
|
@@ -156,7 +168,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
|
|
|
if (biBoo || ciBoo) {
|
|
|
this.platRepetition(insurePremiumResponse,insurePremiumRequest);
|
|
|
- insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -220,7 +232,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
*/
|
|
|
private void repeatCoverhandler(InsurePremiumRequest insurePremiumRequest,
|
|
|
InsurePremiumResponse insurePremiumResponse,
|
|
|
- HttpHeaders httpHeaders) {
|
|
|
+ HttpHeaders httpHeaders,String url) {
|
|
|
if(!ResponseCode.R_000.getCode().equals(insurePremiumResponse.getCode()) && insurePremiumResponse.getMessage().contains("重复投保")){
|
|
|
String err = insurePremiumResponse.getMessage();
|
|
|
List<String> errList = Arrays.asList(err.split("。"));
|
|
|
@@ -245,7 +257,7 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
insurePremiumRequest.setBiContract(biContract);
|
|
|
}
|
|
|
});
|
|
|
- insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ insurePremiumResponse = chengTaiRequestApiComponent.calculatePremium(insurePremiumRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -288,24 +300,25 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
@Override
|
|
|
public UnderwritingResultsVo underwriting(UnderwritingVo underwritingVo) {
|
|
|
OrderBase orderBase = underwritingVo.getOrder();
|
|
|
+ String url = getApiUrl(orderBase.getInsuranceCompanyCode());
|
|
|
ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
|
|
|
// 配置信息
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
|
|
|
.getAttributionInformationVo()
|
|
|
.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
UnderwritingResultsVo underwritingResultsVo = new UnderwritingResultsVo();
|
|
|
// 投保保存
|
|
|
SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(chengTaiApiProperties.getPartnerCode(),
|
|
|
underwritingVo, chengTaiApiOrder);
|
|
|
- SubmitVerifyResponse submitVerifyResponse = chengTaiRequestApiComponent.underwritingSave(submitVerifyRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ SubmitVerifyResponse submitVerifyResponse = chengTaiRequestApiComponent.underwritingSave(submitVerifyRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
// 核保
|
|
|
UnderwritingRequest underwritingRequest = new UnderwritingRequest(chengTaiApiProperties.getPartnerCode(),underwritingVo.getOrder().getCompanyOrderNo());
|
|
|
- UnderwritingResponse underwritingResponse = chengTaiRequestApiComponent.underwriting(underwritingRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ UnderwritingResponse underwritingResponse = chengTaiRequestApiComponent.underwriting(underwritingRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
if(OrderStatusEnum.A2000.getCode().equals(underwritingResponse.getFinalRuleResult())){
|
|
|
// 查询投保结果
|
|
|
SubmitVerifyResultRequest submitVerifyResultRequest = new SubmitVerifyResultRequest(chengTaiApiProperties.getPartnerCode(),submitVerifyResponse.getOrderId());
|
|
|
- SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.underwritingSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.underwritingSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
List<SubmitVerifyResultResponse.DataDTO> data = submitVerifyResultResponse.getData();
|
|
|
if(CollUtil.isNotEmpty(data)){
|
|
|
for (SubmitVerifyResultResponse.DataDTO dataDTO : data) {
|
|
|
@@ -354,14 +367,15 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
public PaymentLinkResultsVo getPaymentLink(PaymentLinkVo paymentLinkVo) {
|
|
|
ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(paymentLinkVo.getOrder().getOrdersNo());
|
|
|
// 配置信息
|
|
|
+ String url = getApiUrl(paymentLinkVo.getOrder().getInsuranceCompanyCode());
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, paymentLinkVo.getOrder()
|
|
|
.getAttributionInformationVo()
|
|
|
.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
|
|
|
// 获取支付链接
|
|
|
PayUrlRequest payUrlRequest = new PayUrlRequest(chengTaiApiProperties.getPartnerCode(),chengTaiApiOrder.getOrderNo());
|
|
|
- PayUrlResponse payUrlResponse = chengTaiRequestApiComponent.getPayUrl(payUrlRequest, httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ PayUrlResponse payUrlResponse = chengTaiRequestApiComponent.getPayUrl(payUrlRequest, httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
PaymentLinkResultsVo paymentLinkResultsVo = new PaymentLinkResultsVo();
|
|
|
paymentLinkResultsVo.setPaymentLink(payUrlResponse.getSmsUrl());
|
|
|
return paymentLinkResultsVo;
|
|
|
@@ -370,19 +384,20 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
@Override
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
OrderBase orderBase = insuranceUploadImageVo.getOrder();
|
|
|
+ String url = getApiUrl(orderBase.getInsuranceCompanyCode());
|
|
|
ChengTaiApiOrder chengTaiApiOrder = chengTaiCrawlerOrderService.getById(orderBase.getOrdersNo());
|
|
|
// 配置信息
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderBase
|
|
|
.getAttributionInformationVo()
|
|
|
.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
|
|
|
// 上传影像信息
|
|
|
List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
|
|
|
imageVoList.forEach(imageVo -> {
|
|
|
UploadFileRequest uploadFileRequest = new UploadFileRequest(imageVo, chengTaiApiOrder.getOrderNo(), chengTaiApiProperties.getPartnerCode());
|
|
|
try {
|
|
|
- UploadFileResponse uploadFileResponse = chengTaiRequestApiComponent.submitImage(uploadFileRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ UploadFileResponse uploadFileResponse = chengTaiRequestApiComponent.submitImage(uploadFileRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
} catch (Exception e) {
|
|
|
throw new SystemException("上传途中异常,请重新上传或截取图片上传");
|
|
|
}
|
|
|
@@ -392,23 +407,24 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
@Override
|
|
|
public DownloadPolicyResultVo downloadPolicy(DownloadPolicyVo downloadPolicyVo) {
|
|
|
// 配置信息
|
|
|
+ String url = getApiUrl(downloadPolicyVo.getOrder().getInsuranceCompanyCode());
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, downloadPolicyVo.getOrder()
|
|
|
.getAttributionInformationVo()
|
|
|
.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
|
|
|
DownloadPolicyResultVo downloadPolicyResultVo = new DownloadPolicyResultVo();
|
|
|
String jqPolicyNo = downloadPolicyVo.getPolicie().getJqPolicyNo();
|
|
|
if(Objects.nonNull(jqPolicyNo)) {
|
|
|
- queryPolicy(jqPolicyNo, chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
|
|
|
+ queryPolicy(jqPolicyNo, chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
|
|
|
}
|
|
|
String syPolicyNo = downloadPolicyVo.getPolicie().getSyPolicyNo();
|
|
|
if(Objects.nonNull(syPolicyNo)) {
|
|
|
- queryPolicy(syPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
|
|
|
+ queryPolicy(syPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
|
|
|
}
|
|
|
String jyPolicyNo = downloadPolicyVo.getPolicie().getJyPolicyNo();
|
|
|
if(Objects.nonNull(jyPolicyNo)) {
|
|
|
- queryPolicy(jyPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo);
|
|
|
+ queryPolicy(jyPolicyNo,chengTaiApiProperties.getPartnerCode(), httpHeaders,downloadPolicyResultVo,url);
|
|
|
}
|
|
|
|
|
|
return downloadPolicyResultVo;
|
|
|
@@ -419,9 +435,9 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
* @param policyNo
|
|
|
* @param partnerCode
|
|
|
*/
|
|
|
- private void queryPolicy(String policyNo,String partnerCode,HttpHeaders httpHeaders, DownloadPolicyResultVo downloadPolicyResultVo){
|
|
|
+ private void queryPolicy(String policyNo,String partnerCode,HttpHeaders httpHeaders, DownloadPolicyResultVo downloadPolicyResultVo,String url){
|
|
|
DownLoadDocumentUrlRequest request = new DownLoadDocumentUrlRequest(chengTaiApiProperties.getPartnerCode(),policyNo);
|
|
|
- DownLoadDocumentUrlResponse response = chengTaiRequestApiComponent.downLoadDocumentUrl(request, httpHeaders,partnerCode);
|
|
|
+ DownLoadDocumentUrlResponse response = chengTaiRequestApiComponent.downLoadDocumentUrl(request, httpHeaders,partnerCode,url);
|
|
|
if(ResponseCode.R_000.getCode().equals(response.getCode())){
|
|
|
if (StringUtils.isNotEmpty(response.getCiDownLoad())) {
|
|
|
String jqUrl = response.getCiDownLoad();
|
|
|
@@ -445,17 +461,18 @@ public class ChengTaiApiRequestImpl implements ChengTaiApiRequest {
|
|
|
public OrderStatusResultVo queryOrderState(OrderStatusVo orderStatusVo) {
|
|
|
OrderStatusResultVo orderStatusResultVo = new OrderStatusResultVo();
|
|
|
// 配置信息
|
|
|
+ String url = getApiUrl(orderStatusVo.getOrder().getInsuranceCompanyCode());
|
|
|
ChengTaiApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ChengTaiApiConfigureParameters.class, orderStatusVo.getOrder()
|
|
|
.getAttributionInformationVo()
|
|
|
.getConfigInfo());
|
|
|
- HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters);
|
|
|
+ HttpHeaders httpHeaders = chengTaiRequestApiComponent.getHttpHeaders(parameters,url);
|
|
|
|
|
|
SubmitVerifyResultRequest submitVerifyResultRequest = new SubmitVerifyResultRequest(chengTaiApiProperties.getPartnerCode(),orderStatusVo.getOrder().getCompanyOrderNo());
|
|
|
- SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.auditSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ SubmitVerifyResultResponse submitVerifyResultResponse = chengTaiRequestApiComponent.auditSaveResult(submitVerifyResultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
|
|
|
// 查询核保结果
|
|
|
UnderwritingResultRequest resultRequest = new UnderwritingResultRequest(chengTaiApiProperties.getPartnerCode(),orderStatusVo.getOrder().getCompanyOrderNo());
|
|
|
- UnderwritingResultResponse underwritingResultResponse = chengTaiRequestApiComponent.auditResult(resultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode());
|
|
|
+ UnderwritingResultResponse underwritingResultResponse = chengTaiRequestApiComponent.auditResult(resultRequest,httpHeaders,chengTaiApiProperties.getPartnerCode(),url);
|
|
|
if (OrderStatusEnum.A7005.getCode().equals(submitVerifyResultResponse.getPolicyProsts())
|
|
|
|| OrderStatusEnum.A7004.getCode().equals(submitVerifyResultResponse.getPolicyProsts())) {
|
|
|
// 获取支付链接
|