|
|
@@ -205,15 +205,16 @@ public class DaDiCrawlerQuoteResultVoBuild {
|
|
|
int sumPayment = daDiQuoteResponse.getInsurancePlan().getTax().getSumPayment();
|
|
|
quoteResultsVo.getCosts().setVvTax(String.valueOf(sumPayment));
|
|
|
int niPremium = 0;
|
|
|
- //设置非车保费
|
|
|
+
|
|
|
+ //设置非车保费:优先取保险计划的 wealthAccPremium,取不到(为0)时兜底取保险责任项(jointSalesSolutionItems)的 defaultValue 之和
|
|
|
if (daDiQuoteResponse.getInsurancePlan().getAccidentInsure() != null && daDiQuoteResponse.getInsurancePlan().getAccidentInsure().size() > 0) {
|
|
|
- niPremium = daDiQuoteResponse.getInsurancePlan().getAccidentInsure().get(0).getWealthAccPremium();
|
|
|
+ niPremium = calcNonVehiclePremium(daDiQuoteResponse.getInsurancePlan().getAccidentInsure());
|
|
|
quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
|
|
|
} else if (daDiQuoteResponse.getInsurancePlan().getHealthInsurance() != null && daDiQuoteResponse.getInsurancePlan().getHealthInsurance().size() > 0) {
|
|
|
- niPremium = daDiQuoteResponse.getInsurancePlan().getHealthInsurance().get(0).getWealthAccPremium();
|
|
|
+ niPremium = calcNonVehiclePremium(daDiQuoteResponse.getInsurancePlan().getHealthInsurance());
|
|
|
quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
|
|
|
} else if (daDiQuoteResponse.getInsurancePlan().getPropertyInsurance() != null && daDiQuoteResponse.getInsurancePlan().getPropertyInsurance().size() > 0) {
|
|
|
- niPremium = daDiQuoteResponse.getInsurancePlan().getPropertyInsurance().get(0).getWealthAccPremium();
|
|
|
+ niPremium = calcNonVehiclePremium(daDiQuoteResponse.getInsurancePlan().getPropertyInsurance());
|
|
|
quoteResultsVo.getCosts().setNiPremium(String.valueOf(niPremium));
|
|
|
}
|
|
|
|
|
|
@@ -227,4 +228,24 @@ public class DaDiCrawlerQuoteResultVoBuild {
|
|
|
quoteResultsVo.getCosts().setSumPremium(String.valueOf(sumPremium));
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计算非车险(联合销售/驾意险)保费
|
|
|
+ * 优先取保险计划的 wealthAccPremium,取不到(为0)时兜底取保险责任项(jointSalesSolutionItems)的 defaultValue 之和
|
|
|
+ */
|
|
|
+ private static int calcNonVehiclePremium(List<DaDiQuoteResponse.InsurancePlanDTO.AccidentInsureDTO> insuranceList) {
|
|
|
+ if (insuranceList == null || insuranceList.isEmpty()) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ int premium = insuranceList.get(0).getWealthAccPremium();
|
|
|
+ if (premium <= 0) {
|
|
|
+ premium = insuranceList.stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(item -> item.getJointSalesSolutionItems() != null)
|
|
|
+ .flatMap(item -> item.getJointSalesSolutionItems().stream())
|
|
|
+ .mapToInt(DaDiQuoteResponse.InsurancePlanDTO.AccidentInsureDTO.JointSalesSolutionItemsDTO::getDefaultValue)
|
|
|
+ .sum();
|
|
|
+ }
|
|
|
+ return premium;
|
|
|
+ }
|
|
|
+
|
|
|
}
|