Kaynağa Gözat

后台配置人员修改

wks 2 yıl önce
ebeveyn
işleme
33d9c91afa

+ 18 - 0
src/main/java/com/ydtech/modules/admin/constants/VehicleTypeType.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.admin.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum VehicleTypeType {
+
+    VTT_1(1, "车架号查询"),
+    VTT_2(2, "车辆类型查询");
+
+    private final Integer code;
+
+    private final String desc;
+
+}

+ 7 - 2
src/main/java/com/ydtech/modules/admin/dao/SysQueryVehicleConfigMapper.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.admin.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO;
 import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @author Administrator
@@ -12,8 +13,12 @@ import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig;
 */
 public interface SysQueryVehicleConfigMapper extends BaseMapper<SysQueryVehicleConfig> {
 
-
-    SysQueryVehicleConfigDTO getByType(String type);
+    /**
+     * 通过类型查看开启的配置信息
+     * @param type 类型
+     * @return
+     */
+    SysQueryVehicleConfigDTO getByType(@Param("type") String type);
 
 
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysQueryVehicleConfigDTO.java

@@ -39,4 +39,9 @@ public class SysQueryVehicleConfigDTO {
     @ApiModelProperty("请求路劲")
     private String link;
 
+    public String getBaseUrl(){
+        return this.url + this.link;
+    }
+
+
 }

+ 12 - 1
src/main/java/com/ydtech/modules/admin/service/SysQueryVehicleConfigService.java

@@ -2,11 +2,13 @@ package com.ydtech.modules.admin.service;
 
 import com.ydtech.extension.BaseIService;
 import com.ydtech.modules.admin.constants.EnabledEnum;
+import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO;
 import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig;
 import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryPageVo;
 import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryVo;
 import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigSaveVo;
 import com.ydtech.modules.order.entity.BasePageResult;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.Objects;
 
@@ -53,12 +55,20 @@ public interface SysQueryVehicleConfigService extends BaseIService<SysQueryVehic
      */
     SysQueryVehicleConfigQueryVo queryById(Integer id);
 
+    /**
+     * 通过类型查看开启的配置信息
+     *
+     * @param type 类型
+     * @return
+     */
+    SysQueryVehicleConfigDTO getByType(String type);
 
     /**
      * 把修改改为关闭
+     *
      * @param enabled 开启关闭状态
      */
-    default void updateEnabled(int enabled){
+    default void updateEnabled(int enabled) {
         if (EnabledEnum.EE_1.getCode() == enabled) {
             lambdaUpdate()
                     .set(SysQueryVehicleConfig::getEnabled, EnabledEnum.EE_0.getCode())
@@ -67,4 +77,5 @@ public interface SysQueryVehicleConfigService extends BaseIService<SysQueryVehic
         }
     }
 
+
 }

+ 13 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysQueryVehicleConfigServiceImpl.java

@@ -2,7 +2,9 @@ package com.ydtech.modules.admin.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.modules.admin.dao.SysQueryVehicleConfigMapper;
+import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO;
 import com.ydtech.modules.admin.model.po.SysQueryVehicleConfig;
 import com.ydtech.modules.admin.model.po.SysQueryVehicleUrl;
 import com.ydtech.modules.admin.model.vo.SysQueryVehicleConfigQueryPageVo;
@@ -17,6 +19,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -95,5 +98,15 @@ public class SysQueryVehicleConfigServiceImpl extends ServiceImpl<SysQueryVehicl
         return sysQueryVehicleConfigQueryDTO;
     }
 
+    @Override
+    public SysQueryVehicleConfigDTO getByType(String type) {
+        SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = baseMapper.getByType(type);
+        String substring = sysQueryVehicleConfigDTO.getCompanyId().substring(0, 4);
+        if (InsuranceEnum.ZMBX.getCode().equals(substring)) {
+            return null;
+        }
+        return sysQueryVehicleConfigDTO;
+    }
+
 }
 

+ 4 - 0
src/main/java/com/ydtech/modules/order/components/InsCrawlerOrderComponents.java

@@ -56,6 +56,10 @@ public class InsCrawlerOrderComponents {
         return this.post(url, insuranceEnum.getPinyin(), message, requestBody, responseType, httpHeaders);
     }
 
+    public <T, B> B request(String url, String message, T requestBody, Class<B> responseType) {
+        return this.post(url, "", message, requestBody, responseType, new HttpHeaders());
+    }
+
 
 }
 

+ 56 - 0
src/main/java/com/ydtech/modules/order/components/vehicle/QueryVehicleComponents.java

