|
|
@@ -1,28 +1,33 @@
|
|
|
package com.jzg.quotation.zijin.api.service.Impl;
|
|
|
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteVo;
|
|
|
+import com.jzg.quotation.commons.entity.vo.aggregated.UnderwritingVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.base.OrderBase;
|
|
|
+import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.quote.AttributionInformationVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.quote.CarInfoVo;
|
|
|
+import com.jzg.quotation.commons.entity.vo.underwriting.SpecialAppointmentsVo;
|
|
|
import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
|
|
|
import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
|
|
|
import com.jzg.quotation.zijin.api.build.ZiJinAPIQuoteResultsVoBuild;
|
|
|
import com.jzg.quotation.zijin.api.component.ZiJinApiRequestComponent;
|
|
|
import com.jzg.quotation.zijin.api.entity.ZiJinApiConfigureParameters;
|
|
|
import com.jzg.quotation.zijin.api.entity.po.ZiJinApiOrder;
|
|
|
-import com.jzg.quotation.zijin.api.entity.request.CalculatePremiumRequest;
|
|
|
-import com.jzg.quotation.zijin.api.entity.request.ModelQueryRequest;
|
|
|
-import com.jzg.quotation.zijin.api.entity.request.QueryActualValueRequest;
|
|
|
-import com.jzg.quotation.zijin.api.entity.response.CalculatePremiumResponse;
|
|
|
-import com.jzg.quotation.zijin.api.entity.response.ModelQueryResponse;
|
|
|
-import com.jzg.quotation.zijin.api.entity.response.QueryActualValueResponse;
|
|
|
+import com.jzg.quotation.zijin.api.entity.request.*;
|
|
|
+import com.jzg.quotation.zijin.api.entity.response.*;
|
|
|
import com.jzg.quotation.zijin.api.repository.ZiJinApiOrderRepository;
|
|
|
import com.jzg.quotation.zijin.api.service.ZiJinApiRequest;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* @description: 紫金财险 API 计算
|
|
|
* @author: wenks
|
|
|
@@ -52,43 +57,86 @@ public class ZiJinApiRequestImpl implements ZiJinApiRequest {
|
|
|
// 计算车辆价格
|
|
|
QueryActualValueRequest queryActualValueRequest = new QueryActualValueRequest(carInfoVo, vehicleModelInfosDTO.getPurchasePrice(), "");
|
|
|
QueryActualValueResponse queryActualValueResponse = ziJinApiRequestComponent.queryActualValue(queryActualValueRequest, httpHeaders);
|
|
|
+ // 报价
|
|
|
+ CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);
|
|
|
+ CalculatePremiumResponse calculatePremiumResponse = ziJinApiRequestComponent.calculatePremium(calculatePremiumRequest, httpHeaders);
|
|
|
// 处理重复投保
|
|
|
|
|
|
// 处理验车码
|
|
|
|
|
|
// 处理验车码识别错误
|
|
|
|
|
|
- // 报价
|
|
|
- CalculatePremiumRequest calculatePremiumRequest = new CalculatePremiumRequest(quoteVo, vehicleModelInfosDTO, queryActualValueResponse.getActualValue(), parameters, modelQueryResponse);
|
|
|
- CalculatePremiumResponse calculatePremiumResponse = ziJinApiRequestComponent.calculatePremium(calculatePremiumRequest, httpHeaders);
|
|
|
-
|
|
|
// 存储信息
|
|
|
ZiJinApiOrder ziJinApiOrder = new ZiJinApiOrder();
|
|
|
ziJinApiOrder.setId(order.getOrdersNo());
|
|
|
ziJinApiOrder.setOrderNo(modelQueryResponse.getOrderNo());
|
|
|
ziJinApiOrder.setOrderId(modelQueryResponse.getOrderId());
|
|
|
ziJinApiOrderRepository.save(ziJinApiOrder);
|
|
|
-
|
|
|
return ZiJinAPIQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, calculatePremiumResponse);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void underwriting(String subOrder) {
|
|
|
+ public void underwriting(UnderwritingVo underwritingVo) {
|
|
|
+ OrderBase orderBase = underwritingVo.getOrder();
|
|
|
+ ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
|
|
|
+ // 配置信息
|
|
|
+ ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
|
|
|
+ HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
|
|
|
+ List<SpecialAppointmentsVo> specialAppointmentsVos = underwritingVo.getSpecialAppointmentsVos();
|
|
|
+ SubmitVerifyRequest submitVerifyRequest = new SubmitVerifyRequest(ziJinApiOrder, "", specialAppointmentsVos);
|
|
|
+ SubmitVerifyResponse submitVerifyResponse = ziJinApiRequestComponent.submitVerify(submitVerifyRequest, httpHeaders);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public String getPaymentLink(String subOrder) {
|
|
|
+ public String getPaymentLink(OrderBase orderBase) {
|
|
|
+ ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
|
|
|
+ ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
|
|
|
+ HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
|
|
|
+ NewPayRequest newPayRequest = new NewPayRequest("", ziJinApiOrder.getOrderNo(), parameters.getOrderOrigin(), parameters.getProposalCityCode());
|
|
|
+ NewPayRequestResponse newPayRequestResponse = ziJinApiRequestComponent.newPay(newPayRequest, httpHeaders);
|
|
|
return "";
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void uploadImage(String subOrder) {
|
|
|
+ public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
+ // 获取订单信息
|
|
|
+ OrderBase orderBase = insuranceUploadImageVo.getOrder();
|
|
|
+ ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
|
|
|
+ // 配置信息
|
|
|
+ ZiJinApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZiJinApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
|
|
|
+ HttpHeaders httpHeaders = ziJinApiRequestComponent.getHttpHeaders(parameters);
|
|
|
+ // 获取影像信息
|
|
|
+ List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = uploadFile(insuranceUploadImageVo, ziJinApiOrder, httpHeaders);
|
|
|
+ // 文件信息与订单关联
|
|
|
+ UploadImageInfoListRequest uploadImageInfoListRequest = new UploadImageInfoListRequest(itemFileDataListDTOS,
|
|
|
+ ziJinApiOrder.getOrderNo());
|
|
|
+ BaseResponse baseResponse = ziJinApiRequestComponent.uploadImageInfoList(uploadImageInfoListRequest, httpHeaders);
|
|
|
+ }
|
|
|
|
|
|
+ @NotNull
|
|
|
+ private List<UploadImageInfoListRequest.ItemFileDataListDTO> uploadFile(InsuranceUploadImageVo insuranceUploadImageVo, ZiJinApiOrder ziJinApiOrder, HttpHeaders httpHeaders) {
|
|
|
+ List<InsuranceImageVo> imageVoList = insuranceUploadImageVo.getImageVoList();
|
|
|
+ // 封装文件订单
|
|
|
+ List<UploadImageInfoListRequest.ItemFileDataListDTO> itemFileDataListDTOS = new ArrayList<>();
|
|
|
+ imageVoList.forEach(imageVo -> {
|
|
|
+ imageVo.getImageBase64List().forEach(imageBase64 -> {
|
|
|
+ UploadFileRequest uploadImageRequest = new UploadFileRequest(imageBase64, imageVo.getImageType(), ziJinApiOrder.getOrderNo());
|
|
|
+ // 文件上传
|
|
|
+ UploadFileResponse uploadFileResponse = ziJinApiRequestComponent.uploadFile(uploadImageRequest, httpHeaders);
|
|
|
+ // 文件信息与订单关联 itemFileDataList
|
|
|
+ UploadImageInfoListRequest.ItemFileDataListDTO itemFileDataListDTO =
|
|
|
+ new UploadImageInfoListRequest.ItemFileDataListDTO(uploadImageRequest, uploadFileResponse.getFileId());
|
|
|
+ itemFileDataListDTOS.add(itemFileDataListDTO);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ return itemFileDataListDTOS;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void downloadPolicy(String subOrder) {
|
|
|
+ public void downloadPolicy(OrderBase orderBase) {
|
|
|
+ ZiJinApiOrder ziJinApiOrder = ziJinApiOrderRepository.getById(orderBase.getOrdersNo());
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|