소스 검색

v3 v4共存改造

dengsixing 3 년 전
부모
커밋
ef143cf69d

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

@@ -24,9 +24,6 @@ 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);
-        }
+        log.info("请求v3成功,url:{},result:{}", forestRequest.getUrl(), forestResponse.getContent());
     }
 }

+ 51 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/callback/FdkkMiniReqSuccessCondition.java

@@ -0,0 +1,51 @@
+package com.fdkankan.scene.callback;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.dtflys.forest.callback.SuccessWhen;
+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;
+
+/**
+ * <p>
+ *  自定义成功/失败条件实现类
+ *  需要实现 SuccessWhen 接口
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/25
+ **/
+
+public class FdkkMiniReqSuccessCondition implements SuccessWhen {
+
+    /**
+     * 请求成功条件
+     * @param req Forest请求对象
+     * @param res Forest响应对象
+     * @return 是否成功,true: 请求成功,false: 请求失败
+     */
+    @Override
+    public boolean successWhen(ForestRequest req, ForestResponse res) {
+        boolean reqStatus = res.noException() &&   // 请求过程没有异常
+            res.statusOk() &&     // 并且状态码在 100 ~ 399 范围内
+            res.statusIsNot(203);
+        if(!reqStatus){
+            return reqStatus;
+        }
+
+        String content = res.getContent();
+        if(StrUtil.isEmpty(content)){
+            reqStatus = false;
+            return reqStatus;
+        }
+        Result result = JSON.parseObject(content, Result.class);
+        if(result.getCode() != ServerCode.SUCCESS.code()){
+            reqStatus = false;
+            return reqStatus;
+        }
+        return true;
+    }
+}

+ 7 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/httpclient/FdkankanMiniClient.java

@@ -2,6 +2,7 @@ package com.fdkankan.scene.httpclient;
 
 import com.dtflys.forest.annotation.Get;
 import com.dtflys.forest.annotation.Request;
+import com.dtflys.forest.annotation.Success;
 import com.dtflys.forest.annotation.Var;
 import com.dtflys.forest.callback.OnError;
 import com.dtflys.forest.callback.OnSuccess;
@@ -9,6 +10,8 @@ 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;
+import com.fdkankan.scene.callback.FdkkMiniReqSuccessCondition;
+import com.yomahub.tlog.forest.TLogForestInterceptor;
 
 /**
  * <p>
@@ -18,9 +21,12 @@ import com.fdkankan.scene.bean.UserIncrementBean;
  * @author dengsixing
  * @since 2022/4/24
  **/
+@Success(condition = FdkkMiniReqSuccessCondition.class)
 public interface FdkankanMiniClient {
 
-    @Get("{url}")
+    @Get(url="{url}"
+//        ,interceptor = TLogForestInterceptor.class    加这个拦截器,打印的tlog日志会详细一些,包括头信息等等
+    )
     Result<String> getDataSyncType(@Var("url") String url, OnSuccess<Result> onSuccess, OnError onError);
 
     @Get("{url}")