Parcourir la source

华农评分,登录修复

wanghao il y a 3 mois
Parent
commit
4b6e282098

+ 58 - 9
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/build/HuaNongCrawlerQuoteResultsVoBuild.java

@@ -1,5 +1,7 @@
 package com.jzg.quotation.huanong.crawler.build;
 package com.jzg.quotation.huanong.crawler.build;
 
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.constants.dict.InsOrderStatusEnum;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.KindInfoVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.quote.vo.QuoteVo;
@@ -24,8 +26,6 @@ public final class HuaNongCrawlerQuoteResultsVoBuild {
     public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse, HuaNongCrawlerSaveResponse saveResponse) {
     public static QuoteResultsVo buildQuoteResultsVo(String orderNo, QuoteVo quoteVo, HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse, HuaNongCrawlerSaveResponse saveResponse) {
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         QuoteResultsVo quoteResultsVo = new QuoteResultsVo();
         quoteResultsVo.setOrdersNo(orderNo);
         quoteResultsVo.setOrdersNo(orderNo);
-        quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
-        quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
 
 
         List<HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO> contract = huaNongCrawlerQuotedPriceResponse.getBusinessData()
         List<HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO> contract = huaNongCrawlerQuotedPriceResponse.getBusinessData()
                 .getContract();
                 .getContract();
@@ -44,9 +44,6 @@ public final class HuaNongCrawlerQuoteResultsVoBuild {
                 quoteResultsVo.setJyPolicyNumber(jyContract.get(0).getContractMain().getContractNo());
                 quoteResultsVo.setJyPolicyNumber(jyContract.get(0).getContractMain().getContractNo());
             }
             }
         }
         }
-
-
-
         Map<String, HuaNongCrawlerSaveResponse.BusinessDataDTO.ContractDTO> collect = saveResponse.getBusinessData()
         Map<String, HuaNongCrawlerSaveResponse.BusinessDataDTO.ContractDTO> collect = saveResponse.getBusinessData()
                 .getContract()
                 .getContract()
                 .stream()
                 .stream()
@@ -59,24 +56,76 @@ public final class HuaNongCrawlerQuoteResultsVoBuild {
 
 
             if (Risk.RISK_0507.getRiskCode().equals(contractDTO.getContractMain().getRiskCode())) {
             if (Risk.RISK_0507.getRiskCode().equals(contractDTO.getContractMain().getRiskCode())) {
                 // 交强险
                 // 交强险
-                buildRiskInfoVo(quoteVo.getCiRiskInfoVo(), contractDTO.getContractMain());
+                buildRiskInfoVo(quoteVo.getCiRiskInfoVo(), contractDTO.getContractMain(), contractDTO.getPlatFormMessage(), true);
                 quoteResultsVo.getCosts().setCiPremium(String.valueOf(contractDTO.getContractMain().getTotalPremium()));
                 quoteResultsVo.getCosts().setCiPremium(String.valueOf(contractDTO.getContractMain().getTotalPremium()));
                 quoteResultsVo.getCosts().setVvTax(String.valueOf(contractDTO.getTax().getSumTax()));
                 quoteResultsVo.getCosts().setVvTax(String.valueOf(contractDTO.getTax().getSumTax()));
                 quoteResultsVo.setCiPolicyNumber(contractDTO1.getContractMain().getContractNo());
                 quoteResultsVo.setCiPolicyNumber(contractDTO1.getContractMain().getContractNo());
             } else {
             } else {
                 // 商业险
                 // 商业险
                 buildKindInfo(quoteVo.getKindInfoVo(), contractDTO.getCoverage());
                 buildKindInfo(quoteVo.getKindInfoVo(), contractDTO.getCoverage());
-                buildRiskInfoVo(quoteVo.getBiRiskInfoVo(), contractDTO.getContractMain());
+                buildRiskInfoVo(quoteVo.getBiRiskInfoVo(), contractDTO.getContractMain(), contractDTO.getPlatFormMessage(), false);
                 quoteResultsVo.getCosts().setBiPremium(String.valueOf(contractDTO.getContractMain().getBiTotalpremium()));
                 quoteResultsVo.getCosts().setBiPremium(String.valueOf(contractDTO.getContractMain().getBiTotalpremium()));
                 quoteResultsVo.setBiPolicyNumber(contractDTO1.getContractMain().getContractNo());
                 quoteResultsVo.setBiPolicyNumber(contractDTO1.getContractMain().getContractNo());
             }
             }
         });
         });
+        //设置评分
+        quoteResultsVo.setScoreVo(buildScoreVo(huaNongCrawlerQuotedPriceResponse));
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
         quoteResultsVo.setQuoteStatusEnum(InsOrderStatusEnum.WAIT_AUDIT);