@@ -1,12 +1,68 @@
 package com.ydtech.modules.order.components.vehicle;
 
 
+import com.ydtech.constants.InsuranceEnum;
+import com.ydtech.modules.admin.constants.VehicleTypeType;
+import com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO;
+import com.ydtech.modules.admin.service.SysQueryVehicleConfigService;
+import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.order.components.InsCrawlerOrderComponents;
+import com.ydtech.modules.order.entity.crawler.request.vehicle.FrameNumberInquiryRequest;
+import com.ydtech.modules.order.entity.crawler.request.vehicle.VehicleModelInquiryRequest;
+import com.ydtech.modules.order.entity.crawler.response.vehicle.BaseVehicleResponse;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpHeaders;
 import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
 
 @Component
+@RequiredArgsConstructor
 public class QueryVehicleComponents {
 
+    private final SysQueryVehicleConfigService sysQueryVehicleConfigService;
+
+    private final InsCrawlerOrderComponents insCrawlerOrderComponents;
+
+    /**
+     * 车架号查询
+     *
+     * @param frameNumber 车架号查询
+     */
+    public List<CarModelDTO> frameNumberInquiry(String frameNumber) {
+        VehicleTypeType vtt1 = VehicleTypeType.VTT_1;
+        SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = sysQueryVehicleConfigService.getByType(String.valueOf(vtt1.getCode()));
+        if(ObjectUtils.isEmpty(sysQueryVehicleConfigDTO)) {
+            return Collections.emptyList();
+        }
+
+        FrameNumberInquiryRequest frameNumberInquiryRequest = new FrameNumberInquiryRequest(frameNumber, sysQueryVehicleConfigDTO.getUsername(), sysQueryVehicleConfigDTO.getPassword());
+        String url = sysQueryVehicleConfigDTO.getBaseUrl();
+        BaseVehicleResponse response = insCrawlerOrderComponents.post(url, "vehicle", vtt1.getDesc(), frameNumberInquiryRequest, BaseVehicleResponse.class, new HttpHeaders());
+        return response.getContent();
+    }
+
+    /**
+     * 车型查询
+     *
+     * @param vehicleModel 车辆类型
+     */
+    public List<CarModelDTO> vehicleModelInquiry(String vehicleModel) {
+        VehicleTypeType vtt2 = VehicleTypeType.VTT_2;
+        SysQueryVehicleConfigDTO sysQueryVehicleConfigDTO = sysQueryVehicleConfigService.getByType(String.valueOf(vtt2.getCode()));
+        if(ObjectUtils.isEmpty(sysQueryVehicleConfigDTO)) {
+            return Collections.emptyList();
+        }
 
+        VehicleModelInquiryRequest frameNumberInquiryRequest = new VehicleModelInquiryRequest(vehicleModel, sysQueryVehicleConfigDTO.getUsername(), sysQueryVehicleConfigDTO.getPassword());
+        String url = sysQueryVehicleConfigDTO.getBaseUrl();
+        BaseVehicleResponse response = insCrawlerOrderComponents.post(url, "vehicle", vtt2.getDesc(), frameNumberInquiryRequest, BaseVehicleResponse.class, new HttpHeaders());
+        return response.getContent();
+    }
 
 
 

+ 23 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/vehicle/BaseVehicleRequest.java

@@ -0,0 +1,23 @@
+package com.ydtech.modules.order.entity.crawler.request.vehicle;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseVehicleRequest implements Serializable {
+
+    private static final long serialVersionUID = 1742373042317777831L;
+
+    @JsonProperty("username")
+    private String username;
+
+    @JsonProperty("password")
+    private String password;
+
+}

+ 25 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/vehicle/FrameNumberInquiryRequest.java

@@ -0,0 +1,25 @@
+package com.ydtech.modules.order.entity.crawler.request.vehicle;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class FrameNumberInquiryRequest extends BaseVehicleRequest{
+
+    private static final long serialVersionUID = 4659780653816463073L;
+
+    @JsonProperty("vin")
+    private String vin;
+
+    public FrameNumberInquiryRequest(String frameNumber, String username, String password) {
+        super(username, password);
+        this.vin = frameNumber;
+    }
+}

+ 26 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/request/vehicle/VehicleModelInquiryRequest.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.order.entity.crawler.request.vehicle;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@NoArgsConstructor
+@Data
+@AllArgsConstructor
+public class VehicleModelInquiryRequest extends BaseVehicleRequest {
+
+    private static final long serialVersionUID = 2577862656332358550L;
+
+    @JsonProperty("modelcname")
+    private String modelName;
+
+    public VehicleModelInquiryRequest(String vehicleModel, String username, String password) {
+        super(username, password);
+        this.modelName = vehicleModel;
+    }
+
+}

+ 26 - 0
src/main/java/com/ydtech/modules/order/entity/crawler/response/vehicle/BaseVehicleResponse.java

@@ -0,0 +1,26 @@
+package com.ydtech.modules.order.entity.crawler.response.vehicle;
+
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BaseVehicleResponse implements Serializable {
+
+    private static final long serialVersionUID = -1927930007075223492L;
+
+    @JsonProperty("code")
+    private Integer code;
+
+    @JsonProperty("content")
+    private List<CarModelDTO> content;
+
+}

+ 14 - 13
src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java

@@ -2,10 +2,12 @@ package com.ydtech.modules.order.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
+import com.ydtech.modules.order.components.vehicle.QueryVehicleComponents;
 import com.ydtech.modules.order.service.CarModelService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.YongAnOrderService;
 import com.ydtech.modules.order.service.ZhongMeiOrderService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -18,22 +20,16 @@ import static com.ydtech.modules.order.constants.OrderCacheConstant.VIN_SEARCH_K
 import static com.ydtech.modules.order.constants.OrderCacheConstant.VIN_SEARCH_KEY_TIME;
 
 @Service
+@RequiredArgsConstructor
 public class CarModelServiceImpl implements CarModelService {
 
     private final ZhongMeiOrderService zhongMeiOrderService;
 
-    private final YongAnOrderService yongAnOrderService;
-
     private final InsOrdersService insOrdersService;
 
     private final StringRedisTemplate redisTemplate;
 
-    public CarModelServiceImpl(ZhongMeiOrderService zhongMeiOrderService, YongAnOrderService yongAnOrderService, InsOrdersService insOrdersService, StringRedisTemplate redisTemplate) {
-        this.zhongMeiOrderService = zhongMeiOrderService;
-        this.yongAnOrderService = yongAnOrderService;
-        this.insOrdersService = insOrdersService;
-        this.redisTemplate = redisTemplate;
-    }
+    private final QueryVehicleComponents queryVehicleComponents;
 
     @Override
     public List<CarModelDTO> vinSearch(String frameNo) {
@@ -42,24 +38,29 @@ public class CarModelServiceImpl implements CarModelService {
         redisKey.append(VIN_SEARCH_KEY);
         redisKey.append(frameNo);
         //从缓存中查数据
-        if(!Objects.isNull(redisTemplate.opsForValue().get(redisKey.toString()))){
+        if (!Objects.isNull(redisTemplate.opsForValue().get(redisKey.toString()))) {
             String carModeStr = redisTemplate.opsForValue().get(redisKey.toString());
-           return  JSON.parseArray(carModeStr, CarModelDTO.class);
+            return JSON.parseArray(carModeStr, CarModelDTO.class);
 
         }
 
         //从数据库中查数据
-        List<CarModelDTO> carModelDTOS = insOrdersService.vinSearch(frameNo);
+
+        List<CarModelDTO> carModelDTOS = queryVehicleComponents.frameNumberInquiry(frameNo);
+        if (carModelDTOS.isEmpty()) {
+            carModelDTOS = insOrdersService.vinSearch(frameNo);
+        }
+
         if (!carModelDTOS.isEmpty()) {
             //进行缓存存储
-            redisTemplate.opsForValue().set(redisKey.toString(),JSON.toJSONString(carModelDTOS),VIN_SEARCH_KEY_TIME, TimeUnit.HOURS);
+            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(carModelDTOS), VIN_SEARCH_KEY_TIME, TimeUnit.HOURS);
             return carModelDTOS;
         }
 
         List<CarModelDTO> carModelDTOS1 = zhongMeiOrderService.vinSearch(frameNo);
         if (!carModelDTOS1.isEmpty()) {
             //进行缓存存储
-            redisTemplate.opsForValue().set(redisKey.toString(),JSON.toJSONString(carModelDTOS1),1, TimeUnit.HOURS);
+            redisTemplate.opsForValue().set(redisKey.toString(), JSON.toJSONString(carModelDTOS1), 1, TimeUnit.HOURS);
             return carModelDTOS1;
         }
 //        List<CarModelDTO> carModelDTOS2 = yongAnOrderService.vinSearch(frameNo);

+ 15 - 11
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -8,7 +8,6 @@ import com.ydtech.constants.enums.InsuranceRisk;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.ins.model.request.Response;
 import com.ydtech.modules.ins.model.vo.*;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
@@ -16,6 +15,7 @@ import com.ydtech.modules.ins.model.zm.ZmCarModel;
 import com.ydtech.modules.order.components.ConfigureParametersComponents;
 import com.ydtech.modules.order.components.InsImagesUploadCacheComponents;
 import com.ydtech.modules.order.components.ZhongmeiRequestApiComponents;
+import com.ydtech.modules.order.components.vehicle.QueryVehicleComponents;
 import com.ydtech.modules.order.components.zhongmei.ZhongmeiRepeatInsuranceComponents;
 import com.ydtech.modules.order.constants.InsuranceTypeCorrespondence;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -36,7 +36,10 @@ import com.ydtech.modules.order.entity.vo.AccidentalDrivingVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.order.entity.vo.PolicyPrintVo;
-import com.ydtech.modules.order.service.*;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.order.service.InsTaskImagesService;
+import com.ydtech.modules.order.service.ZhongMeiOrderApiService;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementAttribution;
 import com.ydtech.modules.protocol.entity.po.PtlAgreementNonCarProductCosts;
 import com.ydtech.modules.protocol.entity.vo.PtlNonCarProductSchemeDetailVo;
@@ -83,10 +86,6 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
     private final ConfigureParametersComponents configureParametersComponents;
 
-    private final FeeRuleSchemeService feeRuleSchemeService;
-
-    private final InsFeeOrderService insFeeOrderService;
-
     private final ZhongmeiRepeatInsuranceComponents zhongmeiRepeatInsuranceComponents;
 
     private final PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService;
@@ -95,6 +94,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
     private final StringRedisTemplate redisTemplate;
 
+    private final QueryVehicleComponents queryVehicleComponents;
 
     private final InsImagesUploadCacheComponents insImagesUploadCacheComponents;
 
@@ -141,11 +141,15 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
             List<CarModelDTO> carModelDTOS = JSON.parseArray(carModeStr, CarModelDTO.class);
             return carModelDTOS;
         }
-        ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
-        modelsQueryResponse.setModelName(modelName);
-        List<ModelsQueryResponse.SimpleStadarCarDTO> car = new ArrayList<>();
-        modelInquiry(modelName, car);
-        List<CarModelDTO> map = car.stream().map(ModelsQueryResponse.SimpleStadarCarDTO::toCarModelDTO).collect(Collectors.toList());
+
+        List<CarModelDTO> map = queryVehicleComponents.vehicleModelInquiry(modelName);
+        if(map.isEmpty()){
+            ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
+            modelsQueryResponse.setModelName(modelName);
+            List<ModelsQueryResponse.SimpleStadarCarDTO> car = new ArrayList<>();
+            modelInquiry(modelName, car);
+            map = car.stream().map(ModelsQueryResponse.SimpleStadarCarDTO::toCarModelDTO).collect(Collectors.toList());
+        }
 
         //数据存储到缓存中
         if (!map.isEmpty()) {

+ 24 - 8
src/main/resources/mapper/modules/admin/SysQueryVehicleConfigMapper.xml

@@ -5,13 +5,24 @@
 <mapper namespace="com.ydtech.modules.admin.dao.SysQueryVehicleConfigMapper">
 
     <resultMap id="BaseResultMap" type="com.ydtech.modules.admin.model.po.SysQueryVehicleConfig">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
-            <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
-            <result property="url" column="url" jdbcType="VARCHAR"/>
-            <result property="enabled" column="enabled" jdbcType="TINYINT"/>
-            <result property="username" column="username" jdbcType="VARCHAR"/>
-            <result property="password" column="password" jdbcType="VARCHAR"/>
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
+        <result property="url" column="url" jdbcType="VARCHAR"/>
+        <result property="enabled" column="enabled" jdbcType="TINYINT"/>
+        <result property="username" column="username" jdbcType="VARCHAR"/>
+        <result property="password" column="password" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <resultMap id="VehicleConfigMap" type="com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO">
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
+        <result property="url" column="url" jdbcType="VARCHAR"/>
+        <result property="enabled" column="enabled" jdbcType="TINYINT"/>
+        <result property="username" column="username" jdbcType="VARCHAR"/>
+        <result property="password" column="password" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="link" column="link" jdbcType="VARCHAR"/>
     </resultMap>
 
     <sql id="Base_Column_List">
@@ -21,7 +32,12 @@
     </sql>
 
     <select id="getByType" resultType="com.ydtech.modules.admin.model.dto.SysQueryVehicleConfigDTO">
-
+        select *
+        from sys_query_vehicle_config c
+                 left join sys_query_vehicle_url u
+                           on c.id = config_id
+        where u.type = #{type}
+          and enabled = 1
     </select>
 
 </mapper>