高效能源监控管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.8 KiB

package com.mh;
import com.mh.common.core.domain.entity.MqttSubscription;
import com.mh.common.utils.StringUtils;
import com.mh.framework.mqtt.service.IMqttTopicService;
import com.mh.system.service.mqtt.IMqttSubscriptionService;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author LJF
* @version 1.0
* @project EEMCS
* @description 项目初始化之后的系列操作
* @date 2025-02-14 16:35:50
*/
@Component
public class MHRunner implements ApplicationRunner {
private final IMqttSubscriptionService iMqttSubscriptionService;
private final IMqttTopicService iMqttTopicService;
public MHRunner(IMqttSubscriptionService iMqttSubscriptionService, IMqttTopicService iMqttTopicService) {
this.iMqttSubscriptionService = iMqttSubscriptionService;
this.iMqttTopicService = iMqttTopicService;
}
@Override
public void run(ApplicationArguments args) throws Exception {
// 初始化mqtt订阅记录
initializeMqttSubscription();
}
/**
* 初始化mqtt订阅记录
*/
private void initializeMqttSubscription() {
MqttSubscription mqttSubscription = new MqttSubscription();
mqttSubscription.setStatus("0");
List<MqttSubscription> mqttSubscriptions = iMqttSubscriptionService.selectMqttSubList(mqttSubscription);
for (MqttSubscription subscription : mqttSubscriptions) {
try {
if (!StringUtils.isEmpty(subscription.getTopic())) {
iMqttTopicService.subscribe(subscription.getTopic(), subscription.getQos());
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}