From 0b061b77fe806959c70a27dd99b0a3b35928ec62 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期一, 29 七月 2024 10:20:09 +0800
Subject: [PATCH] feign完善,异常解码器

---
 /dev/null                                                      |   15 -----
 ycl-server/src/main/java/com/ycl/exception/FeignException.java |   36 ++++++++++++
 ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java      |   26 ++++++++
 ycl-server/src/main/java/com/ycl/task/HKTask.java              |    6 -
 ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java  |   45 +++++++++++++++
 ycl-server/src/main/java/com/ycl/PlatformApplication.java      |    2 
 ycl-server/src/main/java/com/ycl/task/UYTask.java              |   10 ---
 ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java      |   26 ++++++++
 ycl-server/src/main/java/com/ycl/feign/HKClient.java           |    3 
 ycl-server/src/main/java/com/ycl/feign/UYClient.java           |    3 
 10 files changed, 138 insertions(+), 34 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/PlatformApplication.java b/ycl-server/src/main/java/com/ycl/PlatformApplication.java
index c3654cd..d1ce599 100644
--- a/ycl-server/src/main/java/com/ycl/PlatformApplication.java
+++ b/ycl-server/src/main/java/com/ycl/PlatformApplication.java
@@ -12,7 +12,7 @@
 @Slf4j
 @EnableCaching
 @EnableTransactionManagement
