wks 2 lat temu
rodzic
commit
bbb9830350

+ 21 - 2
src/main/java/com/ydtech/modules/order/components/bohai/BoHaiRequestApiComponent.java

@@ -8,8 +8,12 @@ import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.modules.order.entity.api.bohai.BoHaiEncrypted;
 import com.ydtech.modules.order.entity.api.bohai.request.BoHaiBaseRequest;
 import com.ydtech.modules.order.entity.api.bohai.request.GenerateOrderNoRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.VehicleConfirmationReqeust;
+import com.ydtech.modules.order.entity.api.bohai.request.VehicleTypeQueryRequest;
 import com.ydtech.modules.order.entity.api.bohai.response.BoHaiBaseResponse;
 import com.ydtech.modules.order.entity.api.bohai.response.GenerateOrderNoResponse;
+import com.ydtech.modules.order.entity.api.bohai.response.VehicleConfirmationResponse;
+import com.ydtech.modules.order.entity.api.bohai.response.VehicleTypeQueryResponse;
 import com.ydtech.modules.order.utils.InsuranceLog;
 import com.ydtech.modules.order.utils.SignatureUtils;
 import lombok.RequiredArgsConstructor;
@@ -63,6 +67,7 @@ public class BoHaiRequestApiComponent {
         String content = stringStringMap.get("content");
         httpHeaders.set("signature", signature);
         InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> 加密后的参数:{}", content);
+        InsuranceLog.infoLog(InsuranceEnum.BPIC.getPinyin(), "\n\t---------> 加密后的参数:{}", signature);
 
         HttpEntity<String> httpEntity = new HttpEntity<>(content, httpHeaders);
         //----加密endding------------
@@ -74,12 +79,26 @@ public class BoHaiRequestApiComponent {
     }
 
 
-
-
+    /**
+     * 生成订单号请求
+     *
+     * @param request 生成订单号请求实体
+     * @return 返回订单号响应
+     * @throws Exception
+     */
     public GenerateOrderNoResponse generateOrderNo(GenerateOrderNoRequest request) throws Exception {
         return post(request, properties.getUrl(), GenerateOrderNoResponse.class);
     }
 
+    public VehicleTypeQueryResponse vehicleTypeQuery(VehicleTypeQueryRequest request) throws Exception{
+        return post(request, properties.getUrl(), VehicleTypeQueryResponse.class);
+    }
+
+    public VehicleConfirmationResponse vehicleConfirmation(VehicleConfirmationReqeust request) throws Exception{
+        return post(request, properties.getUrl(), VehicleConfirmationResponse.class);
+    }
+
+
 
 
 

+ 1 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/BoHaiEncrypted.java

@@ -24,6 +24,7 @@ public class BoHaiEncrypted implements Serializable {
      */
     @JsonProperty("bizContent")
     private String bizContent;
+
     /**
      * 合作方代码,由渤海分配
      */

+ 27 - 1
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/BoHaiBaseRequest.java

@@ -1,10 +1,14 @@
 package com.ydtech.modules.order.entity.api.bohai.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.UUID;
 
 @NoArgsConstructor
 @Data
@@ -15,9 +19,26 @@ public class BoHaiBaseRequest implements Serializable {
     @JsonProperty("baseParam")
     private BaseParamDTO baseParam;
 
+    public void setBaseParam(BoHaiConfigureParameters parameters, String requestType) {
+        baseParam = new BaseParamDTO();
+        baseParam.requestNo = UUID.randomUUID().toString().replace("-", "");
+        baseParam.requestTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
+        baseParam.requestType = requestType;
+        baseParam.ip = "118.81.124.183";
+        baseParam.insurerBranchCode = parameters.getInsurerBranchCode();
+        baseParam.franchiserInstitutionCode = parameters.getFranchiserInstitutionCode();
+        baseParam.franchiserChannel = new BaseParamDTO.FranchiserChannelDTO(parameters);
+    }
+
+    public void setBaseParam(BoHaiConfigureParameters parameters, String requestType, String orderNo) {
+        setBaseParam(parameters, requestType);
+        baseParam.orderNo = orderNo;
+    }
+
+
     @NoArgsConstructor
     @Data
-    public static class BaseParamDTO implements Serializable{
+    public static class BaseParamDTO implements Serializable {
 
         private static final long serialVersionUID = -2264349234035092924L;
 
@@ -56,6 +77,11 @@ public class BoHaiBaseRequest implements Serializable {
 
             @JsonProperty("machineCode")
             private String machineCode;
+
+            public FranchiserChannelDTO(BoHaiConfigureParameters parameters) {
+                this.franchiserChannelId = parameters.getFranchiserChannelId();
+            }
+
         }
 
     }

+ 1 - 17
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/GenerateOrderNoRequest.java

@@ -24,23 +24,7 @@ public class GenerateOrderNoRequest extends BoHaiBaseRequest {
     private static final long serialVersionUID = 8713399532011104295L;
 
     public GenerateOrderNoRequest(BoHaiConfigureParameters parameters) {
-
-
-        this.setBaseParam(new BaseParamDTO());
-        this.getBaseParam().setFranchiserChannel(new BaseParamDTO.FranchiserChannelDTO());
-        this.getBaseParam().getFranchiserChannel().setFranchiserChannelId(parameters.getFranchiserChannelId());
-        this.getBaseParam().setFranchiserInstitutionCode(parameters.getFranchiserInstitutionCode());
-        this.getBaseParam().setInsurerBranchCode(parameters.getInsurerBranchCode());
-        String now = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
-        this.getBaseParam().setRequestTime(now);
-        this.getBaseParam().setRequestType(RequestType.Z00002.getCode());
-        this.getBaseParam().setIp("118.81.124.183");
-        this.getBaseParam().setRequestNo(UUID.randomUUID().toString().replace("-", ""));
-
+        this.setBaseParam(parameters, RequestType.Z00002.getCode());
     }
 
-
-
-
-
 }

+ 4 - 15
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/VehicleConfirmationReqeust.java

@@ -3,10 +3,8 @@ package com.ydtech.modules.order.entity.api.bohai.request;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
-import com.ydtech.modules.order.entity.api.bohai.constants.VehicleAffNature;
-import com.ydtech.modules.order.entity.api.bohai.constants.VehicleKind;
-import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsage;
-import com.ydtech.modules.order.entity.api.bohai.constants.VehicleUsageDetail;
+import com.ydtech.modules.order.entity.api.bohai.constants.*;
+import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.utils.StringUtils;
 import lombok.Data;
@@ -41,19 +39,17 @@ public class VehicleConfirmationReqeust extends BoHaiBaseRequest {
     private InsurederDTO insureder;
 
 
-    public VehicleConfirmationReqeust(BaseQuoteInfoVo quoteInfoVo) {
+   public VehicleConfirmationReqeust(BoHaiConfigureParameters parameters, BaseQuoteInfoVo quoteInfoVo) {
+        this.setBaseParam(parameters, RequestType.Z00005.getCode());
         // 车辆信息
         CarInfoVo carInfo = quoteInfoVo.getCarInfo();
         this.vehicle = new VehicleDTO(carInfo);
-
         // 车主
         CustomerInfoVo ownerInfo = quoteInfoVo.getOwnerInfo();
         this.carOwner = new CarOwnerDTO(ownerInfo);
-
         // 投保人
         CustomerInfoVo policyHolderInfo = quoteInfoVo.getPolicyHolderInfo();
         this.holder = new HolderDTO(policyHolderInfo);
-
         // 被保人
         CustomerInfoVo insuredPersonInfo = quoteInfoVo.getInsuredPersonInfo();
         this.insureder = new InsurederDTO(insuredPersonInfo);
@@ -187,24 +183,17 @@ public class VehicleConfirmationReqeust extends BoHaiBaseRequest {
         public VehicleDTO(CarInfoVo carInfo) {
             this.carVin = carInfo.getVinNo();
             this.vehicleModelCode = vehicleModelCode;
-
             this.engineNo = carInfo.getEngineNo();
             this.plateNo = carInfo.getLicenseNo();
             this.registerDate = carInfo.getRegisterDate();
-
             this.purchasePrice = purchasePrice;
-
             // 新车
             this.newVehicleFlag = StringUtils.isNotEmpty(carInfo.getLicenseNo()) ? "0" : "1";
-
             this.moldName = moldName;
-
             this.seatCount = carInfo.getSeatCount();
             this.tonNumber = carInfo.getLimitLoad();
-
             this.fuelType = carInfo.getEnergyType();
             this.emptyWeight = carInfo.getCompleteKerbMass();
-
             this.exhaustMeasure = exhaustMeasure;
 
             VehicleKind vehicleKindEnum = VehicleKind.valueOf(carInfo.getCimodelclass());

+ 7 - 0
src/main/java/com/ydtech/modules/order/entity/api/bohai/request/VehicleTypeQueryRequest.java

@@ -1,6 +1,8 @@
 package com.ydtech.modules.order.entity.api.bohai.request;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.api.bohai.constants.RequestType;
+import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
@@ -48,4 +50,9 @@ public class VehicleTypeQueryRequest extends BoHaiBaseRequest {
     @JsonProperty("newVehicleFlag")
     private String newVehicleFlag;
 
+    public VehicleTypeQueryRequest(BoHaiConfigureParameters parameters, String vehicleBrandModelKey) {
+        this.setBaseParam(parameters, RequestType.Z00004.getCode());
+        this.vehicleBrandModelKey = vehicleBrandModelKey;
+    }
+    
 }

+ 21 - 2
src/main/java/com/ydtech/modules/order/entity/api/bohai/response/VehicleTypeQueryResponse.java

@@ -2,10 +2,12 @@ package com.ydtech.modules.order.entity.api.bohai.response;
 
 
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.order.entity.filter.CarModelsFilter;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
 
+import java.io.Serializable;
 import java.util.List;
 
 /**
@@ -25,7 +27,9 @@ public class VehicleTypeQueryResponse extends BoHaiBaseResponse {
 
     @NoArgsConstructor
     @Data
-    public static class DataDTO {
+    public static class DataDTO implements Serializable {
+
+        private static final long serialVersionUID = -5927284929810347217L;
 
         @JsonProperty("totalCount")
         private String totalCount;
@@ -35,7 +39,9 @@ public class VehicleTypeQueryResponse extends BoHaiBaseResponse {
 
         @NoArgsConstructor
         @Data
-        public static class VehicleModelsDTO {
+        public static class VehicleModelsDTO implements Serializable, CarModelsFilter {
+
+            private static final long serialVersionUID = -8338971802644830464L;
 
             @JsonProperty("moldCharacterCode")
             private String moldCharacterCode;
@@ -67,6 +73,19 @@ public class VehicleTypeQueryResponse extends BoHaiBaseResponse {
             @JsonProperty("modelCode")
             private String modelCode;
 
+            @JsonProperty("yearPattern")
+            private String yearPattern;
+
+
+            @Override
+            public String getPurchasePrice() {
+                return purchasePrice;
+            }
+
+            @Override
+            public String getCarYear() {
+                return yearPattern;
+            }
         }
     }
 }

+ 23 - 1
src/main/java/com/ydtech/modules/order/service/impl/BoHaiOrderApiServiceImpl.java

@@ -1,18 +1,24 @@
 package com.ydtech.modules.order.service.impl;
 
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.bohai.BoHaiRequestApiComponent;
 import com.ydtech.modules.order.entity.api.bohai.request.GenerateOrderNoRequest;
+import com.ydtech.modules.order.entity.api.bohai.request.VehicleConfirmationReqeust;
 import com.ydtech.modules.order.entity.api.bohai.request.VehicleTypeQueryRequest;
 import com.ydtech.modules.order.entity.api.bohai.response.GenerateOrderNoResponse;
+import com.ydtech.modules.order.entity.api.bohai.response.VehicleConfirmationResponse;
+import com.ydtech.modules.order.entity.api.bohai.response.VehicleTypeQueryResponse;
 import com.ydtech.modules.order.entity.api.zijin.request.PaymentCallbacksRequest;
 import com.ydtech.modules.order.entity.api.zijin.request.SubmitVerifyRequest;
+import com.ydtech.modules.order.entity.api.zijin.response.ModelQueryResponse;
 import com.ydtech.modules.order.entity.api.zijin.response.QueryClauseDataResponse;
 import com.ydtech.modules.order.entity.api.zijin.response.QueryVehicProductsResponse;
 import com.ydtech.modules.order.entity.config.BoHaiConfigureParameters;
 import com.ydtech.modules.order.entity.config.HuaTaiConfigureParameters;
+import com.ydtech.modules.order.entity.filter.CarModelsFilterUtils;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
@@ -46,11 +52,27 @@ public class BoHaiOrderApiServiceImpl implements BoHaiOrderApiService {
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(agreementId);
         // 通过 协议id获取配置实体
         BoHaiConfigureParameters parameters = configureParametersComponents.toEntity(BoHaiConfigureParameters.class, ptlAgreementAttribution);
-        // 1.1 车型查询接口
         GenerateOrderNoRequest generateOrderNoRequest = new GenerateOrderNoRequest(parameters);
         try {
             GenerateOrderNoResponse generateOrderNoResponse = boHaiRequestApiComponent.generateOrderNo(generateOrderNoRequest);
 
+            // 2 车型查询接口
+            CarInfoVo carInfo = quoteInfoVo.getCarInfo();
+            VehicleTypeQueryRequest vehicleTypeQueryRequest = new VehicleTypeQueryRequest(parameters, carInfo.getModelcname());
+            VehicleTypeQueryResponse vehicleTypeQueryResponse = boHaiRequestApiComponent.vehicleTypeQuery(vehicleTypeQueryRequest);
+            List<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO> vehicleModels = vehicleTypeQueryResponse.getData().getVehicleModels();
+            VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO vehicleModelsDTO = new CarModelsFilterUtils<VehicleTypeQueryResponse.DataDTO.VehicleModelsDTO>().to(vehicleModels,
+                    quoteInfoVo.getCarInfo());
+
+            // 3 车辆确认接口
+            VehicleConfirmationReqeust vehicleConfirmationReqeust = new VehicleConfirmationReqeust(parameters, quoteInfoVo);
+            VehicleConfirmationResponse vehicleConfirmationResponse = boHaiRequestApiComponent.vehicleConfirmation(vehicleConfirmationReqeust);
+
+
+
+
+
+
         } catch (Exception e) {
             throw new RuntimeException(e);
         }