puzhibing
9 天以前 6840c2d43c3c0a9034dff6b57bf0d0053238eca9
修改公交公司的事件订阅功能
2个文件已修改
1个文件已添加
56 ■■■■ 已修改文件
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/RuoYiDataInterchangeApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/Artemis.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/model/GetTopicInfoRequest.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/RuoYiDataInterchangeApplication.java
@@ -3,6 +3,7 @@
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import com.ruoyi.dataInterchange.util.haikang.Artemis;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -27,5 +28,6 @@
    public static void main(String[] args) {
        SpringApplication.run(RuoYiDataInterchangeApplication.class, args);
        System.out.println("\n(♥◠‿◠)ノ゙  数据交互模块启动成功   ლ(´ڡ`ლ)゙ \n");
//        Artemis.run();
    }
}
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) {
    }
}
ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/util/haikang/model/GetTopicInfoRequest.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.dataInterchange.util.haikang.model;
import java.util.ArrayList;
public class GetTopicInfoRequest {
    private ArrayList<Long> eventTypes;
    public ArrayList<Long> getEventTypes() {
        return eventTypes;
    }
    public void setEventTypes(ArrayList<Long> eventTypes) {
        this.eventTypes = eventTypes;
    }
}