-@EnableFeignClients(basePackages = {"com.ycl.web"})
+@EnableFeignClients(basePackages = {"com.ycl.feign"})
 @ImportAutoConfiguration({FeignAutoConfiguration.class})
 @SpringBootApplication
 public class PlatformApplication {
diff --git a/ycl-server/src/main/java/com/ycl/config/HKFeignConfig.java b/ycl-server/src/main/java/com/ycl/config/HKFeignConfig.java
deleted file mode 100644
index b446168..0000000
--- a/ycl-server/src/main/java/com/ycl/config/HKFeignConfig.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ycl.config;
-
-import com.ycl.interceptor.HKFeignInterceptor;
-import feign.RequestInterceptor;
-import org.springframework.context.annotation.Bean;
-
-public class HKFeignConfig {
-    /**
-     * 娉ㄥ叆鎷︽埅鍣�
-     */
-    @Bean
-    public RequestInterceptor requestInterceptor(){
-        return new HKFeignInterceptor();
-    }
-}
diff --git a/ycl-server/src/main/java/com/ycl/config/YYFeignConfig.java b/ycl-server/src/main/java/com/ycl/config/YYFeignConfig.java
deleted file mode 100644
index c24cc7b..0000000
--- a/ycl-server/src/main/java/com/ycl/config/YYFeignConfig.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.ycl.config;
-
-import com.ycl.interceptor.YYFeignInterceptor;
-import feign.RequestInterceptor;
-import org.springframework.context.annotation.Bean;
-
-public class YYFeignConfig {
-    /**
-     * 娉ㄥ叆鎷︽埅鍣�
-     */
-    @Bean
-    public RequestInterceptor requestInterceptor(){
-        return new YYFeignInterceptor();
-    }
-}
diff --git a/ycl-server/src/main/java/com/ycl/exception/FeignException.java b/ycl-server/src/main/java/com/ycl/exception/FeignException.java
new file mode 100644
index 0000000..3037f4d
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/exception/FeignException.java
@@ -0,0 +1,36 @@
+package com.ycl.exception;
+
+/**
+ * feign璋冪敤寮傚父
+ *
+ * @author 29443
+ * @version 1.0
+ * @date 2022/4/25
+ */
+public class FeignException extends RuntimeException {
+
+    private String msg;
+
+    private Integer code;
+
+    public FeignException(String msg, Throwable cause) {
+        super(msg, cause);
+    }
+
+    public FeignException(String msg) {
+        super(msg);
+    }
+
+    public FeignException(String msg, Integer code) {
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java b/ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java
new file mode 100644
index 0000000..077d2af
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java
@@ -0,0 +1,45 @@
+package com.ycl.feign;
+
+import com.ycl.exception.FeignException;
+import feign.Response;
+import feign.codec.ErrorDecoder;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * feign鐨勯敊璇В鐮佸櫒
+ *
+ * @author锛歺p
+ * @date锛�2024/7/14 11:30
+ */
+@Slf4j
+@Configuration
+public class FeignErrorDecoder implements ErrorDecoder {
+
+    @Override
+    public Exception decode(String methodKey, Response response) {
+        String msg = "";
+        switch (response.status()) {
+            case 400:
+                msg = "杩滅▼璋冪敤寮傚父锛氬弬鏁伴敊璇�";
+                break;
+            case 401:
+                msg = "杩滅▼璋冪敤寮傚父锛氭湭鐧诲綍锛屾棤娉曟搷浣�";
+                break;
+            case 403:
+                msg = "杩滅▼璋冪敤寮傚父锛氭棤鏉冮檺鎵ц鎿嶄綔";
+                break;
+            case 404:
+                msg = "杩滅▼璋冪敤寮傚父锛氳皟鐢ㄦ帴鍙d笉瀛樺湪";
+                break;
+            case 500:
+                msg = "杩滅▼璋冪敤寮傚父锛氬鏂规湇鍔�500寮傚父";
+                break;
+            default:
+                msg = "杩滅▼璋冪敤寮傚父锛氭湭鐭ュ紓甯�";
+                break;
+        }
+        log.error(msg);
+        return new FeignException(msg);
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/web/HKClient.java b/ycl-server/src/main/java/com/ycl/feign/HKClient.java
similarity index 99%
rename from ycl-server/src/main/java/com/ycl/web/HKClient.java
rename to ycl-server/src/main/java/com/ycl/feign/HKClient.java
index c1b9a2d..101a7cd 100644
--- a/ycl-server/src/main/java/com/ycl/web/HKClient.java
+++ b/ycl-server/src/main/java/com/ycl/feign/HKClient.java
@@ -1,7 +1,6 @@
-package com.ycl.web;
+package com.ycl.feign;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.ycl.config.HKFeignConfig;
 import com.ycl.platform.domain.param.HK.*;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.stereotype.Component;
diff --git a/ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java b/ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java
new file mode 100644
index 0000000..e778b78
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java
@@ -0,0 +1,26 @@
+package com.ycl.feign;
+
+import com.ycl.feign.FeignErrorDecoder;
+import com.ycl.interceptor.HKFeignInterceptor;
+import feign.RequestInterceptor;
+import feign.codec.ErrorDecoder;
+import org.springframework.context.annotation.Bean;
+
+public class HKFeignConfig {
+    /**
+     * 娉ㄥ叆鎷︽埅鍣�
+     */
+    @Bean
+    public RequestInterceptor requestInterceptor(){
+        return new HKFeignInterceptor();
+    }
+
+    /**
+     * 璋冪敤寮傚父澶勭悊
+     * @return
+     */
+    @Bean
+    public ErrorDecoder errorDecoder() {
+        return new FeignErrorDecoder();
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/web/UYClient.java b/ycl-server/src/main/java/com/ycl/feign/UYClient.java
similarity index 96%
rename from ycl-server/src/main/java/com/ycl/web/UYClient.java
rename to ycl-server/src/main/java/com/ycl/feign/UYClient.java
index 55c0f27..5cb01dc 100644
--- a/ycl-server/src/main/java/com/ycl/web/UYClient.java
+++ b/ycl-server/src/main/java/com/ycl/feign/UYClient.java
@@ -1,7 +1,6 @@
-package com.ycl.web;
+package com.ycl.feign;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.ycl.config.YYFeignConfig;
 import com.ycl.platform.domain.param.UY.CameraParam;
 import com.ycl.platform.domain.param.UY.OnlineParam;
 import com.ycl.platform.domain.param.UY.RecordMetaDSumParam;
diff --git a/ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java b/ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java
new file mode 100644
index 0000000..f825a1c
--- /dev/null
+++ b/ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java
@@ -0,0 +1,26 @@
+package com.ycl.feign;
+
+import com.ycl.feign.FeignErrorDecoder;
+import com.ycl.interceptor.YYFeignInterceptor;
+import feign.RequestInterceptor;
+import feign.codec.ErrorDecoder;
+import org.springframework.context.annotation.Bean;
+
+public class YYFeignConfig {
+    /**
+     * 娉ㄥ叆鎷︽埅鍣�
+     */
+    @Bean
+    public RequestInterceptor requestInterceptor(){
+        return new YYFeignInterceptor();
+    }
+
+    /**
+     * 璋冪敤寮傚父澶勭悊
+     * @return
+     */
+    @Bean
+    public ErrorDecoder errorDecoder() {
+        return new FeignErrorDecoder();
+    }
+}
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index ac2f64e..5424408 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -1,7 +1,6 @@
 package com.ycl.task;
 
 import com.alibaba.fastjson2.JSONObject;
-import com.ycl.platform.domain.entity.YwThreshold;
 import com.ycl.platform.domain.param.HK.FaceDeviceInspectionParam;
 import com.ycl.platform.domain.param.HK.SnapshotDataMonitorParam;
 import com.ycl.platform.domain.param.HK.VehicleDeviceInspectionParam;
@@ -9,15 +8,12 @@
 import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
 import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
 import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
-import com.ycl.platform.mapper.YwThresholdMapper;
 import com.ycl.platform.service.ICheckIndexCarService;
 import com.ycl.platform.service.ICheckIndexFaceService;
 import com.ycl.platform.service.ICheckIndexVideoService;
 import com.ycl.platform.service.IYwThresholdService;
-import com.ycl.web.HKClient;
 import constant.ApiConstants;
-import enumeration.BusinessType;
-import enumeration.general.BusinessTypeEnum;
+import com.ycl.feign.HKClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
diff --git a/ycl-server/src/main/java/com/ycl/task/UYTask.java b/ycl-server/src/main/java/com/ycl/task/UYTask.java
index b173baf..4d94bba 100644
--- a/ycl-server/src/main/java/com/ycl/task/UYTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/UYTask.java
@@ -1,22 +1,14 @@
 package com.ycl.task;
 
-import com.alibaba.fastjson2.JSONObject;
-import com.ycl.platform.domain.param.HK.FaceDeviceInspectionParam;
-import com.ycl.platform.domain.param.HK.VehicleDeviceInspectionParam;
-import com.ycl.platform.domain.result.HK.FaceDeviceInspectionResult;
-import com.ycl.platform.domain.result.HK.VehicleDeviceInspectionResult;
 import com.ycl.platform.service.IYwThresholdService;
-import com.ycl.web.HKClient;
-import com.ycl.web.UYClient;
+import com.ycl.feign.UYClient;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
-import java.util.List;
 
 
 @Slf4j

--
Gitblit v1.8.0