Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

785834757 1 rok temu
rodzic
commit
09b4e53293

+ 2 - 3
authentication/src/main/java/com/jzg/controller/AuthController.java

@@ -140,10 +140,9 @@ public class AuthController extends BaseController {
 
             String weOpenId = null;
             String aliOpenId = null;
-            if(loginFormVo.getType().equals(0)){
+            if("0".equals(loginFormVo.getType())){
                 weOpenId = wechatService.auth(loginFormVo);
-
-            }else if(loginFormVo.getType().equals(1)){
+            }else if("1".equals(loginFormVo.getType())){
                 aliOpenId = alipayService.auth(loginFormVo);
             }
             SysUser userById = sysUserService.getOne(new LambdaQueryWrapper<SysUser>()

+ 20 - 2
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/component/DaJiaCrawlerRequestComponent.java

@@ -1,6 +1,10 @@
 package com.jzg.quotation.dajia.crawler.component;
 
 
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.jwt.JWT;
+import cn.hutool.jwt.JWTPayload;
+import cn.hutool.jwt.JWTValidator;
 import com.alibaba.fastjson2.JSON;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.commons.component.RequestComponent;
@@ -114,7 +118,7 @@ public class DaJiaCrawlerRequestComponent {
     public DaJiaCrawlerCompaniesResponse.ListDTO companies(DaJiaCrawlerCompaniesRequest request, String cDptCde, HttpHeaders headers) {
         try {
             Map<String, Object> describe = PropertyUtils.describe(request);
-            DaJiaCrawlerCompaniesResponse daJiaCrawlerCompaniesResponse = requestComponent.get(RequestUrl.CAPTCHA.getRequestUrl(daJiaCrawlerProperties.getBaseUrl()), describe, "", DaJiaCrawlerCompaniesResponse.class, headers);
+            DaJiaCrawlerCompaniesResponse daJiaCrawlerCompaniesResponse = requestComponent.get(RequestUrl.COMPANIES.getRequestUrl(daJiaCrawlerProperties.getVhlUrl()), describe, "", DaJiaCrawlerCompaniesResponse.class, headers);
             return daJiaCrawlerCompaniesResponse.getList()
                     .stream()
                     .filter(x -> cDptCde.equals(x.getCDptCde()))
@@ -175,13 +179,27 @@ public class DaJiaCrawlerRequestComponent {
      * @return
      */
     public <DaJiaResponse> DaJiaResponse request(CrawlerRequestUrlStandard crawlerRequestUrlStandard, Object request, Class<DaJiaResponse> responseClass, HttpHeaders headers) {
-        ResponseEntity<DaJiaCrawlerBaseResponse> responseEntity = requestComponent.objectPost(crawlerRequestUrlStandard.getRequestUrl(daJiaCrawlerProperties.getVhlUrl()), request, DaJiaCrawlerBaseResponse.class, headers);
+        // 参数加密
+        DaJiaCrawlerBaseRequest crawlerBaseRequest = new DaJiaCrawlerBaseRequest(request);
+        ResponseEntity<DaJiaCrawlerBaseResponse> responseEntity = requestComponent.objectPost(crawlerRequestUrlStandard.getRequestUrl(daJiaCrawlerProperties.getVhlUrl()), crawlerBaseRequest, DaJiaCrawlerBaseResponse.class, headers);
         DaJiaCrawlerBaseResponse daJiaCrawlerBaseResponse = responseEntity.getBody();
         assert daJiaCrawlerBaseResponse != null;
+        // 参数解密
         String decrypt = DESEncryption.decrypt(daJiaCrawlerBaseResponse.getResult());
         return JSON.parseObject(decrypt, responseClass);
     }
 
+    /**
+     * 校验token(获取新的token)
+     *
+     * @param daJiaCrawlerCheckTokenRequest 校验token
+     * @param headers                       请求头
+     * @return 车型列表
+     */
+    public DaJiaCrawlerCheckTokenResponse checkToken(DaJiaCrawlerCheckTokenRequest daJiaCrawlerCheckTokenRequest, HttpHeaders headers) {
+        return request(RequestUrl.CHECK_TOKEN, daJiaCrawlerCheckTokenRequest, DaJiaCrawlerCheckTokenResponse.class, headers);
+    }
+
     /**
      * 车型查询
      *

+ 2 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/constant/enums/RequestUrl.java

@@ -15,8 +15,9 @@ public enum RequestUrl implements CrawlerRequestUrlStandard {
     // 登录
     CAPTCHA("captcha", "验证码"),
     AUTHENTICATE("authenticate", "登录"),
+    CHECK_TOKEN("checkToken", "校验token(获取新的token)"),
     //归属信息
-    COMPANIES("/api/companies", "承保机构"),
+    COMPANIES("/companies", "承保机构"),
     CHANNEL_PACKAGES("/default/package/list", "渠道套餐"),
     // 报价
     PRICE("price", "报价"),

+ 23 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/request/DaJiaCrawlerCheckTokenRequest.java

@@ -0,0 +1,23 @@
+package com.jzg.quotation.dajia.crawler.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @version
+ * @description: 大家财险【校验token】响应
+ * @author: wenks
+ * @date: 2025/5/21 16:59
+ **/
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerCheckTokenRequest {
+
+    @JsonProperty("tokenId")
+    private String tokenId;
+
+    @JsonProperty("operatorCode")
+    private String operatorCode;
+
+}

+ 41 - 0
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/entity/response/DaJiaCrawlerCheckTokenResponse.java

@@ -0,0 +1,41 @@
+package com.jzg.quotation.dajia.crawler.entity.response;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @version
+ * @description: 大家财险【校验token】 响应
+ * @author: wenks
+ * @date: 2025/5/21 16:59
+ **/
+@NoArgsConstructor
+@Data
+public class DaJiaCrawlerCheckTokenResponse {
+
+    @JsonProperty("flag")
+    private String flag;
+
+    @JsonProperty("mobile")
+    private String mobile;
+
+    @JsonProperty("userRole")
+    private String userRole;
+
+    @JsonProperty("hrCode")
+    private String hrCode;
+
+    @JsonProperty("version")
+    private String version;
+
+    @JsonProperty("userName")
+    private String userName;
+
+    @JsonProperty("userCode")
+    private String userCode;
+
+    @JsonProperty("id_token")
+    private String idToken;
+
+}

+ 7 - 1
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerQuoteProcessServiceImpl.java

@@ -3,8 +3,10 @@ package com.jzg.quotation.dajia.crawler.service.impl;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.quotation.dajia.crawler.component.DaJiaCrawlerCacheComponent;
 import com.jzg.quotation.dajia.crawler.component.DaJiaCrawlerRequestComponent;
+import com.jzg.quotation.dajia.crawler.entity.request.DaJiaCrawlerCheckTokenRequest;
 import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerAuthenticateResponse;
 import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerBaseResponse;
+import com.jzg.quotation.dajia.crawler.entity.response.DaJiaCrawlerCheckTokenResponse;
 import com.jzg.quotation.dajia.crawler.service.DaJiaCrawlerQuoteProcessService;
 import com.jzg.quotation.dajia.crawler.utils.DESEncryption;
 import lombok.RequiredArgsConstructor;
@@ -35,7 +37,11 @@ public class DaJiaCrawlerQuoteProcessServiceImpl implements DaJiaCrawlerQuotePro
                     .orElseThrow();
             if ("200".equals(response.getCode())) {
                 DaJiaCrawlerAuthenticateResponse daJiaCrawlerCaptchaResponse = DESEncryption.decryptStrToObject(response.getResult(), DaJiaCrawlerAuthenticateResponse.class);
-                return daJiaCrawlerCacheComponent.cacheAuthorization(daJiaCrawlerCaptchaResponse.getIdToken(), daJiaCrawlerCaptchaResponse.getUserCode(), username);
+                DaJiaCrawlerCheckTokenRequest daJiaCrawlerCheckTokenRequest = new DaJiaCrawlerCheckTokenRequest();
+                HttpHeaders headers = new HttpHeaders();
+                headers.set(HttpHeaders.AUTHORIZATION, daJiaCrawlerCaptchaResponse.getIdToken());
+                DaJiaCrawlerCheckTokenResponse daJiaCrawlerCheckTokenResponse = daJiaCrawlerRequestComponent.checkToken(daJiaCrawlerCheckTokenRequest, headers);
+                return daJiaCrawlerCacheComponent.cacheAuthorization(daJiaCrawlerCheckTokenResponse.getIdToken(), daJiaCrawlerCaptchaResponse.getUserCode(), username);
             }
             String message = Optional.ofNullable(responseEntity.getBody())
                     .map(DaJiaCrawlerBaseResponse::getMessage)

+ 9 - 6
tenant/insurance/quotation-dajia/src/main/java/com/jzg/quotation/dajia/crawler/service/impl/DaJiaCrawlerRequestImpl.java

@@ -58,24 +58,27 @@ public class DaJiaCrawlerRequestImpl implements DaJiaCrawlerRequest {
         String userCode = daJiaCrawlerCacheComponent.getUserCode(attributionInformationVo.getUsername());
         // 1.1 配置信息
         DaJiaCrawlerConfigureParameters parameters = ConfigureParametersConversion.conversionEntity(DaJiaCrawlerConfigureParameters.class, attributionInformationVo.getConfigInfo());
+        // 1.2 获取归属信息
+        ProposalInfoDTO proposalInfoDTO = buildingAttributionInformation.build(parameters, userCode, headers);
+
         // 2.0 车型查询
-        DaJiaCrawlerCarRequest daJiaCrawlerCarRequest = new DaJiaCrawlerCarRequest(quoteVo.getCarInfoVo(), "", "", userCode);
+        DaJiaCrawlerCarRequest daJiaCrawlerCarRequest = new DaJiaCrawlerCarRequest(quoteVo.getCarInfoVo(), parameters.getLoginCompany(), parameters.getCDptCde(), userCode);
         List<DaJiaCrawlerCarResponse.ListDTO> car = daJiaCrawlerRequestComponent.car(daJiaCrawlerCarRequest, headers);
         // 2.1 获取相同的车型
         DaJiaCrawlerCarResponse.ListDTO listDTO = CarModelsFilterUtils.to(car, quoteVo.getCarInfoVo());
         // 2.2 计算折旧价格
         DaJiaCrawlerActualValueRequest daJiaCrawlerActualValueRequest = new DaJiaCrawlerActualValueRequest(listDTO, quoteVo.getCarInfoVo(), userCode);
         DaJiaCrawlerActualValueResponse daJiaCrawlerActualValueResponse = daJiaCrawlerRequestComponent.actualValue(daJiaCrawlerActualValueRequest, headers);
-        // 3.0 获取归属信息
-        ProposalInfoDTO proposalInfoDTO = buildingAttributionInformation.build(parameters, userCode, headers);
-        // 3.1 保费计算
+
+        // 3.0 保费计算
         DaJiaCrawlerPriceRequest daJiaCrawlerPriceRequest = new DaJiaCrawlerPriceRequest(quoteVo, listDTO, daJiaCrawlerActualValueResponse, proposalInfoDTO, userCode);
         DaJiaCrawlerPriceResponse crawlerPriceResponse = daJiaCrawlerRequestComponent.price(daJiaCrawlerPriceRequest, headers);
-        // 3.2 订单保存
+        // 3.1 订单保存
         DaJiaCrawlerSaveRequest daJiaCrawlerSaveRequest = new DaJiaCrawlerSaveRequest(crawlerPriceResponse, userCode);
         DaJiaCrawlerSaveResponse daJiaCrawlerSaveResponse = daJiaCrawlerRequestComponent.save(daJiaCrawlerSaveRequest, headers);
-        // 3.3 缓存数据
+        // 3.2 缓存数据
         daJiaCrawlerCacheComponent.cacheDaJiaCrawlerSaveResponse(daJiaCrawlerSaveResponse, quoteVo.getOrder().getOrdersNo());
+
         // 4.0 保存数据
         daJiaCrawlerOrderService.saveOrderInfo(quoteVo, daJiaCrawlerSaveResponse);
         // 返回报价信息