dengsixing пре 3 година
родитељ
комит
556b915c39

+ 1 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/SceneApplication.java

@@ -5,6 +5,7 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.scheduling.annotation.EnableScheduling;

+ 30 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/callback/FdkkMiniReqErrorCallback.java

@@ -0,0 +1,30 @@
+package com.fdkankan.scene.callback;
+
+import com.dtflys.forest.callback.OnError;
+import com.dtflys.forest.callback.OnSuccess;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+@Slf4j
+public class FdkkMiniReqErrorCallback implements OnError {
+
+    @Override
+    public void onError(ForestRuntimeException e, ForestRequest forestRequest,
+        ForestResponse forestResponse) {
+        log.error("跨服务请求失败!", e);
+        throw new BusinessException(ServerCode.FEIGN_REQUEST_FAILD);
+    }
+}

+ 32 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCallback.java

@@ -0,0 +1,32 @@
+package com.fdkankan.scene.callback;
+
+import com.dtflys.forest.callback.OnSuccess;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
+import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
+import java.util.Arrays;
+import java.util.List;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+@Slf4j
+public class FdkkMiniReqSuccessCallback implements OnSuccess<Result> {
+
+    @Override
+    public void onSuccess(Result result, ForestRequest forestRequest,
+        ForestResponse forestResponse) {
+        if(result.getCode() != ServerCode.SUCCESS.code()){
+            log.error("请求v3失败,url:{},result:{}", forestRequest.getUrl(), forestResponse.getContent());
+            throw new BusinessException(ServerCode.FEIGN_REQUEST_FAILD);
+        }
+    }
+}

+ 6 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/httpclient/FdkankanMiniClient.java

@@ -3,6 +3,9 @@ package com.fdkankan.scene.httpclient;
 import com.dtflys.forest.annotation.Get;
 import com.dtflys.forest.annotation.Request;
 import com.dtflys.forest.annotation.Var;
+import com.dtflys.forest.callback.OnError;
+import com.dtflys.forest.callback.OnSuccess;
+import com.fdkankan.common.response.Result;
 import com.fdkankan.platform.api.dto.Camera;
 import com.fdkankan.scene.bean.CameraBean;
 import com.fdkankan.scene.bean.UserIncrementBean;
