Commit e8ca0bbf by YG8999

延时执行开门关门取电接口

parent 0bffcdb7
...@@ -63,15 +63,17 @@ public interface DeviceOpService { ...@@ -63,15 +63,17 @@ public interface DeviceOpService {
* @return * @return
*/ */
void asyncActionExecute(Long roomId, String phone, void asyncActionExecute(Long roomId, String phone,
String content, String startTime, String endTime, String number, Long m); String content, String startTime, String endTime, String number, long m);
/** /**
* 开锁/关锁、取电/断电 * 开锁/关锁、取电/断电
* @param roomId 房间id * @param roomId 房间id
* @param phone 操作用户 * @param phone 操作用户
* @param opType 操作类型:10:开门,20:取电,30:锁门,40:断电 * @param opType 操作类型:10:开门,20:取电,30:锁门,40:断电
* @param isAsync 是否延时操作
* @param m 延长执行时间:秒
* @return * @return
*/ */
void openOrCloseDevice(Long roomId, String phone, String opType); void openOrCloseDevice(Long roomId, String phone, String opType, boolean isAsync, long m);
} }
...@@ -194,7 +194,7 @@ public class DeviceOpServiceImpl implements DeviceOpService { ...@@ -194,7 +194,7 @@ public class DeviceOpServiceImpl implements DeviceOpService {
*/ */
@Override @Override
public void asyncActionExecute(Long roomId, String phone, String content, public void asyncActionExecute(Long roomId, String phone, String content,
String startTime, String endTime, String number, Long m) { String startTime, String endTime, String number, long m) {
SRoom room = roomMapper.selectSRoomById(roomId); SRoom room = roomMapper.selectSRoomById(roomId);
if (room != null) { if (room != null) {
// 异步执行 // 异步执行
...@@ -231,7 +231,7 @@ public class DeviceOpServiceImpl implements DeviceOpService { ...@@ -231,7 +231,7 @@ public class DeviceOpServiceImpl implements DeviceOpService {
* @return * @return
*/ */
@Override @Override
public void openOrCloseDevice(Long roomId, String phone, String opType) { public void openOrCloseDevice(Long roomId, String phone, String opType, boolean isAsync, long m) {
SRoom room = roomMapper.selectSRoomById(roomId); SRoom room = roomMapper.selectSRoomById(roomId);
if (room != null) { if (room != null) {
LambdaQueryWrapper<Device> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<Device> queryWrapper = new LambdaQueryWrapper<>();
...@@ -245,12 +245,32 @@ public class DeviceOpServiceImpl implements DeviceOpService { ...@@ -245,12 +245,32 @@ public class DeviceOpServiceImpl implements DeviceOpService {
} }
List<Device> list = deviceMapper.selectList(queryWrapper); List<Device> list = deviceMapper.selectList(queryWrapper);
list.stream().forEach(device -> { list.stream().forEach(device -> {
if (isAsync) {
// 异步执行
CompletableFuture.supplyAsync(() -> {
// 延时执行操作
try {
Thread.sleep(m * 1000);
// 获取mqtt的topic、payload // 获取mqtt的topic、payload
MqttxVo mqttxVo = mqttxService.openOrCloseDevice(device.getDevId(), phone, opType); MqttxVo mqttxVo = mqttxService.openOrCloseDevice(device.getDevId(), phone, opType);
// 发送mqtt消息 // 发送mqtt消息
mqttGatewayComponent.sendToMqtt(mqttxVo.getTopic(), 0, mqttxVo.getPayload()); mqttGatewayComponent.sendToMqtt(mqttxVo.getTopic(), 0, mqttxVo.getPayload());
// 写日志记录 // 写日志记录
deviceLogService.addDeviceLog(mqttxVo, phone); deviceLogService.addDeviceLog(mqttxVo, phone);
logger.info("延时执行开锁/关锁、取电/断电完成!");
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Result: devid="+device.getDevId() ;
});
} else {
// 获取mqtt的topic、payload
MqttxVo mqttxVo = mqttxService.openOrCloseDevice(device.getDevId(), phone, opType);
// 发送mqtt消息
mqttGatewayComponent.sendToMqtt(mqttxVo.getTopic(), 0, mqttxVo.getPayload());
// 写日志记录
deviceLogService.addDeviceLog(mqttxVo, phone);
}
}); });
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment