|
|
@@ -1,6 +1,7 @@
|
|
|
package com.jzg.quote.zhongmei.api.service.impl;
|
|
|
|
|
|
|
|
|
+import com.jzg.commons.util.StringUtils;
|
|
|
import com.jzg.quotation.commons.constant.InsuranceCode;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.InsuranceUploadImageVo;
|
|
|
import com.jzg.quotation.commons.entity.vo.aggregated.QuoteResultsVo;
|
|
|
@@ -11,22 +12,25 @@ import com.jzg.quotation.commons.entity.vo.base.OrderBase;
|
|
|
import com.jzg.quotation.commons.entity.vo.quote.AccidentalDrivingVo;
|
|
|
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.quote.CustomerInfoVo;
|
|
|
import com.jzg.quotation.commons.filter.CarModelsFilterUtils;
|
|
|
import com.jzg.quotation.commons.standard.conversion.ConfigureParametersConversion;
|
|
|
import com.jzg.quote.zhongmei.api.build.ZmApiQuoteResultsVoBuild;
|
|
|
import com.jzg.quote.zhongmei.api.componet.ZmApiRequestComponent;
|
|
|
import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
|
|
|
import com.jzg.quote.zhongmei.api.entity.ZmApiConfigureParameters;
|
|
|
-import com.jzg.quote.zhongmei.api.entity.request.ModelsQueryRequest;
|
|
|
-import com.jzg.quote.zhongmei.api.entity.request.QuotedPriceRequest;
|
|
|
-import com.jzg.quote.zhongmei.api.entity.response.ModelsQueryResponse;
|
|
|
-import com.jzg.quote.zhongmei.api.entity.response.QuotedPriceResponse;
|
|
|
+import com.jzg.quote.zhongmei.api.entity.po.ZmApiOrder;
|
|
|
+import com.jzg.quote.zhongmei.api.entity.request.*;
|
|
|
+import com.jzg.quote.zhongmei.api.entity.response.*;
|
|
|
+import com.jzg.quote.zhongmei.api.repository.ZmApiOrderRepository;
|
|
|
import com.jzg.quote.zhongmei.api.service.ZhongMeiApiRequest;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
|
import org.springframework.http.MediaType;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
@Service(value = InsuranceCode.INSURANCE_ZMBX)
|
|
|
@@ -34,6 +38,8 @@ import java.util.List;
|
|
|
public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
|
|
|
|
|
|
private final ZmApiRequestComponent zmApiRequestComponent;
|
|
|
+
|
|
|
+ private final ZmApiOrderRepository zmApiOrderRepository;
|
|
|
@Override
|
|
|
public QuoteResultsVo quote(QuoteVo quoteVo) {
|
|
|
OrderBase order = quoteVo.getOrder();
|
|
|
@@ -56,26 +62,98 @@ public class ZhongMeiApiRequestImpl implements ZhongMeiApiRequest {
|
|
|
QuotedPriceRequest quotedPriceRequest = new QuotedPriceRequest(quoteVo, simpleStadarCarDTO, accidentalDrivingVo, parameters);
|
|
|
quotedPriceRequest.setHead(baseRequestHead);
|
|
|
QuotedPriceResponse quotedPriceResponse = zmApiRequestComponent.quotedPrice(quotedPriceRequest, QuotedPriceResponse.class);
|
|
|
+ // 存储信息
|
|
|
+ ZmApiOrder zmApiOrder = new ZmApiOrder();
|
|
|
+ zmApiOrder.setOrdersNo(order.getOrdersNo());
|
|
|
+ zmApiOrder.setBussinessNo(quotedPriceResponse.getBusinessNo());
|
|
|
+ zmApiOrder.setPolicyHolderInfo(quoteVo.getPolicyHolderInfo());
|
|
|
+ zmApiOrderRepository.save(zmApiOrder);
|
|
|
return ZmApiQuoteResultsVoBuild.buildQuoteResultsVo(order.getOrdersNo(), quoteVo, quotedPriceResponse);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public void underwriting(UnderwritingVo underwritingVo) {
|
|
|
+ OrderBase orderBase = underwritingVo.getOrder();
|
|
|
+ //获取配置信息
|
|
|
+ ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
|
|
|
|
|
|
+ ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
|
|
|
+ BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
|
|
|
+ SubmitRequest submitRequest = new SubmitRequest();
|
|
|
+ submitRequest.setHead(baseRequestHead);
|
|
|
+ submitRequest.setBusinessNo(zmApiOrder.getBussinessNo());
|
|
|
+ submitRequest.setVin(zmApiOrder.getVin());
|
|
|
+ CustomerInfoVo policyHolderInfo = zmApiOrder.getPolicyHolderInfo();
|
|
|
+ SubmitRequest.DeliveryInfoDTO deliveryInfoDTO = new SubmitRequest.DeliveryInfoDTO(policyHolderInfo.getName(),
|
|
|
+ policyHolderInfo.getMobile(),
|
|
|
+ // 省
|
|
|
+ parameters.getProvince(),
|
|
|
+ // 市
|
|
|
+ parameters.getCity(),
|
|
|
+ // 县
|
|
|
+ parameters.getDistrict(), policyHolderInfo.getAddr());
|
|
|
+ SubmitResponse submitResponse = zmApiRequestComponent.submit(submitRequest, SubmitResponse.class);
|
|
|
+ if (submitResponse != null && !StringUtils.isEmpty(submitResponse.getPayUrl())) {
|
|
|
+ zmApiOrderRepository.deleteByOrdersNo(zmApiOrder.getOrdersNo());
|
|
|
+ zmApiOrder.setPayUrl(submitResponse.getPayUrl());
|
|
|
+ zmApiOrderRepository.save(zmApiOrder);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public String getPaymentLink(OrderBase orderBase) {
|
|
|
- return "";
|
|
|
+ ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
|
|
|
+ String payUrl = zmApiOrder.getPayUrl();
|
|
|
+ //如果mongodb中没有支付链接,说明是人工审核,需要调用核保状态查询接口
|
|
|
+ if (StringUtils.isEmpty(payUrl)) {
|
|
|
+ //获取配置信息
|
|
|
+ ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, orderBase.getAttributionInformationVo().getConfigInfo());
|
|
|
+ //设置请求参数
|
|
|
+ SubmitStatusQueryRequest submitStatusQueryRequest = new SubmitStatusQueryRequest();
|
|
|
+ submitStatusQueryRequest.setProposalNo(zmApiOrder.getBussinessNo());
|
|
|
+ submitStatusQueryRequest.setHead(new BaseRequestHead(parameters));
|
|
|
+
|
|
|
+ SubmitStatusQueryResponse submitStatusQueryResponse = zmApiRequestComponent.submitStatus(submitStatusQueryRequest, SubmitStatusQueryResponse.class);
|
|
|
+ payUrl = StringUtils.isEmpty(submitStatusQueryResponse.getPayUrl()) ? submitStatusQueryResponse.getUnderWriteInd() : submitStatusQueryResponse.getPayUrl();
|
|
|
+ }
|
|
|
+ return payUrl;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void uploadImage(InsuranceUploadImageVo insuranceUploadImageVo) {
|
|
|
+ OrderBase orderBase = insuranceUploadImageVo.getOrder();
|
|
|
+ //获取配置信息
|
|
|
+ AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
|
|
|
+ ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
+
|
|
|
+ // 获取主投保单号
|
|
|
+ ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
|
|
|
+ String bussinessNo = zmApiOrder.getBussinessNo();
|
|
|
|
|
|
+ // 上传影像
|
|
|
+ UploadImageRequest uploadImageRequest = new UploadImageRequest(insuranceUploadImageVo.getImageVoList(), bussinessNo);
|
|
|
+ BaseRequestHead baseRequestHead = new BaseRequestHead(parameters);
|
|
|
+ uploadImageRequest.setHead(baseRequestHead);
|
|
|
+ UploadImageResponse uploadImageResponse = zmApiRequestComponent.uploadImage(uploadImageRequest, UploadImageResponse.class);
|
|
|
+ //获取返回数据
|
|
|
+ BaseResponseHead head = uploadImageResponse.getHead();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void downloadPolicy(OrderBase orderBase) {
|
|
|
+ //获取配置信息
|
|
|
+ AttributionInformationVo attributionInformationVo = orderBase.getAttributionInformationVo();
|
|
|
+ ZmApiConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(ZmApiConfigureParameters.class, attributionInformationVo.getConfigInfo());
|
|
|
+
|
|
|
+ //先调用缴费查询接口获取保单号
|
|
|
+ OrderStatusRequest orderStatusRequest = new OrderStatusRequest();
|
|
|
+ orderStatusRequest.setHead(new BaseRequestHead(parameters));
|
|
|
+ ZmApiOrder zmApiOrder = zmApiOrderRepository.getByOrdersNo(orderBase.getOrdersNo());
|
|
|
+ orderStatusRequest.setBusinessNo(zmApiOrder.getBussinessNo());
|
|
|
+ OrderStatusResponse orderStatusResponse = zmApiRequestComponent.orderStatus(orderStatusRequest, OrderStatusResponse.class);
|
|
|
+
|
|
|
+ //调用下载保单接口
|
|
|
|
|
|
}
|
|
|
}
|