xiangpei
2024-07-29 0b061b77fe806959c70a27dd99b0a3b35928ec62
feign完善,异常解码器
3个文件已修改
4个文件已添加
2 文件已重命名
2个文件已删除
187 ■■■■ 已修改文件
ycl-server/src/main/java/com/ycl/PlatformApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/config/HKFeignConfig.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/config/YYFeignConfig.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/exception/FeignException.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/HKClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/UYClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/HKTask.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-server/src/main/java/com/ycl/task/UYTask.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 {
ycl-server/src/main/java/com/ycl/config/HKFeignConfig.java
File was deleted
ycl-server/src/main/java/com/ycl/config/YYFeignConfig.java
File was deleted
ycl-server/src/main/java/com/ycl/exception/FeignException.java
New file
@@ -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;
    }
}
ycl-server/src/main/java/com/ycl/feign/FeignErrorDecoder.java
New file
@@ -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:xp
 * @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 = "远程调用异常:调用接口不存在";
                break;
            case 500:
                msg = "远程调用异常:对方服务500异常";
                break;
            default:
                msg = "远程调用异常:未知异常";
                break;
        }
        log.error(msg);
        return new FeignException(msg);
    }
}
ycl-server/src/main/java/com/ycl/feign/HKClient.java
File was renamed from ycl-server/src/main/java/com/ycl/web/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;
ycl-server/src/main/java/com/ycl/feign/HKFeignConfig.java
New file
@@ -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();
    }
}
ycl-server/src/main/java/com/ycl/feign/UYClient.java
File was renamed from ycl-server/src/main/java/com/ycl/web/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;
ycl-server/src/main/java/com/ycl/feign/YYFeignConfig.java
New file
@@ -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();
    }
}
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;
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