Pu Zhibing
2025-05-23 f355ef485a56e613b71d0262c089b995d7ca10d2
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java
@@ -8,6 +8,7 @@
import com.ruoyi.dataInterchange.util.haikang.model.EventSubscriptionByEventTypesRequest;
import com.ruoyi.dataInterchange.util.haikang.model.EventSubscriptionViewRequest;
import com.ruoyi.dataInterchange.util.haikang.model.EventUnSubscriptionByEventTypesRequest;
import com.ruoyi.dataInterchange.util.haikang.model.GetTopicInfoRequest;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.ServletContextEvent;
@@ -24,8 +25,7 @@
 * @Date 2025/5/20 16:17
 */
@Slf4j
@WebListener
public class Artemis implements ServletContextListener {
public class Artemis {
   
   /**
    * STEP2:设置OpenAPI接口的上下文
@@ -52,17 +52,33 @@
      String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
      return result;
   }
   //按事件类型获取事件订阅信息
   public static String getTopicInfo(GetTopicInfoRequest getTopicInfoRequest)throws Exception {
      String getTopicInfoDataApi = ARTEMIS_PATH +"/api/common/v1/event/getTopicInfo";
      Map<String,String> path = new HashMap<String,String>(2){
         {
            put("https://",getTopicInfoDataApi);
         }
      };
      String body=JSON.toJSONString(getTopicInfoRequest);
      String result =ArtemisHttpUtil.doPostStringArtemis(artemisConfig,path,body,null,null,"application/json");
      return result;
   }
   
   @Override
   public void contextInitialized(ServletContextEvent sce) {
   public static void run() {
      try {
         //先查询是否订阅事件
         EventSubscriptionViewRequest eventSubscriptionViewRequest = new EventSubscriptionViewRequest();
         eventSubscriptionViewRequest.setSubWay(1);
         String eventSubscriptionView = Artemis.eventSubscriptionView(eventSubscriptionViewRequest);
         GetTopicInfoRequest getTopicInfoRequest = new GetTopicInfoRequest();
         getTopicInfoRequest.setEventTypes(new ArrayList<Long>(){{
            add(5201154049L);
         }});
         String eventSubscriptionView = Artemis.getTopicInfo(getTopicInfoRequest);
         JSONObject jsonObject = JSON.parseObject(eventSubscriptionView);
         String code = jsonObject.getString("code");
         if("200".equals(code)){
         if("0".equals(code)){
            JSONArray jsonArray = jsonObject.getJSONObject("data").getJSONArray("detail");
            List<String> list = new ArrayList<>();
            for (int i = 0; i < jsonArray.size(); i++) {
@@ -83,7 +99,7 @@
               String subscription = Artemis.eventSubscriptionByEventTypes(eventSubscriptionByEventTypesRequest);
               jsonObject = JSON.parseObject(subscription);
               code = jsonObject.getString("code");
               if(!"200".equals(code)){
               if(!"0".equals(code)){
                  log.error("告警事件订阅失败");
               }else {
                  log.info("告警事件订阅成功");
@@ -123,8 +139,5 @@
      return result;
   }
   
   @Override
   public void contextDestroyed(ServletContextEvent sce) {
   }
}