Kaynağa Gözat

车辆识别代码,品牌型号 添加缓存

785834757 2 yıl önce
ebeveyn
işleme
e2ae656696

+ 15 - 3
src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.service.CarModelService;
@@ -13,6 +14,8 @@ import org.springframework.web.client.RestTemplate;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
 
 @Service
 public class CarModelServiceImpl implements CarModelService {
@@ -34,16 +37,25 @@ public class CarModelServiceImpl implements CarModelService {
 
     @Override
     public HttpResult<List<CarModelDTO>> vinSearch(String frameNo) {
+        //从缓存中查数据
+        if(!Objects.isNull(redisTemplate.opsForValue().get(frameNo))){
+            String carModeStr = redisTemplate.opsForValue().get(frameNo);
+            List<CarModelDTO> carModelDTOS = JSON.parseArray(carModeStr, CarModelDTO.class);
+            return HttpResult.ok(carModelDTOS);
+        }
+
+        //从数据库中查数据
         List<CarModelDTO> carModelDTOS = insOrdersService.vinSearch(frameNo);
         if (!carModelDTOS.isEmpty()) {
+            //进行缓存存储
+            redisTemplate.opsForValue().set(frameNo,JSON.toJSONString(carModelDTOS),1, TimeUnit.HOURS);
             return HttpResult.ok(carModelDTOS);
         }
 
-
-
-
         List<CarModelDTO> carModelDTOS1 = zhongMeiOrderService.vinSearch(frameNo);
         if (!carModelDTOS1.isEmpty()) {
+            //进行缓存存储
+            redisTemplate.opsForValue().set(frameNo,JSON.toJSONString(carModelDTOS1),1, TimeUnit.HOURS);
             return HttpResult.ok(carModelDTOS1);
         }
 //        List<CarModelDTO> carModelDTOS2 = yongAnOrderService.vinSearch(frameNo);

+ 16 - 1
src/main/java/com/ydtech/modules/order/service/impl/ZhongMeiOrderApiServiceImpl.java

@@ -46,10 +46,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.ParameterizedTypeReference;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
 
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Service
@@ -81,6 +83,8 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
     private final PtlNonCarProductSchemeService ptlNonCarProductSchemeService;
 
+    private final StringRedisTemplate redisTemplate;
+
     @Value("${upload.file.path}")
     private String uploadFilePath;
 
@@ -94,7 +98,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
                                        ZhongmeiRequestApiComponents zhongmeiRequestApiComponents, ZhongmeiRequestComponents zhongmeiRequestComponents,
                                        ConfigureParametersComponents configureParametersComponents, PtlAgreementAttributionService ptlAgreementAttributionService,
                                        FeeRuleSchemeService feeRuleSchemeService, InsFeeOrderService insFeeOrderService,ZhongmeiRepeatInsuranceComponents zhongmeiRepeatInsuranceComponents,
-                                       PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService,PtlNonCarProductSchemeService ptlNonCarProductSchemeService) {
+                                       PtlAgreementNonCarProductCostsService ptlAgreementNonCarProductCostsService,PtlNonCarProductSchemeService ptlNonCarProductSchemeService,StringRedisTemplate redisTemplate) {
         this.insOrdersService = insOrdersService;
         this.insAreaCompanyService = insAreaCompanyService;
         this.insTaskImagesService = insTaskImagesService;
@@ -107,6 +111,7 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         this.zhongmeiRepeatInsuranceComponents = zhongmeiRepeatInsuranceComponents;
         this.ptlAgreementNonCarProductCostsService=ptlAgreementNonCarProductCostsService;
         this.ptlNonCarProductSchemeService=ptlNonCarProductSchemeService;
+        this.redisTemplate = redisTemplate;
     }
 
     private void modelInquiry(String modelName, List<ModelsQueryResponse.SimpleStadarCarDTO> simpleStadarCarDTOS) {
@@ -131,6 +136,12 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
 
     @Override
     public HttpResult<List<CarModelDTO>> modelsQuery(String modelName) {
+        //从缓存中查数据
+        if(!Objects.isNull(redisTemplate.opsForValue().get(modelName))){
+            String carModeStr = redisTemplate.opsForValue().get(modelName);
+            List<CarModelDTO> carModelDTOS = JSON.parseArray(carModeStr, CarModelDTO.class);
+            return HttpResult.ok(carModelDTOS);
+        }
         ModelsQueryRequest modelsQueryResponse = new ModelsQueryRequest();
         modelsQueryResponse.setModelName(modelName);
 //        List<ModelsQueryResponse.SimpleStadarCarDTO> car = zhongmeiRequestApiComponents.modelQuery(modelsQueryResponse, ModelsQueryResponse.class);
@@ -138,6 +149,10 @@ public class ZhongMeiOrderApiServiceImpl implements ZhongMeiOrderApiService {
         modelInquiry(modelName, car);
 
         List<CarModelDTO> map = SimpleStadarCarDTOConvert.INSTANCE.map(car);
+        //数据存储到缓存中
+        if(map.size() > 0){
+            redisTemplate.opsForValue().set(modelName,JSON.toJSONString(map),1, TimeUnit.HOURS);
+        }
         return HttpResult.ok(map);
     }