Prechádzať zdrojové kódy

为字典配置单独的feign

lixing 4 rokov pred
rodič
commit
4f5ceae454

+ 7 - 2
src/main/java/com/persagy/dmp/starter/alarm/communication/netty/NettyAlarmMsgBaseHandler.java

@@ -114,6 +114,11 @@ public class NettyAlarmMsgBaseHandler extends ChannelInboundHandlerAdapter {
     public void sendAllAlarmConfigs(NettyAlarmMessage nettyMessage) throws Exception {
         List<JSONObject> dataList = nettyMessage.getContent();
         JSONObject data = dataList.get(0);
+        String projectId = data.getString("projectId");
+        if (StringUtils.isEmpty(projectId)) {
+            projectId = "0";
+        }
+        data.put("projectId", projectId);
         data.put("userId", "system");
 
         JSONArray alarmConfigs = nettyAlarmService.queryAlarmConfig(data);
@@ -126,8 +131,8 @@ public class NettyAlarmMsgBaseHandler extends ChannelInboundHandlerAdapter {
                         ((JSONObject) alarmConfig).getString("projectId")
                 )
         );
-        groups.forEach((projectId, alarmConfigList) -> {
-            sendMessage(projectId, new NettyAlarmMessage(9, alarmConfigList).toString());
+        groups.forEach((tmpProjectId, alarmConfigList) -> {
+            sendMessage(tmpProjectId, new NettyAlarmMessage(9, alarmConfigList).toString());
         });
 
     }

+ 2 - 2
src/main/java/com/persagy/dmp/starter/alarm/constant/RequestUrlConstant.java

@@ -50,6 +50,6 @@ public class RequestUrlConstant {
     /**
      * 报警字典
      */
-    private static final String ALARM_DIC = "/dic/dt/data/";
-    public static final String ALARM_DIC_QUERY = ALARM_DIC + QUERY;
+    private static final String DIC_DATA = "/dic/dt/data/";
+    public static final String DIC_DATA_QUERY = DIC_DATA + QUERY;
 }

+ 2 - 0
src/main/java/com/persagy/dmp/starter/alarm/feign/AlarmFeignConfig.java

@@ -7,6 +7,7 @@ import feign.querymap.BeanQueryMapEncoder;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
 
 /**
  * @description: Feign配置
@@ -48,6 +49,7 @@ public class AlarmFeignConfig {
      * @version: V1.0
      */
     @Bean
+    @Primary
     public Feign.Builder alarmFeignBuilder() {
         return Feign.builder()
                 .queryMapEncoder(new BeanQueryMapEncoder())

+ 2 - 16
src/main/java/com/persagy/dmp/starter/alarm/feign/client/AlarmClient.java

@@ -3,7 +3,7 @@ package com.persagy.dmp.starter.alarm.feign.client;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.persagy.dmp.starter.alarm.constant.RequestUrlConstant;
-import com.persagy.dmp.starter.alarm.feign.AlarmServerFallbackFactory;
+import com.persagy.dmp.starter.alarm.feign.fallback.AlarmClientFallbackFactory;
 import com.persagy.dmp.starter.alarm.feign.AlarmUrlParam;
 import com.persagy.dmp.starter.alarm.feign.DmpResult;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.RequestBody;
  * @since: 2020/11/27 10:43 上午
  * @version: V1.0
  */
-@FeignClient(name = "dmp-alarm", fallbackFactory = AlarmServerFallbackFactory.class)
+@FeignClient(name = "dmp-alarm", fallbackFactory = AlarmClientFallbackFactory.class)
 public interface AlarmClient {
     /**
      * @description: 查询报警定义
@@ -173,18 +173,4 @@ public interface AlarmClient {
      */
     @PostMapping(RequestUrlConstant.ALARM_COMMENT_QUERY)
     DmpResult<JSONArray> queryAlarmComment(@SpringQueryMap AlarmUrlParam alarmUrlParam, @RequestBody JSONObject jsonObject) throws Exception;
-
-    /**
-     * @description: 查询报警字典
-     * @param: alarmUrlParam
-     * @param: jsonObject
-     * @return: com.persagy.dmp.starter.alarm.feign.DmpResult<com.alibaba.fastjson.JSONArray>
-     * @exception:
-     * @author: lixing
-     * @company: Persagy Technology Co.,Ltd
-     * @since: 2020/11/30 7:10 下午
-     * @version: V1.0
-     */
-    @PostMapping(RequestUrlConstant.ALARM_DIC_QUERY)
-    DmpResult<JSONArray> queryAlarmDic(@SpringQueryMap AlarmUrlParam alarmUrlParam, @RequestBody JSONObject jsonObject) throws Exception;
 }

+ 37 - 0
src/main/java/com/persagy/dmp/starter/alarm/feign/client/DicClient.java

@@ -0,0 +1,37 @@
+package com.persagy.dmp.starter.alarm.feign.client;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.persagy.dmp.starter.alarm.constant.RequestUrlConstant;
+import com.persagy.dmp.starter.alarm.feign.AlarmUrlParam;
+import com.persagy.dmp.starter.alarm.feign.DmpResult;
+import com.persagy.dmp.starter.alarm.feign.fallback.DicClientFallbackFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.cloud.openfeign.SpringQueryMap;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @description: feign调用数据中台报警接口
+ * @author: lixing
+ * @company: Persagy Technology Co.,Ltd
+ * @since: 2020/11/27 10:43 上午
+ * @version: V1.0
+ */
+@FeignClient(name = "dmp-dic", fallbackFactory = DicClientFallbackFactory.class)
+public interface DicClient {
+
+    /**
+     * @description: 查询报警字典
+     * @param: alarmUrlParam
+     * @param: jsonObject
+     * @return: com.persagy.dmp.starter.alarm.feign.DmpResult<com.alibaba.fastjson.JSONArray>
+     * @exception:
+     * @author: lixing
+     * @company: Persagy Technology Co.,Ltd
+     * @since: 2020/11/30 7:10 下午
+     * @version: V1.0
+     */
+    @PostMapping(RequestUrlConstant.DIC_DATA_QUERY)
+    DmpResult<JSONArray> queryDicData(@SpringQueryMap AlarmUrlParam alarmUrlParam, @RequestBody JSONObject jsonObject) throws Exception;
+}

+ 4 - 7
src/main/java/com/persagy/dmp/starter/alarm/feign/AlarmServerFallbackFactory.java

@@ -1,7 +1,9 @@
-package com.persagy.dmp.starter.alarm.feign;
+package com.persagy.dmp.starter.alarm.feign.fallback;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.persagy.dmp.starter.alarm.feign.AlarmUrlParam;
+import com.persagy.dmp.starter.alarm.feign.DmpResult;
 import com.persagy.dmp.starter.alarm.feign.client.AlarmClient;
 import feign.hystrix.FallbackFactory;
 import lombok.extern.slf4j.Slf4j;
@@ -17,7 +19,7 @@ import java.util.List;
  * @version: V1.0
  */
 @Slf4j
-public class AlarmServerFallbackFactory implements FallbackFactory<AlarmClient> {
+public class AlarmClientFallbackFactory implements FallbackFactory<AlarmClient> {
     @Override
     public AlarmClient create(Throwable throwable) {
        return new AlarmClient() {
@@ -78,11 +80,6 @@ public class AlarmServerFallbackFactory implements FallbackFactory<AlarmClient>
            public DmpResult<JSONArray> queryAlarmComment(AlarmUrlParam alarmUrlParam, JSONObject jsonObject){
                throw new RuntimeException(String.format(errorMsg, "queryAlarmComment", jsonObject.toString()));
            }
-
-           @Override
-           public DmpResult<JSONArray> queryAlarmDic(AlarmUrlParam alarmUrlParam, JSONObject jsonObject) {
-               throw new RuntimeException(String.format(errorMsg, "queryAlarmDic", jsonObject.toString()));
-           }
        };
     }
 }

+ 33 - 0
src/main/java/com/persagy/dmp/starter/alarm/feign/fallback/DicClientFallbackFactory.java

@@ -0,0 +1,33 @@
+package com.persagy.dmp.starter.alarm.feign.fallback;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.persagy.dmp.starter.alarm.feign.AlarmUrlParam;
+import com.persagy.dmp.starter.alarm.feign.DmpResult;
+import com.persagy.dmp.starter.alarm.feign.client.DicClient;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+
+
+/**
+ * @description: 降级处理
+ * @author: lixing
+ * @company: Persagy Technology Co.,Ltd
+ * @since: 2020/11/27 2:05 下午
+ * @version: V1.0
+ */
+@Slf4j
+public class DicClientFallbackFactory implements FallbackFactory<DicClient> {
+
+    @Override
+    public DicClient create(Throwable throwable) {
+        return new DicClient() {
+            private String errorMsg = "feign调用报警中心接口异常,接口名称:[{}], 请求体:[{}]";
+
+            @Override
+            public DmpResult<JSONArray> queryDicData(AlarmUrlParam alarmUrlParam, JSONObject jsonObject) {
+                throw new RuntimeException(String.format(errorMsg, "queryDicData", jsonObject.toString()));
+            }
+        };
+    }
+}