+        quoteResultsVo.setCiRiskInfoVo(quoteVo.getCiRiskInfoVo());
+        quoteResultsVo.setBiRiskInfoVo(quoteVo.getBiRiskInfoVo());
         return quoteResultsVo;
         return quoteResultsVo;
     }
     }
 
 
-    private static void buildRiskInfoVo(RiskInfoVo riskInfoVo, HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO.ContractMainDTO contractMain) {
-        riskInfoVo.setStartDate(contractMain.getValidDate());
+    private static QuoteResultsVo.ScoreVo buildScoreVo(HuaNongCrawlerQuotedPriceResponse huaNongCrawlerQuotedPriceResponse) {
+        QuoteResultsVo.ScoreVo scoreVo = new QuoteResultsVo.ScoreVo();
+        HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO businessData = huaNongCrawlerQuotedPriceResponse.getBusinessData();
+
+        if (businessData == null) {
+            return scoreVo;
+        }
+
+        HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.PolicyInfoDTO policyInfo = businessData.getPolicyInfo();
+        HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.BusinessMainDTO businessMain = businessData.getBusinessMain();
+
+        String ultimateScoreBiCi = policyInfo != null ? policyInfo.getUltimateScoreBiCi() : "";
+        String hnscoreGroup = businessMain != null ? businessMain.getHnscoreGroup() : "";
+
+        scoreVo.setLossRation(ultimateScoreBiCi);
+
+        JSONArray scoreJson = new JSONArray();
+        scoreJson.add(new JSONObject()
+                .fluentPut("scoreName", "总评分")
+                .fluentPut("scoreKey", "mark")
+                .fluentPut("score", ultimateScoreBiCi));
+        scoreJson.add(new JSONObject()
+                .fluentPut("scoreName", "评分分组")
+                .fluentPut("scoreKey", "markgroup")
+                .fluentPut("score", hnscoreGroup));
+        scoreVo.setScoreJson(scoreJson);
+
+        return scoreVo;
+    }
+
+    private static void buildRiskInfoVo(RiskInfoVo riskInfoVo, HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO.ContractMainDTO contractMain, HuaNongCrawlerQuotedPriceResponse.BusinessDataDTO.ContractDTO.PlatFormMessageDTO platFormMessage, boolean isCi) {
+        String startDate = contractMain.getValidDate();
+        if (platFormMessage != null) {
+            if (isCi) {
+                String ciReinsureEndDate = platFormMessage.getCiReinsureEndDate();
+                if (org.springframework.util.StringUtils.hasText(ciReinsureEndDate)) {
+                    startDate = ciReinsureEndDate;
+                }
+            } else {
+                String biReinsureEndDate = platFormMessage.getBiReinsureEndDate();
+                if (org.springframework.util.StringUtils.hasText(biReinsureEndDate)) {
+                    if (biReinsureEndDate.length() == 10) {
+                        startDate = biReinsureEndDate + " 00:00:00";
+                    } else {
+                        startDate = biReinsureEndDate;
+                    }
+                }
+            }
+        }
+        riskInfoVo.setStartDate(startDate);
         riskInfoVo.setEndDate(contractMain.getExpiryDate());
         riskInfoVo.setEndDate(contractMain.getExpiryDate());
     }
     }
 
 

+ 1 - 1
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/component/HuaNongCrawlerCacheComponent.java

