From 6840c2d43c3c0a9034dff6b57bf0d0053238eca9 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 23 五月 2025 16:06:34 +0800
Subject: [PATCH] 修改公交公司的事件订阅功能

---
 ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java |   39 ++++++++++++++++++++++++++-------------
 1 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java b/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java
index ee4df37..5228e76 100644
--- a/ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java
+++ b/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) {
-	
-	}
+
 }

--
Gitblit v1.7.1