| | |
| | | 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; |
| | |
| | | * @Date 2025/5/20 16:17 |
| | | */ |
| | | @Slf4j |
| | | @WebListener |
| | | public class Artemis implements ServletContextListener { |
| | | public class Artemis { |
| | | |
| | | /** |
| | | * STEP2:设置OpenAPI接口的上下文 |
| | |
| | | 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++) { |
| | |
| | | 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("告警事件订阅成功"); |
| | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public void contextDestroyed(ServletContextEvent sce) { |
| | | |
| | | } |
| | | |
| | | } |