@@ -37,7 +37,7 @@ public class HuaNongCrawlerCacheComponent {
     // 账号锁定
     // 账号锁定
     public static final String ACCOUNT_LOCKOUT = "huanong:account:lockout";
     public static final String ACCOUNT_LOCKOUT = "huanong:account:lockout";
 
 
-    public static final long ACCOUNT_LOCKOUT_TIME = 12L;
+    public static final long ACCOUNT_LOCKOUT_TIME = 1l;
 
 
     // 登录锁
     // 登录锁
     public static final String LOGIN_LOCKOUT = "huanong:login:lockout:";
     public static final String LOGIN_LOCKOUT = "huanong:login:lockout:";

+ 2 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerGetTokenImpl.java

@@ -43,9 +43,9 @@ public class HuaNongCrawlerGetTokenImpl implements HuaNongCrawlerGetToken {
                               Predicate<T> validator) {
                               Predicate<T> validator) {
         try {
         try {
             T data = cacheSupplier.get();
             T data = cacheSupplier.get();
-            if (validator.test(data)) {
+            /*if (validator.test(data)) {
                 return data;
                 return data;
-            }
+            }*/
             huaNongCrawlerQuoteProcessService.login(username, password,deviceId, false);
             huaNongCrawlerQuoteProcessService.login(username, password,deviceId, false);
             T newData = cacheSupplier.get();
             T newData = cacheSupplier.get();
             if (!validator.test(newData)) {
             if (!validator.test(newData)) {

+ 2 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerQuoteProcessServiceImpl.java

@@ -5,7 +5,6 @@ import com.jzg.commons.entity.quote.vo.image.InsuranceImageVo;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.DistributedLockComponent;
 import com.jzg.quotation.commons.component.DistributedLockComponent;
 import com.jzg.quotation.commons.component.RedissonComponent;
 import com.jzg.quotation.commons.component.RedissonComponent;
-import com.jzg.quotation.commons.entity.DetectLoginRequest;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerCacheComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponent;
 import com.jzg.quotation.huanong.crawler.component.HuaNongCrawlerRequestComponent;
@@ -47,7 +46,8 @@ public class HuaNongCrawlerQuoteProcessServiceImpl implements HuaNongCrawlerQuot
     @Override
     @Override
     public void login(String username, String password,String deviceId, boolean isFirst) {
     public void login(String username, String password,String deviceId, boolean isFirst) {
         try {
         try {
-            distributedLockComponent.executeWithLock(HuaNongCrawlerCacheComponent.LOGIN_LOCKOUT + username, () -> authorization(username, password,deviceId, isFirst), 20, 30);
+            //distributedLockComponent.executeWithLock(HuaNongCrawlerCacheComponent.LOGIN_LOCKOUT + username, () -> authorization(username, password,deviceId, isFirst), 20, 30);
+            authorization(username, password,deviceId, isFirst);
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             throw new SystemException("登录失败");
             throw new SystemException("登录失败");

+ 21 - 2
tenant/insurance/quotation-huanong/src/main/java/com/jzg/quotation/huanong/crawler/service/impl/HuaNongCrawlerRequestImpl.java

@@ -34,6 +34,7 @@ import org.redisson.api.RMap;
 import org.redisson.api.RedissonClient;
 import org.redisson.api.RedissonClient;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpHeaders;
 
 
 import java.time.Duration;
 import java.time.Duration;
@@ -85,8 +86,26 @@ public class HuaNongCrawlerRequestImpl implements HuaNongCrawlerRequest {
 
 
         // 3 精确查询
         // 3 精确查询
         HuaNongCrawlerPrecisionServiceSearchRequest precisionServiceSearchRequest = new HuaNongCrawlerPrecisionServiceSearchRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo, carModelDTO);
         HuaNongCrawlerPrecisionServiceSearchRequest precisionServiceSearchRequest = new HuaNongCrawlerPrecisionServiceSearchRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carInfoVo, carModelDTO);
-        HuaNongCrawlerPrecisionServiceSearchResponse precisionServiceSearchResponse = huaNongCrawlerRequestComponent.precisionServiceSearch(precisionServiceSearchRequest, httpHeaders);
-        HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO carModel = CarModelsFilterUtils.to(precisionServiceSearchResponse.getCarModel(), carInfoVo);
+        HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO carModel = new HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO();
+        try{
+            HuaNongCrawlerPrecisionServiceSearchResponse precisionServiceSearchResponse = huaNongCrawlerRequestComponent.precisionServiceSearch(precisionServiceSearchRequest, httpHeaders);
+            carModel = CarModelsFilterUtils.to(precisionServiceSearchResponse.getCarModel(), carInfoVo);
+        }catch (Exception e){
+            if(e.getMessage().contains("精友库缺少车型信息")){
+                BeanUtils.copyProperties(carModelDTO, carModel);
+                if(carModel.getFullCarData() == null){
+                    HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO.FullCarDataDTO fullCarData = new HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO.FullCarDataDTO();
+                    BeanUtils.copyProperties(carModelDTO.getFullCarData(), fullCarData);
+                    carModel.setFullCarData(fullCarData);
+                }
+                if(carModel.getPlatFormCar() == null){
+                    HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO.PlatFormCarDTO platFormCarDTO = new HuaNongCrawlerPrecisionServiceSearchResponse.CarModelDTO.PlatFormCarDTO();
+                    BeanUtils.copyProperties(carModelDTO.getPlatFormCar(), platFormCarDTO);
+                    carModel.setPlatFormCar(platFormCarDTO);
+                }
+
+            }
+        }
 
 
         // 4 折旧价查询
         // 4 折旧价查询
         HuaNongCrawlerActualValueRequestRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carModel, carInfoVo);
         HuaNongCrawlerActualValueRequestRequest huaNongCrawlerActualValueRequest = new HuaNongCrawlerActualValueRequestRequest(loginInfoDto.getToken(), loginInfoDto.getLoginComCode(), carModel, carInfoVo);