//package common.config;
//
//import com.alibaba.cloud.commons.io.IOUtils;
//import com.alibaba.fastjson.JSONObject;
//import com.fdkankan.common.constant.ServerCode;
//import com.fdkankan.common.exception.BusinessException;
//import com.fdkankan.common.response.ResultData;
//import feign.Response;
//import feign.codec.Decoder;
//import lombok.extern.slf4j.Slf4j;
//
//import java.io.IOException;
//import java.lang.reflect.Type;
//import java.nio.charset.StandardCharsets;
//import java.util.Objects;
//
//@Slf4j
//public final class ResultStatusDecoder implements Decoder {
//
//    public static final String CONTENT_KEY = "content";
//    final Decoder delegate;
//
//    public ResultStatusDecoder(Decoder delegate) {
//        Objects.requireNonNull(delegate, "Decoder must not be null. ");
//        this.delegate = delegate;
//    }
//
//    @Override
//    public Object decode(Response response, Type type) throws IOException {
//        // 判断是否返回参数是否是异常
//        String resultStr = IOUtils.toString(response.body().asInputStream(), StandardCharsets.UTF_8);
//        log.info("feign调用返回,result msg ->{}",resultStr);
//        try {
//            ResultData resultData = JSONObject.parseObject(resultStr, ResultData.class);
//            if(resultData.getCode() != ServerCode.SUCCESS.code()){
//                throw new BusinessException(resultData.getCode(),resultData.getMessage());
//            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
//        // 回写body
//        return delegate.decode(response.toBuilder().body(resultStr, StandardCharsets.UTF_8).build(), type);
//    }
//}
