package com.ard.sample.component.mqtt;
|
|
import com.ard.sample.manage.model.param.DeviceQueryParam;
|
import com.ard.sample.manage.service.IDeviceService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.CommandLineRunner;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.StringUtils;
|
|
/**
|
* @author sean.zhou
|
* @date 2021/11/24
|
* @version 0.1
|
*/
|
@Component
|
public class ApplicationBootInitial implements CommandLineRunner {
|
|
@Autowired
|
private IDeviceService deviceService;
|
|
/**
|
* Subscribe to the devices that exist in the database when the program starts,
|
* to prevent the data from being different from the pilot side due to program interruptions.
|
* @param args
|
* @throws Exception
|
*/
|
@Override
|
public void run(String... args){
|
deviceService.getDevicesByParams(DeviceQueryParam.builder().build())
|
.forEach(device -> {
|
deviceService.subscribeTopicOnline(device.getDeviceSn());
|
if(StringUtils.hasText(device.getChildDeviceSn())){
|
deviceService.subscribeTopicOnline(device.getChildDeviceSn());
|
}
|
});
|
}
|
}
|