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
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); |
|
} |
|
} |
|
} |
|
}
|
|
|