@@ -18,12 +21,12 @@ import com.fdkankan.scene.bean.UserIncrementBean;
 public interface FdkankanMiniClient {
 
     @Get("{url}")
-    String getDataSyncType(@Var("url") String url);
+    Result<String> getDataSyncType(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
 
     @Get("{url}")
-    UserIncrementBean getUserIncrementByCameraId(@Var("url") String url);
+    Result<UserIncrementBean> getUserIncrementByCameraId(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
 
     @Get("{url}")
-    CameraBean getCameraByCameraId(@Var("url") String url);
+    Result<CameraBean> getCameraByCameraId(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
 
 }

+ 14 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditInfoServiceImpl.java

@@ -10,8 +10,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
+import com.dtflys.forest.http.ForestRequest;
+import com.dtflys.forest.http.ForestResponse;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.ComputerUtil;
 import com.fdkankan.common.util.CreateObjUtil;
@@ -30,6 +34,8 @@ import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.api.dto.SceneInfoDTO;
 import com.fdkankan.scene.bean.SceneJsonBean;
+import com.fdkankan.scene.callback.FdkkMiniReqErrorCallback;
+import com.fdkankan.scene.callback.FdkkMiniReqSuccessCallback;
 import com.fdkankan.scene.entity.SceneDataDownload;
 import com.fdkankan.scene.entity.SceneEditControls;
 import com.fdkankan.scene.entity.SceneEditInfo;
@@ -65,6 +71,7 @@ import java.util.stream.Collectors;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
@@ -82,6 +89,7 @@ import org.springframework.web.multipart.MultipartFile;
  * @since 2022-01-18
  */
 @Slf4j
+@RefreshScope
 @Service
 public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper, SceneEditInfo> implements ISceneEditInfoService {
 
@@ -99,6 +107,8 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     private int maxCheckTimes;
     @Value("${ecs.checkFile.waitTime:5000}")
     private int waitTime;
+    @Value("${http.host.4dkankanMini}")
+    private String fkankanMiniHost;
 
     @Autowired
     private ISceneEditControlsService sceneEditControlsService;
@@ -127,7 +137,6 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
     @Autowired
     private FdkankanMiniClient fdkankanMiniClient;
 
-
     @Transactional
     @Override
     public SceneEditInfoVO saveScene(SceneEditInfoParamVO param) {
@@ -427,8 +436,10 @@ public class SceneEditInfoServiceImpl extends ServiceImpl<ISceneEditInfoMapper,
         if(Objects.isNull(cameraId)){
             return;
         }
-        String url = mainUrl + "/api/user/camera/getDataSyncByCameraId?cameraId=" + cameraId;
-        sceneInfoVO.setDataSync(fdkankanMiniClient.getDataSyncType(url));
+        String url = fkankanMiniHost + "/api/user/camera/getDataSyncByCameraId?cameraId=" + cameraId;
+        Result<String> dataSyncResult = fdkankanMiniClient
+            .getDataSyncType(url, new FdkkMiniReqSuccessCallback(), new FdkkMiniReqErrorCallback());
+        sceneInfoVO.setDataSync(dataSyncResult.getData());
     }
 
     /**

+ 16 - 6
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneEditServiceImpl.java

@@ -14,17 +14,16 @@ import com.fdkankan.common.constant.SceneStatus;
 import com.fdkankan.common.constant.ServerCode;
 import com.fdkankan.common.constant.UploadFilePath;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.Result;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.util.DateExtUtil;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.feign.PlatformUserClient;
-import com.fdkankan.platform.api.dto.Camera;
-import com.fdkankan.platform.api.dto.UserIncrement;
 import com.fdkankan.scene.bean.CameraBean;
 import com.fdkankan.scene.bean.UserIncrementBean;
-import com.fdkankan.scene.entity.SceneEditInfo;
-import com.fdkankan.scene.entity.SceneEditInfoExt;
+import com.fdkankan.scene.callback.FdkkMiniReqErrorCallback;
+import com.fdkankan.scene.callback.FdkkMiniReqSuccessCallback;
 import com.fdkankan.scene.entity.ScenePlus;
 import com.fdkankan.scene.httpclient.FdkankanMiniClient;
 import com.fdkankan.scene.service.ISceneEditInfoExtService;
@@ -46,6 +45,7 @@ import java.util.List;
 import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 
 /**
@@ -57,6 +57,7 @@ import org.springframework.stereotype.Service;
  * @since 2022/3/11
  **/
 @Service
+@RefreshScope
 public class SceneEditServiceImpl implements ISceneEditService {
 
     @Value("${oss.bucket:4dkankan}")
@@ -130,7 +131,10 @@ public class SceneEditServiceImpl implements ISceneEditService {
 //        }
         // TODO: 2022/4/25 v3v4共存过渡期结束需要删除,恢复上面注释内容 ------------------------------------------start
         String url = fkankanMiniHost + "/api/user/increment/findByCameraId?cameraId=" + scenePlus.getCameraId();
-        UserIncrementBean userIncrement = fdkankanMiniClient.getUserIncrementByCameraId(url);
+        Result<UserIncrementBean> userIncrementResult =
+            fdkankanMiniClient.getUserIncrementByCameraId(
+                url, new FdkkMiniReqSuccessCallback(), new FdkkMiniReqErrorCallback());
+        UserIncrementBean userIncrement = userIncrementResult.getData();
         if(userIncrement != null){
             if(userIncrement.getIsExpired() == 0){
                 isVip = true;
@@ -140,7 +144,13 @@ public class SceneEditServiceImpl implements ISceneEditService {
             }
         }else{
             url = fkankanMiniHost + "/api/user/camera/getCameraByCameraId?cameraId=" + scenePlus.getCameraId();
-            CameraBean camera = fdkankanMiniClient.getCameraByCameraId(url);
+            Result<CameraBean> cameraResult =
+                fdkankanMiniClient.getCameraByCameraId(
+                    url,new FdkkMiniReqSuccessCallback(), new FdkkMiniReqErrorCallback());
+            CameraBean camera = cameraResult.getData();
+            if(camera == null || Objects.isNull(camera.getId())){
+                throw new BusinessException(ServerCode.FEIGN_REQUEST_FAILD);
+            }
             Date date = DateUtil.parse("2021-09-09 00:00:00", DateExtUtil.dateStyle);
             //非07批次的放开
             String pc = camera.getSnCode().substring(0,2);

+ 3 - 4
4dkankan-common/src/main/java/com/fdkankan/common/controller/BaseController.java

@@ -3,16 +3,15 @@ package com.fdkankan.common.controller;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.DateEditor;
+import java.util.Date;
 import java.util.Objects;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.propertyeditors.StringTrimmerEditor;
 import org.springframework.web.bind.WebDataBinder;
 import org.springframework.web.bind.annotation.InitBinder;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-
 public class BaseController {
     @Autowired
     protected HttpServletRequest request;